武器镶嵌宝石分析
根据网上公开的旧版xkx的combatd.c持武器时的damage
if (objectp(weapon))
damage = (int)me->query_temp("apply/damage");
else
damage = (int)me->query_temp("apply/unarmed_damage");
if (damage>300)damage = 300 + random(damage-300);
damage = (damage + random(damage)) / 2;
之后还有个武功普通攻击的damage
damage += action["damage"] * damage / 200;
action["damage"] 一般在0-150,源码没有公认普通攻击最高的英雄剑法。
比较厉害的武器基本杀伤250+,嵌天圣的紫水晶,再加100左右,双手杀伤约700+,might以100m等级50级 full skill算,内功有效1550,might加1550*30%=465,故apply/damage=700+465=1165+
根据源码算得damage中间数550(random(x)=x/2),最少150(random(x)=0),最多1165(random(x)=x),
然后加上武功普通攻击的damage,damage中间数756+( action["damage"] =75),最少150( action["damage"] =0),最多2038( action["damage"] =150)。
护甲防御减少的伤害:
defense_factor = (int)victim->query_temp("apply/armor");
if (defense_factor > 300) defense_factor = 300 + random(defense_factor-300);
defense_factor = (defense_factor + random(defense_factor) )/2;
1500的总防御defense_factor中间数675(random(x)=x/2),最少150(random(x)=0),最多1500(random(x)=x)。
然后
damage - = defense_factor
if (damage<0) damage=0
到了这里,damage所剩无几了,0的可能性很大。
之后有膂力伤害计算、加力伤害(damage_bonus)计算,这些和武器伤害无关。
其中膂力伤害damage_bonus = me->query_str();直接取膂力值。
算完damage_bonus
if( damage_bonus > 0 )
damage_bonus = (damage_bonus+random(damage_bonus))/2;
else
damage_bonus = 0;
damage += damage_bonus;
damage_bonus还是要打折扣,中间数是0.75*damage_bonus,最少0.5*damage_bonus,最多damage_bonus。
然后damage要经过exp对比校正,与论题无关,而且exp相差不到2倍的无修正值。
最后有个power_point加强比较的强悍,
if(martial_skill = me->query_skill_mapped(attack_skill))
if( (int)SKILL_D(martial_skill)->power_point(me) > 0)
damage *= (int)SKILL_D(martial_skill)->power_point(me);
这个没弄明白,如果(int)SKILL_D(martial_skill)->power_point(me)>1.5就太强悍了。。。。
跟着就是将damage加在被攻击者身上damage = victim->receive_damage("qi", damage, me );
至此伤害计算完毕。ttk_28ttk_28ttk_28
算下来,武器镶嵌紫水晶加apply/damage好还是镶嵌红宝石加str、damage_bonus好?
个人认为镶嵌红宝石好,毕竟镶嵌紫水晶加apply/damage还要看对方的护甲防御值,damage=0的可能性很大,而加damage_bonus直接加在最终伤害上,虽然先有打折扣,但最后的power_point加强可能导致的效果很强。
[ 本帖最后由 sure 于 2008-12-20 01:01 PM 编辑 ] 理论数据...... 厉害,但兵器紫宝石加的伤害不是伤上限的那种呀,护具是没用的,护具只能降低伤上限的攻击 根据源码damage = victim->receive_damage("qi", damage, me );
我说的伤害不是伤上限的,上限是maxqi 有问题
防具的armor对气血受到的伤害是不起作用的,只能抵消上限受到的伤害
照你前面的分析的话
穿个两三千防御的甲,敌人根本打不下你的血来
明显不合常识 估计这个源码和现在侠客行的还是有点区别的
页:
[1]