パラメータ追加



・読んで字の如く、パラメータを追加します。
 とりあえず幸運値を追加。回避や命中を補正します。

また、攻撃力、防御力などに関しても少しカスタマイズ。
※所謂素手ステータスですね。
スクリプト内でベースとなる値とレベルアップで上昇するレートを設定します。

幸運値とみなす属性が付与されている場合、回避修正の値を幸運値として利用

エネミーの幸運値についてはスクリプト中でカスタマイズ。
※かなり使いづらい気がしますが、仕様です

するめ準備スクリプトが別途必要になります

変更点
まだなし

#==============================================================================
# ■ パラメータ追加 By 貪藻矢射妥←
# 
# ・読んで字の如く、パラメータを追加します。
#  とりあえず幸運値を追加。回避や命中を補正します。
# 
# また、攻撃力、防御力などに関しても少しカスタマイズ。
# ※所謂素手ステータスですね。
# スクリプト内でベースとなる値とレベルアップで上昇するレートを設定します。
# 
# 幸運値とみなす属性が付与されている場合、回避修正の値を幸運値として利用
# 
# エネミーの幸運値についてはスクリプト中でカスタマイズ。
# ※かなり使いづらい気がしますが、仕様です
# 
# するめ準備スクリプトが別途必要になります
# 
#==============================================================================
# 更新っぽいもの
# まだなし

$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Param_Add"] = true

module PARAM_ADD
  
  # atkの基本値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_ATK_BASE = {
     1 =>  5,  2 => 11,  3 => 12,  4 =>  8,  5 =>  8,  6 =>  7, 
     7 => 10,  9 => 10, 10 => 13, 12 =>  9, 13 => 10, 14 =>  9, 
    15 =>  6, 16 =>  6, 18 =>  9, 19 => 10, 21 =>  9, 22 =>  9, 
    23 => 10, 24 =>  8, 25 =>  7, 27 =>  8, 28 => 10, 30 => 13, 
    31 => 14, 33 => 12, 34 => 12, 36 =>  9, 37 =>  9, 38 => 10, 
    39 => 10, 
    50 => 88
  }
  
  # atkのLv up上昇値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_ATK_UP_RATE = {
     1 => 0.4,  2 => 0.6,  3 => 0.7,  4 => 0.6,  5 => 0.5,  6 => 0.5, 
     7 => 0.5,  9 => 0.6, 10 => 0.7, 12 => 0.6, 13 => 0.6, 14 => 0.5, 
    15 => 0.5, 16 => 0.5, 18 => 0.7, 19 => 0.6, 21 => 0.7, 22 => 0.7, 
    23 => 0.7, 24 => 0.6, 25 => 0.5, 27 => 0.6, 28 => 0.7, 30 => 0.5, 
    31 => 0.7, 33 => 0.7, 34 => 0.7, 36 => 0.6, 37 => 0.7, 38 => 0.7, 
    39 => 0.6, 
    50 => 8.8
  }
  
  # pdefの基本値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_PDEF_BASE = {
     1 =>  3,  2 => 10,  3 => 11,  4 =>  9,  5 =>  4,  6 =>  6, 
     7 => 12,  9 => 12, 10 => 17, 12 => 10, 13 => 11, 14 =>  9, 
    15 =>  2, 16 =>  2, 18 => 10, 19 => 11, 21 =>  8, 22 =>  9, 
    23 => 10, 24 =>  7, 25 =>  4, 27 => 10, 28 => 13, 30 => 15, 
    31 =>  8, 33 =>  9, 34 =>  8, 36 =>  7, 37 =>  6, 38 => 15, 
    39 => 10, 
    50 => 88
  }
  
  # pdefのLv up上昇値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_PDEF_UP_RATE = {
     1 => 0.7,  2 => 0.8,  3 => 0.7,  4 => 0.7,  5 => 0.6,  6 => 1.0, 
     7 => 1.0,  9 => 1.0, 10 => 0.9, 12 => 1.0, 13 => 0.8, 14 => 0.9, 
    15 => 0.6, 16 => 0.6, 18 => 1.1, 19 => 1.2, 21 => 1.3, 22 => 0.6, 
    23 => 0.7, 24 => 0.6, 25 => 0.8, 27 => 1.1, 28 => 0.9, 30 => 0.6, 
    31 => 1.4, 33 => 0.5, 34 => 0.5, 36 => 0.8, 37 => 0.7, 38 => 0.9, 
    39 => 0.9, 
    50 => 8.8
  }
  # mdefの基本値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_MDEF_BASE = {
     1 =>  8,  2 =>  9,  3 =>  5,  4 =>  5,  5 => 10,  6 =>  8, 
     7 => 12,  9 =>  9, 10 =>  4, 12 =>  6, 13 =>  8, 14 =>  7, 
    15 =>  6, 16 =>  6, 18 => 11, 19 =>  9, 21 => 10, 22 => 11, 
    23 =>  7, 24 =>  9, 25 => 12, 27 =>  8, 28 => 12, 30 =>  9, 
    31 =>  9, 33 =>  9, 34 =>  5, 36 =>  7, 37 =>  6, 38 => 15, 
    39 =>  8, 
    50 => 88
  }
  # pdefのLv up上昇値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_MDEF_UP_RATE = {
     1 => 0.8,  2 => 0.7,  3 => 0.6,  4 => 0.6,  5 => 0.7,  6 => 1.1, 
     7 => 0.9,  9 => 0.9, 10 => 0.8, 12 => 0.9, 13 => 0.9, 14 => 1.0, 
    15 => 0.7, 16 => 0.7, 18 => 1.0, 19 => 1.3, 21 => 1.4, 22 => 0.7, 
    23 => 0.8, 24 => 0.7, 25 => 1.0, 27 => 0.9, 28 => 0.8, 30 => 0.7, 
    31 => 1.4, 33 => 0.5, 34 => 0.5, 36 => 1.0, 37 => 0.8, 38 => 0.7, 
    39 => 0.8, 
    50 => 8.8
  }
  # lukの基本値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_LUK_BASE = {
     1 => 48,  2 => 32,  3 => 28,  4 => 25,  5 => 29,  6 => 37, 
     7 => 11,  9 => 31, 10 => 32, 12 => 34, 13 => 27, 14 => 29, 
    15 => 30, 16 => 30, 18 => 35, 19 => 27, 21 => 34, 22 => 26, 
    23 => 29, 24 => 28, 25 => 30, 27 => 30, 28 => 29, 30 => 11, 
    31 => 56, 33 => 23, 34 => 21, 36 => 22, 37 => 23, 38 => 11, 
    39 => 25, 
    50 => 88
  }
  
  # lukのLv up上昇値(数値としては小数点以下でもOK)
  # アクターID=>数値 で記載
  ACTOR_LUK_UP_RATE = {
     1 => 5.5,  2 => 2.3,  3 => 2.2,  4 => 2.2,  5 => 2.1,  6 => 2.5, 
     7 => 1.5,  9 => 2.5, 10 => 2.4, 12 => 2.5, 13 => 2.3, 14 => 2.4, 
    15 => 2.1, 16 => 2.1, 18 => 2.6, 19 => 2.7, 21 => 2.8, 22 => 2.1, 
    23 => 2.2, 24 => 2.1, 25 => 2.3, 27 => 2.6, 28 => 2.4, 30 => 1.5, 
    31 => 6.4, 33 => 2.1, 34 => 2.2, 36 => 2.3, 37 => 2.2, 38 => 1.1, 
    39 => 2.1, 
    50 => 8.8
  }
  
  # 幸運値補正率
  # 回避や命中率で使用します
  LUK_ADJUST_RATE = 0.05
  
  # エネミーの幸運値(Default)
  ENEMY_LUK_BASE = 100
  
  # エネミー毎の幸運加算値
  # エネミーID => 数値 で記載
  EMENY_LUK_PLUS = {
    0 => 100,
  }
  
  # 幸運値上昇属性
  ELE_LUK_PLUS = 40
  
end

#==============================================================================
# ■ Game_Battler (分割定義 1)
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader   :luk                      # 幸運値
  attr_accessor :luk_plus
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_diamond_param_add_at_game_battler initialize
  def initialize
    # 元の処理を呼び戻す
    initialize_diamond_param_add_at_game_battler
    
    @luk = 0
    @luk_plus = 0
  end
  #--------------------------------------------------------------------------
  # ● 幸運値の取得
  #--------------------------------------------------------------------------
  def luk
    n = [[base_luk + @luk_plus, 0].max, BM::MAX_STR].min
    for i in @states
      # 幸運値上昇属性が付与されている場合回避修正の値を幸運値として利用
      if $data_states[i].guard_element_set.include?(PARAM_ADD::ELE_LUK_PLUS)
        n *= ($data_states[i].eva + 100) / 100.0
      end
    end
    n = [[Integer(n), 0].max, BM::MAX_STR].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 幸運値の設定
  #--------------------------------------------------------------------------
  def luk=(luk)
    @luk_plus += luk - self.luk
    @luk_plus = [[@luk_plus, - BM::MAX_STR].max, BM::MAX_STR].min
  end
  #--------------------------------------------------------------------------
  # ● 命中率の取得
  #--------------------------------------------------------------------------
  def hit
    n = 100 + luk * PARAM_ADD::LUK_ADJUST_RATE
    for i in @states
      n *= $data_states[i].hit_rate / 100.0
    end
    return Integer(n)
  end
  #--------------------------------------------------------------------------
  # ● 回避修正の取得
  #--------------------------------------------------------------------------
  def eva
    n = base_eva + Integer(luk * PARAM_ADD::LUK_ADJUST_RATE)
    for i in @states
      # 幸運値上昇属性が付与されていない場合、通常通り回避修正を追加
      if !$data_states[i].guard_element_set.include?(PARAM_ADD::ELE_LUK_PLUS)
        n += $data_states[i].eva
      end
    end
    return n
  end
end

#==============================================================================
# ■ Game_Battler (分割定義 3)
#==============================================================================

class Game_Battler
  include PARAM_ADD
  include BM
  #--------------------------------------------------------------------------
  # ● 通常攻撃の効果適用
  #     attacker : 攻撃者 (バトラー)
  #--------------------------------------------------------------------------
  ★★★ 一撃必殺カスタマイズ 参照  ★★★
  
  ef attack_effect(attacker)
  #--------------------------------------------------------------------------
  # ● スキルの効果適用
  #     user  : スキルの使用者 (バトラー)
  #     skill : スキル
  #--------------------------------------------------------------------------
  ★★★ Surume_2K_2_XP 参照  ★★★
  
  #--------------------------------------------------------------------------
  # ● アイテムの効果適用
  #     item : アイテム
  #--------------------------------------------------------------------------
  ★★★ '0X to XP:パラメーター上昇アイテムの複数化 参照 ★★★
end

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● セットアップ
  #--------------------------------------------------------------------------
  alias setup_diamond_param_add_at_game_actor setup
  def setup(actor_id)
    # 元の処理を呼び戻す
    setup_diamond_param_add_at_game_actor(actor_id)
    
    @atk            = 0
    @pdef           = 0
    @mdef           = 0
    @luk            = 0
    @eva            = 0
    @luk_plus       = 0
  end
  
  #--------------------------------------------------------------------------
  # ● パラメータの基本値とLv up上昇値の取得
  # base_hash : 基本値のハッシュ
  # rate_hash : Lv up上昇値のハッシュ
  # actor_id  : アクターID
  #--------------------------------------------------------------------------
  def get_base_rate(base_hash, rate_hash, actor_id)
    base_num = 0
    rate_num = 0
    
    if base_hash[actor_id] != nil
      base_num = base_hash[actor_id]
    end
    if rate_hash[actor_id] != nil
      rate_num = rate_hash[actor_id]
    end
    return [base_num, rate_num]
  end
  
  #--------------------------------------------------------------------------
  # ● 基本攻撃力の取得
  #--------------------------------------------------------------------------
  def base_atk
    weapon = $data_weapons[@weapon_id]
if $OuterFlgs["Equip_Extend"]
    armors = []
    
    arm_list = get_armors_id_list
    for i in 0...@armors_weapon.size
      if @armors_weapon[i]
        armors[i] = $data_weapons[arm_list[i]]
      else
        armors[i] = nil
      end
    end
end # $OuterFlgs["Equip_Extend"]
    
    atkb = weapon != nil ? weapon.atk : 0
    
if $OuterFlgs["Equip_Extend"]
    armors.each { |equip| atkb += (equip != nil ? equip.atk : 0) }
end # $OuterFlgs["Equip_Extend"]
    
    atk_root = get_base_rate(PARAM_ADD::ACTOR_ATK_BASE, 
                             PARAM_ADD::ACTOR_ATK_UP_RATE, @actor_id)
    
    patkb  = atk_root[0]
    patkb += atk_root[1] * (@level - 1)
    
    return atkb + patkb.floor
  end
  
  #--------------------------------------------------------------------------
  # ● 基本物理防御の取得
  #--------------------------------------------------------------------------
  def base_pdef
    pdefb = 0
    list = [$data_weapons[@weapon_id]]
    
    list = get_equip_list(list)
    
    list.each { |equip| pdefb += (equip != nil ? equip.pdef : 0) }
    
    pdef_root = get_base_rate(PARAM_ADD::ACTOR_PDEF_BASE, 
                              PARAM_ADD::ACTOR_PDEF_UP_RATE, @actor_id)
    
    pdefb  = pdef_root[0]
    pdefb += pdef_root[1] * (@level - 1)
    
    return pdefb + pdefb.floor
  end
  
  #--------------------------------------------------------------------------
  # ● 基本魔法防御の取得
  #--------------------------------------------------------------------------
  def base_mdef
    mdefb = 0
    list = [$data_weapons[@weapon_id]]
    
    list = get_equip_list(list)
    
    list.each { |equip| mdefb += (equip != nil ? equip.mdef : 0) }
    
    mdef_root = get_base_rate(PARAM_ADD::ACTOR_MDEF_BASE, 
                              PARAM_ADD::ACTOR_MDEF_UP_RATE, @actor_id)
    
    mdefb  = mdef_root[0]
    mdefb += mdef_root[1] * (@level - 1)
    
    return mdefb + mdefb.floor
  end
  #--------------------------------------------------------------------------
  # ● 基本幸運値の取得
  #--------------------------------------------------------------------------
  def base_luk
    luk_root = get_base_rate(PARAM_ADD::ACTOR_LUK_BASE, 
                             PARAM_ADD::ACTOR_LUK_UP_RATE, @actor_id)
    
    lukb  = luk_root[0]
    lukb += luk_root[1] * (@level - 1)
    
    list = []
    
    list = get_equip_list(list)
    
    for equips in list
      if equips != nil
        if $imported["AlterEquipment"] && equips.is_a?(RPG::Armor2)
          lukb += equips.luk
        elsif equips.is_a?(RPG::Armor) && 
          equips.guard_element_set.include?(PARAM_ADD::ELE_LUK_PLUS)
          lukb += equips.eva
        end
      end
    end
    
    return lukb.floor
  end
  
  #--------------------------------------------------------------------------
  # ● 基本回避修正の取得
  #--------------------------------------------------------------------------
  def base_eva
    evab = 0
    
    list = []
    
    list = get_equip_list(list)
    
    for equips in list
      if equips != nil
        if $imported["AlterEquipment"] && equips.is_a?(RPG::Armor2)
          evab += equips.eva
        elsif equips.is_a?(RPG::Armor) && 
          !equips.guard_element_set.include?(PARAM_ADD::ELE_LUK_PLUS)
          evab += equips.eva
        end
      end
    end
    
    return evab
  end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_diamond_param_add_at_game_enemy initialize
  def initialize(troop_id, member_index)
    # 元の処理を呼び戻す
    initialize_diamond_param_add_at_game_enemy(troop_id, member_index)
    
    @luk = luk
  end
  #--------------------------------------------------------------------------
  # ● 基本 幸運値 の取得
  #--------------------------------------------------------------------------
  def base_luk
    # 基本値を設定
    n = PARAM_ADD::ENEMY_LUK_BASE
    
    # エネミー毎の幸運値を加算
    if PARAM_ADD::EMENY_LUK_PLUS[@enemy_id] != nil
       n += PARAM_ADD::EMENY_LUK_PLUS[@enemy_id]
    end
    
    return n
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● パラメータの描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     type  : パラメータの種類 (0〜8)
  #--------------------------------------------------------------------------
  def draw_actor_parameter(actor, x, y, type)
    case type
    when Def_Num::PRM_VIEW_TYPE_ATK
      parameter_name  = Vocab::atk
      parameter_value = actor.atk
    when Def_Num::PRM_VIEW_TYPE_PDEF
      parameter_name  = Vocab::pdef
      parameter_value = actor.pdef
    when Def_Num::PRM_VIEW_TYPE_MDEF
      parameter_name  = Vocab::mdef
      parameter_value = actor.mdef
    when Def_Num::PRM_VIEW_TYPE_STR
      parameter_name  = Vocab::str
      parameter_value = actor.str
    when Def_Num::PRM_VIEW_TYPE_DEX
      parameter_name  = Vocab::dex
      parameter_value = actor.dex
    when Def_Num::PRM_VIEW_TYPE_AGI
      parameter_name  = Vocab::agi
      parameter_value = actor.agi
    when Def_Num::PRM_VIEW_TYPE_INT
      parameter_name  = Vocab::int
      parameter_value = actor.int
    when Def_Num::PRM_VIEW_TYPE_EVA
      parameter_name  = Vocab::eva
      parameter_value = actor.eva
    when Def_Num::PRM_VIEW_TYPE_LUK
if $OuterFlgs["Param_Add"]
      parameter_name  = Vocab::luk
      parameter_value = actor.luk
else
      parameter_name  = Vocab::UNKNOWN_WORD
      parameter_value = 0
end # $OuterFlgs["Param_Add"]
    else
      # 異常の場合
      parameter_name  = Vocab::UNKNOWN_WORD
      parameter_value = 0
    end
    font_name = self.contents.font.name
    self.contents.font.name = DRAWFONT
    rectr = [x, y, 100, 32]
    draw_shadow_text(rectr, parameter_name, system_color)
    
    self.contents.font.name = DRAWFONT2
    rectr = [x + 100, y, 48, 32]
    draw_shadow_text(rectr, parameter_value.to_s, normal_color, 2)
    self.contents.font.name = font_name
  end
end

#==============================================================================
# ■ Window_Status
#==============================================================================

class Window_Status < Window_Base
  
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 4, 0)
    draw_actor_class(@actor, 4 + 144, 0)
    draw_actor_state(@actor, 196, 32)
    draw_actor_level(@actor, 96, 32)
    draw_actor_hp(@actor, 96, 88, 172)
    draw_actor_sp(@actor, 96, 112, 172)
    
    
    # Actorパラメータ表示
    for idx in 0..8
      draw_actor_parameter(@actor, 96, 160 + 24 * idx, idx)
    end
    
    font_name = self.contents.font.name
    
    # 経験値表示
    self.contents.font.name = DRAWFONT3
    rectrE1 = [320, 88,  80, 32]
    rectrN1 = [320, 112, 80, 32]
    draw_shadow_text(rectrE1, Vocab::ExpTotal, system_color)
    draw_shadow_text(rectrN1, Vocab::ExpNext,  system_color)
    self.contents.font.name = DRAWFONT2
    rectrE2 = [rectrE1[0] + 80, rectrE1[1], rectrE1[2] + 4, rectrE1[3]]
    rectrN2 = [rectrN1[0] + 80, rectrN1[1], rectrN1[2] + 4, rectrN1[3]]
    draw_shadow_text(rectrE2, @actor.exp_s,           normal_color, 2)
    draw_shadow_text(rectrN2, @actor.next_rest_exp_s, normal_color, 2)
    
    # 装備品表示
    self.contents.font.name = DRAWFONT
    rectr3  = [270, 160 - 24, 96, 32]
    draw_shadow_text(rectr3, Vocab::equip, system_color)
    
    self.contents.font.name = font_name
    
    #draw_defeat_count(@actor.id, 0, 320, 136)
    
    # 武器
    equip_item = $data_weapons[@actor.weapon_id]
    draw_item_name(equip_item, 320 + 16, 160 - 24 + 4)
    
if $OuterFlgs["Equip_Extend"]
    # 盾
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_SHILD - 1] ? 
      $data_weapons[@actor.armor1_id] : $data_armors[@actor.armor1_id]
    draw_item_name(equip_item, 320 + 16, 192 - 24 + 4)
    # 兜
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_MET - 1] ? 
      $data_weapons[@actor.armor2_id] : $data_armors[@actor.armor2_id]
    draw_item_name(equip_item, 320 + 16, 224 - 24 + 4)
    # インナー
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_INNER - 1] ? 
      $data_weapons[@actor.armor6_id] : $data_armors[@actor.armor6_id]
    draw_item_name(equip_item, 320 + 16, 256 - 24 + 4)
    # ヨロイ
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_ARMOR - 1] ? 
      $data_weapons[@actor.armor3_id] : $data_armors[@actor.armor3_id]
    draw_item_name(equip_item, 320 + 16, 288 - 24 + 4)
    # 装飾品1
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_ACCE_1 - 1] ? 
      $data_weapons[@actor.armor4_id] : $data_armors[@actor.armor4_id]
    draw_item_name(equip_item, 320 + 16, 320 - 24 + 4)
    # 装飾品2
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_ACCE_2 - 1] ? 
      $data_weapons[@actor.armor5_id] : $data_armors[@actor.armor5_id]
    draw_item_name(equip_item, 320 + 16, 352 - 24 + 4)
    # 特殊
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_ACCE_X - 1] ? 
      $data_weapons[@actor.armor7_id] : $data_armors[@actor.armor7_id]
    draw_item_name(equip_item, 320 + 16, 384 - 24 + 4)
    # 靴
    equip_item = @actor.armors_weapon[Def_Num::EQUIP_INDEX_BOOTS - 1] ? 
      $data_weapons[@actor.armor8_id] : $data_armors[@actor.armor8_id]
    draw_item_name(equip_item, 320 + 16, 416 - 24 + 4)
else
    draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 192 - 24 + 4)
    draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 224 - 24 + 4)
    draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 256 - 24 + 4)
    draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 288 - 24 + 4)
end # $OuterFlgs["Equip_Extend"]
end

#==============================================================================
# ■ Scene_Battle (分割定義 2)
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● フレーム更新 (パーティコマンドフェーズ : 逃げる)
  #--------------------------------------------------------------------------
  def update_phase2_escape
    # エネミーの素早さ平均値/幸運値を計算
    enemies_agi    = 0
    enemies_luk    = 0
    enemies_number = 0
    for enemy in $game_troop.enemies
      if enemy.exist?
        enemies_agi += enemy.agi
if $OuterFlgs["Param_Add"]
        if PARAM_ADD::EMENY_LUK_PLUS[enemy.id] != nil
          enemies_luk += PARAM_ADD::EMENY_LUK_PLUS[enemy.id]
        else
          enemies_luk += PARAM_ADD::ENEMY_LUK_BASE
        end
end # $OuterFlgs["Param_Add"]
        enemies_number += 1
      end
    end
    if enemies_number > 0
      enemies_luk /= enemies_number
      enemies_agi /= enemies_number
    end
    # アクターの素早さ/幸運値の平均値を計算
    actors_agi    = 0
    actors_luk    = 0
    actors_number = 0
    for actor in $game_party.actors
      if actor.exist?
        actors_agi += actor.agi
if $OuterFlgs["Param_Add"]
        actors_luk += actor.luk
end # $OuterFlgs["Param_Add"]
        actors_number += 1
      end
    end
    if actors_number > 0
      actors_agi /= actors_number
      actors_luk /= actors_number
    end
if $OuterFlgs["Param_Add"]
    actor_escape_rate = actors_agi * actors_luk
    enemy_escape_rate = enemies_agi * enemies_luk
else
    actor_escape_rate = actors_agi
    enemy_escape_rate = enemies_agi * 100
end # $OuterFlgs["Param_Add"]
    # 逃走成功判定
    success = rand(100) < 50 * actor_escape_rate / enemy_escape_rate
    # 逃走成功の場合
    if success
      # 逃走 SE を演奏
      Sound.play_escape
      # バトル開始前の BGM に戻す
      $game_system.bgm_play($game_temp.map_bgm)
      # バトル終了
      battle_end(1)
    # 逃走失敗の場合
    else
      # パーティ全員のアクションをクリア
      $game_party.clear_actions
      # メインフェーズ開始
      start_phase4
    end
  end
end

#==============================================================================
# ■ Window_EquipLeft
#------------------------------------------------------------------------------
#  装備画面で、アクターのパラメータ変化を表示するウィンドウです。
#==============================================================================

class Window_EquipLeft < Window_Base
  include DIAMOND
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(     @actor, 4,   0)
    draw_actor_level(    @actor, 4,  24)
    #
    draw_actor_parameter(@actor, 4,  88, Def_Num::PRM_VIEW_TYPE_ATK)
    draw_actor_parameter(@actor, 4, 112, Def_Num::PRM_VIEW_TYPE_PDEF)
    draw_actor_parameter(@actor, 4, 136, Def_Num::PRM_VIEW_TYPE_MDEF)
    # +24
    draw_actor_parameter(@actor, 4, 184, Def_Num::PRM_VIEW_TYPE_STR)
    draw_actor_parameter(@actor, 4, 208, Def_Num::PRM_VIEW_TYPE_DEX)
    draw_actor_parameter(@actor, 4, 232, Def_Num::PRM_VIEW_TYPE_AGI)
    draw_actor_parameter(@actor, 4, 256, Def_Num::PRM_VIEW_TYPE_INT)
    draw_actor_parameter(@actor, 4, 280, Def_Num::PRM_VIEW_TYPE_EVA)
if $OuterFlgs["Param_Add"]
    draw_actor_parameter(@actor, 4, 304, Def_Num::PRM_VIEW_TYPE_LUK)
end # $OuterFlgs["Param_Add"]
    
    draw_change_param(@actor.atk,  @new_atk,   88)
    draw_change_param(@actor.pdef, @new_pdef, 112)
    draw_change_param(@actor.mdef, @new_mdef, 136)
    
    draw_change_param(@actor.str,  @new_str,  184)
    draw_change_param(@actor.dex,  @new_dex,  208)
    draw_change_param(@actor.agi,  @new_agi,  232)
    draw_change_param(@actor.int,  @new_int,  256)
    draw_change_param(@actor.eva,  @new_eva,  280)
if $OuterFlgs["Param_Add"]
    draw_change_param(@actor.luk,  @new_luk,  304)
end # $OuterFlgs["Param_Add"]
  end
  #--------------------------------------------------------------------------
  # ● 装備後のパラメータ表示
  #  actor_prm : アクターのパラメータ
  #  new_prm   : 装備後のパラメータ値
  #  y         : 表示位置(Y座標)
  #--------------------------------------------------------------------------
  def draw_change_param(actor_prm, new_prm, y)
    
    if new_prm != nil
      # 装備後のパラメータが上昇
      if actor_prm < new_prm
        new_text  = Vocab::TRI_UP_WD
        new_color = DIAMOND::STR_UP_COLOR
      # 装備後のパラメータが下降
      elsif actor_prm > new_prm
        new_text  = Vocab::TRI_DOWN_WD
        new_color = DIAMOND::STR_DOWN_COLOR
      # 上昇も下降もしない
      else
        new_text  = nil
        new_color = normal_color
      end
      font = self.contents.font.name
      
      if new_text != nil
        draw_shadow_text([150, y, 40, 32], new_text, system_color, 1)
      end
      self.contents.font.name = DIAMOND::DRAWFONT2
      draw_shadow_text([180, y, 48, 32], new_prm.to_s, new_color, 2)
      
      self.contents.font.color = normal_color
      self.contents.font.name = font
    end
  end

戻る