Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Interviews: Ephy / Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Making-of: Ma première game jam classée / Jeux: Oracle of Tao / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

115 connectés actuellement

11006404 visiteurs
depuis l'ouverture

999 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Maker - La Communauté

Tashiroworld

Guelnika & E-magination

Zarok

Kingdom Ultimate

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RPG Maker VX ACE] Boucle condition


esoterique - posté le 25/12/2012 à 07:32:03 (20 messages postés)

❤ 0

Domaine concerné: évènement-script
Logiciel utilisé: RPG Maker VX ACE
Bonjour, je me demandais s'il y avait un moyen de faire cela

Bien évidemment c'est un exemple qui ne veut pas dire grand chose :

(
Variable compteur = 1

Début boucle

Si l'interrupteur numéro compteur est activé (donc l'interrupteur numéro 1 pour le premier tour)
Fin boucle
Sinon
Compteur += 1
Début boucle
)

En gros dans condition lorsqu'on sélectionne un interrupteur ou une variable (ou même pour leur modification) je voudrais remplacer numéro 0001, 0002 par compteur (une variable quoi), histoire de ne pas devoir les énumérer un(e) par un(e). Peut-être est-ce plus simple à faire en script ? Dans ce cas là vers ou dois-je me rediriger ? Merci.


esoterique - posté le 25/12/2012 à 09:30:20 (20 messages postés)

❤ 0

Hum, quand par exemple tu cliques sur condition, tu peux choisir la variable ou l'interrupteur sur lequel tu vas fonder ta condition, lorsque tu choisis celui-ci tu es obligé de prendre l'interrupteur num 001, 002, 003... Moi ce que je voudrais c'est prendre l'interrupteur num (une certaine variable) c'est à dire si cette certaine variable vaut 1, la condition sera basé sur l'interrupteur 1, si elle vaut 2 sur l'interrupteur 2 etc.


Estheone - posté le 25/12/2012 à 11:06:42 (312 messages postés)

❤ 0

il te faut faire une condition appel de script (le dernier type de condition) et tu mets :

Portion de code : Tout sélectionner

1
$game_switches[$game_variables[x]] == true


en remplaçant x par le numéro de ta variable compteur.

Attention aux boucles infinies tout de même car dans ton exemple plus haut ça sort jamais de la boucle si tous les interrupteurs sont false.

Wandering Souls : Jeu complet / Topic sur Oniro


esoterique - posté le 25/12/2012 à 11:53:01 (20 messages postés)

❤ 0

Ah merci ! Une fois que sur les 100 choix ça a trouvé le 36ème par exemple j'aimerai avoir l'objet avec le même id (donc la même chose objet num (variable (donc 36)) ou encore ajouter un membre en fonction de l'id stocké dans une variable, ou même afficher un message qui m'affiche le nom d'un héro l'id étant désigné encore une fois en fonction d'une variable.

Y a t'il un recensement des commandes simples comme celle-ci ? Que je puisse le faire seul. A vrai dire ça fait pas mal de temps que je cherche donc merci encore, je me doutais que ce n'était pas si dur.


Estheone - posté le 25/12/2012 à 13:54:55 (312 messages postés)

❤ 0

Je ne suis pas sûr que tu puisses trouver un recensement, en tout cas voilà les commandes en question.

Gain de 1 item dont l'id est contenue dans la variable x :

Portion de code : Tout sélectionner

1
$game_party.gain_item($data_items[$game_variables[x]], 1)



Ajout d'un membre dont l'id est contenue dans la variable x :

Portion de code : Tout sélectionner

1
$game_party.add_actor($game_variables[x])



Pour l'affichage du nom d'un héros selon une variable x c'est plus chiant.
Tu rends une variable y égale au contenu de ce script :

Portion de code : Tout sélectionner

1
$game_actors[$game_variables[x]].name


et tu affiches ta variable y dans le message en utilisant

Portion de code : Tout sélectionner

1
\v[y]


dans le message.

En remplaçant x et y à chaque fois bien entendu. ^^

Wandering Souls : Jeu complet / Topic sur Oniro


esoterique - posté le 25/12/2012 à 18:16:44 (20 messages postés)

❤ 0

Merci tout marche bien. Ah et s'il te plait pour finir pourrais-tu me dire comment faire pour..

Conditions :
-Si héro num (variable) est dans l'équipe
-Si le niveau du protagoniste est plus élevé que celui de x (personnage étant crée, mais ne se trouvant pas dans l'équipe)
-Si skill num (variable) est possédé

-Ajouter un sort par id
-Oublier un sort par id

Et lors d'un combat :
-Récupérer l'ID du monstre qui a été ciblé

Voilà, désolé si ça fait beaucoup !


Estheone - posté le 26/12/2012 à 03:48:35 (312 messages postés)

❤ 0

Ouais ça commence à faire beaucoup, surtout que je connais pas trop les scripts d'origine VX Ace et que les trucs que tu demandes sont pas tous simples. :triste3

Citation:

-Si héro num (variable) est dans l'équipe


En appel de script :

Portion de code : Tout sélectionner

1
2
3
actor = $game_actors[$game_variables[x]]
$game_variables[y] = 
$game_party.members.include?(actor)


Puis tu vérifies si la variable y est égale a true.
Note qu'il te suffit de remplacer members par battle_members pour savoir si le héros en question se trouve dans les 4 membres qui combattent.

Citation:

-Si le niveau du protagoniste est plus élevé que celui de x (personnage étant crée, mais ne se trouvant pas dans l'équipe)


Par protagoniste tu veux dire le leader de l'équipe ?
En appel de script :

Portion de code : Tout sélectionner

1
2
3
actor1 = $game_party.leader
actor2 = $game_actors[$game_variables[x]]
$game_variables[y] = (actor1.level>actor2.level)


Puis tu vérifies si la variable y est égale a true.
Remplace $game_party.leader par $game_actors[$game_variables[z]] si tu veux faire la comparaison entre deux persos dont tu connais les id.

Citation:

-Si skill num (variable) est possédé


En appel de script :

Portion de code : Tout sélectionner

1
2
actor = $game_actors[$game_variables[x]]
$game_variables[z] = actor.skill_learn?($game_variables[y])


Puis tu vérifies si la variable z est égale a true.

Citation:

-Ajouter un sort par id
-Oublier un sort par id


En appel de script :

Portion de code : Tout sélectionner

1
2
actor = $game_variables[x]
actor.learn_skill($game_variables[y])


Portion de code : Tout sélectionner

1
2
actor = $game_variables[x]
actor.forget_skill($game_variables[y])



Citation:

-Récupérer l'ID du monstre qui a été ciblé


Ajoute cette fonction dans le Window_BattleEnemy :

Portion de code : Tout sélectionner

1
2
3
4
5
6
  def select(index)
    if index
      self.index = index
      $game_variables[x] = $game_troop.alive_members[index].enemy_id
    end
  end



La prochaine info je te la fais payer. :rit2

Wandering Souls : Jeu complet / Topic sur Oniro


arttroy - posté le 26/12/2012 à 11:24:25 (2394 messages postés)

❤ 0

Just working

:wouah l'explication qui calme... je suis toujours impressionné par la précision des infos que tu donnes... Il y a certains points qui vont me servir pour mon propre projet comme l'ID de l'ennemi ciblé par exemple...

Et heureusement que tu ne connais pas les scripts de base de Ace, qu'est ce que ce serait si c'était le cas...

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


esoterique - posté le 26/12/2012 à 16:23:50 (20 messages postés)

❤ 0

J'avoue, je commençais limite à abuser de ta patience là ! :sourire2

Bah merci pour tout, et enfaîte, comment as-tu appris ces commandes, elles étaient plus accessibles sur les autres rpg maker c'est ça ? (Compte tenu mon avardice, on va dire que cette question n'est pas considéré comme une demande d'info !)


Estheone - posté le 26/12/2012 à 16:55:44 (312 messages postés)

❤ 0

J'ai 8 ans d'expérience et 5 projets abandonnés à mon actif. A force d'expérimenter on est forcément à l'aise avec les possibilités de RPG Maker. :lol

Wandering Souls : Jeu complet / Topic sur Oniro


arttroy - posté le 26/12/2012 à 21:37:25 (2394 messages postés)

❤ 0

Just working

Non en vérité il y a des principes de base qui s'appliquent à toutes les versions de RM, tout ça c'est du script et en gros si tu es comme moi et que tu n'as aucune notion de programmation ben tu risque de galérer un peu à comprendre au début... Mais au final c'est comme les events c'est en faisant qu'on apprend à faire (pour ne pas citer le proverbe que chacun connait).

Sinon en te baladant un peu sur le net, tu trouveras facilement de quoi satisfaire ta curiosité, il y a pas mal de tutos sur youtube par exemple, les autres forum de making sont aussi une excellente source pour apprendre.

Pour le reste et pour le coup, c'est toi qui va devoir t'armer de patience si tu veux un jour caresser l'espoir d'être aussi doué que certain ici (ben non Esthéone n'est pas le seul, il y en a quelques autres très efficaces eux aussi).

Citation:

J'ai 8 ans d'expérience et 5 projets abandonnés à mon actif



Oui mais quand on voit la qualité de ce que tu sors maintenant ça ne peut que me motiver en ce qui me concerne ce genre de propos !!

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


esoterique - posté le 27/12/2012 à 08:36:52 (20 messages postés)

❤ 0

D'accord ! Puis oui c'est sûr que c'est mieux d'avoir déjà une notion en programmation, vu qu'auparavant j'avais déjà étudié Java, je connaissais déjà à peu près le fonctionnement.


arttroy - posté le 27/12/2012 à 12:09:47 (2394 messages postés)

❤ 0

Just working

Ben tu devrais galérer un peu moins que moi alors... Il me semble avoir déjà lu que ça s'apparentait plus à du C ou du C++ (des trucs que je ne connais que de nom en fait...) mais tu dois déjà avoir des bases donc des automatismes que moi je n'ai toujours pas acquis. En général je n'avance dans mon projet que grâce à des gens comme Esthéone, Mack, Zeus, Cantarelle, Zou... qui m'expliquent au fur et à mesure ce que je n'arrive pas à comprendre seul.
Je galère mais petit à petit je commence à saisir un peu mieux le fonctionnement de tout ça et concrètement ça commence à se voir sur mon projet et je trouve cela vraiment gratifiant donc je m'accroche.

Et encore là on ne parle que de la partie script, en fouillant sur Oniro tu te rendras compte qu'il y a des gens compétents à n'importe quel niveau du making que ce soit (graphisme, musique, bd...).

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


esoterique - posté le 29/12/2012 à 15:48:44 (20 messages postés)

❤ 0

Oué j'imagine bien ! Dis-toi que si t'as la foi dans 8 ans ce sera peut-être toi qui expliquera aux autres. :)

Estheone j'ai un problème avec ça


"
-Si skill num (variable) est possédé :
actor = $game_actors[$game_variables[x]]
$game_variables[z] = actor.skill_learn?($game_variables[y])
"

Déjà quand je le mets comme décrit ci-dessus, je reçois l'erreur "Script 'Game_Interpreter' line1409: ArgumentError occurred. Wrong number of arguments (0 for 1)" Du coup j'ai essayé diverses autres façons, et généralement ça fonctionnait, mais me renvoyait toujours false.

Un exemple qui m'affiche false dans la console :

"
actor = $game_actors[1]
print (actor.skill_learn?(3))
"

Evidemment, lorsque je déclenche l'évènement je possède le skill 3.


Estheone - posté le 29/12/2012 à 16:11:44 (312 messages postés)

❤ 0

Ouaip normal ça fonctionnait pas tout à fait comme je le pensais.

Portion de code : Tout sélectionner

1
2
actor = $game_actors[$game_variables[x]] 
$game_variables[z] = actor.skill_learn?($data_skills[$game_variables[y]])


Ca devrait le faire.

Wandering Souls : Jeu complet / Topic sur Oniro


esoterique - posté le 29/12/2012 à 19:12:02 (20 messages postés)

❤ 0

Exacte, merci encore !

Index du forum > Entraide > [RPG Maker VX ACE] Boucle condition

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers