Magicalichigo
Messages : 3283
| Sujet: Titre dans le statut Dim 10 Oct - 18:21 | |
| Voici un script trés interessant et facile d'utilisation pour mettre un systeme de titres à la "Tales Of" dans le menu statut. De : Blackmorning Traduit par : Black974 et fautes corrigés par moi Emplacement : Au dessus de main - Code:
-
#============================================================================== # ** Titles for VX, de Blackmorning # Paru le 15/07/09 # Mise à jour 15/07/09 #Traduction Française : Black-974 # Ajoutée des titres à la fin du nom #Valeurs de variation -stat visible titres en cas de changement # Idée de stats Raise Eternal scripters Symphony équipe quand niveau supérieur par la Base d'emploi. V 1.0 #============================================================================== =begin script d'appel: -Ajouter des titres à des personnages $game_actors[ID].title_list(Titre ID) remplacer "ID"par ID de votre peronnage remplacer "Titre ID" par ID du titre(Voir ci-dessous) Exemple: $game_actors[4].title_list(2) Donc le perso N°4 auas le titre N°2 =end
module Titles Title_Names = [] # Ne pas effacer # format: Title_Name [ID du titre] = "Nom du titre" Title_Names[1] = "Flémard" Title_Names[2] = "Epéiste débutant" Title_Names[3] = "Fugitif" Title_Names[4] = "Magicienne débutante" Title_Names[5] = "Maitre du sérieux" Title_Names[6] = "Colérique" # Ajouter d'autres titres que vous le souhaitez CHANGE_STATS = true #Nombre de titres peut ajouter ou soustraire de la base du statue Stat_Change = {# Ne pas effacer #ID du titre Hp Mp Atk Def Int Agi 1 => [0, 0, 0, 0, -1, 3], 2 => [ 5, -1, 1, 2, 0, 1], 3 => [8, 0, 0, 0, -2, 5], 4 => [ 3, 4, 0, 0, 5, -1], 5 => [10, 0, 0, 2, 5, 3], 6 => [3, 0, 0, 4, 0, 0], }# Ne pas effacer CHANGE_LEVELUP = false #Nombre de titres peut ajouter ou soustraire de stats lors de niveau supérieur LevelUp_Change = { # Ne pas effacer #Id du titre Hp Mp Atk Def Int Agi 1 => [40, 0, 0, 5, 0, 0], 2 => [ 0, 0, 0, 0, 0, 5], 3 => [50, 0, 0, 0, 0, 0], 4 => [10, 0, 0, 0, 0, 0], }# Ne pas effacer #Titre qui commence avec l'acteur #ID du Personnage => Titre ID Default_Title = {# Ne pas effacer 0 => 1, #par défaut si l'acteur n'est pas attribué 1 => 1, 2 => 2, 3 => 4, #Perso N°3 4 => 3, 5 => 3, 6 => 3, 7 => 5, #Perso N°7 8 => 6 #Perso N°8 #Vous pouvez en mettre auant que vous voulez }# Ne pas effacer # Titre de spectacle(salon) dans fenêtre de statut Show_in_status = true Show_after_name = true #Emplacement du titre d'acteur Status_x = 0 Status_y = 350 # Bouton pour changez de titre CHANGE_KEY = Input::RIGHT # position horizontale de titres pick fenêtre Titles_x = 80 # Emplacement vertical de la fenêtre de sélection des titres # Titles_pos = 0 en bas #Titles_pos = 1 en haut Titles_pos = 1 # Largeur de la fenêtre de sélection des titres Titles_width = 160 # Largeur de la fenêtre de sélection des titres stats Stats_width = 100 # Afficher le numéro de changement de stat (Ex:HP +10, MP -2) SHOW_STAT_CHANGE = true end =begin #=============================================================================== Fin des Modification Ligne 256 changer le mot entre le titre et le nom du perso #=============================================================================== =end $imported = {} if $imported == nil $imported["titles"] = true #=============================================================================== # Game_actor #=============================================================================== class Game_Actor < Game_Battler attr_accessor :title_name attr_accessor :title_id attr_accessor :known_title_list #----------------------------------------------------------------------------- alias titles_setup setup #----------------------------------------------------------------------------- def setup(actor_id) titles_setup(actor_id) @title_names = Array.new @title_list = Array.new if Titles::Default_Title.include?(actor_id) @title_id = Titles::Default_Title[@actor_id] else @title_id = Titles::Default_Title[0] end end #----------------------------------------------------------------------------- def title_name return Titles::Title_Names[@title_id] end #----------------------------------------------------------------------------- def title_list(id = nil) result = @title_list if result.include?(@title_id) else result << @title_id end if id != nil result << id end title_name_list(id) result.uniq return result end #----------------------------------------------------------------------------- def title_name_list(id = nil) result = @title_names if result.include?(Titles::Title_Names[@title_id]) else result << Titles::Title_Names[@title_id] end if id != nil and !result.include?(Titles::Title_Names[id]) result << Titles::Title_Names[id] end result.uniq return result end #----------------------------------------------------------------------------- def base_stat_title_change(type, act_title = @title_id) if Titles::CHANGE_STATS and Titles::Stat_Change.include?(act_title) addition = Titles::Stat_Change[act_title][type] else addition = 0 end return Integer(addition) end #============================================================================# # * Change Parameters based on Title # #============================================================================# alias title_base_maxhp base_maxhp unless $@ #-------------------------------------------------------------------------- def base_maxhp n = title_base_maxhp n += base_stat_title_change(0) return Integer(n) end #-------------------------------------------------------------------------- # * Get basic Maximum MP #-------------------------------------------------------------------------- alias title_base_maxmp base_maxmp unless $@ def base_maxmp n = title_base_maxmp n += base_stat_title_change(1) return Integer(n) end #-------------------------------------------------------------------------- alias title_base_atk base_atk unless $@ #-------------------------------------------------------------------------- def base_atk n = title_base_atk n += base_stat_title_change(2) return Integer(n) end #-------------------------------------------------------------------------- alias title_base_def base_def unless $@ #-------------------------------------------------------------------------- def base_def n = title_base_def n += base_stat_title_change(3) return Integer(n) end #-------------------------------------------------------------------------- alias title_base_spi base_spi unless $@ #-------------------------------------------------------------------------- def base_spi n = title_base_spi n += base_stat_title_change(4) return Integer(n) end #-------------------------------------------------------------------------- alias title_base_agi base_agi unless $@ #-------------------------------------------------------------------------- def base_agi n = title_base_agi n += base_stat_title_change(5) return Integer(n) end #--------------------------------------------------------------------------- alias title_levelup level_up #--------------------------------------------------------------------------- def level_up title_levelup id = @title_id if Titles::CHANGE_LEVELUP && Titles::LevelUp_Change.include?(id) self.maxhp += Titles::LevelUp_Change[id][0] self.maxmp += Titles::LevelUp_Change[id][1] self.atk += Titles::LevelUp_Change[id][2] self.def += Titles::LevelUp_Change[id][3] self.spi += Titles::LevelUp_Change[id][4] self.agi += Titles::LevelUp_Change[id][5] end end end #------------------------------------------------------------------------------- # Window_Status #------------------------------------------------------------------------------- class Window_Status < Window_Base if Titles::Show_in_status && Titles::Show_after_name == false #----------------------------------------------------------------------------- alias titles_refresh refresh #----------------------------------------------------------------------------- def refresh titles_refresh x = Titles::Status_x y = Titles::Status_y self.contents.font.color = normal_color draw_actor_title(@actor, x, y) end #----------------------------------------------------------------------------- def draw_actor_title(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 80, WLH, "Title: ", 2) self.contents.font.color = normal_color self.contents.draw_text(x + 80, y, 108, WLH, actor.title_name) end #----------------------------------------------------------------------------- elsif Titles::Show_after_name def draw_actor_name(actor, x, y) self.contents.font.color = hp_color(actor) self.contents.draw_text(x, y, 220, WLH, "#{actor.name} Titre :#{actor.title_name}")# Nom du perso/"Mot qui vient après"/Nom du titre end #----------------------------------------------------------------------------- alias titlesdraw_actor_class draw_actor_class #----------------------------------------------------------------------------- unless $imported["SceneStatusReDux"] def draw_actor_class(actor, x, y) titlesdraw_actor_class(actor, x + 160, y) end end end end #============================================================================== # Window_StatStatus #============================================================================== class Window_StatStatus < Window_Base def initialize(value, actor) height = 32 + WLH * 6 x = Titles::Titles_x + Titles::Titles_width if Titles::Titles_pos == 0 y = Graphics.height - height else y = 0 end super(x, y, Titles::Stats_width, height) update(value, actor) end def update(value, actor) self.contents.clear @actor = actor @value = value x = 0 y = 0 w = self.contents.width text = @value[0] - @actor.base_stat_title_change(0) if @value[0] > @actor.base_stat_title_change(0) self.contents.font.color = power_up_color elsif @value[0] < @actor.base_stat_title_change(0) self.contents.font.color = power_down_color else self.contents.font.color = normal_color end self.contents.draw_text(x, y + WLH * 0, w, WLH, Vocab.hp) unless text == 0 or Titles::SHOW_STAT_CHANGE == true if text > 0 self.contents.draw_text(x, y + WLH * 0, w, WLH, "+#{text}", 2) else self.contents.draw_text(x, y + WLH * 0, w, WLH, text, 2) end end text = @value[1] - @actor.base_stat_title_change(1) if @value[1] > @actor.base_stat_title_change(1) self.contents.font.color = power_up_color elsif @value[1] < @actor.base_stat_title_change(1) self.contents.font.color = power_down_color else self.contents.font.color = normal_color end self.contents.draw_text(x, y + WLH * 1, w, WLH, Vocab.mp) unless text == 0 or Titles::SHOW_STAT_CHANGE == true if text > 0 self.contents.draw_text(x, y + WLH * 1, w, WLH, "+#{text}", 2) else self.contents.draw_text(x, y + WLH * 1, w, WLH, text, 2) end end text = @value[2] - @actor.base_stat_title_change(2) if @value[2] > @actor.base_stat_title_change(2) self.contents.font.color = power_up_color elsif @value[2] < @actor.base_stat_title_change(2) self.contents.font.color = power_down_color else self.contents.font.color = normal_color end self.contents.draw_text(x, y + WLH * 2, w, WLH, Vocab.atk) unless text == 0 or Titles::SHOW_STAT_CHANGE == true if text > 0 self.contents.draw_text(x, y + WLH * 2, w, WLH, "+#{text}", 2) else self.contents.draw_text(x, y + WLH * 2, w, WLH, text, 2) end end text = @value[3] - @actor.base_stat_title_change(3) if @value[3] > @actor.base_stat_title_change(3) self.contents.font.color = power_up_color elsif @value[3] < @actor.base_stat_title_change(3) self.contents.font.color = power_down_color else self.contents.font.color = normal_color end self.contents.draw_text(x, y + WLH * 3, w, WLH, Vocab.def) unless text == 0 or Titles::SHOW_STAT_CHANGE == true if text > 0 self.contents.draw_text(x, y + WLH * 3, w, WLH, "+#{text}", 2) else self.contents.draw_text(x, y + WLH * 3, w, WLH, text, 2) end end text = @value[4] - @actor.base_stat_title_change(4) if @value[4] > @actor.base_stat_title_change(4) self.contents.font.color = power_up_color elsif @value[4] < @actor.base_stat_title_change(4) self.contents.font.color = power_down_color else self.contents.font.color = normal_color end self.contents.draw_text(x, y + WLH * 4, w, WLH, Vocab.spi) unless text == 0 or Titles::SHOW_STAT_CHANGE == true if text > 0 self.contents.draw_text(x, y + WLH * 4, w, WLH, "+#{text}", 2) else self.contents.draw_text(x, y + WLH * 4, w, WLH, text, 2) end end text = @value[5] - @actor.base_stat_title_change(5) if @value[5] > @actor.base_stat_title_change(5) self.contents.font.color = power_up_color elsif @value[5] < @actor.base_stat_title_change(5) self.contents.font.color = power_down_color else self.contents.font.color = normal_color end self.contents.draw_text(x, y + WLH * 5, w, WLH, Vocab.agi) unless text == 0 or Titles::SHOW_STAT_CHANGE == true if text > 0 self.contents.draw_text(x, y + WLH * 5, w, WLH, "+#{text}", 2) else self.contents.draw_text(x, y + WLH * 5, w, WLH, text, 2) end end end end
#============================================================================== # Scene_Status #============================================================================== class Scene_Status < Scene_Base #-------------------------------------------------------------------------- alias titles_initialize initialize #-------------------------------------------------------------------------- def initialize(*args) titles_initialize(*args) @titles_window = Window_Command.new(Titles::Titles_width,$game_party.members[@actor_index].title_name_list) @titles_window.active = false @titles_window.visible = false @titles_window.z = 120 @titles_window.x = Titles::Titles_x if Titles::Titles_pos == 0 @titles_window.y = Graphics.height - @titles_window.height else @titles_window.y = 0 end @stat_window = Window_StatStatus.new($game_party.members[@actor_index].title_list[@titles_window.index], $game_party.members[@actor_index]) @stat_window.active =false @stat_window.visible = false @stat_window.z = 120 end #-------------------------------------------------------------------------- alias titles_terminate terminate #-------------------------------------------------------------------------- def terminate titles_terminate @titles_window.dispose @stat_window.dispose end #-------------------------------------------------------------------------- def clone_actor temp_actor = @actor.clone temp_actor.title_id=($game_party.members[@actor_index].title_list[@titles_window.index]) chp = temp_actor.base_stat_title_change(0) cmp = temp_actor.base_stat_title_change(1) catk = temp_actor.base_stat_title_change(2) cdef = temp_actor.base_stat_title_change(3) cspi = temp_actor.base_stat_title_change(4) cagi = temp_actor.base_stat_title_change(5) @array = [chp,cmp,catk,cdef,cspi,cagi] end #-------------------------------------------------------------------------- alias titles_update update #-------------------------------------------------------------------------- def update clone_actor @titles_window.update @stat_window.update(@array, $game_party.members[@actor_index]) titles_update if Input.trigger?(Titles::CHANGE_KEY) if @titles_window.active if $imported["SceneStatusReDux"] @command_window.active = true end @titles_window.active = false @titles_window.visible = false @stat_window.active = false @stat_window.visible = false else if $imported["SceneStatusReDux"] @command_window.active = false end @titles_window.active = true @titles_window.visible = true @stat_window.active = true @stat_window.visible = true end elsif Input.trigger?(Input::C) if @titles_window.active Sound.play_decision $game_party.members[@actor_index].title_id=($game_party.members[@actor_index].title_list[@titles_window.index]) @status_window.update @titles_window.active = false @titles_window.visible = false $scene = Scene_Status.new(@actor_index) end end end end Voilà j'espere qu'il vous plaira Slup:merci Blackdyz
Dernière édition par magicalichigo le Dim 10 Oct - 18:26, édité 1 fois | |
|