query_t ... 武器镶嵌宝石分析 ,北大侠客行MUD论坛" />

北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 3677|回复: 5

武器镶嵌宝石分析

[复制链接]
发表于 2008-12-20 12:54:17 | 显示全部楼层 |阅读模式
根据网上公开的旧版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 );
至此伤害计算完毕。

算下来,武器镶嵌紫水晶加apply/damage好还是镶嵌红宝石加str、damage_bonus好?
个人认为镶嵌红宝石好,毕竟镶嵌紫水晶加apply/damage还要看对方的护甲防御值,damage=0的可能性很大,而加damage_bonus直接加在最终伤害上,虽然先有打折扣,但最后的power_point加强可能导致的效果很强。

[ 本帖最后由 sure 于 2008-12-20 01:01 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2008-12-20 13:03:21 | 显示全部楼层
理论数据......
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2008-12-21 10:55:46 | 显示全部楼层
厉害,但兵器紫宝石加的伤害不是伤上限的那种呀,护具是没用的,护具只能降低伤上限的攻击
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2008-12-22 19:52:37 | 显示全部楼层
根据源码damage = victim->receive_damage("qi", damage, me );
我说的伤害不是伤上限的,上限是maxqi
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2008-12-23 12:39:01 | 显示全部楼层
有问题
防具的armor对气血受到的伤害是不起作用的,只能抵消上限受到的伤害
照你前面的分析的话
穿个两三千防御的甲,敌人根本打不下你的血来
明显不合常识
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2008-12-24 13:52:04 | 显示全部楼层
估计这个源码和现在侠客行的还是有点区别的
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-27 09:37 PM , Processed in 0.009571 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表