獲得倍率変動 in VX Ace



ゴールド獲得、アイテム入手確率を細かに変動します。

特徴のパーティー能力[獲得金額二倍]、[アイテム入手率二倍]設定時、
ノートにて
アイテム入手率[n]
ゴールド入手率[n]
を記載することで2倍以外の倍率に変更できます。

※通常の2倍の場合でもしっかりと設定を行ってください。そうしないと1倍のままになります。

※戦闘メンバーの装備品の中から最も高い確率をパーティーの入手確率として返却しそれをもとにアイテム、
 ゴールドの入手を行いますが、0を設定した場合、0が優先されます。
 (パーティーの中で誰か一人でもアイテム入手確率[0]、ゴールド入手確率[0]の装備をしているアクターが
  いれば、アイテム、ゴールドの入手はできなくなります)

変更点
まだなし

#==============================================================================
# ■ 獲得倍率変動 in VX Ace By 貪藻矢射妥←
#------------------------------------------------------------------------------
# ゴールド獲得、アイテム入手確率を細かに変動します。
# 
# 特徴のパーティー能力[獲得金額二倍]、[アイテム入手率二倍]設定時、
# ノートにて
# アイテム入手率[n]
# ゴールド入手率[n]
# を記載することで2倍以外の倍率に変更できます。
# 
# ※通常の2倍の場合でもしっかりと設定を行ってください。
#  そうしないと1倍のままになります。
# 
# ※戦闘メンバーの装備品の中から最も高い確率をパーティーの入手確率として返却し
#  それをもとにアイテム、ゴールドの入手を行いますが、0を設定した場合、0が優先
#  されます。
#  (パーティーの中で誰か一人でもアイテム入手確率[0]、ゴールド入手確率[0]の
#   装備をしているアクターがいれば、アイテム、ゴールドの入手はできなくなります)
# 
#==============================================================================
# 更新っぽいもの
# まだなし

#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
#  敵キャラを扱うクラスです。このクラスは Game_Troop クラス($game_troop)の
# 内部で使用されます。
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● ドロップアイテム取得率の倍率を取得
  #--------------------------------------------------------------------------
  def drop_item_rate
    $game_party.drop_item_rate
  end
end

#==============================================================================
# ■ Game_Troop
#------------------------------------------------------------------------------
#  敵グループおよび戦闘に関するデータを扱うクラスです。バトルイベントの処理も
# 行います。このクラスのインスタンスは $game_troop で参照されます。
#==============================================================================

class Game_Troop < Game_Unit
  #--------------------------------------------------------------------------
  # ● お金の倍率を取得
  #--------------------------------------------------------------------------
  def gold_rate
    $game_party.gold_rate
  end
  #--------------------------------------------------------------------------
  # ● お金の合計計算
  #--------------------------------------------------------------------------
  def gold_total
    (dead_members.inject(0) {|r, enemy| r += enemy.gold } * gold_rate).to_i
  end
end

#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
# スのインスタンスは $game_party で参照されます。
#==============================================================================

class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # ● パーティ能力判定 part2
  #--------------------------------------------------------------------------
  def party_ability2(ability_id)
    
    rate = []
    for actor in battle_members
      for equip in actor.equips
        next if equip == nil
        case ability_id
        when ABILITY_DROP_ITEM_DOUBLE
          text = equip.note.clone
          rate.push(text =~ /アイテム入手率\[(\S+)\]/ ? $1.to_f : 1)
        when ABILITY_GOLD_DOUBLE
          text = equip.note.clone
          rate.push(text =~ /ゴールド入手率\[(\S+)\]/ ? $1.to_f : 1)
        else
          msgbox("不明なコード" + ability_id.to_s)
        end
      end
    end
    if rate.min == 0
      return 0
    else
      return rate.max
    end
  end

  #--------------------------------------------------------------------------
  # ● 獲得金額
  #--------------------------------------------------------------------------
  def gold_rate
    party_ability(ABILITY_GOLD_DOUBLE) ? party_ability2(ABILITY_GOLD_DOUBLE) : 1
  end
  #--------------------------------------------------------------------------
  # ● アイテム入手率
  #--------------------------------------------------------------------------
  def drop_item_rate
    party_ability(ABILITY_DROP_ITEM_DOUBLE) ? party_ability2(ABILITY_DROP_ITEM_DOUBLE) : 1
  end
end

戻る