Kasbak Membre V.I.P.
Messages postés : 1356 Date d'inscription : 05/01/2013 Jauge LPC :
| Sujet: Multichoix Dim 13 Sep 2015 - 22:33 | |
| Un script pour avoir plusieurs choix dans la boite de dialogues et ne plus être limité à 4. Exemple : Pour ça coller le script au dessus de main. Pour l'appelez faites $scene = Scene_Multichoix.new ensuite le choix 1 s'active avec la variable 1 = 1, le choix 2 avec la variable 1 = 2,ect... Suivez l'exemple : Ensuite en processus parallele vous règlez ce que vous voulez que l'interrupteur fasse, soit un dialogue, une action,ect...ensuite pensez à désactiver l'interrupteur, si vous comptez faire plusierus multichoix sur la map rajouter interrupteur local A activer puis desactivez le sinon tous les multichoix en procesus parallele vont s'activer. - Script Multichoix:
- Code:
-
#Script by Kasbak #Appeler le script #$scene = Scene_Multichoix.new #Ensuite le choix 1 active l'interrupteur 1,le 2 l'interrupteur 2,ect... #laisser 4 frames après l'appel de scène, penser à desactiver les interrupteurs #après l'action terminée.
class Scene_Multichoix #---------------#
#---------------#
def initialize(menu_index = 0) @menu_index = menu_index end
def main @spriteset = Spriteset_Map.new
@sprite = Sprite.new
s1 = "Parler" s2 = "Acheter" s3 = "Attaquer" s4 = "Questionner" s5 = "Option 5" s6 = "Option 6" s7 = "Option 7" s8 = "QUIT" #pour ajouter des options suiver l'exemple #s9 = "option"
#remplacer par (640, [s1,s2,s3,s4,s5,s6,s7,s8,s9])
#et plus bas vers la ligne 202 ajoutez #when 8 # # $game_system.se_play($data_system.decision_se) #$game_variables[1] ==8
# $scene = Scene_Map.new #140 est la largeur de la boite de dialogue @command_window = Window_Command.new(140, [s1,s2,s3,s4,s5,s6,s7,s8])
@command_window.index = @menu_index
@command_window.back_opacity = 255 #vous pouvez modifier ici la position de la fenêtre @command_window.x = 40
@command_window.y = 126
@command_window.opacity = 255
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@sprite.dispose
@spriteset.dispose
end
#------------------------------------------------------------------------------#
def update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
@command_window.update @spriteset.update
if Input.trigger?(Input::C)
case @command_window.index
when 0 #1
$game_system.se_play($data_system.decision_se) $game_system.se_play($data_system.decision_se) $game_variables[1] = 1 # le [1] correspond à l'interrupteur 1, changez le si vous voulez
$scene = Scene_Map.new
when 1 # $game_system.se_play($data_system.decision_se) $game_variables[1] = 2
$scene = Scene_Map.new
when 2 #
$game_system.se_play($data_system.decision_se)
$game_variables[1] = 3 $scene = Scene_Map.new
when 3 # $game_system.se_play($data_system.decision_se) $game_variables[1] = 4 $scene = Scene_Map.new
when 4 # $game_system.se_play($data_system.decision_se) $game_variables[1] = 5
$scene = Scene_Map.new
when 5 # $game_system.se_play($data_system.decision_se) $game_variables[1] = 6 $scene = Scene_Map.new
when 6 # $game_system.se_play($data_system.decision_se) $game_variables[1] = 7
$scene = Scene_Map.new
when 7 #
$game_system.se_play($data_system.decision_se)
$scene = Scene_Map.new
end
end
end
end
Vous pouvez évidemment modifier les choix, en rajouter en retirer, redimensionner la fenêtre la déplacer, c'est indiquer dans le script si besoin. Voilà
Dernière édition par Kasbak le Mer 7 Oct 2015 - 13:03, édité 2 fois |
|
Hinola Ninja (niveau 4)
Messages postés : 213 Date d'inscription : 06/02/2013 Jauge LPC :
| Sujet: Re: Multichoix Dim 13 Sep 2015 - 22:56 | |
| pourquoi des interrupteurs et pas une seule variable ? |
|
Kasbak Membre V.I.P.
Messages postés : 1356 Date d'inscription : 05/01/2013 Jauge LPC :
| Sujet: Re: Multichoix Lun 14 Sep 2015 - 0:21 | |
| Parce que les gens savent pas forcément se servir des variables correctement, ça facilite le truc au maximum lol, pis j'ai même pas penser j'ai fait ce petit script vite fait au cas ou quelqu'un en a besoin, parce qu'avant je cherché une solution pour un multi choix et j'en trouvé pas, du coup je me suis dit maintenant que je sais le faire autant partager ça... |
|
Hellper Chevalier Dragon (niveau 5)
Messages postés : 1190 Date d'inscription : 04/03/2013 Jauge LPC :
| Sujet: Re: Multichoix Lun 14 Sep 2015 - 19:18 | |
| Faire faire n'importe quoi parce que certaines personne sont nazes, c'est un peu dommage comme choix :/ |
|
Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: Re: Multichoix Lun 14 Sep 2015 - 20:05 | |
| Va dire ça aux politiques ! |
|
City Hunter Administrateur
Messages postés : 6524 Date d'inscription : 25/05/2011 Jauge LPC :
| Sujet: Re: Multichoix Mar 15 Sep 2015 - 22:43 | |
| Merci du partage Kasbak! Je t'ajoute des points. |
|
Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: Multichoix Mar 6 Oct 2015 - 1:40 | |
| Il y a une erreur dans ton script...
Tu indiques que quand on fais le choix 1 la variable prends la valeur 1, mais ce n'est pas le cas, car tu a mis 2 égals, ce qui signifie une condition et non une équation.
Faut mettre qu'un seul égal. ^^ |
|