Project1
标题:
怎么做一件装备具有反射伤害?
[打印本页]
作者:
he11120
时间:
2012-3-24 13:40
标题:
怎么做一件装备具有反射伤害?
例如盾带有反射30%的伤害,衣服带20%这样,可以叠加的。(自身还是受到100%的伤害)
‘‘──he11120于2012-3-24 16:00补充以下内容
没人回我啊。。
’’ dsu_plus_rewardpost_czw
作者:
kangxi0109
时间:
2012-3-24 20:46
本帖最后由 kangxi0109 于 2012-3-25 16:32 编辑
可以在Game_Battler 3里面修改:
1.反射普通伤害的部分(attacker指攻击者,self指目标):
# 第二命中判定
eva = 8 * self.agi / attacker.dex + self.eva
hit = self.damage < 0 ? 100 : 100 - eva
hit = self.cant_evade? ? 100 : hit
hit_result = (rand(100) < hit)
end
# 命中的情况下
if hit_result == true
# 状态冲击解除
remove_states_shock
# HP 的伤害计算
#===========================以下为修改的脚本
if attacker.is_a?(Game_Enemy)#攻击方为敌方的场合
if self.weapon_id == 1#装备的武器编号为1的场合
attacker.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor1_id == 1#装备的盾牌编号为1的场合
attacker.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor2_id == 2#装备的身体防具编号为2的场合
attacker.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor3_id == 3#装备的头部防具编号为3的场合
attacker.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor4_id == 4#装备的装饰品编号为4的场合
attacker.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
end
#===========================以上为修改的脚本
self.hp -= self.damage
复制代码
2.技能反射部分(user指技能使用者,self指目标):
# 命中的情况下
if hit_result == true
# 威力 0 以外的物理攻击的情况下
if skill.power != 0 and skill.atk_f > 0
# 状态冲击解除
remove_states_shock
# 设置有效标志
effective = true
end
# HP 的伤害减法运算
last_hp = self.hp
#===========================以下为修改的脚本
if user.is_a?(Game_Enemy)#攻击方为敌方的场合
if self.weapon_id == 1#装备的武器编号为1的场合
user.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor1_id == 1#装备的盾牌编号为1的场合
user.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor2_id == 2#装备的身体防具编号为2的场合
user.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor3_id == 3#装备的头部防具编号为3的场合
user.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
if self.armor4_id == 4#装备的装饰品编号为4的场合
user.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
end
end
#===========================以上为修改的脚本
self.hp -= self.damage
复制代码
注意:这些脚本都是现打的,你试试看有没有效果。里面的装备编号、伤害减免率可以自己改,两段脚本可以分开使用。
self.damage就是伤害值,另外,删除
self.damage -= self.damage / 10 #减免10%伤害
复制代码
可以只反射伤害但不减免被攻击者的伤害。
还有,这里的伤害减免都是叠加的,如果希望不叠加,将除第一、二个if以外的所有if换为elsif,并且去除倒数第三到第六个end即可。
‘‘──kangxi0109于2012-3-25 16:30补充以下内容
反射伤害在目标受到伤害之前,能不能调到之后?
你注意到没有,增加的脚本都是在
self.hp -= self.damage
复制代码
之前的?这段脚本就是目标伤害的脚本了,你可以掉个顺序试试...
当然,要把
self.damage -= self.damage / 10 #减免10%伤害
复制代码
这段去掉,因为这段脚本在目标伤害后面就无效了。
我想反射伤害统一计算的(10%+10%+10%),而不是先减去10%,再减去90%的10%
首先在我的脚本前面加一段变量定义:
m = 0
复制代码
然后将以下这些段
attacker.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
复制代码
和
user.hp -= self.damage / 10 #反射10%伤害
self.damage -= self.damage / 10 #减免10%伤害
复制代码
换为
m += 1
复制代码
再在我的脚本后面分别加上:
attacker.hp -= self.damage / 10 *m#反射m*10%伤害
self.damage -= self.damage / 10 *m#减免m*10%伤害
复制代码
和
user.hp -= self.damage / 10 *m#反射m*10%伤害
self.damage -= self.damage / 10 *m#减免m*10%伤害
复制代码
‘‘──kangxi0109于2012-3-25 16:36补充以下内容
能不能加个反弹伤害显示?(不要与其它伤害美化脚本有冲突的)。
这个嘛,还在研究中,因为我做的那些诸如吸血之类技能现在都没能显示吸收的血量,还在纠结呢...
’’
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1