2003-07-29 | #1 |
中级会员
注册: 02年06月05日
来自: 隐月亭
帖子: 63
声望力: 23
声望:
13
现金:25两梁山币
资产:26两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
关于怪dmg 的问题
目前几个问题不太明确,所以请教一下 1. 如果skills 非常平均, 都是500(包括特殊法力,内功) 那么保留75年内力,和降低到40年内力, 怪每次攻击的 dmg 会随内力的调整而降低吗? 2. 如果其他武功都是500, 而force 和特殊内功 只学到300 (45年内力), 在内力不变的情况下, 把force 和特殊内功 都补平到500, 怪的dmg 会提高吗? 3. 怪的roar dmg 与灭妖者的什么系数有关? 最好附加一份 exert roar 的code. |
|
2003-07-30 | #2 |
初级会员
注册: 03年07月26日
来自: 浙江杭州
帖子: 29
声望力: 0
声望:
10
现金:2两梁山币
资产:2两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
怪的skills是你的最高skills按一定比例call的。 而怪的enforce是按怪的最大enforce来的,并不是call你自己的。 所以,你的内力越高,怪内力也越高,气血越长,反之你的内力越低,怪的气血也越低,但怪的enforce不变。 而法力就不一样,你的法力越低,怪的法力按你的copy,enchant也越低。 |
|
2003-07-30 | #3 |
初级会员
注册: 02年08月30日
帖子: 12
声望力: 0
声望:
10
现金:6两梁山币
资产:7两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
我来给个详细的解答。
注:18<=ratio<=27 怪的最大内力=你的最大内力×ratio/20 (你曾经达到的最高内力值,练法宝可降这个值) 怪的最大法力=你的最大法力×ratio/20 (你曾经达到的最高法力值,练法宝可降这个值) 怪的技能等级=你的最高技能等级×ratio/20 怪的wx=1.02×(你的wx)×ratio/20 怪的dx=(1.02X(你的dx)×ratio/20×2+1.02×(你的wx)×ratio/20)/3 怪的内力加力值=怪的enable内力等级/2 (也=你的内力加力值×ratio/20 注:当你的内力等级即你技能的最高等级时) 怪的法力加力值=怪的最大法力/30+1 (也=你的法力加力值×2/3×ratio/20 注:当你现在的最大法力即你曾经达到的最大值时) 以上为基本知识 以下解读combatd.c 以下表达式必须安这个次序 伤害力1=(攻击方的兵器伤害力+random(攻击方的兵器伤害力))/2 伤害力2=伤害力1+技能的伤害力×伤害力1/100 注:比如千钧棒法中大闹阎罗府这招的伤害力为35,即技能伤害力 伤害bonus=攻击方当前臂力 (挺大的,因为你enforce了) 伤害bonus=伤害bonus+内力bonus=攻击方当前左边内力/20+攻击方加力值-防守方当前左边内力/25 伤害bonus=伤害bonus+技能内力×伤害bonus/100 注:技能内力指招式中带内力,这出现在掌法拳法中,带兵器时这行忽略。 伤害bonus=伤害bonus+技能bonus 注:技能bonus仅在jinhun-zhang有,原因在源码中仅它带了自己单独的hit_ob函数 伤害bonus=伤害bonus+兵器bonus 注:兵器bonus发生在断刀与毒蒺黎 伤害bonus=(伤害bonus+random(伤害bonus))/2 伤害=伤害力2+伤害bonus 当random(防御方wx)>攻击方wx,伤害会变小,咱们杀怪一般不考虑这个。 还有你的法宝能担住一部分伤害,两个顶级法宝能档2*125*20=5000点伤害,记住在杀怪或pk前将其charge满。 还有内力反震,发生在攻击方是空手攻击,伤害力也有不同的计算,这里就不多作讨论了。 综上所述,怪的伤害力跟其当前左边内力及加力值有很大关系,其它只是在特殊情况下再叠加影响。 1. 如果skills 非常平均, 都是500(包括特殊法力,内功) 那么保留75年内力,和降低到40年内力, 怪每次攻击的 dmg 会随内力的调整而降低吗? 答:会降低。你应该用练法宝来降低。关于内力的参数有三个, force max_force maxmium_force,最后一个是隐性的,练法宝可降低。 2. 如果其他武功都是500, 而force 和特殊内功 只学到300 (45年内力), 在内力不变的情况下, 把force 和特殊内功 都补平到500, 怪的dmg 会提高吗? 答:不会。怪的加力值早就那么高了,前面说过,一般影响伤害力的主要是当前左边内力和加力值,你把force 和特殊内功 都补平到500,对这两项没影响。 3. 怪的roar dmg 与灭妖者的什么系数有关? 最好附加一份 exert roar 的code 答:ob = all_inventory(environment(me)); skill = me->query_skill("force"); force = me->query("max_force"); for(i=0; i<sizeof(ob); i++) { if( !living(ob[i]) || ob[i]==me ) continue; if(!me->visible(ob[i])) continue; if(!valid_kill(me,ob[i],0)) continue; // mon 6/28/99 if( skill/2 + random(skill/2) < (int)ob[i]->query("cps") * 2 ) continue; damage = skill + force/10 - ((int)ob[i]->query("max_force") / 10); if( damage > 0 ) { ob[i]->receive_damage("sen", damage, me); if( (int)ob[i]->query("force") < skill * 2 ) ob[i]->receive_wound("sen", damage/2, me); me是攻击方,ob是防守方。即: damage=怪的enable内力值+怪的当前右边内力/10-你的右边内力值/10 =怪的enable内力值+0.35×你的内力右边值/10 (注:最后一个怪时) fat chenghua chan chenghua |
纷纷世事无穷尽 茫茫泥海我已归 |
|
|
2003-07-31 | #4 |
初级会员
注册: 03年06月21日
帖子: 16
声望力: 0
声望:
10
现金:-10两梁山币
资产:-10两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
几处硬伤
“伤害bonus=伤害bonus+内力bonus=攻击方当前左边内力/20+攻击方加力值-防守方当前左边内力/25” 这个bonus的计算明显不是这样的,经验表明enforce +1 和 enforce 0之间的差距,不只是一个攻击方加力值这么简单,那完全是天壤之别。根据beginer对于hit_ob函数的理解,上述公式可能为beginer的经验估计出来的。 “伤害bonus=伤害bonus+技能内力×伤害bonus/100 注:技能内力指招式中带内力,这出现在掌法拳法中,带兵器时这行忽略。” 技能内力也出现在了兵器中---绝情鞭。chan 而且加成很大基本上就是一倍,某些招数出现2倍的情况。BT ya BT hellfire-whip什么时候能这样呢? dream hit_ob is not for jinghun-zhang only,该函数是个很重要的函数,他负责计算双方内功对damage的影响。基本所用武功攻击的伤害都要使用它。可以说该函数是计算伤害力的关键,毕竟绝大多数的伤害力来源于双方的内功。不过这个函数隐藏的很好,不在combatd.c中,有待进一步发掘。个人意见,code贴到这个地步就有点冒了。游戏的乐趣就在于不确定性,什么都明白了,就不要玩了,去apply wiz吧。 sweat~~~ |
|
2003-07-31 | #5 |
初级会员
注册: 02年08月30日
帖子: 12
声望力: 0
声望:
10
现金:6两梁山币
资产:7两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
游戏的乐趣对于每个人是不同的,有的人喜欢一切都在掌握中的感觉,有的人喜欢一切都被人掌握中。
beginer语录:游戏的乐趣对于每个人是不同的,有的人喜欢一切都在掌握中的感觉,有的人喜欢一切都被人掌握中。 dwwer兄说: “伤害bonus=伤害bonus+内力bonus=攻击方当前左边内力/20+攻击方加力值-防守方当前左边内力/25” 这个bonus的计算明显不是这样的,经验表明enforce +1 和 enforce 0之间的差距,不只是一个攻击方加力值这么简单,那完全是天壤之别。 根据beginer对于hit_ob函数的理解,上述公式可能为beginer的经验估计出来的。 答:真有天壤之别吗?you are right.有。确是我敲错了,引起你的误解。应该为 伤害bonus=伤害bonus+内力bonus=伤害bonus+攻击方当前左边内力/20+攻击方加力值-防守方当前左边内力/25 内力bonus这项当你enforce 0时根本就不会加上。当你enforce 1时, 这个天壤之别是由于(攻击方当前左边内力/20+1-防守方当前左边内力/25)产生的。 这是我的错,没表达清楚。因为我是在上班敲这些东西,得想着把程序性的语言转化成通俗的语言,最好还能化简成相对值,好比较,也直观。 老玩家毕竟厉害,我稍微敲错,一下就瞧出来了。 dwwer兄又说: “伤害bonus=伤害bonus+技能内力×伤害bonus/100 注:技能内力指招式中带内力,这出现在掌法拳法中,带兵器时这行忽略。” 技能内力也出现在了兵器中---绝情鞭。chan 而且加成很大基本上就是一倍,某些招数出现2倍的情况。 BT ya BT hellfire-whip什么时候能这样呢? dream 答:有些mudlib是如你所说,绝情鞭带技能内力,但我看的没有,我也觉得没有更合理。因为: 为什么仅在空手武功中带内力了来加大伤害力了。是因为空手攻击时,防御方如果用兵器来防御其防御值是double的, 这在combatd.c中明确指出,不管老新版本都一样,因为合情合理呀。如果有人跟你打架,他是空手,你顺手操起一个棍子, 你想想你防御是不是增强了。 因而为了均衡,让空手攻击带兵器防御的,如果不幸打中了,就加大伤害力。所以我觉得总站应该 不会在绝情鞭中加上这个,这些天神的程序功底应该都已深不可测了。 dwwer兄进一步说: hit_ob is not for jinghun-zhang only,该函数是个很重要的函数,他负责计算双方内功对damage的影响。 基本所用武功攻击的伤害都要使用它。可以说该函数是计算伤害力的关键,毕竟绝大多数的伤害力来源于双方的内功。 不过这个函数隐藏的很好,不在combatd.c中,有待进一步发掘。个人意见,code贴到这个地步就有点冒了。 游戏的乐趣就在于不确定性,什么都明白了,就不要玩了,去apply wiz吧。 答: 我查阅过整个mudlib,在技能武功中确实仅jinghun-zhang有自己单独的hit_ob.你说“基本所用武功攻击的伤害都要使用它” 这是对的。但你对hit_ob理解不透彻。因为: 首先让我们先看看hit_ob函数的功能与作用 hit_ob() Eastern Stories II (23 Sep 1995) SYNOPSIS mixed hit_ob( object ob, object victim ); APPLIED skill daemons (martial/force), weapon, npc. DESCRIPTION hit_ob is called by COMBAT_D when a character hits his/her opponent during combat. With this function, you can do extra damage to the victim depending on the skill/weapon/npc you are using. Noted that if the character is using a weapon, the hit_ob defined within the character itself is not called. (i.e. if your draconian is wielding a sword, then he cannot breathe fire) If hit_ob returns a string, the string is added to the combat message (between action message and damage message). If an integer is returned, the integer is added to the damage bonus for that hit. Returned value of other types are ignored. 它的意思指hit_ob应用于技能、内力、武器、人物。在打斗中这四种类型的object都能调用它。在咱们的 西游记中也确实如此。它的概念有点象面向对象程序设计中的虚构函数。基函数中只是个架子,继承函数必须 在各个子类中明确定义才有意义。也就是说hit_ob是个基函数,它只有在技能、内力、武器、人物这四种类型 实体构件中明确定义才有意义,不然调用的仅仅是母类中的基函数,实际上不会作什么实质的。 另: 因chenghua要求贴code,我才贴一下的。毕竟大都数玩家程序功底并不强,人家都是这种高级玩家,已不懈地探索了几年了, 该探索的都探索差不多了,剩下的都是仅靠探索所不能解答的。这些规律不是靠探索就能解决的。探索实际上是一种 穷举法,但实际上穷举法在莫些问题上比较傻。本人仅仅诠释自己对xyj的理解,并无减弱别人游戏乐趣的意愿。 |
|
2003-07-31 | #6 |
中级会员
注册: 02年06月05日
来自: 隐月亭
帖子: 63
声望力: 23
声望:
13
现金:25两梁山币
资产:26两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
多谢*xixi
|
|
2003-08-01 | #7 |
初级会员
注册: 03年06月21日
帖子: 16
声望力: 0
声望:
10
现金:-10两梁山币
资产:-10两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
答beginer
great admire beginer 真是硬逼着自己把lib里的东西扒了遍。hit_ob函数搞定了,不是你的版本太旧了吧。我这里内力bonus就是通过hit_ob算的。foo = SKILL_D(force_skill)->hit_ob(me, victim, damage_bonus, my["force_factor"]) \lib\std\里专门有一个force hit_ob的,不过计算damage的方法是一样的。 hide 不知道beginer你如何理解人物的隐含属性(胆识,定力,福缘,相貌)对人物战斗尤其是busy pfm的影响呢? |
|
2003-08-01 | #8 |
中级会员
注册: 02年06月05日
来自: 隐月亭
帖子: 63
声望力: 23
声望:
13
现金:25两梁山币
资产:26两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
根据beginer的roar code 也就是说在skills 不变的情况下 自己内力升的越高,所受的精神伤害越大,对吧? 因为自己升的内里总比怪生升的内力少 所以在升级内力时候,要同时考虑升级一小部分法力 来增加自己和怪内力升级差多伤害的精神. 是这个道理吧? 还有关于怪的内力的公式 " 注:18<=ratio<=27 怪的最大内力=你的最大内力×ratio/20 (你曾经达到的最高内力值,练法宝可降这个值)" 第一个怪ratio=18 每个怪加一, 最后一个怪就是27 但实际好象第一个怪的系数=17 因为我内力33年,第一个怪为28年 然后因为总共9个怪,所以最后的系数是25 p.s. 17, 18, 19, 20, 21, 22, 23, 24, 25 这也解释了我最后一个怪是41年 |
|
2003-08-01 | #9 |
初级会员
注册: 02年08月30日
帖子: 12
声望力: 0
声望:
10
现金:6两梁山币
资产:7两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
reply chenghua and dwwer
agree chenghua 你的理解是对的。 我给大家秀的是规律,总站可能调整了难度。你根据自己的经验调整这个系数是对的。 那最后一个怪与你的比应该调整为25/20. to dwwer 翻阅整个mudlib不是一个一个文件去看,这里面有trick.一般有非常毅力的人不会太聪明的。hoho admire myself 咱们看的是同一个mudlib。我上面在介绍hit_ob时前面有定语,指技能武功中。 对force中定义的hit_ob我在上面已直接用通俗的语言转化过了,所以才能跟你看到的一样。 关于你提出的问题,我想不必研究得这么深吧。 我个人认为这几个属性对于人物不是最重要的属性,他们有的确实对busy pfm有影响。 如果你真想研究他们的确实作用,我给你秀一下研究的思路吧。 你可检查各个pfm中调用attribute.c 中相关函数的情况,就能知道其中的关系。 for example: 调用了query_cor()说明后天胆识有影响,调用了query("cor")说明先天胆识有影响。 就点到为止了,毕竟生活中还有更烦琐的事要弄。 |
|
2003-08-02 | #10 |
中级会员
注册: 02年06月05日
来自: 隐月亭
帖子: 63
声望力: 23
声望:
13
现金:25两梁山币
资产:26两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
目前我知道的,perform zouxiao ,perform pozhan 应该都和定力或胆识多少有些关系 尤其是perform pozhan, 同是10M wx 的2个ID 互相perform 10下pozhan, 谁的属性高 一眼就看出来了,低的成功率不到一半,高的成功率到80%也很平常. 根据我的经验,好像4个隐藏属性加起来也是90点 所以长的不是很漂亮(当然不要太丑,要不没媳妇了:P), 福缘低的,通常胆识和定力就很高. 还有就是长的像猪八戒的本家都有很高的福缘也可以这么解释了. 我觉得如果往长远发展,最好福缘开始选低些 虽然会稍微影响以后quest 的速度, 还要多花些GOLD 但是在比武中得到的好处相比较来说,实在微不足道 好比2人都有quest robot 一个比另一个效率高 但是这效率高的人在wzg而另外一个效率低的在lg 谁得的好处多,就一目了然了. |
|