赞 | 406 |
VIP | 0 |
好人卡 | 11 |
积分 | 390 |
经验 | 242285 |
最后登录 | 2024-11-26 |
在线时间 | 5719 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 39021
- 在线时间
- 5719 小时
- 注册时间
- 2006-11-10
- 帖子
- 6619
|
本帖最后由 灯笼菜刀王 于 2020-8-15 21:46 编辑
栗子就是这样
def 五行相克(element_set)
return 100 if element_set.empty?
自身属性 = self.is_a?(Game_Actor) ? $data_classes[self.class_id].element_ranks :
$data_enemies[self.id].element_ranks
a = 100
if 自身属性[3] == 4 #[nil,金,木,水,火,土], 3就是水属性为D的设置
a /= 2 if element_set.include?(5) #土属性,双倍伤害
a /= 50 if element_set.include?(4) #火属性,减半
a *= 0 if element_set.include?(3) #水属性,吸收
end
#下面一个一个列出属性关系
return a
end
这样就做好一个属性相克咯, 而且是口袋妖怪式的相乘计算法, 不是XP的"取伤害最高的那个属性来计算", 不过就是只会计算前面5个属性, 后面的全部无视
不计算其他属性的好处就是, 你用属性来作为某些判断的时候(比如全体化), 不会因此干扰到伤害公式, 否则, 如果是默认的公式, 你把武器同时勾上 全体化和火 那就算是攻击 火F(火属性吸收) 的敌人, 也会因为全体化的默认C而变成普通伤害哦 |
评分
-
查看全部评分
|