RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Could any1 help me out with this script please?

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 88
ok, could you add an obtained skill notifier on this script?
Code: [Select]
class Game_Actor < Game_Battler
def exp=(exp)
  @exp = [[exp, 9999999].min, 0].max
  while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
    @level += 1
   
    # NEW - David
    $d_new_skill = nil
   
    for j in $data_classes[@class_id].learnings
      if j.level == @level
        learn_skill(j.skill_id)
   
        # NEW - David
        skill = $data_skills[j.skill_id]
        $d_new_skill = skill.name
   
      end
    end
  end
  while @exp < @exp_list[@level]
    @level -= 1
  end
  @hp = [@hp, self.maxhp].min
  @sp = [@sp, self.maxsp].min
end

#--------------------------------------------------------------------------
# * Get the current EXP
#--------------------------------------------------------------------------
def now_exp
  return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# * Get the next level's EXP
#--------------------------------------------------------------------------
def next_exp
  return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end

end

class Window_LevelUp < Window_Base

#----------------------------------------------------------------
def initialize(actor, pos)
  @actor = actor
  y = (pos * 120)
  super(280, y, 360, 120)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $fontface
  self.back_opacity = 255   
  if $d_dum == false
    refresh
  end
end

#----------------------------------------------------------------
def dispose
  super
end

#----------------------------------------------------------------
def refresh
  self.contents.clear
  self.contents.font.size = 18
  draw_actor_face(@actor, 4, 0)
  draw_actor_name(@actor, 111, 0)
  draw_actor_level(@actor, 186, 0)
  show_next_exp = @actor.level == 99 ? "---" : "#{@actor.next_exp}"
  min_bar = @actor.level == 99 ? 1 : @actor.now_exp
  max_bar = @actor.level == 99 ? 1 : @actor.next_exp
  draw_slant_bar(115, 80, min_bar, max_bar, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255))
  self.contents.draw_text(115, 24, 300, 32, "Exp:#{@actor.now_exp}")
  self.contents.draw_text(115, 48, 300, 32, "Level Up:" + show_next_exp)
end


#----------------------------------------------------------------
def level_up
  self.contents.font.color = system_color
  self.contents.draw_text(230, 48, 80, 32, "LEVEL UP!")
end

#----------------------------------------------------------------
def update
  super
end

end # of Window_LevelUp

#=================================
#Window_EXP
# Written by: David Schooley
#=================================

class Window_EXP < Window_Base

#----------------------------------------------------------------
def initialize(exp)
  super(0, 0, 280, 60)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $fontface
  self.back_opacity = 255
  refresh(exp)
end

#----------------------------------------------------------------
def dispose
  super
end

#----------------------------------------------------------------
def refresh(exp)
  self.contents.clear
  self.contents.font.color = system_color
  self.contents.draw_text(0, 0, 150, 32, "Exp Earned:")
  self.contents.font.color = normal_color
  self.contents.draw_text(180, 0, 54, 32, exp.to_s, 2)
end

#----------------------------------------------------------------
def update
  super
end

end # of Window_EXP

#=================================
#Window_Money_Items
# Written by: David Schooley
#=================================

class Window_Money_Items < Window_Base

#----------------------------------------------------------------
def initialize(money, treasures)
  @treasures = treasures
  super(0, 60, 280, 420)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $fontface
  self.back_opacity = 255
  refresh(money)
end

#----------------------------------------------------------------
def dispose
  super
end

#----------------------------------------------------------------
def refresh(money)
  @money = money
  self.contents.clear
 
  self.contents.font.color = system_color
  self.contents.draw_text(4, 4, 100, 32, "Items Found:")
  self.contents.font.color = normal_color
 
  y = 32
  for item in @treasures
    draw_item_name(item, 4, y)
    y += 32
  end
 
  cx = contents.text_size($data_system.words.gold).width
  self.contents.font.color = normal_color
  self.contents.draw_text(4, 340, 220-cx-2, 32, $game_party.gold.to_s, 2)
  self.contents.font.color = normal_color
  self.contents.draw_text(4, 300, 220-cx-2, 32, "+ " + @money.to_s, 2)
  self.contents.font.color = system_color
  self.contents.draw_text(124-cx, 340, cx + 100, 32, $data_system.words.gold, 2)
end

def update
  super
end

end # of Window_Money_Items


class Scene_Battle
alias raz_battle_report_main main
alias raz_battle_report_be battle_end

def main
  # NEW - David
  #$battle_end = false
  @lvup_window = []
  @show_dummies = true # Show dummy windows or not?
  raz_battle_report_main
  # NEW - David
  @lvup_window = nil
  @level_up = nil
  @ch_stats = nil
  @ch_compare_stats = nil
end

def battle_end(result)
  raz_battle_report_be(result)
  # NEW - David
  @status_window.visible = false
  @spriteset.dispose
  Graphics.transition
  if result == 0
    display_lv_up(@exp, @gold, @treasures)
    loop do
      Graphics.update
      Input.update
      if Input.trigger?(Input::C)
        break
      end
    end
    trash_lv_up
  end

end
 
def start_phase5
  @phase = 5
  $game_system.me_play($game_system.battle_end_me)
  $game_system.bgm_play($game_temp.map_bgm)
  exp = 0
  gold = 0
  treasures = []
  for enemy in $game_troop.enemies
    unless enemy.hidden
      exp += enemy.exp
      gold += enemy.gold
      if rand(100) < enemy.treasure_prob
        if enemy.item_id > 0
          treasures.push($data_items[enemy.item_id])
        end
        if enemy.weapon_id > 0
          treasures.push($data_weapons[enemy.weapon_id])
        end
        if enemy.armor_id > 0
          treasures.push($data_armors[enemy.armor_id])
        end
      end
    end
  end
  treasures = treasures[0..5]

  # NEW - David
  @treasures = treasures
  @exp  = exp
  @gold = gold

 
  for item in treasures
    case item
    when RPG::Item
      $game_party.gain_item(item.id, 1)
    when RPG::Weapon
      $game_party.gain_weapon(item.id, 1)
    when RPG::Armor
      $game_party.gain_armor(item.id, 1)
    end
  end
  @phase5_wait_count = 10
end

def update_phase5
  if @phase5_wait_count > 0
    @phase5_wait_count -= 1
    if @phase5_wait_count == 0
     
      # NEW - David
      $game_temp.battle_main_phase = false       
    end
    return
  end

  # NEW - David
    battle_end(0)

end

def display_lv_up(exp, gold, treasures)
 
  $d_dum = false
  d_extra = 0
  i = 0
  for actor in $game_party.actors
      # Fill up the Lv up windows
      @lvup_window[i] = Window_LevelUp.new($game_party.actors[i], i)
      i += 1
  end

  # Make Dummies
  if @show_dummies == true
    $d_dum = true
    for m in i..3
      @lvup_window[m] = Window_LevelUp.new(m, m)
    end
  end
 
  @exp_window = Window_EXP.new(exp)
  @m_i_window = Window_Money_Items.new(gold, treasures)
  @press_enter = nil
  gainedexp = exp
  @level_up = [0, 0, 0, 0]
  @d_new_skill = ["", "", "", ""]
  @d_breakout = false
  @m_i_window.refresh(gold)
  wait_for_OK

  @d_remember = $game_system.bgs_memorize
  Audio.bgs_play("Audio/SE/032-Switch01", 100, 300)
 
  # NEW - David
  max_exp = exp
  value = 28
  for n in 0..gainedexp - (max_exp / value)
    exp -= (max_exp / value)
    if @d_breakout == false
      Input.update
    end
   
    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 += (max_exp / value)
        # Fill up the Lv up windows
        if @d_breakout == false
          @lvup_window[i].refresh
          @exp_window.refresh(exp)
        end
       
        if actor.level > last_level
          @level_up[i] = 5
          Audio.se_play("Audio/SE/056-Right02.ogg", 70, 150)
          if $d_new_skill
            @d_new_skill[i] = $d_new_skill
          end
        end
       
        if @level_up[i] == 0
          @d_new_skill[i] = ""
        end
       
        if @level_up[i] > 0
          @lvup_window[i].level_up
        end
       
        if Input.trigger?(Input::C) or exp <= 0
          @d_breakout = true
        end
      end
     
      if @d_breakout == false
        if @level_up[i] >0
          @level_up[i] -= 1
        end
        Graphics.update
      end
    end
   
    if @d_breakout == true
      for i in 0...$game_party.actors.size
        actor = $game_party.actors[i]
        if actor.cant_get_exp? == false
          actor.exp += exp
        end
      end
      exp = 0
      break
    end
  end
  Audio.bgs_stop
  @d_remember = $game_system.bgs_restore
 
  for i in 0...$game_party.actors.size
    @lvup_window[i].refresh
  end
  @exp_window.refresh(exp)
  Audio.se_play("Audio/SE/006-System06.ogg", 70, 150)
  $game_party.gain_gold(gold)
  @m_i_window.refresh(0)
  Graphics.update
end

def trash_lv_up
  # NEW - David
  i=0
 
  for i in 0 ... 4
    @lvup_window[i].visible = false
  end
  @exp_window.visible = false
  @m_i_window.visible = false
  @lvup_window = nil
  @exp_window = nil
  @m_i_window = nil
end

# Wait until OK key is pressed
def wait_for_OK
  loop do
    Input.update
    Graphics.update
    if Input.trigger?(Input::C)
      break
    end
  end
end

end

class Window_Base < Window
def draw_actor_face(actor, x, y)
  bitmap = RPG::Cache.picture("Faces/" + actor.character_name)
  self.contents.blt(x, y, bitmap, Rect.new(0,0,96,96))
end

#--------------------------------------------------------------------------
# * Draw Slant Bar(by SephirothSpawn)
#--------------------------------------------------------------------------
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
    bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
  # Draw Border
  for i in 0..height
    self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
  end
  # Draw Background
  for i in 1..(height - 1)
    r = 100 * (height - i) / height + 0 * i / height
    g = 100 * (height - i) / height + 0 * i / height
    b = 100 * (height - i) / height + 0 * i / height
    a = 255 * (height - i) / height + 255 * i / height
    self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
  end
  # Draws Bar
  for i in 1..( (min / max.to_f) * width - 1)
    for j in 1..(height - 1)
      r = bar_color.red * (width - i) / width + end_color.red * i / width
      g = bar_color.green * (width - i) / width + end_color.green * i / width
      b = bar_color.blue * (width - i) / width + end_color.blue * i / width
      a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
      self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
    end
  end
end

end


Screenies