AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

Partagez
 

 Modification du script de level up.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Modification du script de level up. Empty
MessageSujet: Modification du script de level up.   Modification du script de level up. Icon_minitimeJeu 30 Oct 2008 - 15:20

Bonjour ^^
J'ai vu le script intéressant qu'a posté akakin ici : [url] https://rpg-maker-vx.bbactif.com/partage-de-scripts-f24/script-de-lvl-up-custom-t2321.htm#28290[/url]
Je l'ai un peu modifié pour qu'il donne l'XP restante pour le prochain niveau.

Modification du script de level up. Rapport066983

Je voudrais savoir si c'était possible, d'afficher dans tous les cas, une fenêtre avant celle ci qui indique le drop et l'expérience, et l'argent obtenu.

Merci d'avance

Le script modifié :
Code:

module LevelUpDisplayConfig
#--------------------------------------------------------------------------
# * General Configuration Options
#--------------------------------------------------------------------------
  # Nom du windowskin, sans l'extension
  WINDOWSKIN_NAME = 'Window'
  # Le SE joué lorsque que la fenêtre apparaît
  LEVEL_UP_SE = 'Recovery'
  # Le  volume du SE
  LEVEL_UP_SE_VOLUME = 80
  # Afficher la fenêtre de compétence ?
  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 = 225
WINDOW_HEIGHT = 250
SUB_WINDOW_HEIGHT = 45

end
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeJeu 30 Oct 2008 - 15:21

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), 30, 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
    @exp = actor.next_rest_exp_s
    update
    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)
    self.contents.draw_text(@col_one_offset, y_incr+10, 110, WLH, "Exp. restante : ")
    #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)
    self.contents.draw_text(@col_two_offset+40, y_incr+10, 200, WLH, @exp)
    #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
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeDim 9 Nov 2008 - 10:32

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
Revenir en haut Aller en bas
Altair19
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 30
Inscrit le : 16/08/2008
Messages : 467

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeDim 9 Nov 2008 - 14:02

Merci du partage Blockade ! Je vais l'utiliser car je le trouve mieux que celui que j'ai déjà !
( le tiens est mieux car il affiche clairement les compétences et aussi parce qu'il indique l'expérience pour le prochain niveau ! )
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeDim 9 Nov 2008 - 16:56

Oui ^^' Mais j'ai une requête pour les scripteurs avancés :

Blockade a écrit:
Je voudrais savoir si c'était possible, d'afficher dans tous les cas, une fenêtre avant celle ci qui indique le drop et l'expérience, et l'argent obtenu.

Comment faire pour faire apparaître, une fenêtre lors du drop, puis la faire disparaite ?
Comment afficher le drop ?
Tous ça à la fin du combat.
Merci d'avence
Revenir en haut Aller en bas
adrezo
Vagabond Lv.5
Vagabond Lv.5
adrezo


Inscrit le : 17/07/2008
Messages : 89

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeDim 9 Nov 2008 - 17:14

Ca m'intéresserait bien comme fenêtre ça. Smile
Au boulot les scripteurs Wink
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeMar 11 Nov 2008 - 20:23

Je me suis débrouillée toute suele finalement :

https://rpg-maker-vx.bbactif.com/partage-de-scripts-f24/rapport-de-combat-t2537.htm

Merci quand même :p
Revenir en haut Aller en bas
Fred 020
Mage Lv.11
Mage Lv.11
avatar


Masculin Age : 32
Inscrit le : 02/10/2008
Messages : 611

Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitimeMar 11 Nov 2008 - 20:34

Évidemment Blockade à le don pour ça Wink mais moi je suis nul en script j'y comprends rien...
Revenir en haut Aller en bas
Contenu sponsorisé




Modification du script de level up. Empty
MessageSujet: Re: Modification du script de level up.   Modification du script de level up. Icon_minitime

Revenir en haut Aller en bas
 

Modification du script de level up.

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» script modification de la vie des ennemis
» modification de script
» Modification de script
» Modification de script
» Modification du script FF7

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Requêtes :: Archives-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit