Sujet: [VX] Systeme de quête avancée Ven 25 Juin 2010 - 18:53
Bonjour tous le monde
Voici un grand scripte qui permet de faire des quête
Seulement ?!?!?!?!?!?
heu ouais ...
Mais par contre il gère presque tous je pense que des screen serait plus explicatife
Spoiler:
vous avez pu remarque qu'il y a plusieurs type de quête : 1 => vaincre tel monstre 2 => ramener un objet 3 => apporter un objet 4 => Tuer x monstre 5 => aller a tel endroit 6=> trouve quelle quelle qu'un 7 => avis de recherche c'est l'une des fonctionnalités du scripte
liste des fonction ☼ menu de quête ☼ fenêtre de quête gère automatiquement ☼scène_quête (screen 1 et 2) ☼mis a jour automatique du statue de la quête avec un seule interrupteur par quête ☼possibilité de créer des quête sans le scène_quête ☼les quete ont des type ...
$nonq est le non de la quête entre guillemet $tipeq est le type de la quête selon cela
Spoiler:
1 => vaincre tel monstre 2 => ramener un objet 3 => apporter un objet 4 => Tuer x monstre 5 => aller a tel endroit 6=> trouve quelle quelle qu'un 7 => avis de recherche
$cible est cible de la quête cela peut être
Spoiler:
l'id d un monstre dans les types 1 , 4 et 7 l'id d'un objet dans les types 2 et 3 l'id d'une map dans le type 5 un non entre guillemet pour le cas 6
$cible2 est cible secondaire de la quête cela peut être
Spoiler:
un non entre guillemet pour le cas 3 le nombre de fois ou il faut vaincre un monstre dans le type 4
$tarif est l'argent gagner après la quête $exp est l'expérience gagner après la quête $item est l'objet n1 gagner après la quête sous forme [a , b] ou a est le type de l'objet (1 objet 2 sort 3 armure 4 arme) et b l'id de l'objet $item2 est l'objet n2 gagner après la quête sous forme [a , b] ou a est le type de l'objet (1 objet 2 sort 3 armure 4 arme) et b l'id de l'objet $descri est une description de la quête entre guillemet
puis mettez ceci
Code:
$scene = Scene_Quete.new(id)
ou id est l'id de l'interrupteur correspondant a la quête
ou bien
Code:
make_quete(id)
si vous ne souhaiter pas le scène quête : la quête sera alors visible unique dans la liste ou id est l'id de l'interrupteur correspondant a la quête
Pour appeler la liste de quête ecrivez dans un appelle de script
$nonq est le non de la quête entre guillemet $tipeq est le type de la quête selon cela 1 => vaincre tel monstre 2 => ramener un objet 3 => apporter un objet 4 => Tuer x monstre 5 => aller a tel endroit 6=> trouve quelle quelle qu'un 7 => avis de recherche $cible est cible de la quête cela peut être l'id d un monstre dans les types 1 , 4 et 7 l'id d'un objet dans les types 2 et 3 l'id d'une map dans le type 5 un non entre guillemet pour le cas 6 $cible2 est cible secondaire de la quête cela peut être un non entre guillemet pour le cas 3 le nombre de fois ou il faut vaincre un monstre dans le type 4 $tarif est l'argent gagner après la quête $exp est l'expérience gagner après la quête $item est l'objet n1 gagner après la quête sous forme [a , b] ou a est le type de l'objet (1 objet 2 sort 3 armure 4 arme) et b l'id de l'objet $item2 est l'objet n2 gagner après la quête sous forme [a , b] ou a est le type de l'objet (1 objet 2 sort 3 armure 4 arme) et b l'id de l'objet $descri est une description de la quête entre guillemet
puis mettez ceci [code]$scene = Scene_Quete.new(id)[/code] ou id est l'id de l'interrupteur correspondant a la quête
ou bien make_quete(id)[ si vous ne souhaiter pas le scène quête : la quête sera alors visible unique dans la liste ou id est l'id de l'interrupteur correspondant a la quête
Pour appeler la liste de quête ecrivez dans un appelle de script $scene = Scene_quete__liste.new =end ####### ################# ############################ ######################################## ################################################ class Window_quette < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x,y,id=0) super(x,y, 385, 480/5*3-10) @id = id refresh end #-------------------------------------------------------------------------- # * Set Text # text : character string displayed in window # align : alignment (0..flush left, 1..center, 2..flush right) #-------------------------------------------------------------------------- def refresh(id=@id) @id = id self.contents.clear self.contents.font.color = Color.new(139,0,0) self.contents.font.size = 34 if $tipeq != 7 self.contents.draw_text(0,0, self.width - 40, 34, "Quête",1) self.contents.font.color = normal_color self.contents.font.size = WLH self.contents.draw_text(0,40, self.width - 40, 28, $nonq.to_s,1) else self.contents.draw_text(0,0, self.width - 40, 34, "Avis de recherche",1) self.contents.font.color = normal_color end self.contents.font.size = 20 self.contents.draw_text(0, 68, self.width - 40, 28, chek_type) self.contents.draw_text(0, 68+24, self.width - 40, 28, $descri) self.contents.font.color = system_color self.contents.draw_text(0, 124, self.width - 40, 28, "Récompense: ") draw_icon(205, 0, 148) unless $tarif == 0 self.contents.font.color = normal_color self.contents.draw_text(25, 148, self.width - 40, 28, $tarif) unless $tarif == 0 self.contents.font.color = system_color self.contents.draw_text(120, 148, self.width - 40, 28, "Expérience:") unless $exp == 0 self.contents.font.color = normal_color self.contents.draw_text(110+120, 148, self.width - 40, 28, $exp) unless $exp == 0 draw_recompense1 unless $item == 0 draw_recompense2 unless $item2 == 0 self.contents.draw_text(0, 148+48+24, self.width - 40, 28, "Acepter ?",1) unless $quete.include?(@id) self.contents.draw_text(0, 148+48+24, self.width - 40, 28, "Quête deja acepter",1) if $quete.include?(@id) and $game_switches[@id] == false self.contents.draw_text(0, 148+48+24, self.width - 40, 28, "Quête acomplie",1) if $quete.include?(@id) and $game_switches[@id] Audio.se_play("Audio/SE/Chime2") if $quete.include?(@id) and $game_switches[@id] end
=begin Categorie 1 => gagne tel monstre 2 => ramene un objet 3 => aporte un objet 4 => Tue x monstre 5 => Va a tel endroi 6=> trouve quelle quelle qu'un 7 => gagne tel PNJ =end
def draw_recompense1 if $item[0] ==1 draw_item_name($data_items[$item[1]], 0, 148+24) elsif $item[0] == 2 draw_item_name($data_skills[$item[1]], 0, 148+24) elsif $item[0] == 3 draw_item_name($data_armors[$item[1]], 0, 148+24) elsif $item[0] == 4 draw_item_name($data_weapons[$item[1]], 0, 148+24) end def draw_recompense2 x = (self.width-32)/2 if $item2[0] ==1 draw_item_name($data_items[$item2[1]], x, 148+24) elsif $item2[0] == 2 draw_item_name($data_skills[$item2[1]], x, 148+24) elsif $item2[0] == 3 draw_item_name($data_armors[$item2[1]], x, 148+24) elsif $item2[0] == 4 draw_item_name($data_weapons[$item2[1]], x, 148+24) end end end def chek_type case $tipeq when 1 a = "Vaincs " + $data_enemies[$cible].name + " !" when 2 a = "Ramène moi " + $data_items[$cible].name + " !" when 3 a = "Apporte " + $data_items[$cible].name + " à " + $cible2.to_s + " !" when 4 a = "Vaincs " +$cible2.to_s+" " + $data_enemies[$cible].name + "s !" when 5 map = load_data("Data/MapInfos.rvdata") a = "Rends toi a ''"+map[$cible].name.to_s+"'' !" when 6 a = "Trouve " + $cible.to_s+ " !" when 7 a = "On recherche : " + $data_enemies[$cible].name + " !" else a = "" end return a end
def draw_item_name(item, x, y, enabled = true) if item != nil draw_icon(item.icon_index, x, y, enabled) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(x + 24, y,160, WLH, item.name) end end
end ################################################ ######################################## ############################ ################# ####### ####### ################# ############################ ######################################## ################################################ class Scene_Quete < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(id) @id = id end
#-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @quete = Window_quette.new((544-384)/2,416/6,@id) create_command_window unless $quete.include?(@id) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @quete.dispose @command_window.dispose unless $quete.include?(@id) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @quete.update @command_window.update unless $quete.include?(@id) update_command_selection unless $quete.include?(@id) update_command_quite if $quete.include?(@id) end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = "Oui" s2 = "Non" @command_window = Window_Command.new(@quete.width, [s1, s2],2) @command_window.y = (416/6)+ @quete.height @command_window.x = @quete.x @command_window.index = 0 end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input::C) Sound.play_decision if @command_window.index == 0 make_quete(@id) @command_window.dispose end $scene = Scene_Map.new end end
def update_command_quite if Input.trigger?(Input::C) Sound.play_decision $scene = Scene_Map.new end end end ################################################ ######################################## ############################ ################# ####### ####### ################# ############################ ######################################## ################################################
class Scene_quete__liste < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize
end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @qlib = Window_Qlib.new @quete = Window_quette.new(@qlib.width , 0) @quete.visible = false end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @qlib.dispose @quete.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background update_command_selection @qlib.update end # # # # def update_command_selection
if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new end retour_quete(@qlib.retour_key) @quete.refresh(@qlib.retour_key) @quete.visible = true
def initialize super(0, 0, 160, 416) @item_max = $quete.size refresh self.index = 0 @indexn = 1 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear a= [] $quete.each_key do |@key_index| a = a + @key_index.to_a end for i in 0...a.size draw_item(i,a) end @tab =a end #-------------------------------------------------------------------------- # * Draw Item # index : item number # enabled : enabled flag. When false, draw semi-transparently. #-------------------------------------------------------------------------- def draw_item(index, tab) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) key_p = tab[index] self.contents.font.color = normal_color unless $quete[key_p][9] self.contents.font.color = Color.new(139,0,0) if $quete[key_p][9] self.contents.draw_text(rect, $quete[key_p][0]) end
def retour_key a = @tab[self.index] return a end end ################################################ ######################################## ############################ ################# #######
####### ################# ############################ ######################################## class Scene_File < Scene_Base alias adurna_write write_save_data alias adurna_read read_save_data def write_save_data(file) adurna_write (file) Marshal.dump($quete, file) end def read_save_data(file) adurna_read (file) $quete = Marshal.load(file) end end ################################################ ######################################## ############################ ################# #######
Oups j'avais oublier le bonus
regarder amis scripteur
Spoiler:
Code:
def hk_to_a(hash) a= [] hash.each_key do |key_index| a = a + key_index.to_a return a end end
cette méthode transforme les cle d'un hash en aray (utiliser sous forme pure dans mon script)
Spoiler:
Code:
def hv_to_a(hash) a= [] hash.each_value do |value_index| a = a + value_index.to_a return a end end
cette méthode transforme les cle d'un hash en aray (utiliser sous forme pure dans mon script)
Dernière édition par grifdail le Dim 27 Juin 2010 - 9:12, édité 4 fois
kenmak
Va-nu-pieds Lv.4
Age : 29 Inscrit le : 14/10/2009 Messages : 50
Sujet: Re: [VX] Systeme de quête avancée Ven 25 Juin 2010 - 19:08
Oua pas mal le script (bien presenter en plus) , sa peut servire.
Sylfurion
Mage Lv.11
Age : 27 Inscrit le : 02/03/2009 Messages : 513
Sujet: Re: [VX] Systeme de quête avancée Sam 26 Juin 2010 - 7:59
Waw excellent, merci à toi
grifdail
Poulet trizo Lv.3
Age : 29 Inscrit le : 14/07/2008 Messages : 30
Sujet: Re: [VX] Systeme de quête avancée Sam 26 Juin 2010 - 18:46
ce message n'est plus d'actualiter
Dernière édition par grifdail le Ven 2 Juil 2010 - 19:32, édité 1 fois
Donat_rpg
Noble Lv.8
Age : 25 Inscrit le : 24/12/2009 Messages : 290
Sujet: Re: [VX] Systeme de quête avancée Dim 27 Juin 2010 - 7:18
Super script , mais est-ce que on peut enlever le accepter Oui/Non dans une quête ? Et j'ai fait un évènement commun en mettant : $scene = Scene_quete__liste.new , puis j'ai mis l'évènement commun dans un objet (Journal de quêtes) et quand je veux ouvrir ce journal ça bug et mon jeu se ferme X_x !
grifdail
Poulet trizo Lv.3
Age : 29 Inscrit le : 14/07/2008 Messages : 30
Sujet: Re: [VX] Systeme de quête avancée Dim 27 Juin 2010 - 9:03
Donate_rpg >>> Quetion 1===} tu peut lancer une quete sans ce oui/non j'ai decrit la marche a suivre dans le premier poste
Spoiler:
Citation :
puis mettez ceci Code: $scene = Scene_Quete.new(id)
ou id est l'id de l'interrupteur correspondant a la quête
ou bien Code: make_quete(id) si vous ne souhaiter pas le scène quête : la quête sera alors visible unique dans la liste ou id est l'id de l'interrupteur correspondant a la quête
mais peut etre veut tu quand meme faire aparaitre la fenetre de quete ? dis le moi et je m'en ocuperait
Quetion 2===} ce problème survient si tu n'as aucune quête de lancer ou de terminer il faut donc t'assurer que le joueur a toujours au moins une quête
razore
Maire Lv.9
Age : 28 Avertissements : 1Inscrit le : 18/04/2010 Messages : 332
Sujet: Re: [VX] Systeme de quête avancée Dim 27 Juin 2010 - 9:47
Salut c'est un trés bon script mais serait t'il possible de mettre une image derrière ?
grifdail
Poulet trizo Lv.3
Age : 29 Inscrit le : 14/07/2008 Messages : 30
Sujet: Re: [VX] Systeme de quête avancée Dim 27 Juin 2010 - 10:40
Derrière le menu de quête ou derrière la quête en ou comment? explique mieux s'il te plait
razore
Maire Lv.9
Age : 28 Avertissements : 1Inscrit le : 18/04/2010 Messages : 332
Sujet: Re: [VX] Systeme de quête avancée Lun 28 Juin 2010 - 14:43
Bah derrière le menu de quete à la place du transparent.
Biward
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
Sujet: Re: [VX] Systeme de quête avancée Lun 28 Juin 2010 - 15:04
grifdail → Tous les textes sont modifiables dans le module ? Parce que, sans vouloir être méchant, ton orthographe est nulle...
Sinon, bon script !
EDIT : Acepter prend deux "c" → Accepter
Biward
Donat_rpg
Noble Lv.8
Age : 25 Inscrit le : 24/12/2009 Messages : 290
Sujet: Re: [VX] Systeme de quête avancée Lun 28 Juin 2010 - 17:29
Merci et comment on fait pour mettre une quête terminée ? On désactive un interrupteur
grifdail
Poulet trizo Lv.3
Age : 29 Inscrit le : 14/07/2008 Messages : 30
Sujet: Re: [VX] Systeme de quête avancée Lun 28 Juin 2010 - 19:43
je réexpliquerait tous mercredi ou jeudi car la je doit aller au dodo y a brevet demain
Nagasakiss
Vagabond Lv.5
Age : 30 Inscrit le : 12/02/2010 Messages : 90
Sujet: Re: [VX] Systeme de quête avancée Mar 29 Juin 2010 - 14:48
Déjà bonne chance pour le brevet ( il reste plus que mercredi mais bon, mieux vaut tard que jamais ...) Ensuite quand je veux ouvrir le livre de quêtes un son se met en marche et ne s'arrête plus. Le seul moyen que j'ai trouvé, avec mes maigres connaissances en programmation, a été de supprimer la ligne 119 :
Spoiler:
Code:
Audio.se_play("Audio/SE/Chime2") if $quete.include?(@id) and $game_switches[@id]
C'est radical mais ça marche ! L'inconvénient c'est que ça supprime aussi le son qui valide une fois la quête terminée. Peut tu faire quelque chose pour ça ?
Par avance merci.
PS : J'ai relevé aussi quelques fautes d'orthographe "Quête deja accepter" s'écrit : "Quête déjà acceptée.
nicolasaitout
Habitant Lv.6
Avertissements : Banni !Inscrit le : 02/04/2010 Messages : 107
Sujet: Re: [VX] Systeme de quête avancée Mer 30 Juin 2010 - 16:23
Pratique, merci !
grifdail
Poulet trizo Lv.3
Age : 29 Inscrit le : 14/07/2008 Messages : 30
Sujet: Re: [VX] Systeme de quête avancée Ven 2 Juil 2010 - 10:14
Tous d'abord Nagasakiss j'ai coriger le script le voici :
$nonq est le non de la quête entre guillemet $tipeq est le type de la quête selon cela 1 => vaincre tel monstre 2 => ramener un objet 3 => apporter un objet 4 => Tuer x monstre 5 => aller a tel endroit 6=> trouve quelle quelle qu'un 7 => avis de recherche $cible est cible de la quête cela peut être l'id d un monstre dans les types 1 , 4 et 7 l'id d'un objet dans les types 2 et 3 l'id d'une map dans le type 5 un non entre guillemet pour le cas 6 $cible2 est cible secondaire de la quête cela peut être un non entre guillemet pour le cas 3 le nombre de fois ou il faut vaincre un monstre dans le type 4 $tarif est l'argent gagner après la quête $exp est l'expérience gagner après la quête $item est l'objet n1 gagner après la quête sous forme [a , b] ou a est le type de l'objet (1 objet 2 sort 3 armure 4 arme) et b l'id de l'objet $item2 est l'objet n2 gagner après la quête sous forme [a , b] ou a est le type de l'objet (1 objet 2 sort 3 armure 4 arme) et b l'id de l'objet $descri est une description de la quête entre guillemet
puis mettez ceci [code]$scene = Scene_Quete.new(id)[/code] ou id est l'id de l'interrupteur correspondant a la quête
ou bien make_quete(id)[ si vous ne souhaiter pas le scène quête : la quête sera alors visible unique dans la liste ou id est l'id de l'interrupteur correspondant a la quête
Pour appeler la liste de quête ecrivez dans un appelle de script $scene = Scene_quete__liste.new =end ####### ################# ############################ ######################################## ################################################ class Window_quette < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x,y,id=0) super(x,y, 385, 480/5*3-10) @id = id refresh end #-------------------------------------------------------------------------- # * Set Text # text : character string displayed in window # align : alignment (0..flush left, 1..center, 2..flush right) #-------------------------------------------------------------------------- def refresh(id=@id) @id = id self.contents.clear self.contents.font.color = Color.new(139,0,0) self.contents.font.size = 34 if $tipeq != 7 self.contents.draw_text(0,0, self.width - 40, 34, "Quête",1) self.contents.font.color = normal_color self.contents.font.size = WLH self.contents.draw_text(0,40, self.width - 40, 28, $nonq.to_s,1) else self.contents.draw_text(0,0, self.width - 40, 34, "Avis de recherche",1) self.contents.font.color = normal_color end self.contents.font.size = 20 self.contents.draw_text(0, 68, self.width - 40, 28, chek_type) self.contents.draw_text(0, 68+24, self.width - 40, 28, $descri) self.contents.font.color = system_color self.contents.draw_text(0, 124, self.width - 40, 28, "Récompense: ") draw_icon(205, 0, 148) unless $tarif == 0 self.contents.font.color = normal_color self.contents.draw_text(25, 148, self.width - 40, 28, $tarif) unless $tarif == 0 self.contents.font.color = system_color self.contents.draw_text(120, 148, self.width - 40, 28, "Expérience:") unless $exp == 0 self.contents.font.color = normal_color self.contents.draw_text(110+120, 148, self.width - 40, 28, $exp) unless $exp == 0 draw_recompense1 unless $item == 0 draw_recompense2 unless $item2 == 0 self.contents.draw_text(0, 148+48+24, self.width - 40, 28, "Acepter ?",1) unless $quete.include?(@id) self.contents.draw_text(0, 148+48+24, self.width - 40, 28, "Quête deja acepter",1) if $quete.include?(@id) and $game_switches[@id] == false self.contents.draw_text(0, 148+48+24, self.width - 40, 28, "Quête acomplie",1) if $quete.include?(@id) and $game_switches[@id] Audio.se_play("Audio/SE/Chime2") if $quete.include?(@id) and $game_switches[@id] end
=begin Categorie 1 => gagne tel monstre 2 => ramene un objet 3 => aporte un objet 4 => Tue x monstre 5 => Va a tel endroi 6=> trouve quelle quelle qu'un 7 => gagne tel PNJ =end
def draw_recompense1 if $item[0] ==1 draw_item_name($data_items[$item[1]], 0, 148+24) elsif $item[0] == 2 draw_item_name($data_skills[$item[1]], 0, 148+24) elsif $item[0] == 3 draw_item_name($data_armors[$item[1]], 0, 148+24) elsif $item[0] == 4 draw_item_name($data_weapons[$item[1]], 0, 148+24) end def draw_recompense2 x = (self.width-32)/2 if $item2[0] ==1 draw_item_name($data_items[$item2[1]], x, 148+24) elsif $item2[0] == 2 draw_item_name($data_skills[$item2[1]], x, 148+24) elsif $item2[0] == 3 draw_item_name($data_armors[$item2[1]], x, 148+24) elsif $item2[0] == 4 draw_item_name($data_weapons[$item2[1]], x, 148+24) end end end def chek_type case $tipeq when 1 a = "Vaincs " + $data_enemies[$cible].name + " !" when 2 a = "Ramène moi " + $data_items[$cible].name + " !" when 3 a = "Apporte " + $data_items[$cible].name + " à " + $cible2.to_s + " !" when 4 a = "Vaincs " +$cible2.to_s+" " + $data_enemies[$cible].name + "s !" when 5 map = load_data("Data/MapInfos.rvdata") a = "Rends toi a ''"+map[$cible].name.to_s+"'' !" when 6 a = "Trouve " + $cible.to_s+ " !" when 7 a = "On recherche : " + $data_enemies[$cible].name + " !" else a = "" end return a end
def draw_item_name(item, x, y, enabled = true) if item != nil draw_icon(item.icon_index, x, y, enabled) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(x + 24, y,160, WLH, item.name) end end
end ################################################ ######################################## ############################ ################# ####### ####### ################# ############################ ######################################## ################################################ class Scene_Quete < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(id) @id = id end
#-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @quete = Window_quette.new((544-384)/2,416/6,@id) create_command_window unless $quete.include?(@id) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @quete.dispose @command_window.dispose unless $quete.include?(@id) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @quete.update @command_window.update unless $quete.include?(@id) update_command_selection unless $quete.include?(@id) update_command_quite if $quete.include?(@id) end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = "Oui" s2 = "Non" @command_window = Window_Command.new(@quete.width, [s1, s2],2) @command_window.y = (416/6)+ @quete.height @command_window.x = @quete.x @command_window.index = 0 end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input::C) Sound.play_decision if @command_window.index == 0 make_quete(@id) @command_window.dispose end $scene = Scene_Map.new end end
def update_command_quite if Input.trigger?(Input::C) Sound.play_decision $scene = Scene_Map.new end end end ################################################ ######################################## ############################ ################# ####### ####### ################# ############################ ######################################## ################################################
class Scene_quete__liste < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize
end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @qlib = Window_Qlib.new @quete = Window_quette.new(@qlib.width , 0) @quete.visible = false end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @qlib.dispose @quete.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background update_command_selection @qlib.update end # # # # def update_command_selection if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) retour_quete(@qlib.retour_key) @quete.refresh(@qlib.retour_key) @quete.visible = true end end
end ################################################ ######################################## ############################ ################# #######
def initialize super(0, 0, 160, 416) @item_max = $quete.size refresh self.index = 0 @indexn = 1 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear a= [] $quete.each_key do |@key_index| a = a + @key_index.to_a end for i in 0...a.size draw_item(i,a) end @tab =a end #-------------------------------------------------------------------------- # * Draw Item # index : item number # enabled : enabled flag. When false, draw semi-transparently. #-------------------------------------------------------------------------- def draw_item(index, tab) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) key_p = tab[index] self.contents.font.color = normal_color unless $quete[key_p][9] self.contents.font.color = Color.new(139,0,0) if $quete[key_p][9] self.contents.draw_text(rect, $quete[key_p][0]) end
def retour_key a = @tab[self.index] return a end end ################################################ ######################################## ############################ ################# #######
####### ################# ############################ ######################################## class Scene_File < Scene_Base alias adurna_write write_save_data alias adurna_read read_save_data def write_save_data(file) adurna_write (file) Marshal.dump($quete, file) end def read_save_data(file) adurna_read (file) $quete = Marshal.load(file) end end ################################################ ######################################## ############################ ################# #######
tu remarquera une modification autre je met ce script dans le premier post
Pour tous ceux qui se plaigne de mon orthographe (et ils ont raison) les textes sont modifiable dans le script ; ceux sont tous ce qu'y est en violet dans l'editeure de script de RPG MAKER a l'exeption de
Code:
"Audio/SE/Chime2" a la ligne 119 "Data/MapInfos.rvdata" a la ligne 167
Donat_rpg >>> non on ne désactive pas un interrupteur on l'active
Nagasakiss
Vagabond Lv.5
Age : 30 Inscrit le : 12/02/2010 Messages : 90
Sujet: Re: [VX] Systeme de quête avancée Ven 2 Juil 2010 - 12:09
Merci beaucoup ! Ce script est vraiment très pratique.
Euh... Mais voilà j'ai encore repéré quelque chose : Quand on lance une quête le personnage reste bloqué dans la position où on lui parle. Je m'explique si on lui parle depuis la gauche il ne se tournera pas, ce qui ne fait pas très réaliste. Est-ce possible de l'améliorer ?
PS : Je chipote peut-être, mais pour moi c'est ce genre de détails qui font qu'un jeu est vraiment réussi ou non.
Par avance merci.
lorfen
Poulet carnivore Lv.2
Inscrit le : 04/12/2009 Messages : 14
Sujet: Re: [VX] Systeme de quête avancée Ven 2 Juil 2010 - 14:05
Moi j'ai un problème quand je rend une quette je ne recoi ni l'experience ni l'or !
Nagasakiss
Vagabond Lv.5
Age : 30 Inscrit le : 12/02/2010 Messages : 90
Sujet: Re: [VX] Systeme de quête avancée Ven 2 Juil 2010 - 15:22
Oh bah oui ! Moi non plus ! Je regarde des bug mineur et je passe à côté de celui là
Je pense que ce problème est à corriger en priorité. ( Ce que je veux dire c'est que mon problème d'orientation de personnage peut attendre. )
Bonne chance.
----Roxxor----
Voyageur Lv.10
Age : 27 Inscrit le : 08/05/2010 Messages : 383
Sujet: Re: [VX] Systeme de quête avancée Ven 2 Juil 2010 - 15:49
Il faut ajouter l'expérience et l'or en évent.
grifdail
Poulet trizo Lv.3
Age : 29 Inscrit le : 14/07/2008 Messages : 30
Sujet: Re: [VX] Systeme de quête avancée Ven 2 Juil 2010 - 19:27
Comme l'a dit ----Roxxor---- l'or et l'expérience sont a ajouter en évente ensuite pour ton probleme de direction Nagasakiss c'est parreile le PB vient de l'evente et pas du script avant l'apelle de script mais une commande evente "tourner a gauche" ou "tourner a droite" ect...
razore ta demande sera faite d'ici mardi car je n'aurait pas acces a un ordi ce week-end ( grasse au CHAMPIONNAT DE FRANCE BASEBALL CADET A ronchin(59) au quelle mon équipeLes Tigers de Thiais / participe)
Dark Empires
Poulet carnivore Lv.2
Inscrit le : 01/07/2010 Messages : 16
Sujet: Re: [VX] Systeme de quête avancée Sam 3 Juil 2010 - 23:28
Est ce que il est possible de commencer le jeu et avoir une Quêtes au départ? Et qu'il y une actualisation des objectifs?
Heiji
Poulet Lv.1
Age : 27 Inscrit le : 06/12/2010 Messages : 5
Sujet: Re: [VX] Systeme de quête avancée Dim 9 Jan 2011 - 17:58
Bonjour,
je sais que le sujet date un peu mais j'ai un probleme avec le script,
une fois que l'interrupteur de la quete est activée, sa affiche toujours quete deja accepter et non quete accomplie, pourquoi?
Merci de répondre Heiji
EDIT : Désolé de se dérangement mais j'ai trouvé, j'avais mis comme interrupteur 001 au lieu de 0001
DONC POUR TOUT LE MONDE, il faut mettre 0001 par exemple et non simplement 1
Dernière édition par Heiji le Lun 10 Jan 2011 - 17:02, édité 1 fois
Arty'
Age : 134 Inscrit le : 14/04/2009 Messages : 1321
Sujet: Re: [VX] Systeme de quête avancée Dim 9 Jan 2011 - 19:08
Tu as bien terminé la quête, au moins ?
Arty'
shinnosuke
Va-nu-pieds Lv.4
Age : 27 Avertissements : 3Inscrit le : 01/04/2011 Messages : 57
Sujet: Re: [VX] Systeme de quête avancée Mar 9 Aoû 2011 - 15:14
Super script. Merci pour le partage. Je viens de le mettre dans mon jeu.
Nyrtiuss
Habitant Lv.6
Age : 26 Inscrit le : 24/06/2011 Messages : 115
Sujet: Re: [VX] Systeme de quête avancée Jeu 25 Aoû 2011 - 12:59
Pourrais-tu faire une version du script dans laquelle les types 1,4 et 7 pourraient être validés juste en activant un interrupteur ? Vu que j'utilise un système de combats par event cela me serait bien utile !! Si c'est déjà possible, alors j'ai pas tout compris.
En tout cas bravo pour ce script superbe !!
Nyrtiuss
Up ! Si c'est également possible d'avoir la liste des quètes dans le menu, préviens moi !
Dernière édition par Nyrtiuss le Mer 14 Sep 2011 - 13:03, édité 1 fois