catskart Chevalier (niveau 1)
Messages postés : 79 Date d'inscription : 03/11/2013 Jauge LPC :
| Sujet: [XP] Pourvoir mettre jusqu'à 9 choix dans un message. Dim 23 Nov 2014 - 23:09 | |
| Salut. Vous savez, RPG Maker XP limite les choix dans les messages, jusqu'à 4 choix. Mon script servira a repousser cette limite à 9 choix, ne l'utilisez seulement si vos choix dépasse les 4. Comment ça marche ?Dans votre évènement, après le dialogue ou quelque chose, vous créez une commande "Insérer un script..." et vous allez mettre ça : - Code:
-
$Nombredechoix = X $Choix1 = "Choix 1" $Choix2 = "Choix 2" $Choix3 = "Choix 3" $Choix4 = "Choix 4" $Choix5 = "Choix 5" $Choix6 = "Choix 6" $Choix7 = "Choix 7" $Choix8 = "Choix 8" $Choix9 = "Choix 9" $Annulation = true/false $Affichageargent = true/false $scene = Scene_9.new
$Nombredechoix = X : Il permet de mettre le Nombre de choix disponible. (Minimum 4 et Maximum 9) $ChoixX = Y : Il permet de mettre un mot ou une phrase (Y) dans le choix conserné (X). $Annulation : -True : on autorise le joueur à annuler. -False : on interdit le joueur à annuler. $Affichageargent : -True : on affiche l'argent qu'on a. -False : on affiche pas l'argent qu'on a. /!\ Rajoutez bien "Attendre 1 frame" après le script dans l'évent pour éviter d'avoir des bugs.Une fois le choix sélectionné, il sera stocké dans une variable, 0 pour l'annulation, 1 pour le 1er choix, 2 pour le 2ème choix, etc... Dans le script ci-dessous vous pouvez paramétrer dans quel variable le choix sera enregistré. il ne reste plus qu'à mettre les commandes d'évent "Si la varable "Choix enregistré" est égale à = X" Voilà Voilà, maintenant le script (à nommer "Scene 9" : - Code:
-
#============================================================================== # ** Scene_9 -- Par Catskart #------------------------------------------------------------------------------ # Ce script permet de repousser la limite de choix de rpg maker jusqu'à 9 # Choix, à utiliser uniquement lorsque vous voulez mettre plus de 4 choix #==============================================================================
# Le numéro correspond à la Variable qui va stocker votre choix.
Enregistrementduchoix = 1
class Scene_9 def main @character = RPG::Sprite.new @sprite = Spriteset_Map.new s1 = $Choix1 s2 = $Choix2 s3 = $Choix3 s4 = $Choix4 s5 = $Choix5 s6 = $Choix6 s7 = $Choix7 s8 = $Choix8 s9 = $Choix9 if ($Nombredechoix >= 9) @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5, s6, s7, s8, s9]) elsif ($Nombredechoix == @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5, s6, s7, s8]) elsif ($Nombredechoix == 7) @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5, s6, s7]) elsif ($Nombredechoix == 6) @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5, s6]) elsif ($Nombredechoix == 5) @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5]) elsif ($Nombredechoix <= 4) @command_window = Window_Command.new(192, [s1, s2, s3, s4]) end @command_window.x = 80 # Pour que se soit Calibrer avec l'emplacement du message. case $game_system.message_position when 0 # up @command_window.y = 16 when 1 # middle @command_window.y = 160 when 2 # down @command_window.y = 304 end @command_window.width = 480 @command_window.height = 160 # Si le message est transparent. if $game_system.message_frame == 0 @command_window.opacity = 160 else @command_window.opacity = 0 end @command_window.z = 9998 if ($Affichageargent == true) @gold_window = Window_Gold.new @gold_window.x = 400 case $game_system.message_position when 0 # up @gold_window.y = 384 when 1 # middle @gold_window.y = 32 when 2 # down @gold_window.y = 32 end # Si le message est transparent. if $game_system.message_frame == 0 @gold_window.opacity = 160 else @gold_window.opacity = 0 end end Graphics.transition(3) loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose @sprite.dispose @character.dispose if ($Affichageargent == true) @gold_window.dispose end end #C * Frame Update def update #A Update command window @character.update @sprite.update if ($Affichageargent == true) @gold_window.update end @command_window.update #T If B button was pressed if Input.trigger?(Input::B) if ($Annulation == true) #S Play cancel SE $game_system.se_play($data_system.cancel_se) #K Switch to menu screen $game_variables[Enregistrementduchoix] = 0 $scene = Scene_Map.new else end return end #A If C button was pressed if Input.trigger?(Input::C) #RT Branch by command window cursor position case @command_window.index when 0 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 1 $scene = Scene_Map.new when 1 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 2 $scene = Scene_Map.new when 2 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 3 $scene = Scene_Map.new when 3 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 4 $scene = Scene_Map.new when 4 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 5 $scene = Scene_Map.new when 5 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 6 $scene = Scene_Map.new when 6 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 7 $scene = Scene_Map.new when 7 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 8 $scene = Scene_Map.new when 8 $game_system.se_play($data_system.decision_se) $game_variables[Enregistrementduchoix] = 9 $scene = Scene_Map.new end return end end end Petites astuces :- Si vous voulez mettre le nom d'un héro dans un choix, il suffis de mettre : $game_actors[ID].name (ID correspondant au numéro du héro.) - N'utilisez ce script seulement si vous avez besoin d'afficher 5 choix ou plus, si dans le choix il y en a 4 ou moins, utiliser le système traditionnel. Inconvénient :- Lorsque vous enclenchez les 8 choix, tout les évents s’arrêtent le temps que vous choisissiez. - On ne peux pas modifier les couleurs dans les choix. |
|
Jin Ancien staffeux
Messages postés : 8557 Date d'inscription : 08/12/2010 Jauge LPC :
| Sujet: Re: [XP] Pourvoir mettre jusqu'à 9 choix dans un message. Dim 23 Nov 2014 - 23:19 | |
| Pourquoi se limiter à 9 choix ? Pourquoi pas créer un array avec un boucle for qui liste tout les choix ? Si c'est un soucis d'affichage, il suffit de faire un scroll.
Sinon c'est cool d'avoir plus de 4 choix. Même si 9 choix ca fait déjà beaucoup x)
Aller te voilà avec 5pts lpdm en plus |
|
Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: Re: [XP] Pourvoir mettre jusqu'à 9 choix dans un message. Lun 24 Nov 2014 - 0:13 | |
| Merci pour le partage, ce genre de script est toujours utile. |
|
Siegfried Mage (niveau 2)
Messages postés : 286 Date d'inscription : 31/07/2011 Jauge LPC :
| Sujet: Re: [XP] Pourvoir mettre jusqu'à 9 choix dans un message. Lun 24 Nov 2014 - 0:53 | |
| Ce script est super mal fichu... Des globales ($var) de partout, et un lancement de scene pour afficher une fenêtre de choix ?! On sort de la map ?! En jeu, ça donne une fenêtre qui s'affiche et qui freeze toute la map... ce que les messages et les choix de rm ne font pas ! Tout En plus, il manque des trucs ici, donc le script renverra une erreur : - Code:
-
elsif ($Nombredechoix == (J'ai rajouté le 8 et la parenthèse). EDIT : Désolé, c'est le forum qui considère "8 )" comme un smiley même dans le code ! C'est donc la faute à Forumactif !En gros, c'est buggé, mal fait, mal pensé et complètement à jeter, vu que d'autres scripts existent qui utilisent les choix de rm ou en tout cas des trucs mieux faits. -_- Désolé d'être aussi cinglant mais c'est plus un exercice de débutant (ce qui n'est pas en soi un défaut, on commence tous par là) qu'un script à utiliser, encore moins à partager. Et je ne parle même pas de la mise en forme et de l'utilisation de clochard (le clochard étant l'utilisateur, pas l'auteur). Il faut que tu pratiques encore avant de t'attaquer au système de message de RPG Maker XP. C'est un système labyrinthique et mal fichu à la base, mais ta solution n'aide pas. |
|
Clémengrenage Chevalier (niveau 4)
Messages postés : 122 Date d'inscription : 06/08/2013 Jauge LPC :
| Sujet: Re: [XP] Pourvoir mettre jusqu'à 9 choix dans un message. Jeu 4 Déc 2014 - 12:34 | |
| C'est vrai qu'il faudrait mieux mettre une variable dans le script permettant de modifier plus facilement le nombre de choix. C'est vrai que 4 choix peuvent suffire. Ce qui serait donc peut être mieux au final, c'est qu'il faudrait faire un script permettant d'agrandir le nombre de caractère que l'on peut mettre dans chaque choix (Car les choix peuvent aussi être une très grande phrase), et je pense que ça serait basique pour un débutant ! |
|
Contenu sponsorisé
| Sujet: Re: [XP] Pourvoir mettre jusqu'à 9 choix dans un message. | |
| |
|