Independents
Vemos que no estas registrado, ingresa ahora y Registrate es 100% Gratis, acércate a esta gran comunidad.
Conectarse

Recuperar mi contraseña

Últimos temas
» holas soy zeroch
por zeroch Lun Feb 09, 2015 1:07 pm

» Trilogía Maze Runner (Descarga Directa)
por ZunnerX Jue Mar 21, 2013 10:23 pm

» Blood: The last Vampire [WZF] [MU]
por shinder Lun Sep 17, 2012 12:21 pm

» Wall-E Modding
por shinder Lun Sep 17, 2012 12:19 pm

» Solicitudes SorteosNet.tk
por ZunnerX Sáb Ago 11, 2012 1:54 am

IRG ChatBox

Level Up Display Window

Ver el tema anterior Ver el tema siguiente Ir abajo

Level Up Display Window

Mensaje por ZunnerX el Vie Oct 22, 2010 12:13 pm

Este script hace que se abra una ventana al finalizar la batalla en la cual veras lo que incrementa el subir de nivel de tu personaje.

este script es gracias a: BigEd781
capturas de: The Reap3r




Instrucciones:

  1. Copiar el código y pegarlo encima de "Main"
  2. Poner el nombre que desees o por defecto: LevelUp Display Window


Recordar que está en ingles, pero es fácil encontrar las líneas de edición.


Código:
#-------------------- Level Up Stat and Display Window --------------------
#------------------------------ By BigEd781 -------------------------------
#                          .www.rpgrevolution.com.
#
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

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
#============================================================================
# * 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("N. %s", 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




Capturas

Spoiler:





ZunnerX

Mensajes : 108
Fecha de inscripción : 11/07/2010
Localización : .:Dead Valley:.

http://independents.tk

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.