RMRK is retiring.
Server is paid up for the rest of 2026, but the forum may go after that. See here for more information. Please archive or save anything you would like to keep before 2027.
Main Menu
  • Welcome to The RPG Maker Resource Kit.

Level up Box

Started by nevfx, December 12, 2006, 05:02:21 PM

0 Members and 1 Guest are viewing this topic.

nevfx

    Level up Box
    Version: 1.0

    Introduction

    This script is not mine. I noticed how many people here were asking for level up notifiers, and that some people couldn't grasp how to use the ones already on this forum. Therefore, I found this one on Dubealex and thought I should put it here.

    Features


    • Notifies you when you level up
    • Labels the character leveling up
    • Plays a sound of your choose when leveling up
    • Tells you if you learn a skill when leveling up, and plays a sound of your choose then too.

    Screenshots

    N/A- (Its just a box with words in)

    Demo

    N/A

    Script

    #================================================
    # Level Up Box
    #================================================
    #V 2
    #By Akxiv
    #Modified at 27. June 2006
    #==============================================================================
    #  Class Scene Battle
    #==============================================================================
    class Scene_Battle
    LEVEL_UP_SE = "Audio/ME/008-Fanfare02" # Soundeffect for Level UP
    LEVEL_UP_ME = "Audio/ME/007-Fanfare01" # Audio Sound for Level UP
    end
    class Window_SkillLearning < Window_Base
    SKILLLEARN_SE = "Audio/SE/106-Heal02" # Soundeffect if Skill learning
    end
    #==============================================================================
    # Window_LevelUpWindow
    #------------------------------------------------------------------------------
    #==============================================================================
    class Window_LevelUpWindow < Window_Base
    #--------------------------------------------------------------------------
    def initialize(x, y, actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
    # super(x, y, 160, 192)
    super(x-x, y-64, 160, 192+64)

    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.back_opacity = 160
    refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
    end
    #--------------------------------------------------------------------------
    def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.font.size = 20
    self.contents.font.name = "Arial"
    self.contents.draw_text( 20, 0, 160, 24, "LEVEL UP!!")
    self.contents.font.size = 20
    self.contents.font.name = "Arial"
    self.contents.draw_text( 0, 28+64, 160, 24, $data_system.words.hp)
    self.contents.draw_text( 0, 50+64, 160, 24, $data_system.words.sp)
    self.contents.font.size = 20
    self.contents.font.name = "Arial"
    self.contents.draw_text( 0, 0+64, 80, 24, "Level")
    self.contents.draw_text( 0, 72+64, 80, 24, $data_system.words.str[0,3])
    self.contents.draw_text( 0, 94+64, 80, 24, $data_system.words.dex[0,3])
    self.contents.draw_text( 0, 116+64, 80, 24, $data_system.words.agi[0,3])
    self.contents.draw_text( 0, 138+64, 80, 24, $data_system.words.int[0,3])
    self.contents.draw_text(76, 0+64, 128, 24, "=")
    self.contents.draw_text(76, 28+64, 128, 24, "=")
    self.contents.draw_text(76, 50+64, 128, 24, "=")
    self.contents.draw_text(76, 72+64, 128, 24, "=")
    self.contents.draw_text(76, 94+64, 128, 24, "=")
    self.contents.draw_text(76, 116+64, 128, 24, "=")
    self.contents.draw_text(76, 138+64, 128, 24, "=")
    self.contents.font.size = 20
    self.contents.font.color = normal_color
    self.contents.draw_text( 0, 0+64, 72, 24, "+" + (actor.level-last_lv).to_s, 2)
    self.contents.draw_text( 0, 28+64, 72, 24, "+" + up_hp.to_s, 2)
    self.contents.draw_text( 0, 50+64, 72, 24, "+" + up_sp.to_s, 2)
    self.contents.draw_text( 0, 72+64, 72, 24, "+" + up_str.to_s, 2)
    self.contents.draw_text( 0, 94+64, 72, 24, "+" + up_dex.to_s, 2)
    self.contents.draw_text( 0, 116+64, 72, 24, "+" + up_agi.to_s, 2)
    self.contents.draw_text( 0, 138+64, 72, 24, "+" + up_int.to_s, 2)
    self.contents.font.size = 20
    self.contents.font.name = "Arial"
    self.contents.draw_text( 0, 0+64, 128, 24, actor.level.to_s, 2)
    self.contents.draw_text( 0, 26+64, 128, 24, actor.maxhp.to_s, 2)
    self.contents.draw_text( -40, 26, 128, 24, actor.name, 2)
    self.contents.draw_text( 0, 48+64, 128, 24, actor.maxsp.to_s, 2)
    self.contents.draw_text( 0, 70+64, 128, 24, actor.str.to_s, 2)
    self.contents.draw_text( 0, 92+64, 128, 24, actor.dex.to_s, 2)
    self.contents.draw_text( 0, 114+64, 128, 24, actor.agi.to_s, 2)
    self.contents.draw_text( 0, 136+64, 128, 24, actor.int.to_s, 2)
    end
    end
    #==============================================================================
    # ¡ Window_SkillLearning
    #==============================================================================
    class Window_SkillLearning < Window_Base
    #--------------------------------------------------------------------------
    attr_reader :learned
    #--------------------------------------------------------------------------

    def initialize(class_id, last_lv, now_lv)
    super(160, 64-32, 320, 64)

    self.contents = Bitmap.new(width - 32, height - 28)
    self.visible = false
    self.back_opacity = 160
    @learned = false
    refresh(class_id, last_lv, now_lv)
    end
    #--------------------------------------------------------------------------

    def refresh(class_id, last_lv, now_lv)
    for i in 0...$data_classes[class_id].learnings.size
    learn_lv = $data_classes[class_id].learnings[i].level
    if learn_lv > last_lv and learn_lv <= now_lv
    @learned = true
    if SKILLLEARN_SE != "Audio/SE/157-Skill1" #SE for Skilllearning
    Audio.se_play(SKILLLEARN_SE)
    end
    skill_name = $data_skills[$data_classes[class_id].learnings[i].skill_id].name
    self.contents.clear
    self.contents.font.name = "Arial"
    self.contents.draw_text(0,0,448,32, skill_name + " learned !!") #Skillname and then your text (here is for example Cut learned !!)
    self.visible = true
    loop do
    Graphics.update
    Input.update
    update
    if @learned == false
    break
    end
    end
    end
    end
    end
    #--------------------------------------------------------------------------
    def update
    if Input.trigger?(Input::C)
    @learned = false
    self.visible = false
    end
    end
    end
    #==============================================================================
    # Window_BattleStatus
    #==============================================================================
    class Window_BattleStatus < Window_Base
    #--------------------------------------------------------------------------
    attr_accessor :level_up_flags # LEVEL UP!
    end
    #==============================================================================
    # Scene_Battle
    #==============================================================================
    class Scene_Battle
    #--------------------------------------------------------------------------
    alias xrxs_bp10_start_phase5 start_phase5
    def start_phase5
    xrxs_bp10_start_phase5
    @exp_gained = battle_exp
    for i in 0...$game_party.actors.size
    actor = $game_party.actors[i]
    if actor.cant_get_exp? == false
    last_level = actor.level
    actor.exp -= @exp_gained
    if actor.level < last_level
    @status_window.level_up_flags[i] = false
    end
    end
    end
    @exp_gain_actor = -1
    @result_window.visible = true
    end
    #--------------------------------------------------------------------------
    alias xrxs_bp10_update_phase5 update_phase5
    def update_phase5
    @level_up_phase_done = false if @level_up_phase_done != true
    if Input.trigger?(Input::C)
    @levelup_window.visible = false if @levelup_window != nil
    @status_window.level_up_flags[@exp_gain_actor] = false
    @level_up_phase_done = phase5_next_levelup
    end
    if @level_up_phase_done
    if @phase5_wait_count < 2
    @result_window.opacity = 0
    @result_window.back_opacity = 0
    @result_window.contents_opacity = 0
    end
    xrxs_bp10_update_phase5
    battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
    end
    end
    #--------------------------------------------------------------------------
    def phase5_next_levelup
    begin
    @exp_gain_actor += 1
    if @exp_gain_actor >= $game_party.actors.size
    return true
    end
    actor = $game_party.actors[@exp_gain_actor]
    if actor.cant_get_exp? == false
    last_level = actor.level
    last_maxhp = actor.maxhp
    last_maxsp = actor.maxsp
    last_str = actor.str
    last_dex = actor.dex
    last_agi = actor.agi
    last_int = actor.int
    actor.exp += @exp_gained
    if actor.level > last_level
    @status_window.level_up(@exp_gain_actor)
    @result_window.visible = false
    if LEVEL_UP_SE != ""
    Audio.se_play(LEVEL_UP_SE)
    end
    if LEVEL_UP_ME != ""
    Audio.me_stop
    Audio.me_play(LEVEL_UP_ME)
    end
    actors_size = [$game_party.actors.size, 4].max
    x_shift = 160 + (640 - 160*actors_size)/(actors_size - 1)
    x = x_shift * @exp_gain_actor
    y = 128
    @levelup_window = Window_LevelUpWindow.new(x, y, actor, last_level,
    actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
    actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
    @levelup_window.visible = true
    @status_window.refresh
    @skilllearning_window = Window_SkillLearning.new(actor.class_id, last_level, actor.level)
    @phase5_wait_count = 40
    return false
    end
    end
    end until false
    end

    def battle_exp
    bexp = 0
    for enemy in $game_troop.enemies
    unless enemy.hidden
    bexp += enemy.exp
    end
    end
    return bexp
    end

    end


    Instructions

    Simply change the various sound effects that take place when leveling up- labelled in script.

    Compatibility

    Will only properly work on the normal and untampered Battle System script.

    Credits and Thanks


    • Akxiv, on Dubealex,m originally posted this script.

    Author's Notes

    Please note this is not my script, but I can use it, so any problems, please, ask me.

    Blizzard

    Lol, Easy LvlUp Notifier is how I named my script, this script is called Level Up Box. *fixes* ^^
    Get King of Booze for Android, for iOS, for OUYA or for Windows!
    Visit our website.
    You can also love/hate us on Facebook or the game itself.



    Get DropBox, the best free file syncing service there is!

    nevfx

    Thanks, I tried to change it, but my computer crashed.