Invité Invité
| Sujet: [SCRIPT] Scene_Quete [option quête dans le menu] Ven 7 Déc - 13:00 | |
| Bonjour à tous et toutes, membre de RML Cela fait longtemps que je n'ai pas donné signe de vie sur le forum, et je m'en excuse mais j'ai des obligations nombreuses et je suis très occupé. Je reviens poster un nouveau script de ma confection alors lequel vais-je mettre en premier ... Nom : Scene_Quete Emplacement : Au dessus de main Auteur : 3dward Description : Ce script permet d'ajouter une option Quête assez simple dans le Menu. Demo : Non Screens : Aucunes - Spoiler:
- Code:
-
#------------------------------------------------------------------------------- #Nom : Scene_Quete #Auteur : 3dward #Version : 1.0 Fonctionnelle #À placer au dessus de Main #Modifications nécessaire dans le script Scene_Menu #Quêtes modifiables dans ce même script. #Merci de citer l'auteur dans les crédits #-------------------------------------------------------------------------------
class Scene_Quete def main @text_window = Window_TextQ.new @text_window.x = 0 @text_window.y = 56 @text2_window = Window_TextQ2.new @text2_window.x = 320 @text2_window.y = 56 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @text_window.dispose @text2_window.dispose end end
def update @text_window.update @text2_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Menu.new return end end #----------------------------------------------- # Window_TextQ2 # Scripté par 3dward # Fenêtre positionné à droite dans le script #----------------------------------------------- class Window_TextQ2 < Window_Base #Texte de quêtes incorporé dans le système de quête def initialize #Cadre (position X,Y, taille X, Y) super(0, 0, 320, 424) #Mise en place du cadre self.contents = Bitmap.new(width - 32, height - 32) #Police employée self.contents.font.name = "Times New Roman" #Taille de la police self.contents.font.size = 20 #Opacités self.back_opacity = 100 self.opacity = 255 #Rafraichissement refresh end
def refresh self.contents.clear
self.contents.font.color = Color.new(100,100,100) self.contents.draw_text(220,-160,320,424, $game_variables[004].to_s,0) self.contents.draw_text(220,-140,320,424, $game_variables[003].to_s,0) self.contents.font.size = 20 self.contents.font.name = "Times New Roman" self.contents.font.color = system_color self.contents.draw_text(60,-160,320,424, "Quêtes débutées",0) self.contents.draw_text(60,-140,320,424, "Quêtes achevées",0) self.contents.draw_text(110,360,160,28, "Quêtes en cours",0) if $game_variables[002] == 0 self.contents.font.color = Color.new(0,0,0) text = "Non" self.contents.draw_text(240,360,160,28, text,0) else self.contents.font.color = Color.new(0,255,0) text = "Oui" self.contents.draw_text(240,360,160,28, text,0) end x = $game_variables[005].to_s.size self.contents.font.color = system_color self.contents.draw_text(0,-20,320,424, "Temps Restant :",0) self.contents.font.color = Color.new(150,150,150) self.contents.draw_text(0,0,320,424, $game_variables[005].to_s,0) self.contents.draw_text(20 + x,0,320,424, "Jours",0) end end #------------------------------------------------------------------------------- #Nom : Window_TextQ #Auteur : 3dward #Date : 2 novembre 2007 #Version : Beta 2 #-------------------------------------------------------------------------------
class Window_TextQ < Window_Base
#------------------------------------------------------------------------------- # Fenêtre de 640*419 #-------------------------------------------------------------------------------
def initialize super(0,0,320,424) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 255 self.back_opacity = 100 refresh end
#------------------------------------------------------------------------------- # Refresh #-------------------------------------------------------------------------------
def refresh self.contents.clear #------------------------------------------------------------------------------- # Variable de jeu déterminée : Variable 2 [$game_variables[ID]] #------------------------------------------------------------------------------- case $game_variables[002]
when 0 demandeur = destinataire = temps = objet = nombre = récompense = réc = "" self.contents.font.size = 30 mission = " Aucune quête en cours"
when 1 demandeur = "Demandeur : Boucher" self.contents.font.size = 20 destinataire = "Destinataire : Boucher" temps = "Temps : Illimité" mission = "Apporter :" objet = "Objet : Porcs" nombre = "Nombre : 3" réc = "Récompense :" récompense = "50 Pièces, 25 Points d'expérience" when 2 demandeur = "Demandeur : Bûcheron" self.contents.font.size = 20 destinataire = "Destinataire : Bûcheron" temps = "Temps : Illimité" mission = "Apporter :" objet = "Objet : Bûches" nombre = "Nombre : 10" réc = "Récompense :" récompense = "100 Pièces, 50 Points d'expérience" end #------------------------------------------------------------------------------- # Police : Times New Roman, Couleur : System. #------------------------------------------------------------------------------- self.contents.font.name = "Times New Roman" self.contents.font.color = Color.new(122,122,122) self.contents.draw_text(0,-200,315,419,demandeur,0) self.contents.font.color = Color.new(122,122,122) self.contents.draw_text(0,-180,315,419,destinataire,0) self.contents.font.color = Color.new(122,122,122) self.contents.draw_text(0,-160,315,419,temps,0) self.contents.font.color = Color.new(255,255,255) self.contents.draw_text(0,-40,315,419,mission,0) self.contents.draw_text(0,-20,315,419,objet,0) self.contents.draw_text(0,0,315,419,nombre,0) self.contents.draw_text(0,140,315,419,réc,0) self.contents.draw_text(0,160,315,419,récompense,0) end end
Une fois ce script inséré au dessus de Main, il est nécessaire d'appliquer quelques modifications au script Scene_Menu à partir duquel la scene se lancera : Insérez ceci : - Spoiler:
- Code:
-
case @command_window.index when 0 # アイテム # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # アイテム画面に切り替え $scene = Scene_Item.new when 1 # スキル # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 # 装備 # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 $game_system.se_play($data_system.decision_se) $scene = Scene_Quete.new when 5 # セーブ # セーブ禁止の場合 if $game_system.save_disabled # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # セーブ画面に切り替え $scene = Scene_Save.new when 6 # ゲーム終了 $game_system.se_play($data_system.decision_se) $scene = Scene_End.new end return end end
À la place de : - Spoiler:
- Code:
-
case @command_window.index when 0 # アイテム # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # アイテム画面に切り替え $scene = Scene_Item.new when 1 # スキル # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 # 装備 # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 # セーブ # セーブ禁止の場合 if $game_system.save_disabled # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # セーブ画面に切り替え $scene = Scene_Save.new when 5 # ゲーム終了 $game_system.se_play($data_system.decision_se) $scene = Scene_End.new end return end end
Ensuite, modifiez les lignes 20 à 27 pour celles-ci : - Code:
-
s1 = $data_system.words.item s2 = $data_system.words.skill s3 = $data_system.words.equip s4 = "Etat" s5 = "Quêtes" s6 = "Sauvegarder" s7 = "Quitter" @command_window = Window_Command.new(160,[s1, s2, s3, s4, s5, s6, s7]) [Ceci aura pour effet d'ajouter l'option dans le menu] - Spoiler:
MODE D'EMPLOI : Le script emploie nombre de variables de jeu : ligne 80 : - Code:
-
$game_variables[004].to_s Le 004 est l'ID de la variable en question. Il est nécessaire de déterminer une variable que vous pourrez modifier à tout moment à l'aide d'événements. Cette variable est celle des quêtes débutées. ligne 81 : - Code:
-
$game_variables[003].to_s Cette variable est celle des quêtes achevées ligne 89 : - Code:
-
$game_variables[002] Cette variable varie : si elle est de 1, aucune quête n'est en cours. Sinon, pour tout autre valeur, une quête est en cours. (il est nécessaire de la gérer dès l'acceptation d'une quête). Cette même variable définie la quête en cours : Si la variable est de 2, alors la quête en cours correspondra à ce code : - Code:
-
when 1 demandeur = "Demandeur : Boucher" self.contents.font.size = 20 destinataire = "Destinataire : Boucher" temps = "Temps : Illimité" mission = "Apporter :" objet = "Objet : Porcs" nombre = "Nombre : 3" réc = "Récompense :" récompense = "50 Pièces, 25 Points d'expérience" Pour 3, le code suivant (when 2) Vous pouvez donc en ajouter à volonté. Vous pouvez modifier le Demandeur en changeant "Demandeur : Boucher" par celui de votre choix. Vous pouvez modifier ainsi l'ensemble de l'affichage. Le reste sera à définir par vos soins dans des événements.
Voilà tout. 3dward.
Dernière édition par le Ven 7 Déc - 13:17, édité 1 fois |
|