[XP] Easy LvlUp Notifier

Started by Blizzard, January 09, 2008, 04:40:24 pm

Previous topic - Next topic

Blizzard

Where did you put it in the script editor? You did put it on the very bottom, did you? Are you using a custom battle system?
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

Its the last one above main,
and yes I do in the game where I tested it in
but I figured that it would cause a problem and cut it out, then saved and re-opened it beforehands
there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

Make a small demo with all your scripts inside and I'll take a look at that.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

December 02, 2009, 04:00:10 pm #23 Last Edit: December 02, 2009, 06:08:27 pm by Ninjason
I will do that, but cant do it right now unfortunately.

I even tried to isolate the problem and even with only Ccoas UMS-script and your modified level notifier the problem is stil the same

I will upload the demo later tonight.

Thank you for you effort and time.
there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

I can't download it, I always get redirected to the main page of the site. O_o Can you upload it on sendspace?
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

December 03, 2009, 06:03:46 am #26 Last Edit: December 03, 2009, 06:08:42 am by Blizzard
How weird. It had an error where "forgotten" skills would actually be displayed instead of learned skills, but it worked totally fine during my testing. I probably just did a mistake when optimizing the code afterwards and not testing it again. Anyway, I updated my post from before with a fixed version.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

Thank you. It works perfectly now.

I was wondering... Custom battle systems - do they always mess up this script?

Because now that I looked a little into how your script works,
I find that the ATB script im using in another game,
also uses a Lvlup notifier, but has no skill notifier and refuses to let your skill notifier work with it.
there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

No, only if they alter the battle scene flow in such a way that it simply doesn't work like the default anymore. i.e. RTAB does mess up a lot of stuff and I'm not entirely sure if start_phase5 (which is probably the only critical method here) works normally. Which battle system is it exactly? Also, you should try putting my script below his. That could solve the problem.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

December 03, 2009, 04:50:37 pm #29 Last Edit: December 04, 2009, 09:11:53 am by game_guy
There are some really strange letters mixed into this code, but it does a nice ATB (not on the map)
Placing your script beneath it does work, however the atb's level up pop up wont disappear...

Screenshot
Spoiler: ShowHide



Script
Spoiler: ShowHide
#==============================================================================
# ¦ New_Battle
#------------------------------------------------------------------------------
# Compiled By : MakirouAru
#==============================================================================
# ¥£¥ XRXS_BP 3. Ÿ--˜ŽžHP‰ñ•œ ver.1.01 ¥£¥
# by fukuyama, ÷‰ë Ý"y

# Battle_End_Recovery
#
# í"¬Œã,̉ñ•œˆ--ƒ,ƒWƒ...[ƒ‹
#
# Request: stay
# Script: fukuyama
# Test: ƒmƒRƒmŽq
#
# URL: http://www4.big.or.jp/~fukuyama/rgss/Battle_End_Recovery.txt
#

module Battle_End_Recovery

module Scene_Battle_Module

  # ‰ñ•œ--¦•Ï",ÌID
  @@recovery_rate_variable_id = nil

  # ‰ñ•œ--¦,ÌŽæ"¾
  def battle_end_recovery_rate
    if @@recovery_rate_variable_id.nil?
      @@recovery_rate_variable_id =
        $data_system.variables.index 'í"¬Œã,̉ñ•œ--¦'
      if @@recovery_rate_variable_id.nil?
        @@recovery_rate_variable_id = false
      end
    end
    return 0 unless @@recovery_rate_variable_id
    return $game_variables[@@recovery_rate_variable_id]
  end

  # í"¬Œã,̉ñ•œˆ--
  def battle_end_recovery

    # ‰ñ•œ--¦
    recovery_rate = battle_end_recovery_rate
   
    # ‰ñ•œ--¦•Ï",ª,OˆÈŠO,©,ƒAƒNƒ^[,ª¶'¶,µ,Ä,¢,éê‡Aí"¬Œã,̉ñ•œˆ--,ðs,¤
    if recovery_rate != 0 and not actor.dead?

      # ƒp[ƒeƒB,̃AƒNƒ^[-ˆ,Ƀ‹[ƒv
      $game_party.actors.each do |actor|

        # ‰ñ•œ--ÊŒvŽZ
        recovery_hp = (actor.maxhp / 100.0 * recovery_rate).truncate
        recovery_sp = (actor.maxsp / 100.0 * recovery_rate).truncate

        # ŽÀÛ,ɉñ•œ
        actor.hp += recovery_hp
        actor.sp += recovery_sp

        # ƒAƒjƒ[ƒVƒ‡ƒ"Ý'è
        actor.damage = - recovery_hp
        actor.damage_pop = true

      end

      # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ðXV
      @status_window.refresh

    end
  end

end # module Scene_Battle_Module
end # module Battle_End_Recovery

#------------------------------
# í"¬ƒV[ƒ",̍Ä'è‹`
#------------------------------
class Scene_Battle

# Scene_Battle--pƒ,ƒWƒ...[ƒ‹,ðƒCƒ"ƒNƒ‹[ƒh
include Battle_End_Recovery::Scene_Battle_Module

# Œ³,̃tƒF[ƒY,TŠJŽn,É•Ê-¼,ð,Â,¯,é
alias battle_end_recovery_original_start_phase5 start_phase5

# ƒtƒF[ƒY,TŠJŽn,ðÄ'è‹`
def start_phase5

  # í"¬Œã,̉ñ•œˆ--,ðŒÄ,яo,·
  battle_end_recovery

  # Œ³,̃tƒF[ƒY,TŠJŽn,ðŒÄ,яo,·
  battle_end_recovery_original_start_phase5

end
end

# Battle_End_Recovery
# ¥£¥ XRXS_BP10. LEVEL UP!ƒEƒBƒ"ƒhƒE ¥£¥
# by ÷‰ë Ý"y

$data_system_level_up_se = ""                       # ƒŒƒxƒ‹ƒAƒbƒvSEB"",Å-³,µB
$data_system_level_up_me = "Audio/ME/007-Fanfare01" # ƒŒƒxƒ‹ƒAƒbƒvME

#==============================================================================
# ¡ Window_LevelUpWindow
#------------------------------------------------------------------------------
# @ƒoƒgƒ‹I--¹ŽžAƒŒƒxƒ‹ƒAƒbƒv,µ,½ê‡,ɃXƒe[ƒ^ƒX,ð•\Ž¦,·,éƒEƒBƒ"ƒhƒE,Å,·B
#==============================================================================
class Window_LevelUpWindow < Window_Base
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  super(0, 128, 160, 192)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.visible = false
  refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ...
#--------------------------------------------------------------------------
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.name = "Arial"
  self.contents.font.size = 16
  self.contents.draw_text( 0,   0, 160, 24, "LEVEL UP!!")
  self.contents.font.size = 14
  self.contents.draw_text( 0,  28, 160, 24, $data_system.words.hp)
  self.contents.draw_text( 0,  50, 160, 24, $data_system.words.sp)
  self.contents.font.size = 14
  self.contents.draw_text( 0,  72,  80, 24, $data_system.words.str)
  self.contents.draw_text( 0,  94,  80, 24, $data_system.words.dex)
  self.contents.draw_text( 0, 116,  80, 24, $data_system.words.agi)
  self.contents.draw_text( 0, 138,  80, 24, $data_system.words.int)
  self.contents.draw_text(92,   0, 128, 24, "¨")
  self.contents.draw_text(76,  28, 128, 24, "=")
  self.contents.draw_text(76,  50, 128, 24, "=")
  self.contents.draw_text(76,  72, 128, 24, "=")
  self.contents.draw_text(76,  94, 128, 24, "=")
  self.contents.draw_text(76, 116, 128, 24, "=")
  self.contents.draw_text(76, 138, 128, 24, "=")
  self.contents.font.color = normal_color
  self.contents.draw_text( 0,   0,  88, 24, last_lv.to_s, 2)
  self.contents.draw_text( 0,  28,  72, 24, "+" + up_hp.to_s, 2)
  self.contents.draw_text( 0,  50,  72, 24, "+" + up_sp.to_s, 2)
  self.contents.draw_text( 0,  72,  72, 24, "+" + up_str.to_s, 2)
  self.contents.draw_text( 0,  94,  72, 24, "+" + up_dex.to_s, 2)
  self.contents.draw_text( 0, 116,  72, 24, "+" + up_agi.to_s, 2)
  self.contents.draw_text( 0, 138,  72, 24, "+" + up_int.to_s, 2)
  self.contents.font.size = 14
  self.contents.draw_text( 0,   0, 128, 24, actor.level.to_s, 2)
  self.contents.draw_text( 0,  26, 128, 24, actor.maxhp.to_s, 2)
  self.contents.draw_text( 0,  48, 128, 24, actor.maxsp.to_s, 2)
  self.contents.draw_text( 0,  70, 128, 24, actor.str.to_s, 2)
  self.contents.draw_text( 0,  92, 128, 24, actor.dex.to_s, 2)
  self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
  self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
end
end
#==============================================================================
# ¡ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# œ 'ljÁEŒöŠJƒCƒ"ƒXƒ^ƒ"ƒX•Ï"
#--------------------------------------------------------------------------
  attr_accessor :level_up_flags             # LEVEL UP!•\Ž¦
end
#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# œ 'ljÁEŒöŠJƒCƒ"ƒXƒ^ƒ"ƒX•Ï"
#--------------------------------------------------------------------------
attr_accessor :exp_gain_ban             # EXPŽæ"¾ˆêŽž‹ÖŽ~
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp10_initialize initialize
def initialize
  @exp_gain_ban = false
  xrxs_bp10_initialize
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒg [EXP ,ðŠl"¾,Å,«,È,¢] "»'è
#--------------------------------------------------------------------------
alias xrxs_bp10_cant_get_exp? cant_get_exp?
def cant_get_exp?
  if @exp_gain_ban == true
    return true
  else
    return xrxs_bp10_cant_get_exp?
  end
end
end
#==============================================================================
# ¡ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# œ ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp10_start_phase5 start_phase5
def start_phase5
  # EXP Šl"¾‹ÖŽ~
  for i in 0...$game_party.actors.size
    $game_party.actors[i].exp_gain_ban = true
  end
  xrxs_bp10_start_phase5
  # EXP Šl"¾‹ÖŽ~,̉ðœ
  for i in 0...$game_party.actors.size
    $game_party.actors[i].exp_gain_ban = false
  end
  # EXP,ð‰Šú‰»
  @exp_gained = 0
  for enemy in $game_troop.enemies
    # Šl"¾ EXP,ð'ljÁ         # ƒGƒlƒ~[,ª‰B,êó'Ô,Å,È,¢ê‡
    @exp_gained += enemy.exp if not enemy.hidden
  end
  # Ý'è
  @phase5_step       = 0
  @exp_gain_actor    = -1
  # ƒŠƒUƒ‹ƒgƒEƒBƒ"ƒhƒE,ð•\Ž¦
  @result_window.y -= 64
  @result_window.visible = true
  # ƒŒƒxƒ‹ƒAƒbƒv"»'è,Ö
  phase5_next_levelup
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY)
#--------------------------------------------------------------------------
alias xrxs_bp10_update_phase5 update_phase5
def update_phase5
  case @phase5_step
  when 1
    update_phase5_step1
  else
    xrxs_bp10_update_phase5
    # ƒŒƒxƒ‹ƒAƒbƒv,µ,Ä,¢,éê‡,Í‹­§ƒoƒgƒ‹I--¹
    battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
  end
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY 1 : ƒŒƒxƒ‹ƒAƒbƒv)
#--------------------------------------------------------------------------
def update_phase5_step1
  # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::C)
    # ƒEƒBƒ"ƒhƒE,ð•Â,¶,ÄŽŸ,̃AƒNƒ^[,Ö
    @levelup_window.visible = false if @levelup_window != nil
    @status_window.level_up_flags[@exp_gain_actor] = false
    phase5_next_levelup
  end
end
#--------------------------------------------------------------------------
# œ ŽŸ,̃AƒNƒ^[,̃Œƒxƒ‹ƒAƒbƒv•\Ž¦,Ö
#--------------------------------------------------------------------------
def phase5_next_levelup
  begin
    # ŽŸ,̃AƒNƒ^[,Ö
    @exp_gain_actor += 1
    # ÅŒã,̃AƒNƒ^[,̏ꍇ
    if @exp_gain_actor >= $game_party.actors.size
      # ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
      @phase5_step = 0
      return
    end
    actor = $game_party.actors[@exp_gain_actor]
    if actor.cant_get_exp? == false
      # Œ»Ý,Ì"\--Í'l,ð•ÛŽ
      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
      # ŒoŒ±'lŽæ"¾,ÌŒˆ'è"IuŠÔ("ä
      actor.exp += @exp_gained
      # "»'è
      if actor.level > last_level
        # ƒŒƒxƒ‹ƒAƒbƒv,µ,½ê‡
        @status_window.level_up(@exp_gain_actor)
        if $data_system_level_up_se != ""
          Audio.se_stop
          Audio.se_play($data_system_level_up_se)
        end
        if $data_system_level_up_me != ""
          Audio.me_stop
          Audio.me_play($data_system_level_up_me)
        end
        @levelup_window = Window_LevelUpWindow.new(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.x = 160 * @exp_gain_actor
        @levelup_window.visible = true
        @phase5_wait_count = 40
        @phase5_step       =  1
        # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ðƒŠƒtƒŒƒbƒVƒ...
        @status_window.refresh
        return
      end
    end
  end until false
end
end
# ¥£¥ XRXS_17. ƒXƒŠƒbƒvƒ_ƒ[ƒW-hŒä^Œø‰Ê--ʏڍ׉» ver.1.51 ¥£¥
# by ÷‰ë Ý"y, fukuyama

#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# œ ƒXƒŠƒbƒvƒ_ƒ[ƒW,ÌŒø‰Ê"K--p
#--------------------------------------------------------------------------
alias xrxs_bp7_slip_damage_effect slip_damage_effect
def slip_damage_effect
  # "'l,̏‰Šú‰»
  slip_damage_percent = 0
  slip_damage_plus = 0
  # Œ»Ý•t‰Á,³,ê,Ä,¢,éƒXƒe[ƒg,Ì'†,©,çƒXƒŠƒbƒvƒ_ƒ[ƒW--L,è,̃,ƒm,ð'T,·
  for i in @states
    if $data_states[i].slip_damage
      # ,»,̃Xƒe[ƒg,ªŽ,Á,Ä,¢,éƒXƒŠƒbƒvƒ_ƒ[ƒW,Ì
      # Lvƒvƒ‰ƒXƒXƒe[ƒg,Ü,½,ÍLvƒ}ƒCƒiƒXƒXƒe[ƒg,ð"»'èB
      for j in $data_states[i].plus_state_set
        if $data_states[j] != nil
          if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|")/
            slip_damage_percent += $1.to_i
          elsif $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/
            slip_damage_plus += $1.to_i
          end
        end
      end
      for j in $data_states[i].minus_state_set
        if $data_states[j] != nil
          if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|")/
            slip_damage_percent -= $1.to_i
          elsif $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/
            slip_damage_plus -= $1.to_i
          end
        end
      end
    end
  end
  if slip_damage_percent == 0 and slip_damage_plus == 0
    xrxs_bp7_slip_damage_effect
  else
    # -h‹ï,ªƒXƒŠƒbƒv-hŒä,ª, ,éê‡,ð"»'è
    for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
      armor = $data_armors[i]
      next if armor == nil
      for j in armor.guard_state_set
        if $data_states[j] != nil
          if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|")/
            if slip_damage_percent > 0
              slip_damage_percent = [slip_damage_percent - $1.to_i, 0].max
            end
          end
          if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/
            if slip_damage_percent > 0
              slip_damage_plus = [slip_damage_plus - $1.to_i, 0].max
            end
          end
        end
      end
    end
    # ƒ_ƒ[ƒW,ðÝ'è
    self.damage = self.maxhp * slip_damage_percent / 100 + slip_damage_plus
    # •ªŽU
    if self.damage.abs > 0
      amp = [self.damage.abs * 15 / 100, 1].max
      self.damage += rand(amp+1) + rand(amp+1) - amp
    end
    # HP ,©,çƒ_ƒ[ƒW,ðŒ¸ŽZ
    self.hp -= self.damage
    # ƒƒ\ƒbƒhI--¹
    return true
  end
end
end
# ¥£¥ XRXS_BP 1. CP§"±"ü ver.15 ¥£¥
# by ÷‰ë Ý"y, ˜aŠó, Jack-R

#==============================================================================
# ¡ Scene_Battle_CP
#==============================================================================
class Scene_Battle_CP
#--------------------------------------------------------------------------
# œ ŒöŠJƒCƒ"ƒXƒ^ƒ"ƒX•Ï"
#--------------------------------------------------------------------------
attr_accessor   :stop                   # CP‰ÁŽZƒXƒgƒbƒv
#----------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg,̏‰Šú‰»
#----------------------------------------------------------------------------
def initialize
  @battlers = []
  @cancel = false
  @agi_total = 0
  # "z--ñ @count_battlers ,ð‰Šú‰»
  @count_battlers = []
  # ƒGƒlƒ~[,ð"z--ñ @count_battlers ,É'ljÁ
  for enemy in $game_troop.enemies
    @count_battlers.push(enemy)
  end
  # ƒAƒNƒ^[,ð"z--ñ @count_battlers ,É'ljÁ
  for actor in $game_party.actors
    @count_battlers.push(actor)
  end
  for battler in @count_battlers
    @agi_total += battler.agi
  end
  for battler in @count_battlers
    battler.cp = [[65535 * (rand(15) + 85) / 100 * battler.agi / @agi_total * 4, 0].max, 65535].min
  end
end
#----------------------------------------------------------------------------
# œ CPƒJƒEƒ"ƒg,ÌŠJŽn
#----------------------------------------------------------------------------
def start
  if @cp_thread != nil then
    return
  end
  @cancel = false
  @stop = false
  # ,±,±,©,çƒXƒŒƒbƒh
  @cp_thread = Thread.new do
    while @cancel != true
      if @stop != true
        self.update # XV
        sleep(0.05)
      end
    end
  end
  # ,±,±,Ü,ŃXƒŒƒbƒh
end
#----------------------------------------------------------------------------
# œ CPƒJƒEƒ"ƒgƒAƒbƒv
#----------------------------------------------------------------------------
def update
  if @count_battlers != nil then
    for battler in @count_battlers
      # s"®o--ˆ,È,¯,ê,Î-³Ž‹
      if battler.dead? == true #or battler.movable? == false then
        battler.cp = 0
        next
      end
      # ,±,±,Ì 1.3,ð•Ï,¦,é,±,Æ,Ł«ƒXƒs[ƒh,ð•ÏX‰Â"\B,½,¾,µ¬""_,ÍŽg--p,·,é,±,ƁB
      battler.cp = [[battler.cp + 1.3 * 4096 * battler.agi / @agi_total, 0].max, 65535].min
    end
  end
end
#----------------------------------------------------------------------------
# œ CPƒJƒEƒ"ƒg,ÌŠJŽn
#----------------------------------------------------------------------------
def stop
  @cancel = true
  if @cp_thread != nil then
    @cp_thread.join
    @cp_thread = nil
  end
end
end
#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
attr_accessor :now_guarding             # Œ»Ý-hŒä'†ƒtƒ‰ƒO
attr_accessor :cp                       # Œ»ÝCP
attr_accessor :slip_state_update_ban    # ƒXƒŠƒbƒvEƒXƒe[ƒgŽ©"®ˆ--,Ì‹ÖŽ~
#--------------------------------------------------------------------------
# œ ƒRƒ}ƒ"ƒh"ü--͉Â"\"»'è
#--------------------------------------------------------------------------
def inputable?
  return (not @hidden and restriction <= 1 and @cp >=65535)
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒg [ƒXƒŠƒbƒvƒ_ƒ[ƒW] "»'è
#--------------------------------------------------------------------------
alias xrxs_bp1_slip_damage? slip_damage?
def slip_damage?
  return false if @slip_state_update_ban
  return xrxs_bp1_slip_damage?
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒgŽ©'R‰ðœ (ƒ^[ƒ",²,Æ,ÉŒÄ,яo,µ)
#--------------------------------------------------------------------------
alias xrxs_bp1_remove_states_auto remove_states_auto
def remove_states_auto
  return if @slip_state_update_ban
  xrxs_bp1_remove_states_auto
end
end
#==============================================================================
# ¡ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# œ ƒZƒbƒgƒAƒbƒv
#--------------------------------------------------------------------------
alias xrxs_bp1_setup setup
def setup(actor_id)
  xrxs_bp1_setup(actor_id)
  @hate = 100  # init-value is 100
  @cp = 0
  @now_guarding = false
  @slip_state_update_ban = false
end
end
#==============================================================================
# ¡ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp1_initialize initialize
def initialize(troop_id, member_index)
  xrxs_bp1_initialize(troop_id, member_index)
  @hate = 100  # init-value is 100
  @cp = 0
  @now_guarding = false
  @slip_state_update_ban = false
end
end
#==============================================================================
# ¡ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# œ ŒöŠJƒCƒ"ƒXƒ^ƒ"ƒX•Ï"
#--------------------------------------------------------------------------
attr_accessor   :update_cp_only                   # CPƒ[ƒ^[,Ì,Ý,̍XV
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp1_initialize initialize
def initialize
  @update_cp_only = false
  xrxs_bp1_initialize
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ...
#--------------------------------------------------------------------------
alias xrxs_bp1_refresh refresh
def refresh
  if @update_cp_only == false
    xrxs_bp1_refresh
  end
  for i in 0...$game_party.actors.size
    actor = $game_party.actors[i]
    actor_x = i * 160 + 4
    draw_actor_cp_meter(actor, actor_x, 96, 120, 0)
  end
end
#--------------------------------------------------------------------------
# œ CPƒ[ƒ^[ ,Ì•`‰æ
#--------------------------------------------------------------------------
def draw_actor_cp_meter(actor, x, y, width = 156, type = 0)
  self.contents.font.color = system_color
  self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  if actor.cp == nil
    actor.cp = 0
  end
  w = width * [actor.cp,65535].min / 65535
  self.contents.fill_rect(x, y+28, w,1, Color.new(255, 255, 128, 255))
  self.contents.fill_rect(x, y+29, w,1, Color.new(255, 255, 0, 255))
  self.contents.fill_rect(x, y+30, w,1, Color.new(192, 192, 0, 255))
  self.contents.fill_rect(x, y+31, w,1, Color.new(128, 128, 0, 255))
end
end
#==============================================================================
# ¡ Scene_Battle
#==============================================================================
class Scene_Battle
# ,±,±,ÉŒø‰Ê‰¹,ðÝ'è,·,é,ƁAƒAƒNƒ^[ƒRƒ}ƒ"ƒh,ªƒ|ƒbƒv,µ,½,Æ,«,ÉŒø‰Ê‰¹,ðÄ¶
$data_system_command_up_se = ""
#--------------------------------------------------------------------------
# œ ƒoƒgƒ‹I--¹
#     result : Œ‹‰Ê (0:Ÿ--˜ 1:"s-k 2:"¦'-)
#--------------------------------------------------------------------------
alias xrxs_bp1_battle_end battle_end
def battle_end(result)
  # CPƒJƒEƒ"ƒg'âŽ~
  @cp_thread.stop
  xrxs_bp1_battle_end(result)
end
#--------------------------------------------------------------------------
# œ ƒvƒŒƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp1_start_phase1 start_phase1
def start_phase1
  @agi_total = 0
  @cp_thread = Scene_Battle_CP.new
  # ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðÄì¬
  s1 = $data_system.words.attack
  s2 = $data_system.words.skill
  s3 = $data_system.words.guard
  s4 = $data_system.words.item
  @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, "Fliehen"])
  @actor_command_window.y = 128
  @actor_command_window.back_opacity = 160
  @actor_command_window.active = false
  @actor_command_window.visible = false
  @actor_command_window.draw_item(4, $game_temp.battle_can_escape ? @actor_command_window.normal_color : @actor_command_window.disabled_color)
  xrxs_bp1_start_phase1
end
#--------------------------------------------------------------------------
# œ ƒp[ƒeƒBƒRƒ}ƒ"ƒhƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp1_start_phase2 start_phase2
def start_phase2
  xrxs_bp1_start_phase2
  @party_command_window.active = false
  @party_command_window.visible = false
  # ŽŸ,Ö
  start_phase3
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒp[ƒeƒBƒRƒ}ƒ"ƒhƒtƒF[ƒY)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase2 update_phase2
def update_phase2
  # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::C)
    # ƒp[ƒeƒBƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,̃J[ƒ\ƒ‹ˆÊ'u,Å•ªŠò
    case @party_command_window.index
    when 0  # í,¤
      # Œˆ'è SE ,ð‰‰'t
      $game_system.se_play($data_system.decision_se)
      @cp_thread.start
      # ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒtƒF[ƒYŠJŽn
      start_phase3
    end
    return
  end
  xrxs_bp1_update_phase2
end
#--------------------------------------------------------------------------
# œ ŽŸ,̃AƒNƒ^[,̃Rƒ}ƒ"ƒh"ü--Í,Ö
#--------------------------------------------------------------------------
def phase3_next_actor
  # ƒ‹[ƒv
  begin
    # ƒAƒNƒ^[,Ì-¾-ŃGƒtƒFƒNƒg OFF
    if @active_battler != nil
      @active_battler.blink = false
    end
    # ÅŒã,̃AƒNƒ^[,̏ꍇ
    if @actor_index == $game_party.actors.size-1
      # ƒƒCƒ"ƒtƒF[ƒYŠJŽn
      @cp_thread.start
      start_phase4
      return
    end
    # ƒAƒNƒ^[,̃Cƒ"ƒfƒbƒNƒX,ði,ß,é
    @actor_index += 1
    @active_battler = $game_party.actors[@actor_index]
    @active_battler.blink = true
    if @active_battler.inputable? == false
      @active_battler.current_action.kind = -1
    end
    # ƒAƒNƒ^[,ªƒRƒ}ƒ"ƒh"ü--Í,ðŽó,¯•t,¯,È,¢ó'Ô,È,ç,à,¤ˆê"x
  end until @active_battler.inputable?
  @cp_thread.stop
  # ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðƒZƒbƒgƒAƒbƒv
  @active_battler.now_guarding = false
  phase3_setup_command_window
end
#--------------------------------------------------------------------------
# œ 'O,̃AƒNƒ^[,̃Rƒ}ƒ"ƒh"ü--Í,Ö
#--------------------------------------------------------------------------
def phase3_prior_actor
  # ƒ‹[ƒv
  begin
    # ƒAƒNƒ^[,Ì-¾-ŃGƒtƒFƒNƒg OFF
    if @active_battler != nil
      @active_battler.blink = false
    end
    # Å‰,̃AƒNƒ^[,̏ꍇ
    if @actor_index == 0
      # Å‰,Ö-ß,é
      start_phase3
      return
    end
    # ƒAƒNƒ^[,̃Cƒ"ƒfƒbƒNƒX,ð-ß,·
    @actor_index -= 1
    @active_battler = $game_party.actors[@actor_index]
    @active_battler.blink = true
    # ƒAƒNƒ^[,ªƒRƒ}ƒ"ƒh"ü--Í,ðŽó,¯•t,¯,È,¢ó'Ô,È,ç,à,¤ˆê"x
  end until @active_battler.inputable?
  @cp_thread.stop
  # ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðƒZƒbƒgƒAƒbƒv
  @active_battler.now_guarding = false
  phase3_setup_command_window
end
#--------------------------------------------------------------------------
# œ ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,̃ZƒbƒgƒAƒbƒv
#--------------------------------------------------------------------------
alias xrxs_bp1_phase3_setup_command_window phase3_setup_command_window
def phase3_setup_command_window
  # Œø‰Ê‰¹,̍ж
  Audio.se_play($data_system_command_up_se) if $data_system_command_up_se != ""
  # -ß,·
  xrxs_bp1_phase3_setup_command_window
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒtƒF[ƒY : Šî-{ƒRƒ}ƒ"ƒh)
#--------------------------------------------------------------------------
alias xrxs_bsp1_update_phase3_basic_command update_phase3_basic_command
def update_phase3_basic_command
  # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::C)
    # ƒAƒNƒ^[ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,̃J[ƒ\ƒ‹ˆÊ'u,Å•ªŠò
    case @actor_command_window.index
    when 4  # "¦,°,é
      if $game_temp.battle_can_escape
        # Œˆ'è SE ,ð‰‰'t
        $game_system.se_play($data_system.decision_se)
        # ƒAƒNƒVƒ‡ƒ",ðÝ'è
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 4
        # ŽŸ,̃AƒNƒ^[,̃Rƒ}ƒ"ƒh"ü--Í,Ö
        phase3_next_actor
      else
        # ƒuƒU[ SE ,ð‰‰'t
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
  xrxs_bsp1_update_phase3_basic_command
end
#--------------------------------------------------------------------------
# œ ƒƒCƒ"ƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp1_start_phase4 start_phase4
def start_phase4
  xrxs_bp1_start_phase4
  # ƒGƒlƒ~[ƒAƒNƒVƒ‡ƒ"ì¬
  for enemy in $game_troop.enemies
    if enemy.cp < 65535
      enemy.current_action.clear
      enemy.current_action.kind = -1 # ƒ^[ƒ""ò,Î,µB
      next
    end
    enemy.make_action
  end
  # s"®‡˜ì¬
  make_action_orders
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ"ƒtƒF[ƒY ƒXƒeƒbƒv 1 : ƒAƒNƒVƒ‡ƒ"€"õ)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step1 update_phase4_step1
def update_phase4_step1
  # ‰Šú‰»
  @phase4_act_continuation = 0
  # Ÿ"s"»'è
  if judge
    @cp_thread.stop
    # Ÿ--˜,Ü,½,Í"s-k,̏ꍇ : ƒƒ\ƒbƒhI--¹
    return
  end
  # -¢s"®ƒoƒgƒ‰["z--ñ,̐æ"ª,©,çŽæ"¾
  @active_battler = @action_battlers[0]
  # ƒXƒe[ƒ^ƒXXV,ðCP,¾,¯,ÉŒÀ'èB
  @status_window.update_cp_only = true
  # ƒXƒe[ƒgXV,ð‹ÖŽ~B
  @active_battler.slip_state_update_ban = true if @active_battler != nil
  # -ß,·
  xrxs_bp1_update_phase4_step1
  # ‹ÖŽ~,ð‰ðœ
  @status_window.update_cp_only = false
  @active_battler.slip_state_update_ban = false if @active_battler != nil
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ"ƒtƒF[ƒY ƒXƒeƒbƒv 2 : ƒAƒNƒVƒ‡ƒ"ŠJŽn)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step2 update_phase4_step2
def update_phase4_step2
  # ‹­§ƒAƒNƒVƒ‡ƒ",Å,È,¯,ê,Î
  unless @active_battler.current_action.forcing
    # CP,ª'«,è,Ä,¢,È,¢ê‡
    if @phase4_act_continuation == 0 and @active_battler.cp < 65535
      @phase4_step = 6
      return
    end
    # §-ñ,ª ["G,ð'ʏíUŒ,,·,é] ,© [-¡•û,ð'ʏíUŒ,,·,é] ,̏ꍇ
    if @active_battler.restriction == 2 or @active_battler.restriction == 3
      # ƒAƒNƒVƒ‡ƒ",ɍUŒ,,ðÝ'è
      @active_battler.current_action.kind = 0
      @active_battler.current_action.basic = 0
    end
    # §-ñ,ª [s"®,Å,«,È,¢] ,̏ꍇ
    if @active_battler.restriction == 4
      # ƒAƒNƒVƒ‡ƒ"‹­§'ΏÛ,̃oƒgƒ‰[,ðƒNƒŠƒA
      $game_temp.forcing_battler = nil
      if @phase4_act_continuation == 0 and @active_battler.cp >= 65535
        # ƒXƒe[ƒgŽ©'R‰ðœ
        @active_battler.remove_states_auto
        # CPÁ"ï
        @active_battler.cp = [(@active_battler.cp - 65535),0].max
        # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ðƒŠƒtƒŒƒbƒVƒ...
        @status_window.refresh
      end
      # ƒXƒeƒbƒv 1 ,Ɉڍs
      @phase4_step = 1
      return
    end
  end
  # ƒAƒNƒVƒ‡ƒ",ÌŽí•Ê,Å•ªŠò
  case @active_battler.current_action.kind
  when 0
    # UŒ,¥-hŒäE"¦,°,éE‰½,à,µ,È,¢Žž,Ì‹¤'ʏÁ"ïCP
    @active_battler.cp -=     0 if @phase4_act_continuation == 0
  when 1
    # ƒXƒLƒ‹Žg--pŽž,̏Á"ïCP
    @active_battler.cp -= 65535 if @phase4_act_continuation == 0
  when 2
    # ƒAƒCƒeƒ€Žg--pŽž,̏Á"ïCP
    @active_battler.cp -= 65535 if @phase4_act_continuation == 0
  when -1
    # CP,ª--­,Ü,Á,Ä,¢,È,¢
    @phase4_step = 6
    return
  end
  # CP‰ÁŽZ,ðˆêŽž'âŽ~,·,é
  @cp_thread.stop = true
  # ƒXƒe[ƒgŽ©'R‰ðœ
  @active_battler.remove_states_auto
  xrxs_bp1_update_phase4_step2
end
#--------------------------------------------------------------------------
# œ Šî-{ƒAƒNƒVƒ‡ƒ" Œ‹‰Êì¬
#--------------------------------------------------------------------------
alias xrxs_bp1_make_basic_action_result make_basic_action_result
def make_basic_action_result
  # UŒ,,̏ꍇ
  if @active_battler.current_action.basic == 0 and @phase4_act_continuation == 0
    @active_battler.cp -= 65535 # UŒ,Žž,ÌCPÁ"ï
  end
  # -hŒä,̏ꍇ
  if @active_battler.current_action.basic == 1 and @phase4_act_continuation == 0
    @active_battler.cp -= 32767 # -hŒäŽž,ÌCPÁ"ï
  end
  # "G,Ì"¦,°,é,̏ꍇ
  if @active_battler.is_a?(Game_Enemy) and
     @active_battler.current_action.basic == 2 and @phase4_act_continuation == 0
    @active_battler.cp -= 65535 # "¦'-Žž,ÌCPÁ"ï
  end
  # ‰½,à,µ,È,¢,̏ꍇ
  if @active_battler.current_action.basic == 3 and @phase4_act_continuation == 0
    @active_battler.cp -= 32767 # ‰½,à,µ,È,¢Žž,ÌCPÁ"ï
  end
  # "¦,°,é,̏ꍇ
  if @active_battler.current_action.basic == 4 and @phase4_act_continuation == 0
    @active_battler.cp -= 65535 # "¦'-Žž,ÌCPÁ"ï
    # "¦'-‰Â"\,Å,Í,È,¢ê‡
    if $game_temp.battle_can_escape == false
      # ƒuƒU[ SE ,ð‰‰'t
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # Œˆ'è SE ,ð‰‰'t
    $game_system.se_play($data_system.decision_se)
    # "¦'-ˆ--
    update_phase2_escape
    return
  end
  xrxs_bp1_make_basic_action_result
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ"ƒtƒF[ƒY ƒXƒeƒbƒv 5 : ƒ_ƒ[ƒW•\Ž¦)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step5 update_phase4_step5
def update_phase4_step5
  # ƒXƒŠƒbƒvƒ_ƒ[ƒW
  if @active_battler.hp > 0 and @active_battler.slip_damage?
    @active_battler.slip_damage_effect
    @active_battler.damage_pop = true
  end
  xrxs_bp1_update_phase4_step5
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ"ƒtƒF[ƒY ƒXƒeƒbƒv 6 : ƒŠƒtƒŒƒbƒVƒ...)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step6 update_phase4_step6
def update_phase4_step6
  # CP‰ÁŽZ,ðÄŠJ,·,é
  @cp_thread.stop = false
  # ƒwƒ‹ƒvƒEƒBƒ"ƒhƒE,ð‰B,·
  @help_window.visible = false
  xrxs_bp1_update_phase4_step6
end
end
# ¥£¥ XRXS_BP 7. ƒoƒgƒ‹ƒXƒe[ƒ^ƒXEƒNƒŠƒAƒfƒUƒCƒ" ver.1.02 ¥£¥
# by ÷‰ë Ý"y, TOMY

#==============================================================================
# ¡ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# œ ŒöŠJƒCƒ"ƒXƒ^ƒ"ƒX•Ï"
#--------------------------------------------------------------------------
attr_accessor   :update_cp_only                   # CPƒ[ƒ^[,Ì,Ý,̍XV
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp7_initialize initialize
def initialize
  xrxs_bp7_initialize
  # «Full-View,̏ꍇ,͉º"ñs,Ì # ,ðÁ,µ,Ä,­,¾,³,¢B
  #self.opacity = 0
  #self.back_opacity = 0
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ...
#--------------------------------------------------------------------------
alias xrxs_bp7_refresh refresh
def refresh
  if @update_cp_only
    xrxs_bp7_refresh
    return
  end
  # •`ŽÊ,ð‹ÖŽ~,µ,È,ª,ç-ß,·
  @draw_ban = true
  xrxs_bp7_refresh
  # •`ŽÊ,Ì‹ÖŽ~,ð‰ðœ
  @draw_ban = false
  # •`ŽÊ,ðŠJŽn
  @item_max = $game_party.actors.size
  for i in 0...$game_party.actors.size
    actor = $game_party.actors[i]
    actor_x = i * 160 + 21
    # •àsƒLƒƒƒ‰ƒOƒ‰ƒtƒBƒbƒN,Ì•`ŽÊ
    draw_actor_graphic(actor, actor_x - 9, 116)
    # HP/SPƒ[ƒ^[,Ì•`ŽÊ
    draw_actor_hp_meter_line(actor, actor_x,  72, 96, 12)
    draw_actor_sp_meter_line(actor, actor_x, 104, 96, 12)
    # HP"'l,Ì•`ŽÊ
    self.contents.font.size = 24            # HP/SP"'l,Ì•¶Žš,Ì'å,«,³
    self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    draw_shadow_text(actor_x-2, 58, 96, 24, actor.hp.to_s, 2)
    # SP"'l,Ì•`ŽÊ
    self.contents.font.color = actor.sp == 0 ? knockout_color :
      actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
    draw_shadow_text(actor_x-2, 90, 96, 24, actor.sp.to_s, 2)
    # --pŒêuHPv,Æ--pŒêuSPv,Ì•`ŽÊ
    self.contents.font.size = 12            # --pŒêuHP/SPv,Ì•¶Žš,Ì'å,«,³
    self.contents.font.color = system_color # --pŒêuHP/SPv,Ì•¶Žš,̐F
    draw_shadow_text(actor_x, 60, 96, 12, $data_system.words.hp)
    draw_shadow_text(actor_x, 92, 96, 12, $data_system.words.sp)
   
    draw_actor_state(actor, actor_x, 100)
  end
end
end
#==============================================================================
# ¡ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# œ HPƒ[ƒ^[ ,Ì•`‰æ
#--------------------------------------------------------------------------
def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)
  w = width * actor.hp / actor.maxhp
  hp_color_1 = Color.new(255,   0,   0, 192)
  hp_color_2 = Color.new(255, 255,   0, 192)
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  x -= 1
  y += (height/4).floor
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
end
#--------------------------------------------------------------------------
# œ SPƒ[ƒ^[ ,Ì•`‰æ
#--------------------------------------------------------------------------
def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)
  w = width * actor.sp / actor.maxsp
  hp_color_1 = Color.new(  0,   0, 255, 192)
  hp_color_2 = Color.new(  0, 255, 255, 192)
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  x -= 1
  y += (height/4).floor
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
end
#--------------------------------------------------------------------------
# œ -¼'O,Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_name draw_actor_name
def draw_actor_name(actor, x, y)
  xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒg,Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_state draw_actor_state
def draw_actor_state(actor, x, y, width = 120)
  xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true
end
#--------------------------------------------------------------------------
# œ HP ,Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_hp draw_actor_hp
def draw_actor_hp(actor, x, y, width = 144)
  xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true
end
#--------------------------------------------------------------------------
# œ SP ,Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_sp draw_actor_sp
def draw_actor_sp(actor, x, y, width = 144)
  xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true
end
end
#==============================================================================
# ž ŠO•"ƒ‰ƒCƒuƒ‰ƒŠ
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
# œ ƒ‰ƒCƒ"•`‰æ by ÷‰ë Ý"y
#--------------------------------------------------------------------------
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
  # •`ŽÊ‹----£,ÌŒvŽZB'å,«,ß,É'¼ŠpŽž,Ì'·,³B
  distance = (start_x - end_x).abs + (start_y - end_y).abs
  # •`ŽÊŠJŽn
  if end_color == start_color
    for i in 1..distance
      x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
      y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
      self.contents.fill_rect(x, y, width, width, start_color)
    end
  else
    for i in 1..distance
      x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
      y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
      r = start_color.red   * (distance-i)/distance + end_color.red   * i/distance
      g = start_color.green * (distance-i)/distance + end_color.green * i/distance
      b = start_color.blue  * (distance-i)/distance + end_color.blue  * i/distance
      a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
      self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
    end
  end
end

#--------------------------------------------------------------------------
# œ ‰e•¶Žš•`‰æ by TOMY
#--------------------------------------------------------------------------
def draw_shadow_text(x, y, width, height, string, align = 0)
  # Œ³,̐F,ð•Û'¶,µ,Ä,¨,­
  color = self.contents.font.color.dup
  # •Žš,ʼne•`‰æ
  self.contents.font.color = Color.new(0, 0, 0)
  self.contents.draw_text(x + 2, y + 2, width, height, string, align)
  # Œ³,̐F,É-ß,µ,Ä•`‰æ
  self.contents.font.color = color
  self.contents.draw_text(x, y, width, height, string, align)
end
end


Please use [code][/code] tags when posting code ~ G_G
there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

I fixed the script in my previous post. That should do it this time. Put it below the battle system.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

This error occured:

Screenshot
Spoiler: ShowHide
there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

Oops, my bad. Should be battle_end. I fixed my previous post again.
(This stuff happens when you code out of your head. >.<)
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ninjason

You, Sir, are a genius. It works perfectly, thank you again.

But just fyi: you noted the versions as being created in November 09, when it is really December.
there's only one Ninja an these are the scripts he currently uses:
* Easy Party Switcher by Blizzard (v2.43b)
* Universal Message System (v1.8.0) by Ccoa
* Active-Time-Battle by MakirouAru
* Catergorized Items Menu (v1.3) by albertfish
* Law's Custom Equipment Screen (v2.?) by The Law G14
* Advanced Shop Status Window (v2.0) by RPG Advocate, edited by Fantasist
* Blacksmith Shop (v2.0) by ForeverZer0
* Quest Log System (v3.0) by game_guy
* Enemy HP & MP Bars by Asandril
* Map Location (v1.0) by Hunter x
* Switch Checker by Night_Runners (made for me specifically)
* Redd's TitleIcons by Redd
* Journal (v2.4) by ForeverZer0
* Drago Smooth Scroller (v2.02) by LiTTleDRAgo

Blizzard

December 04, 2009, 09:29:31 am #34 Last Edit: March 15, 2010, 06:33:43 am by Blizzard
Oh, lol! Doesn't matter, it's just an unofficial script anyway.

EDIT: I fixed the "stack level too deep" problem that appeared in v2.1.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

zevyndeluze

Maybe its just me but the script seems to cause an error when I escape from the battle. Could you look into it please?

Blizzard

Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

zevyndeluze

I created a new project and inserted the script above main. When I select escape, the error message comes up saying...

Script 'Custom' line 298: NoMethodError occured.
Undefined method 'visible=' for nil:NilClass

Then the script editor takes me to this line of the script...

@result_window.visible = false

Holyrapid

March 19, 2010, 01:54:25 am #38 Last Edit: March 19, 2010, 01:57:27 am by DesPKP
Have you tried changing that to true? I´m not scripter, so this is the best idea i came up with...

Also, Blizz i was wondering if this works with nathmatts battle dome script... So that when i´ve won or escaped a battle on the map i was teleported to, will this show?
I can´t test because i have no internet at home, and my computer doesn´t apparently have the right drivers, because i get no sound, and when i try to open RMXP it says that it cant intialize DirectX audio...

Blizzard

I put up v2.11b.

Nathmatt's script works with battles on the map, this script doesn't.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.