 RPG Maker VX/VXAce - La Communauté - v3 Le forum de la communauté francophone de making. News, entraide, ressources, venez nombreux! Spécialisés dans RPG Maker VX et RPG Maker VXAce |
           
 
| | Script de quêtes [Résolu] | |
| |
| Auteur | Message |
|---|
Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Script de quêtes [Résolu] Dim 11 Juil 2010 - 23:50 | |
| Yop all ! Je viens de tester mon projet, j'ai pleins de quêtes réussies et voici ce que ça me donne :  Ou bout d'un certain nombre de quête réussie, les noms des quêtes ne s'affiche plus et il y a aussi des quêtes qui ont disparu.... Une personne saurait comment débugger ça ? Merci d'avance Pour le script, le voici : | Spoiler: | | | =begin ########################## Breadlord's Quets Script ############################ Ceci est un script pour quête vous permettant d'avoir une large description des quêtes et de multiples tâches (entend par là plusieurs à truc à faire pour la même quête hein). Tu met les quêtes sous forme d'evenement c'est à dire sous ce format :
$quests['nom de la quête'] = Quest.new([' ligne de description 1', 'ligne de description 2, ...], ['tâche 1 description', 'tâche 2 description',...])
Dans ce format 'nom de la quête' correspond au nom de la quête, 'ligne de description N' est la N ème ligne de la description de la quête et 'tâche N description' est la description de la N eme tâche
Pour completer une tâche dans un evenement utilisez $quests['nom de la quête'].complete_sub('tâche description'), et pour échouer une tâche utilisez $quests['nom de la quête'].fail_sub('tâche description'). Si toutes les tâches sont complétées/échouées alors le status de la quête deviendra complétée/échouée. Pour mettre une quête en complétée utilisez $quests['nom de la quête'].complete_all, et échouée utilisez $quests['nom de la quête'].fail_all
Pour vérifier si une quête est complétée utilisez $quests['nom de la quête'].complete?, et pour vérifier si elle est échouée utilisez $quests['nom de la quête'].failed?. Pour vérifier si une tâche est complétée utilisez $quests['nom de la quête'].sub_complete?('tâche description') et pour vérifier si elle est échouée utilisez $quests['nom de la quête'].sub_failed?('tâche description')
Pour definir une quete secondaire il suffit de rajouter true après les taches : $quests['nom de la quête'] = Quest.new([' ligne de description 1', 'ligne de description 2, ...], ['tâche 1 description', 'tâche 2 description',...], true)
Enfin pour vérifier que la quête existe utilisez $quests['nom de la quête'] != nil Pour appeler le menu de quête utilisez $scene = Scene_Quest.new Et pour lancer le menu quête sur un onglet précis il suffit de $scene = Scene_Quest.new(index de l'onglet) 0<= index de l'onglet <= 3
################################################################################ ################################################################################ =end
module QUEST_CONFIG # Ici seront defini les 3 icones correspondant aux tri des quêtes # QUEST_ICONS = [icone des quetes en cours, icone des quetes complétées, icone des quete echouées] QUEST_ICONS = [188, 179, 150, 112] # Ici sera defini l'image apparaissant dans le menu # QUEST_PICTURE = "nom de l'image" QUEST_PICTURE = "Quest" # Ici sera defini la hauteur des fenêtre et par consequence la place laisser à l'image # QUEST_WINDOWHEIGHT = hauteur QUEST_WINDOWHEIGHT = 293 # 293 # Ici sera defini l'image apparaissant lorsqu'une quête est completée # QUEST_COMPLETE = "nom de l'image" QUEST_COMPLETE = "Complete" # Ici sera defini l'image apparaissant lorsqu'une quête est échouée # QUEST_FAILED = "nom de l'image" QUEST_FAILED = "Failed" # Ici sera defini le message apparaissant dans la fenetre de description lors d'une quête secondaire # QUEST_SECOND = "message" QUEST_SECOND = "Quête secondaire" # Ici seront defini les 3 icones correspondant aux états des quêtes et des tâches principales # VALIDATEICONS = [icone des taches en cours, icone des taches complétées, icone des taches echouées] VALIDATEICONS = [99, 101, 97] # Ici seront defini les 3 icones correspondant aux états des quêtes et des tâches secondaires # VALIDATEICONS = [icone des taches en cours, icone des taches complétées, icone des taches echouées] VALIDATESECONDICONS = [100, 102, 96] #Ici sera defini le nom apparaissant dans le menu de base # MENUNAME = nom du menu MENUNAME = 'Quêtes' #Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes principales # QUEST_NAMEPRINCIP = nom QUEST_NAMEPRINCIP = "Quêtes Principales" #Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes secondaires # QUEST_NAMESECOND = nom QUEST_NAMESECOND = "Quêtes Secondaires" #Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes réussies # QUEST_NAMECOMP = nom QUEST_NAMECOMP = "Quêtes Réussies"
#Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes échouées # QUEST_NAMEFAIL = nom QUEST_NAMEFAIL = "Quêtes Ratés" # Ici sera defini à titre indicatif le numero du menu quête dans le menu de base (comptez à partir de 0) # cela n'aura aucune influance sur sa position. # MENU_NUMBER = umero du menu quête dans le menu de base MENU_NUMBER = 4 # Ici sera defini l'interrupteur definissant si un tache échoué fais echoué la quête ou non. # FAILSUB_FAILCOMPLETE = true/false FAILSUB_FAILCOMPLETE = true end
#============================================================================== # ** Quest #------------------------------------------------------------------------------ # Cette classe permet de definir des quêtes # Elle est appelée par $quests #============================================================================== class Quest attr_accessor :desc, :sub, :comp, :sub_text, :pic #-------------------------------------------------------------------------- # * Quête Initialization # desc : tableau des descriptions # sub : tableau des tâches # pic : window width #-------------------------------------------------------------------------- def initialize(desc = [''], sub = [''], second = false) @desc = desc @sub = {} @second = second for i in 0..sub.size - 1 # pour chaque tache @sub[sub[i]] = 'prog' #construit une clef du nom de la tache avec la valeur prog end @comp = 'prog' @sub_text = [] for i in 0..sub.size - 1 @sub_text.push(sub[i]) # pour chaque tache end end
#-------------------------------------------------------------------------- # * Completer une Tâche # sub : tâche #-------------------------------------------------------------------------- def second? return @second end #-------------------------------------------------------------------------- # * Completer une Tâche # sub : tâche #-------------------------------------------------------------------------- def complete_sub(sub) @sub[sub] = 'comp' test_complete end #-------------------------------------------------------------------------- # * Tester si la Quête est devenue complete # sub : tâche #-------------------------------------------------------------------------- def test_complete @a = true for i in 0..@sub.keys.size - 1 if @sub[@sub.keys[i]] == 'comp' @a = (@a and true) else @a = (@a and false) end end if @a == true complete_all end end #-------------------------------------------------------------------------- # * Echouer une Tâche # sub : tâche #-------------------------------------------------------------------------- def fail_sub(sub) if QUEST_CONFIG::FAILSUB_FAILCOMPLETE fail_all else @sub[sub] = 'fail' end end
#-------------------------------------------------------------------------- # *Compeleter toutes les Tâches #-------------------------------------------------------------------------- def complete_all @comp = 'comp' for i in @sub.keys @sub[i] = 'comp' end end #-------------------------------------------------------------------------- # *Echouer à toutes les Tâches #-------------------------------------------------------------------------- def fail_all @comp = 'fail' for i in @sub.keys @sub[i] = 'fail' end end #-------------------------------------------------------------------------- # *Tester si une Tâches est complete #-------------------------------------------------------------------------- def sub_complete?(sub) return @sub[sub] == 'comp'? true : false end #-------------------------------------------------------------------------- # *Tester si une Quête est complete #-------------------------------------------------------------------------- def complete? return @comp == 'comp'? true : false end #-------------------------------------------------------------------------- # *Tester si une Tâches est échouée #-------------------------------------------------------------------------- def sub_failed?(sub) return @sub[sub] == 'fail'? true : false end #-------------------------------------------------------------------------- # *Tester si une Quête est échouée #-------------------------------------------------------------------------- def failed? return @comp == 'fail'? true : false end end
#============================================================================== # ** Window_Quest_Type #------------------------------------------------------------------------------ # Cette fenetre affiche les differents états des quêtes. #============================================================================== class Window_Quest_Type < Window_Selectable attr_accessor :active, :index #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0,352 - QUEST_CONFIG::QUEST_WINDOWHEIGHT,160,64) @column_max = 4 @index = 0 @icons = QUEST_CONFIG::QUEST_ICONS @spacing = 14 refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @item_max = @icons.size create_contents for i in 0...@item_max rect = item_rect(i) rect.x -= 2 icon = @icons[i] draw_icon(icon, rect.x, rect.y) end end end #============================================================================== # ** Window_Quest_Title #------------------------------------------------------------------------------ # Cette fenetre affiche les descriptions des quêtes. #============================================================================== class Window_Quest_Title < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(index = QUEST_CONFIG::MENUNAME) super( 160, 352 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 384, 64) @pic_title = Sprite.new @pic_title.bitmap = Cache.picture(QUEST_CONFIG::QUEST_PICTURE) self.contents.draw_text(0, 0, self.width - 40, WLH, index, 1) end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose super @pic_title.dispose end end #============================================================================== # ** Window_Quest_Desc #------------------------------------------------------------------------------ # Cette fenetre affiche lee contenue des quêtes. #============================================================================== class Window_Quest_Desc < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(index = nil) super( 160, 416 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 384, QUEST_CONFIG::QUEST_WINDOWHEIGHT) @status = Sprite.new if index != nil if $quests[index].complete? @status.bitmap = Cache.picture(QUEST_CONFIG::QUEST_COMPLETE) elsif $quests[index].failed? @status.bitmap = Cache.picture(QUEST_CONFIG::QUEST_FAILED) end @status.z = 201 for i in 0..$quests[index].desc.size - 1 a = $quests[index].desc[i] self.contents.draw_text(0, WLH*i, self.width - 40, WLH, a, 1) end a = $quests[index].sub_text for i in 0..a.size - 1 b = a[i] if $quests[index].sub[b] == 'prog' if $quests[index].second? ic = QUEST_CONFIG::VALIDATESECONDICONS[0] else ic = QUEST_CONFIG::VALIDATEICONS[0] end elsif $quests[index].sub[b] == 'comp' if $quests[index].second? ic = QUEST_CONFIG::VALIDATESECONDICONS[1] else ic = QUEST_CONFIG::VALIDATEICONS[1] end else if $quests[index].second? ic = QUEST_CONFIG::VALIDATESECONDICONS[2] else ic = QUEST_CONFIG::VALIDATEICONS[2] end end draw_icon(ic, 4, WLH*(i + $quests[index].desc.size + 1)) self.contents.draw_text(0, WLH*(i + $quests[index].desc.size + 1), self.width - 40, WLH, b, 1) end if $quests[index].second? self.contents.draw_text(0, QUEST_CONFIG::QUEST_WINDOWHEIGHT - 3*WLH, self.width - 40, WLH, QUEST_CONFIG::QUEST_SECOND, 1) end end end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose super @status.dispose end end #============================================================================== # ** Window_Quest_Type #------------------------------------------------------------------------------ # Cette fenetre affiche lee contenue des quêtes. #============================================================================== class Window_Select_Quest < Window_Selectable
attr_accessor :c_items #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(type = 1) super(0, 416 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 160, QUEST_CONFIG::QUEST_WINDOWHEIGHT) @type = type self.index = 0 self.active = false @items = $quests.keys create_contents a = @items @c_items = [] for it in 0...@items.size if include?(a[it]) @c_items.push(a[it]) end end for it in 0...@c_items.size draw_opt(it) end end
#-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update super @data = @c_items @item_max = @data.size end
#-------------------------------------------------------------------------- # * Include ? # key : nom d'une quête #-------------------------------------------------------------------------- def include?(key) case @type when 1 if !$quests[key].complete? and !$quests[key].failed? and !$quests[key].second? return true end when 2 unless $quests[key].complete? or $quests[key].failed? return $quests[key].second? end when 3 return $quests[key].complete? when 4 return $quests[key].failed? end end #-------------------------------------------------------------------------- # * Draw Opt # itemm : quête #-------------------------------------------------------------------------- def draw_opt(itemm) a = @c_items rect = item_rect(itemm) self.contents.clear_rect(rect) if $quests[@c_items[itemm]].complete? if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[1],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[1],rect.x, rect.y) end elsif $quests[@c_items[itemm]].failed? if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[2],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[2],rect.x, rect.y) end else if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[0],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[0],rect.x , rect.y) end end string = @c_items[itemm] rect.width -= 4 self.contents.draw_text(rect.x, rect.y, rect.width, WLH, string, 2) end end
#============================================================================== # ** Scene_Quest #------------------------------------------------------------------------------ # Cette classe fere le menu de quêtes #============================================================================== class Scene_Quest < Scene_Base
#-------------------------------------------------------------------------- # * Object Initialization # #-------------------------------------------------------------------------- def initialize(index = 0, menu = false) @menu = menu @index = index end
#-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @type = Window_Quest_Type.new @type.visible = true @type.active = true @type.index = @index @quests = Window_Select_Quest.new(@index +1) @quests.active = false @quests.index = -1 @desc_window = Window_Quest_Desc.new @title = Window_Quest_Title.new update_desc end
#-------------------------------------------------------------------------- # * Return to Original Screen #-------------------------------------------------------------------------- def return_scene if @menu $scene = Scene_Menu.new(QUEST_CONFIG::MENU_NUMBER) else $scene = Scene_Map.new end end
#-------------------------------------------------------------------------- # * Terminate #-------------------------------------------------------------------------- def terminate dispose_menu_background @type.dispose @quests.dispose @title.dispose @desc_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- def update super update_menu_background @type.update @quests.update if @type.active update_type_selection elsif @quests.active update_quests_selection else update_desc_selection end if Input.trigger?(Input::A) Sound.play_cancel return_scene end end #-------------------------------------------------------------------------- # * Update Type Selection #-------------------------------------------------------------------------- def update_type_selection if Input.trigger?(Input::B) Sound.play_cancel return_scene elsif Input.trigger?(Input::C) a = @type.index Sound.play_cursor @type.active = false @quests.dispose @quests = Window_Select_Quest.new(a + 1) @quests.active = true @quests.index = 0 elsif Input.trigger?(Input::LEFT) or Input.trigger?(Input::RIGHT) a = @type.index @quests.dispose @quests = Window_Select_Quest.new(a + 1) @quests.index = -1 update_desc end end
#-------------------------------------------------------------------------- # * Update Quests Decription #-------------------------------------------------------------------------- def update_desc case @type.index when 0 @title.dispose @title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMEPRINCIP) when 1 @title.dispose @title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMESECOND) when 2 @title.dispose @title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMECOMP) when 3 @title.dispose @title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMEFAIL) end end #-------------------------------------------------------------------------- # * Update Quests Selection #-------------------------------------------------------------------------- def update_quests_selection if Input.trigger?(Input::B) Sound.play_cancel Sound.play_cursor @type.active = true @quests.active = false @quests.index = -1 update_desc @desc_window.dispose @desc_window = Window_Quest_Desc.new elsif Input.trigger?(Input::C) if @quests.c_items[@quests.index] == nil Sound.play_buzzer else Sound.play_decision @desc_window.dispose @desc_window = Window_Quest_Desc.new(@quests.c_items[@quests.index]) @title.dispose @title = Window_Quest_Title.new(@quests.c_items[@quests.index]) @quests.active = false @type.active = false end end end
#-------------------------------------------------------------------------- # * Update Desc Selection #-------------------------------------------------------------------------- def update_desc_selection if Input.trigger?(Input::B) Sound.play_cancel Sound.play_cursor @quests.active = true update_desc @desc_window.dispose @desc_window = Window_Quest_Desc.new end end end
#============================================================================== # ** Scene_Title #------------------------------------------------------------------------------ # This class performs the title screen processing. #============================================================================== class Scene_Title < Scene_Base
alias startupquest command_new_game #-------------------------------------------------------------------------- # * Command: New Game #-------------------------------------------------------------------------- def command_new_game startupquest $quests = {} end end #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # This class performs the save and load screen processing. #============================================================================== class Scene_File < Scene_Base
alias savequest write_save_data #-------------------------------------------------------------------------- # * Write Save Data # file : write file object (opened) #-------------------------------------------------------------------------- def write_save_data(file) savequest(file) Marshal.dump($quests, file) end
alias loadquest read_save_data #-------------------------------------------------------------------------- # * Read Save Data # file : file object for reading (opened) #-------------------------------------------------------------------------- def read_save_data(file) loadquest(file) $quests = Marshal.load(file) end end |
Dernière édition par Varkan le Sam 18 Sep 2010 - 14:31, édité 1 fois |
|  | | Shadow of Life Gladiateur


Nombre de messages: 717 Age: 15 Localisation: Peuplia Ouest [/KOL] Capacités: très bon Avertissements: 2 avertissements Distinction: Artiste de la flagornerie.
Porte parole du Ô grand Voilà voilà.
Président du club des masochistes du forum
Fake Gentleman
Soumis ^^ Date d'inscription: 13/09/2009
 | Sujet: Re: Script de quêtes [Résolu] Lun 12 Juil 2010 - 11:53 | |
| Regarde si tu as bien programmé tout les événements où son écrit tes quêtes. Voila, voila ! |
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Lun 12 Juil 2010 - 14:30 | |
| Oui, j'ai tout programmé comme il faut.... C'est pour ça je ne comprend pas d'où vient ce bug... |
|  | | Adurna Hamstérophile


Nombre de messages: 2041 Age: 21 Localisation: chambre=>pc=>wow=>Hyjal=>tdf Capacités: bon Distinction: Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu'] Date d'inscription: 22/06/2009
 | Sujet: Re: Script de quêtes [Résolu] Dim 1 Aoû 2010 - 22:22 | |
| s'est résolu? si oui marque le sinon up s\'il te plaît merci d'avance^^ |
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Lun 2 Aoû 2010 - 0:21 | |
| |
|  | | Adurna Hamstérophile


Nombre de messages: 2041 Age: 21 Localisation: chambre=>pc=>wow=>Hyjal=>tdf Capacités: bon Distinction: Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu'] Date d'inscription: 22/06/2009
 | Sujet: Re: Script de quêtes [Résolu] Lun 2 Aoû 2010 - 1:43 | |
| euh tien essai en ajoutant ça: | Code: | class Window_Command < Window_Selectable def refresh self.contents.clear create_contents for i in 0...@item_max draw_item(i) end end end |
bah tes scripts normalement c'est bon^^ |
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Lun 2 Aoû 2010 - 3:35 | |
| J'ajoute ça a quel moment dans le script `? |
|  | | Adurna Hamstérophile


Nombre de messages: 2041 Age: 21 Localisation: chambre=>pc=>wow=>Hyjal=>tdf Capacités: bon Distinction: Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu'] Date d'inscription: 22/06/2009
 | Sujet: Re: Script de quêtes [Résolu] Lun 2 Aoû 2010 - 5:47 | |
| met le dans un nouveaux script s'est un script à par qui corrigera tout les bug de ce type normalement |
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Lun 2 Aoû 2010 - 13:04 | |
| Ok ok alors je viens d'essayer ta solution, mais le bug persiste. |
|  | | Adurna Hamstérophile


Nombre de messages: 2041 Age: 21 Localisation: chambre=>pc=>wow=>Hyjal=>tdf Capacités: bon Distinction: Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu'] Date d'inscription: 22/06/2009
 | Sujet: Re: Script de quêtes [Résolu] Lun 2 Aoû 2010 - 13:30 | |
| essay de mettre ça à la fin du script: | Code: | #============================================================================== # ** Window_Quest_Type #------------------------------------------------------------------------------ # Cette fenetre affiche lee contenue des quêtes. #============================================================================== class Window_Select_Quest < Window_Selectable
attr_accessor :c_items #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(type = 1) super(0, 416 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 160, QUEST_CONFIG::QUEST_WINDOWHEIGHT) @type = type self.index = 0 self.active = false @items = $quests.keys create_contents a = @items @c_items = [] for it in 0...@items.size if include?(a[it]) @c_items.push(a[it]) end end for it in 0...@c_items.size draw_opt(it) end end
#-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update super create_contents @data = @c_items @item_max = @data.size end
#-------------------------------------------------------------------------- # * Include ? # key : nom d'une quête #-------------------------------------------------------------------------- def include?(key) case @type when 1 if !$quests[key].complete? and !$quests[key].failed? and !$quests[key].second? return true end when 2 unless $quests[key].complete? or $quests[key].failed? return $quests[key].second? end when 3 return $quests[key].complete? when 4 return $quests[key].failed? end end #-------------------------------------------------------------------------- # * Draw Opt # itemm : quête #-------------------------------------------------------------------------- def draw_opt(itemm) a = @c_items rect = item_rect(itemm) self.contents.clear_rect(rect) if $quests[@c_items[itemm]].complete? if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[1],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[1],rect.x, rect.y) end elsif $quests[@c_items[itemm]].failed? if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[2],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[2],rect.x, rect.y) end else if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[0],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[0],rect.x , rect.y) end end string = @c_items[itemm] rect.width -= 4 self.contents.draw_text(rect.x, rect.y, rect.width, WLH, string, 2) end end |
|
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Mar 3 Aoû 2010 - 17:51 | |
| Si je le met à la suite de ce que tu m'as posté auparavant ?
Si oui, tout les noms des quêtes accomplies disparaissent mais la description est toujours là, en fait ça fait toujours le bug mais cette fois-ci à toute les quêtes réussies.
(Encore merci d'essayer de chercher une solution) |
|  | | Adurna Hamstérophile


Nombre de messages: 2041 Age: 21 Localisation: chambre=>pc=>wow=>Hyjal=>tdf Capacités: bon Distinction: Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu'] Date d'inscription: 22/06/2009
 | Sujet: Re: Script de quêtes [Résolu] Mar 3 Aoû 2010 - 22:28 | |
| essai ça à la place: | Code: | #============================================================================== # ** Window_Quest_Type #------------------------------------------------------------------------------ # Cette fenetre affiche lee contenue des quêtes. #============================================================================== class Window_Select_Quest < Window_Selectable
attr_accessor :c_items #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(type = 1) super(0, 416 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 160, QUEST_CONFIG::QUEST_WINDOWHEIGHT) @type = type self.index = 0 self.active = false @items = $quests.keys a = @items @c_items = [] for it in 0...@items.size if include?(a[it]) @c_items.push(a[it]) end end for it in 0...@c_items.size draw_opt(it) end end
#-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update super create_contents @data = @c_items @item_max = @data.size end
#-------------------------------------------------------------------------- # * Include ? # key : nom d'une quête #-------------------------------------------------------------------------- def include?(key) case @type when 1 if !$quests[key].complete? and !$quests[key].failed? and !$quests[key].second? return true end when 2 unless $quests[key].complete? or $quests[key].failed? return $quests[key].second? end when 3 return $quests[key].complete? when 4 return $quests[key].failed? end end #-------------------------------------------------------------------------- # * Draw Opt # itemm : quête #-------------------------------------------------------------------------- def draw_opt(itemm) a = @c_items rect = item_rect(itemm) self.contents.clear_rect(rect) if $quests[@c_items[itemm]].complete? if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[1],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[1],rect.x, rect.y) end elsif $quests[@c_items[itemm]].failed? if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[2],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[2],rect.x, rect.y) end else if $quests[@c_items[itemm]].second? draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[0],rect.x, rect.y) else draw_icon(QUEST_CONFIG::VALIDATEICONS[0],rect.x , rect.y) end end string = @c_items[itemm] rect.width -= 4 self.contents.draw_text(rect.x, rect.y, rect.width, WLH, string, 2) end end |
|
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Mer 4 Aoû 2010 - 2:00 | |
| Pareil qu'avant.... c'est vraiment ennuyant qu'on arrive pas à trouver une solution...
Skillo à modifié le script, je ne sais pas si il pourrait t'aider (ne croit pas que je dis ça en pensant que je te trouve nul ou je ne sais quoi c'est rien à voir c'est juste pour voir s'il arrive a t'aider pour éviter que je te prenne du temps car je n'aime pas trop embêter les gens avec mes probs... c'est gênant..) |
|  | | Balbereith Modérateur


Nombre de messages: 2748 Age: 19 Localisation: dans l'ombre... Capacités: assez bon Avertissements: Avertissements infinis |-) Distinction: Péripatéticienne à temps perdu
Helly n°666
[Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait)
[tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires )
[Coco' ] Date d'inscription: 13/05/2009
 | Sujet: Re: Script de quêtes [Résolu] Mer 18 Aoû 2010 - 12:58 | |
| Résolu ou non ? _________________ "Libido sentiendi, Libido sciendi, Libido dominandi !" Tel est le credo qui régit la nature humaine. "Convoitise de la chair, Convoitise du savoir, Convoitise du pouvoir !" |
|  | | Varkan Etudiant


Nombre de messages: 292 Capacités: bon Distinction: aucune Date d'inscription: 27/01/2010
 | Sujet: Re: Script de quêtes [Résolu] Ven 3 Sep 2010 - 16:01 | |
| Up, apparemment le script bug à mort.... je n'arrive même plus à faire en sorte que les quêtes s'affichent correctement....
J'ai copié/collé le script en premier post (en croyant qu'il ne bugais pas) et quand je test et que je reçois une quête via un PNJ et que je renvoi le joueur dans le menu de quête pour prendre connaissance de celle-ci, le titre s'efface mais les objectifs restent intactes....
Une personne pourrait m'aider ? Car là je ne sais vraiment plus quoi faire avec ce script, surtout que dans mon projet j'en suis a 30 quêtes environ je pense. |
|  | | | | Script de quêtes [Résolu] | |
|
Sujets similaires |  |
|
| | Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
|
|