| [Résolu] Script - Contrôle de choix | |
|
Auteur | Message |
---|
Va-nu-pieds Lv.4
Age : 31 Inscrit le : 03/08/2009 Messages : 61
| Sujet: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 17:45 | |
| Salut, Je voudrais savoir comment mieux contrôler les choix en SCRIPT, je vais vous expliquer mon problème : Créons par exemple une fenêtre : - Code:
-
@choice_window = Window_Command.new(192, ["1er choix", "2ème choix"]) Moi maintenant, ce que je voudrais faire, c'est ne faire apparaître "1er choix" que si l'interrupteur ou la variable 56 (par exemple) est activée, et le faire disparaître lorsque l'interrupteur ou la variable 65 (par exemple) est activée. Merci
Dernière édition par Raizen le Lun 17 Aoû 2009 - 23:04, édité 1 fois |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 18:26 | |
| Peut être en faisant - Code:
-
if $game_switches[56] == true @choice_window = Window_Command.new(192, ["1er choix", "2ème choix"]) else @choice_window = Window_Command.new(192, ["2ème choix"]) end Enfin après je ne suis que novice ( voire très ) dans l'écriture de script. Donc ce que j'ai marqué est encore a confirmer par un vrai scripteur ^^ |
|
| |
Maire Lv.9
Age : 37 Inscrit le : 15/07/2009 Messages : 366
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 19:04 | |
| Faut pas oublié la vérification de l'interrupteur 65: - Code:
-
if $game_switches[56] == true if $game_switches[65] != true @choice_window = Window_Command.new(192, ["1er choix", "2ème choix"]) end else @choice_window = Window_Command.new(192, ["2ème choix"]) end |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 19:07 | |
| Ah oui, j'avais mal lu ( et de toute façon je pense que j'aurais été incapable de trouver ca tout seul xD il me faut encore m'améliorer) |
|
| |
Va-nu-pieds Lv.4
Age : 31 Inscrit le : 03/08/2009 Messages : 61
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 19:11 | |
| C'est que, j'ai voulu tenté ça, mais ce n'est pas très pratique : j'ai plus de 10 choix à faire avec chacun son interrupteur, tu vois. Je sais qu'il existe une autre façon mais laquelle. J'ai vu un script su XP, voici le début de son "main" : - Code:
-
def main @s = [] @s[0] = "1er choix" #Le 1er choix if $game_switches[23] == true @s[1] = "2ème choix" Dans ce dernier les noms des choix sont représentés par " @s " J'ai vraiment rien compris Quelqu'un pourrait-il m'expliquer ? |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 20:34 | |
| - Citation :
- Dans ce dernier les noms des choix sont représentés par " @s "
En effet, @s contient ce que l'on appelle un tableau. Mais @s, c'est juste une variable d'instance nommée... s. Perso j'aurais utilisé tab, plutôt. C'est plus clair.^^ Et un tableau, c'est ce qui contient les éléments pour ton choix. Traduction : - Code:
-
@choice_window = Window_Command.new(192, ["1er choix", "2ème choix"]) est la même chose que - Code:
-
tab = ["1er choix", "2ème choix"] @choice_window = Window_Command.new(192, tab) Voici comment tu peux faire, donc : - Code:
-
# Création d'un tableau vide tab = [] # Si l'interrupteur 56 est actif, on rajoute "attaquer" tab.push("Attaquer") if $game_switches[56] # D'autres interrupteurs, d'autres commandes... tab.push("Magie blanche") if $game_switches[57] tab.push("Magie noir") if $game_switches[58] # L'interrupteur 60 interdit les animaux! (humour) tab.push("Magie zébré") if $game_switches[57] and $game_switches[58] and not $game_switches[60] # A ce stade, si tous les interrupteurs sont allumés, # tab vaudra ["Attaquer", "Magie blanche", "Magie noir"] @choice_window = Window_Command.new(192, tab) Y a juste un truc qui "m'inquiète" un peu... c'est comment tu comptes gérer cette fenêtre de choix, après... Bah, tu pourras toujours utiliser @choice_window.commands[@choice_window.index] pour tester le nom de la commande actuellement sélectionné. |
|
| |
Va-nu-pieds Lv.4
Age : 31 Inscrit le : 03/08/2009 Messages : 61
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 23:03 | |
| Merci mille fois, avec l'explication que tu viens de me faire maintenant, je viens de comprendre beaucoup de choses, par exemple, maintenant je vais utiliser l'exemple de " @s " que je n'avais pas compris au début : PS: j'ai ajouté un 3ème et 4ème choix pour mieux comprendre : - Code:
-
def main
#La création du tableau : tab = []
#1er choix : tab[0] = "1er choix" #N.B : On commence par zéro
#Ici, le 2ème et 3ème choix ne s'affichera que si l'interrupteur 56 est activé : if $game_switches[56] == true tab[1] = "2ème choix" tab[2] = "3ème choix" end
#Ici, le 4ème choix ne s'affichera que si la variable 65 est plus grande que 5 : if $game_variables[65] > 5 tab[3] = "4ème choix" end
#Et enfin la fenêtre : @choice_window = Window_Command.new(192, tab)
#La suite de main... - Citation :
Y a juste un truc qui "m'inquiète" un peu... c'est comment tu comptes gérer cette fenêtre de choix Ben au faîte, ça va me servir dans mon script, ... je vais faire un bref aperçu : Je vais utiliser cette fenêtre de choix pour faire apparaître des images selon la position du curseur avec ceci : - Code:
-
@pics_sprite.bitmap = Cache.picture(@pics[@choice_window.index]) en sachant que "@pics_sprite" est le sprite des images, et "@pics" sont les images elles même. Biensûr, on ne peut faire ça qu'après avoir créer dabords le sprite, mais ça, c'est une autre question à poser sur le forum. Sihn, merci infiniment, sans toi, je ne crois que je saurais ce que je sais maintenant, ton nom est garantit dans les crédits de mon projet Et encore merci |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [Résolu] Script - Contrôle de choix Lun 17 Aoû 2009 - 23:30 | |
| Un autre détail... - Code:
-
if $game_switches[56] == true Pas besoin de mettre == true. Une condition, pour fonctionner, à besoin de ce qui s'appelle un booléen. Un booléen ne peut avoir que deux valeurs : true (vrai, oui...) et false (faux, non...). 1 + 1 == 2 est vrai, et renverra donc la valeur booléenne true, d'où la possibilité de l'utiliser en condition. Sauf que les interrupteurs, eux, renvoient déjà des booléens. C'est un peu comme si tu écrivais (1 + 1 == 2) == true, quoi.^^ |
|
| |
Va-nu-pieds Lv.4
Age : 31 Inscrit le : 03/08/2009 Messages : 61
| Sujet: Re: [Résolu] Script - Contrôle de choix Mar 18 Aoû 2009 - 7:00 | |
| Je ne la savais pas celle là, merci pour l'info. Encore merci ! |
|
| |
| Sujet: Re: [Résolu] Script - Contrôle de choix | |
| |
|
| |
| [Résolu] Script - Contrôle de choix | |
|