Templier Lv.15
Age : 27 Inscrit le : 02/07/2009 Messages : 1169
| Sujet: Re: RGSS2 / Ruby Lun 5 Déc 2011 - 21:12 | |
| - Code:
-
module Modif module Blk Msg_H = "Choississez votre scenario" Ligne1 = { #A ne pas supprimer ! 1=> "Il y a très longtemps, notre monde était beau, grand, le coeur des personnes", #Histoire 1: ligne 1 2 => "Ici mettez l'histoire n°2(ligne1)", #Histoire 2: ligne 1 3 => "Ici mettez l'histoire n°3(ligne1)" ,#Histoire 3: ligne 1 } #A ne pas supprimer !
Ligne2 = { #A ne pas supprimer ! 1 => "créa de la verdure; leurs larmes remplissaient les mers, leurs joie créa de là lumière...", #Histoire 1: ligne 2 2 => "Ici mettez l'histoire n°2(ligne2)", #Histoire 2: ligne 2 3 => "Ici mettez l'histoire n°3(ligne2)", #Histoire 3: ligne 2 } #A ne pas supprimer ! Ligne3 = { #A ne pas supprimer ! 1 => "Oui, ce monde était merveilleux, inovent, miraculeux même....Mais un jour...", #Histoire 1: ligne 3 2 => "Ici mettez l'histoire n°2(ligne3)", #Histoire 2: ligne 3 3 => "Ici mettez l'histoire n°3(ligne3)", #Histoire 3: ligne 3 } #A ne pas supprimer ! T_Map = [1, 2, 3] Hist_int = [1,2,3]#ID des interrupteurs qui permet d'activer les choix du scenar #Hist_int = [Int_Hist1 , Int_Hist2 , Int_Hist3] Opaci_fond = 120 Opaci_hist = 120 Opaci_msg = 30 Image = "" #Ici l'image de fond. end end #===========FIN DE LA CONFIGURATION================================ WLH_2 = 160
class Scene_Scenar < Scene_Base include Modif::Blk def start create_menu_background @commands_scenar = [] @choix_scenar = [] @compteur = -1 for type in (1..3) @commands_scenar.push(type) end @choix_scenar = Window_Command_CS.new(515, @commands_scenar, 4, 1, 15) @choix_scenar.opacity = 255 @choix_scenar.x = Graphics.width/2 - 250 @choix_scenar.y = Graphics.height/2 - (50) - WLH_2/2 @fond = Sprite.new @fond.bitmap = Cache.picture(Modif::Blk::Image.to_s) @fond.opacity = Modif::Blk::Opaci_fond @fene_msg = Window_Base.new (0,0,544,416/6) @fene_msg.opacity = Modif::Blk::Opaci_msg @fene_msg.contents.draw_text(0,0,544,416/6-24, Msg_H, 0) @fene_msg.contents.draw_text.opacity = Modif::Blk::Opaci_msg @fene_msg.z = 50 @fene_hist = Window_Scenar.new @fene_hist.z = 50 end #----------------------------------------------------- #------Def Terminate------- #------------------------------------------------------ def terminate @fond.dispose @fene_hist.dispose @fene_msg.dispose @choix_scenar.dispose end #Fin du def terminate #----------------------------------------------------- #------Def Update------- #------------------------------------------------------ def update if Input.trigger?(Input::C) Sound.play_decision $scene = Scene_Map.new elsif Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Title.new end end end#Fin de la class #============================================================================== #**Window_Scenar #============================================================================== class Window_Scenar < Window_Base def initialize super (0,416/2+70,544,416/3) refresh end def refresh self.contents.clear self.contents.draw_text(0,416/2+70,544,416/3-WLH, Ligne1[index], 0) self.contents.draw_text(0,416/2+70,544,416/3-WLH, Ligne2[index], 0) self.contents.draw_text(0,416/2+70,544,416/3-WLH, Ligne3[index], 0) end end #============================================================================== # ** Window_Selectable_Choix_Scenar #==============================================================================
class Window_Selectable_CS < Window_Selectable #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :item_max # item count attr_reader :column_max # digit count attr_reader :index # cursor position attr_reader :help_window # help window #-------------------------------------------------------------------------- # * Create Window Contents #-------------------------------------------------------------------------- def create_contents self.contents.dispose self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH_2].max) end #-------------------------------------------------------------------------- # * Get Top Row #-------------------------------------------------------------------------- def top_row return self.oy / WLH_2 end #-------------------------------------------------------------------------- # * Set Top Row # row : row shown on top #-------------------------------------------------------------------------- def top_row=(row) row = 0 if row < 0 row = row_max - 1 if row > row_max - 1 self.oy = row * WLH_2 end #-------------------------------------------------------------------------- # * Get Number of Rows Displayable on 1 Page #-------------------------------------------------------------------------- def page_row_max return (self.height - 32) / WLH_2 end #-------------------------------------------------------------------------- # * Get rectangle for displaying items # index : item number #-------------------------------------------------------------------------- def item_rect(index) rect = Rect.new(0, 0, 0, 0) rect.width = (contents.width + @spacing) / @column_max - @spacing + 50 rect.height = WLH_2 rect.x = index % @column_max * (rect.width + @spacing) rect.y = index / @column_max * WLH_2 return rect end
end
#============================================================================== # ** Window_Command_Choix_Scenar" #==============================================================================
class Window_Command_CS < Window_Selectable_CS
attr_reader :commands # command
def initialize(width, commands, column_max = 1, row_max = 1, spacing = 32) super(0, 0, width, row_max * WLH_2 + 32, spacing) @commands = commands @item_max = commands.size @column_max = column_max refresh self.index = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear create_contents for i in 0...@item_max draw_item(i) end end #Fin du def #-------------------------------------------------------------------------- # * Draw Item #-------------------------------------------------------------------------- def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(rect, @commands[index]) end end |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: RGSS2 / Ruby Lun 5 Déc 2011 - 21:35 | |
| Quand tu vires le script y'a plus de bug ? |
|
Templier Lv.15
Age : 27 Inscrit le : 02/07/2009 Messages : 1169
| Sujet: Re: RGSS2 / Ruby Sam 24 Déc 2011 - 16:32 | |
| - "Ancien Post":
Bah c'est quand je lance la scene qu'il y a le bug...[RESOLU] Question 3:Voila, je voulais me débrouiller seul, mais j'ai plus d'idée. Suite à une demande, on m'avais demander de faire un script de métiers avec titre barre d'exp et tout et tout. J'ai juste un problème: Je ne sais pas comment faire pour que le niveau soit en quelque sorte sauvegarder lorsque que je change de métier. Du genre: Metiers1----->EXP 15/20 (niveau1) Metiers2----->EXP 25/30 (niveau2) Metiers3 ---->EXP 1/10 (niveau1) (Parce-qu'en faite, j'arrive à monter d'un niveau mais tout les métiers prendrons le même niveau que l'autre) Je sais comment y arriver, cependant, il faudra 2 variables par métiers et, c'est juste trop quoi. Peut-être avec une boucle ? Je passerai le script si nécessaire et/ou plus d'information, si vous avez rien compris... |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: RGSS2 / Ruby Sam 24 Déc 2011 - 16:44 | |
| Tu crées une classe Game_Metier et un héros aura un instance de cet objet qui lui sera propre. Par contre, faudra la sauvegarder. |
|
Citadin Lv.7
Inscrit le : 15/03/2011 Messages : 167
| Sujet: Re: RGSS2 / Ruby Sam 24 Déc 2011 - 16:46 | |
| - Code:
-
class Game_Actor attr_accessor :job_exp alias job_initialize initialize def initialize(actor_id) job_initialize(actor_id) @job_exp = 0 end end Et tu n'as qu'a manipuler job_exp plutot que exp. |
|
Templier Lv.15
Age : 27 Inscrit le : 02/07/2009 Messages : 1169
| Sujet: Re: RGSS2 / Ruby Sam 24 Déc 2011 - 18:28 | |
| Non parce-que les métiers n'ont rien à voir avec les héros. Je crois que des screen vous aiderez à mieux comprendre: (Normalement, le niveau actuel du métier"mannequin" est 1) - Spoiler:
Et je voudrais savoir(si c'est possible), de connaitre le niveau en fonction du choix sans avoir à faire x variables(pour les niveaux) pour x choix. |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: RGSS2 / Ruby Dim 15 Jan 2012 - 10:05 | |
| Donc si j'ai bien compris un métier est totalement dissocié des héros ? Est-il associé au joueur ? |
|
Templier Lv.15
Age : 27 Inscrit le : 02/07/2009 Messages : 1169
| Sujet: Re: RGSS2 / Ruby Dim 15 Jan 2012 - 11:15 | |
| Oui. Non. Mais j'ai réussi à trouver la réponse à ma question, merci quand même. |
|