| 
 
| 赞 | 659 |  
| VIP | 62 |  
| 好人卡 | 144 |  
| 积分 | 337 |  
| 经验 | 110435 |  
| 最后登录 | 2024-7-10 |  
| 在线时间 | 5096 小时 |  
 Lv5.捕梦者 
	梦石0 星屑33737 在线时间5096 小时注册时间2012-11-19帖子4877 
 | 
| 我来 pia 一个简单点的 
 复制代码#==============================================================================
# 状态增加角色属性百分比
#==============================================================================
module XdRs_SA
  # 状态里面备注 <SA:id>  ,角色有这个状态时就按照下面对应的算式来增幅属性百分比。
  # id 为 属性ID,分别对应:0:最大HP;1:最大MP;2:物理攻击;3:物理防御;
  #                        4:魔法攻击;5:魔法防御;6:敏 捷 值:7:幸 运 值 。
  # 算式里的变量 a ,为该角色自身,与技能算式差不多。
  # 比如某个状态依照算式增幅 攻击力 ,就在这个状态里备注 <SA:2>
  # 敌人无效。
  Formula = {
    0=>"",
    1=>"",
    2=>"[0,20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30][a.level] || 40",
    3=>"",
    4=>"",
    5=>"",
    6=>"",
    7=>""
  }
  #--------------------------------------------------------------------------
  def self.get_state_attribute_rate(actor, param_id, state_id)
    state = $data_states[state_id]
    return 0 if !state
    state.note.gsub(/<SA:(\d+)>/) do |tx|
      tx.match(/<SA:(\d+)>/)
      if $1.to_i == param_id
        a = actor
        p = $game_party
        s = $game_switches
        v = $game_variables
        return eval(Formula[param_id]) || 0
      end
    end
    return 0
  end
end
#==============================================================================
class Game_BattlerBase
  #--------------------------------------------------------------------------
  def param_states_rate(param_id)
    return 0
  end
  #--------------------------------------------------------------------------
  alias xr_sa_param_rate param_rate
  def param_rate(param_id)
    return xr_sa_param_rate(param_id) + param_states_rate(param_id)
  end
end
#==============================================================================
class Game_Actor
  #--------------------------------------------------------------------------
  def param_states_rate(param_id)
    arr = @states.map{|id| XdRs_SA.get_state_attribute_rate(self, param_id, id)}
    return (eval(arr.join("+")) || 0) / 100.0
  end
end
#==============================================================================
# end
#==============================================================================
 | 
 评分
查看全部评分
 |