Sujet: [VX] Script de lvl up custom Lun 20 Oct 2008 - 17:16
Bonjour ,
Voici un script en Anglais qui vous montre une version custom de lvl up. Je tiens a dire qu'il n'est pas de moi.
Comme tous les scripts ,il faut le placer au dessus de main.
Code:
module LevelUpDisplayConfig #-------------------------------------------------------------------------- # * General Configuration Options #-------------------------------------------------------------------------- #The windowskin file name, minus the extension WINDOWSKIN_NAME = 'Window' #The sound effect name that is played when the window is displayed LEVEL_UP_SE = 'Recovery' #The sound effect volume LEVEL_UP_SE_VOLUME = 80 #Display the skill window? USE_SKILL_WINDOW = true #The title text used in the "New Skills" window (if not nil) #For example, NEW_SKILL_TITLE_TEXT = 'Abilities' NEW_SKILL_TITLE_TEXT = nil #Show the actor's sprite? USE_SPRITE_GRAPHIC = true #Opacity of the main window WINDOW_OPACITY = 255 #-------------------------------------------------------------------------- # * Stat Window Configuration #-------------------------------------------------------------------------- #The color of the actor's name in the window (gold by default) NAME_COLOR = Color.new(255,235,0) #The color of the actor's level in the window (gold by default) LEVEL_COLOR = Color.new(255,235,0) #The color of the actor's stat names in the window (gold by default) STAT_COLOR = Color.new(255,235,0) #The color of the actor's old stat values (white by default) OLD_STAT_COLOR = Color.new(255,255,255) #The color of the actor's new stat values, if a net gain (green by default) NEW_STAT_VAL_COLOR = Color.new(0,250,154) #The color of the actor's new stat values, if a net loss (red by default) STAT_VAL_LOSS_COLOR = Color.new(255, 0, 0) #-------------------------------------------------------------------------- # * Skill Window Configuration #-------------------------------------------------------------------------- #The color of the text in the skills title window SKILL_TITLE_COLOR = Color.new(255,215,0) #The color of the new skills text in the skills window SKILL_WINDOW_FONT_COLOR = Color.new(240,248,255) #-------------------------------------------------------------------------- # * There is no need to modify the constants below #-------------------------------------------------------------------------- STAT_WINDOW_WIDTH = 320 SKILL_WINDOW_WIDTH = 165 WINDOW_HEIGHT = 220 SUB_WINDOW_HEIGHT = 45
end
Dernière édition par akakin le Lun 20 Oct 2008 - 17:25, édité 2 fois
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Lun 20 Oct 2008 - 17:18
Suite du code :
Code:
include LevelUpDisplayConfig #========================================================================== # * Window_LevelUpdate #-------------------------------------------------------------------------- # The main window that appears in battle when a level is gained. # Displays stat info, faceset, and (optionally) the actor sprite. #========================================================================== class Window_LevelUpdate < Window_Base
def initialize(actor) w = STAT_WINDOW_WIDTH h = WINDOW_HEIGHT if USE_SKILL_WINDOW super(272 - (w / 2) - (SKILL_WINDOW_WIDTH / 2), 50, w, h) else super(272 - (w / 2), 50, w, h) end self.windowskin = Cache.system(WINDOWSKIN_NAME) self.back_opacity = WINDOW_OPACITY @actor = actor @animation_index = 0 @arrow = Cache.picture('level_up_arrow') @y_offset = 12 #give some room under level display #begin drawing new level and old stat text @col_one_offset = 0 #Draw old stats @col_two_offset = @col_one_offset + 60 #begin drawing Faceset/sprite and skills gained @col_four_offset = 0 #begin drawing Faceset/sprite graphics @col_five_offset = 190 #play the sound effect se = RPG::SE.new(LEVEL_UP_SE, LEVEL_UP_SE_VOLUME) se.play #calculates the offet for drawing level info calc_level_offsets setup_name_window draw_stat_names draw_old_stat_values draw_arrows draw_new_stat_values draw_actor_rep update end #-------------------------------------------------------------------------- # * Create and display the name window #-------------------------------------------------------------------------- def setup_name_window @name_window = Window_Base.new(self.x + 20, self.y - 30 , fit_to_text(@actor.name), SUB_WINDOW_HEIGHT) @name_window.windowskin = Cache.system(WINDOWSKIN_NAME) @name_window.back_opacity = 255 @name_sprite = Sprite.new @name_sprite.bitmap = Bitmap.new(@name_window.width, @name_window.height) @name_sprite.bitmap.font.color = NAME_COLOR @name_sprite.x = @name_window.x + 15 @name_sprite.y = @name_window.y - 10 @name_sprite.z = 300 @name_sprite.bitmap.draw_text(0, 0, @name_sprite.bitmap.width, 60, @actor.name) end #-------------------------------------------------------------------------- # * Draws the level and stat text (not the values themselves) #-------------------------------------------------------------------------- def draw_stat_names self.contents.font.color = LEVEL_COLOR self.contents.draw_text(@col_one_offset, 0, 60, WLH, "Lv.") self.contents.font.color = STAT_COLOR self.contents.draw_text(@col_one_offset, y_incr, 60, WLH, Vocab.hp) self.contents.draw_text(@col_one_offset, y_incr, 60, WLH, Vocab.mp) self.contents.draw_text(@col_one_offset, y_incr, 60, WLH, Vocab.atk) self.contents.draw_text(@col_one_offset, y_incr, 60, WLH, Vocab.def) self.contents.draw_text(@col_one_offset, y_incr, 60, WLH, Vocab.spi) self.contents.draw_text(@col_one_offset, y_incr, 60, WLH, Vocab.agi) #reset the font color self.contents.font.color = Font.default_color #reset the y_offset to 12 y_incr_reset end #-------------------------------------------------------------------------- # * Draws the old level and stat values #-------------------------------------------------------------------------- def draw_old_stat_values self.contents.font.color = OLD_STAT_COLOR self.contents.draw_text(@col_level_old_offset, 0, 60, WLH, @actor.last_level) self.contents.draw_text(@col_two_offset, y_incr, 60, WLH, @actor.last_hp) self.contents.draw_text(@col_two_offset, y_incr, 60, WLH, @actor.last_mp) self.contents.draw_text(@col_two_offset, y_incr, 60, WLH, @actor.last_atk) self.contents.draw_text(@col_two_offset, y_incr, 60, WLH, @actor.last_def) self.contents.draw_text(@col_two_offset, y_incr, 60, WLH, @actor.last_spi) self.contents.draw_text(@col_two_offset, y_incr, 60, WLH, @actor.last_agi) #reset the font color self.contents.font.color = Font.default_color #reset the y_offset to 12 y_incr_reset end
#-------------------------------------------------------------------------- # * Draws the arrows #-------------------------------------------------------------------------- def draw_arrows if @actor.last_hp - 100 < 0 @col_three_offset = @col_two_offset + 30 elsif @actor.last_hp - 1000 < 0 @col_three_offset = @col_two_offset + 40 else @col_three_offset = @col_two_offset + 50 end draw_arrow(@col_level_arrow_offset, 6) #level draw_arrow(@col_three_offset, y_incr + 6) #hp draw_arrow(@col_three_offset, y_incr + 6) #mp draw_arrow(@col_three_offset, y_incr + 6) #atk draw_arrow(@col_three_offset, y_incr + 6) #def draw_arrow(@col_three_offset, y_incr + 6) #spi draw_arrow(@col_three_offset, y_incr + 6) #agi calc_col_four_offset(@col_three_offset) #reset the y_offset to 12 y_incr_reset end #-------------------------------------------------------------------------- # * Draws the new level and stat values #-------------------------------------------------------------------------- def draw_new_stat_values draw_new_stat(@col_level_new_offset, 0, 60, WLH, @actor.last_level, @actor.level) draw_new_stat(@col_four_offset, y_incr, 60, WLH, @actor.last_hp, @actor.maxhp) draw_new_stat(@col_four_offset, y_incr, 60, WLH, @actor.last_mp, @actor.maxmp) draw_new_stat(@col_four_offset, y_incr, 60, WLH, @actor.last_atk, @actor.base_atk) draw_new_stat(@col_four_offset, y_incr, 60, WLH, @actor.last_def, @actor.base_def) draw_new_stat(@col_four_offset, y_incr, 60, WLH, @actor.last_spi, @actor.base_spi) draw_new_stat(@col_four_offset, y_incr, 60, WLH, @actor.last_agi, @actor.base_agi) self.contents.font.color = Font.default_color #reset the y_offset to 12 y_incr_reset end
def draw_new_stat(x, y, w, h, prev_val, val) if val > prev_val #gain self.contents.font.color = NEW_STAT_VAL_COLOR elsif val == prev_val #no change self.contents.font.color = OLD_STAT_COLOR else #loss self.contents.font.color = STAT_VAL_LOSS_COLOR end self.contents.draw_text(x, y, w, h, val) end #-------------------------------------------------------------------------- # * Draws the faceset and optionally the actor sprite #-------------------------------------------------------------------------- def draw_actor_rep draw_actor_face(@actor, @col_five_offset, 0) if (USE_SPRITE_GRAPHIC) x_pos = @col_five_offset + ((self.width - @col_five_offset) / 2) - 18 draw_character(@actor.character_name, @actor.character_index, x_pos, 160) end end #-------------------------------------------------------------------------- # * Draws an arrow #-------------------------------------------------------------------------- def draw_arrow(x, y) src_rect = Rect.new(0, 0, @arrow.width, @arrow.height) self.contents.blt(x, y, @arrow, src_rect) end #-------------------------------------------------------------------------- # * figures out the spacing for the level text display #-------------------------------------------------------------------------- def calc_level_offsets @col_level_old_offset = @col_one_offset + 30 if @actor.last_level < 10 @col_level_arrow_offset = @col_level_old_offset + 20 else @col_level_arrow_offset = @col_level_old_offset + 30 end @col_level_new_offset = @col_level_arrow_offset + 26 end #-------------------------------------------------------------------------- # * Increments the y counter #-------------------------------------------------------------------------- def y_incr @y_offset += WLH return @y_offset end #-------------------------------------------------------------------------- # * Resets the y counter #-------------------------------------------------------------------------- def y_incr_reset @y_offset = 12 end #-------------------------------------------------------------------------- # * calculate where to draw col four text (new stat values) #-------------------------------------------------------------------------- def calc_col_four_offset(col_three) @col_four_offset = col_three + 22 end #-------------------------------------------------------------------------- # * Fit the window width to the text #-------------------------------------------------------------------------- def fit_to_text(text) w = self.contents.text_size(text).width + 32 return w > 90 ? w : 90 end #-------------------------------------------------------------------------- # * Update the child window position #-------------------------------------------------------------------------- def update_child_window_pos @name_window.x = self.x + 20 @name_window.y = self.y - 30 @name_sprite.x = @name_window.x + 15 @name_sprite.y = @name_window.y - 10 end #-------------------------------------------------------------------------- # * Destroy the sprite! #-------------------------------------------------------------------------- def dispose super @name_window.dispose @name_sprite.dispose end
end
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Lun 20 Oct 2008 - 17:19
Suite et fin :
Code:
#============================================================================ # * Window_SkillUpdate #---------------------------------------------------------------------------- # The learned skill window #============================================================================ class Window_SkillUpdate < Window_Base
def initialize(actor, parent_x, parent_y, parent_width) x = parent_x + parent_width h = WINDOW_HEIGHT w = SKILL_WINDOW_WIDTH super(x, parent_y, w, h) self.windowskin = Cache.system(WINDOWSKIN_NAME) self.back_opacity = WINDOW_OPACITY self.contents.font.color = SKILL_WINDOW_FONT_COLOR @actor = actor @skills = [] setup_title_window populate_skill_list end #-------------------------------------------------------------------------- # * create the title window #-------------------------------------------------------------------------- def setup_title_window #check to see if custom text is defined if NEW_SKILL_TITLE_TEXT == nil skill_title_text = sprintf("New %ss", Vocab.skill) else skill_title_text = NEW_SKILL_TITLE_TEXT end middle_parent = self.x + (self.width / 2) w = fit_to_text(skill_title_text) h = SUB_WINDOW_HEIGHT x = middle_parent - (w / 2) y = self.y - 30 @title_window = Window_Base.new(x, y, w, h) @title_window.windowskin = Cache.system(WINDOWSKIN_NAME) @title_window.back_opacity = 255 @title_sprite = Sprite.new @title_sprite.bitmap = Bitmap.new(@title_window.width, @title_window.height) @title_sprite.bitmap.font.color = SKILL_TITLE_COLOR @title_sprite.x = @title_window.x + 15 @title_sprite.y = @title_window.y + 4 @title_sprite.z = 300 @title_sprite.bitmap.draw_text(0, 0, @title_sprite.bitmap.width, 32, skill_title_text) end #-------------------------------------------------------------------------- # * My edit of draw_item_name. # Necessary because the default one changes the font color. #-------------------------------------------------------------------------- def draw_my_item_name(item, x, y, enabled = true) if item != nil draw_icon(item.icon_index, x, y, enabled) self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(x + 24, y, 172, WLH, item.name) end end #-------------------------------------------------------------------------- # * draw all of the skills that were learned #-------------------------------------------------------------------------- def populate_skill_list skills = @actor.last_learned_skills y = 0 for skill in skills draw_my_item_name(skill, 0, y) y += 32 end end #-------------------------------------------------------------------------- # * Fit the window width to the text #-------------------------------------------------------------------------- def fit_to_text(text) return self.contents.text_size(text).width + 32 end #-------------------------------------------------------------------------- # * Kill the sprite! #-------------------------------------------------------------------------- alias :eds_old_dispose :dispose def dispose eds_old_dispose @title_window.dispose @title_sprite.dispose end
end #========================================================================== # * Game_Actor #-------------------------------------------------------------------------- # overrides - # * display_level_up (if DISPLAY_DEF_MESSAGE is set to false in config) #========================================================================== class Game_Actor < Game_Battler
attr_reader :last_level attr_reader :last_hp attr_reader :last_mp attr_reader :last_atk attr_reader :last_def attr_reader :last_spi attr_reader :last_agi attr_reader :last_learned_skills #-------------------------------------------------------------------------- # * Change Experience # exp : New experience # show : Level up display flag #-------------------------------------------------------------------------- alias :eds_old_change_exp :change_exp def change_exp(exp, show) #save off the old paramters prev_skills = skills @last_level = @level @last_hp = self.maxhp @last_mp = self.maxmp @last_atk = self.atk @last_def = self.def @last_spi = self.spi @last_agi = self.agi eds_old_change_exp(exp, show) @last_learned_skills = skills - prev_skills end
if USE_SKILL_WINDOW #below method is only used if we are using the skill window
#-------------------------------------------------------------------------- # * Show Level Up Message # new_skills : Array of newly learned skills #-------------------------------------------------------------------------- # If we are not displaying the standard message when # gaining a level, simply remove the loop that creates # the learned skills message. Continue to display # the skills that were learned if we are not in battle. #-------------------------------------------------------------------------- alias :eds_old_display_level_up :display_level_up def display_level_up(new_skills) if $game_temp.in_battle $game_message.new_page text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level) $game_message.texts.push(text) else eds_old_display_level_up(new_skills) end end
end #skill window check
end #============================================================================ # * Scene_Battle #---------------------------------------------------------------------------- # overrides - # * display_level_up #============================================================================ class Scene_Battle < Scene_Base
#-------------------------------------------------------------------------- # * Display Level Up #-------------------------------------------------------------------------- def display_level_up #patch for KGC Equip Learn Skill script if $imported != nil and $imported["EquipLearnSkill"] display_master_equipment_skill end exp = $game_troop.exp_total for actor in $game_party.existing_members last_level = actor.level last_skills = actor.skills actor.gain_exp(exp, true) if actor.level > last_level win = Window_LevelUpdate.new(actor) #if we are using the skill window and the skills have changed... if USE_SKILL_WINDOW && last_skills.length != actor.skills.length s_win = Window_SkillUpdate.new(actor, win.x, win.y, win.width) wait_for_message s_win.dispose if USE_SKILL_WINDOW else #move the window back to center screen and update the name window win.x = 272 - (win.width / 2) win.update_child_window_pos wait_for_message end win.dispose end end end
end
Un petit screen :
Blockade
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
Sujet: Re: [VX] Script de lvl up custom Mar 21 Oct 2008 - 17:27
Il manque un fichier graphique pour lancer le script ^^ Ce sont les flèches sinon je trouve le script génial, je le traduit en français et je l'améliore xD
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Mer 22 Oct 2008 - 11:54
Ah ,je n'avais pas vu . Merci d'avoir remarqué. Comment s'appelle le fichier graphique ?
Fred 020
Mage Lv.11
Age : 33 Inscrit le : 02/10/2008 Messages : 611
Sujet: Re: [VX] Script de lvl up custom Mer 22 Oct 2008 - 13:46
akakin a écrit:
Ah ,je n'avais pas vu . Merci d'avoir remarqué. Comment s'appelle le fichier graphique ?
Serait-ce ceci?
et je crois qu'il faut nommer le fichier level_up_arrow et il doit être placé dans \Graphics\Pictures.
Blockade
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
Sujet: Re: [VX] Script de lvl up custom Mer 22 Oct 2008 - 16:13
Oui c'est ça ^^ Merci ^^
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Mer 22 Oct 2008 - 17:00
Merci d'avoir complété Fred020
Fred 020
Mage Lv.11
Age : 33 Inscrit le : 02/10/2008 Messages : 611
Sujet: Re: [VX] Script de lvl up custom Mer 22 Oct 2008 - 17:16
Il n'y a pas de quoi^^
@ Akakin: Désolé pour le tileset je ne l'ai pas fini j'étais malade la semaine passée alors c'est pour ça que t'avais pas de nouvelles de moi mais bon je suis revenu.
Whurio
Habitant Lv.6
Age : 33 Inscrit le : 28/03/2008 Messages : 107
Sujet: Re: [VX] Script de lvl up custom Mer 22 Oct 2008 - 18:43
Chez moi,je sais pas démarrer un combat.
Bug à la ligne 454...
C'est pas mon jour niveau making...
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Jeu 23 Oct 2008 - 14:54
454 tu dis ?
Je vais voir ce que je peux faire. De toute façon Blockade a dit qu'elle allait le traduire.
jebbou
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
Sujet: Re: [VX] Script de lvl up custom Jeu 23 Oct 2008 - 14:57
Lorsque vous avez un bug, merci de donner le message d'erreur (en plus du numéro de ligne..)
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Jeu 23 Oct 2008 - 15:01
Whurio en indique un à la ligne 454 a ce que je vois. Mais il faudrait déja traduire le script avant de l'utiliser.
Je veux bien le faire ,juste m'indiquer ce qu'il faut traduire. Mes connaissances en Anglais vont pour une fois me servir.
Invité
Invité
Sujet: Re: [VX] Script de lvl up custom Mer 29 Oct 2008 - 3:34
Pouvez vous le traduire s'il vous plait sa serait assez gentil :pleaaase:
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Mer 29 Oct 2008 - 16:42
Je vais m en occuper. Pour le moment je suis en vacances donc ce sera fait pour la semaine prochaine.
Invité
Invité
Sujet: Re: [VX] Script de lvl up custom Mer 29 Oct 2008 - 17:48
Ok merci ^^
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Sam 1 Nov 2008 - 14:50
Si sa peut te rassurer ,tu l'auras Lundi soir.
Invité
Invité
Sujet: Re: [VX] Script de lvl up custom Sam 1 Nov 2008 - 16:19
Ok Merci baucoup. Et ce serait pas possible de changer la couleur ?? Où c'est avec le windows skin ?
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Lun 3 Nov 2008 - 16:23
La couleur ? T'aime pas le bleu ?
Oui je pense qu'avec le windows skin sa devrai aller.
Altair19
Voyageur Lv.10
Age : 31 Inscrit le : 16/08/2008 Messages : 467
Sujet: Re: [VX] Script de lvl up custom Lun 3 Nov 2008 - 16:32
J'ai le même script mais en différent !
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Lun 3 Nov 2008 - 16:33
C'est un autre ou le même ?
Altair19
Voyageur Lv.10
Age : 31 Inscrit le : 16/08/2008 Messages : 467
Sujet: Re: [VX] Script de lvl up custom Lun 3 Nov 2008 - 16:35
Ce doit être une autre version du tiens !
akakin
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
Sujet: Re: [VX] Script de lvl up custom Lun 3 Nov 2008 - 16:36
Oui ,elle est pas mal mais la fenêtre est un peu grande je trouve. Mets ton code toi aussi comme sa les membres auront le choix.
Altair19
Voyageur Lv.10
Age : 31 Inscrit le : 16/08/2008 Messages : 467
Sujet: Re: [VX] Script de lvl up custom Lun 3 Nov 2008 - 16:49