赞 | 5 |
VIP | 359 |
好人卡 | 195 |
积分 | 3 |
经验 | 560179 |
最后登录 | 2024-11-20 |
在线时间 | 1374 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 280
- 在线时间
- 1374 小时
- 注册时间
- 2005-10-16
- 帖子
- 5113
|
其实默认的物理伤害计算都在Game_Battler 3中的def attack_effect(attacker)中,你说的大致上是这段- # 计算基本伤害
- atk = [attacker.atk - self.pdef / 2, 0].max
- self.damage = atk * (20 + attacker.str) / 20
复制代码 可以根据你的要求做这样的修改,- # 计算基本伤害
- # 如果攻击方是角色
- if attacker.is_a?(Game_Actor)
- # 魔法类的职业ID,可自行添加修改数组
- if [7,8].include?(attacker.class_id)
- # 与被攻击方的魔法防御有关
- atk = [attacker.atk - self.mdef / 2, 0].max
- # 与攻击方的魔力有关
- self.damage = atk * (20 + attacker.int) / 20
- # 非魔法类职业就是下面的常规计算方法了
- else
- atk = [attacker.atk - self.pdef / 2, 0].max
- self.damage = atk * (20 + attacker.str) / 20
- end
- # 甚至可以在这里加入敌方角色
- else
- # 魔法类的怪物ID,可自行添加修改数组
- if [].include?(attacker.id)
- # 与被攻击方的魔法防御有关
- atk = [attacker.atk - self.mdef / 2, 0].max
- # 与攻击方的魔力有关
- self.damage = atk * (20 + attacker.int) / 20
- # 非魔法类怪物就是下面的常规计算方法了
- else
- atk = [attacker.atk - self.pdef / 2, 0].max
- self.damage = atk * (20 + attacker.str) / 20
- end
- end
复制代码 |
|