SALON DES MAKERS
Création de jeux vidéo amateurs
S'inscrire - Se connecter
Accueil - Forums - Articles et tutoriels - Ressources - Les jeux - Rechercher - Aide
[SCRIPT] --- Scene_Quete [option quête dans le menu]

 
Poster un nouveau sujet   Répondre au sujet    Salon des makers Index du Forum -> DÉVELOPPEMENT D'UN JEU VIDÉO -> Étape 5 : Programmation -> Rpg Maker
Auteur Message
3dward
Co-Administrateur
Co-Administrateur

Hors ligne

Inscrit le: 06 Juin 2007
Messages: 465
Sexe: Masculin

MessagePosté le: Ven 7 Déc - 11:21 (2007)    Sujet du message: [SCRIPT] --- Scene_Quete [option quête dans le menu] Répondre en citant

Bonjour à tous et toutes, membre de RMO

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

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 :
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 :

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]

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.
_________________


no sms
MSN
Publicité






MessagePosté le: Ven 7 Déc - 11:21 (2007)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
no sms
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Salon des makers Index du Forum -> DÉVELOPPEMENT D'UN JEU VIDÉO -> Étape 5 : Programmation -> Rpg Maker
Page 1 sur 1

 
Sauter vers:  

Topherysation L'annuaire des sites web de qualité Partenaires