- UID
- 838868
- 主题
- 0
- 阅读权限
- 20
- 帖子
- 256
- 精华
- 0
- 积分
- 148
- 金钱
- 345
- 荣誉
- 2
- 人气
- 0
- 在线时间
- 0 小时
- 评议
- 0
- 帖子
- 256
- 精华
- 0
- 积分
- 148
- 金钱
- 345
- 荣誉
- 2
- 人气
- 0
- 评议
- 0
|
en...
lua的脚本语言还是很容易看,但是没有包引用的说明,也搞不清宿主与脚本的特定函数看起来叫比较混乱了,本人没做过lua编程,这里勉强理清一下游戏的伤害计算,有错误还请指出.
local k = (AU.attack( attacker )*(1+attack_undead_bonus/100+attack_demon_bonus/100+attack_dragon_bonus/100) + holy_rage_bonus) - AU.defence( receiver )
这是攻防影响伤害的计算因子,主要的种族间的加成以及神圣狂怒的效果.
if k>=0 and k<60 then
sdmg = sdmg *(1+k*0.0333)
end
if k>=60 then
sdmg = sdmg *3
end
if k<0 and k>=-60 then
sdmg = sdmg / (1-k*0.0333)
end
if k<-60 then
sdmg = sdmg / 3
end
if sdmg<0 then
sdmg=0
end
sdmg = sdmg * dfactor
这里说明攻防影响是线性的,差距大于60就只有3倍了,另外dfactor也是影响最终伤害的,应该与某些技能本身相关.
function spell_dragon_arrow_attack()
local target = Attack.get_target()
if (target ~= nil) then
local level=Obj.spell_level()
if level==0 then level=1 end
Attack.act_enable_attack(target,"dragon")
local count=pwr_dragon_arrow()
-- if level>1 then
Attack.act_charge(target,0,"dragon") -- 耱噔桁 磬鬣朦眍?麒耠?(1)
if count > 1 then -- 觐沅?count 1, 蝾 祛骓?犷朦 龛麇泐 ?礤 溴豚螯
Attack.act_charge(target,count-1,"dragon")
end
-- end
Attack.atom_spawn(target, 0, "magic_dragon_slayer", Attack.angleto(target))
-- Attack.act_damage_addlog(target,"add_blog_fear_")
end
return true
end
这里只能看到引用ATTACK的函数,我没有找到ATTACK类的代码,估计是C++形式的宿主,
依据"magic_dragon_slayer", 无责任猜测是龙箭对龙有特殊加成.
另外
if iskrit then dmg = max_ end
local resi = AU.resistance( receiver, i )
if resi>95 then resi=95 end
sdmg = sdmg + dmg*(1-resi/100);
可以确定,暴击伤害没有忽略保护和抵抗,抵抗的上限是95%.
ps:我是最不喜欢看游戏源代码的,会把欣赏游戏本身变成无聊的数据换算. |
|