谁能够根据以下公式写出电脑计算伤害的脚本!重奖
无任何特殊技能情况下:攻大于防时:
(1+攻防差*5%)*从伤害范围中随机取到的伤害值*[远程减半]
其中攻防差最大取60,也就是说伤害值最多是:最大伤害值*4
防大于攻时:
(1-攻防差*2.5%)*从伤害范围中随机取到的伤害值*[远程减半]
其中攻防差最大取28,也就是说减少70%伤害,所以伤害最小值是:最小伤害*30%
按以上情况分析,一个攻很高的英雄带个低级兵打高级兵,结果是随机伤害值*4,也造成不了多少伤害.
下面是转的一篇别人写的文章,太繁琐了:
(1)若进攻方的攻击点数大于或是等于挨打方的防御点数时,单个生物的伤害公式是:
(1+5%A+J+C+E)*(1-B)*(1-M)*(X-Y+Z)*F
(2)若进攻方的攻击点数小于挨打方的防御点数时,伤害公式又改为:
(1-2.5%D)*(1+C+E+J)*(1-B)*(1-M)*(X-Y+Z)*F
怎么样?一头雾水吧,这也难怪,公式中出现的字母都是我给定义的,又没和大伙儿商量,真是对不起,我这就把各个字母的含义解释给大家听。
“*”是相乘的意思,很简单吧。
“ A”是进攻方的攻击点数大于挨打方防御点数的具体数值,在战场上很容易观察到双方部队的攻防情况,减一下就出来了,如果攻防相等,“A”取0。与“A”相对,“D”就是挨打方的防御点数大于进攻方攻击点数的具体数值,至于为什么要在“A”和“D”的前面乘上5%与2.5%,原因大家都知道,我就不多说了。另外5%A和2.5%D分别都有最大值,在“A”取60时,5%A最大为3,2.5%D在“D”取28时,最大为70%,--攻防高到一定程度就不再对伤害产生影响了。(关于A、D的其它问题也可看最后的注1)
“J”指的是加大伤害的技能,近身肉搏时攻击术起作用,远程射击当然靠箭术了,需要强调的是人类的骑兵有移动攻击的特性,所以在骑兵攻击时,除了需要考虑攻击术的影响外,还要再加上5%*攻击时走过的步点数(注2);在宝物中又有几件加远程射击效果的东东,也要留心。至于那两个有攻击术特性的蛮族英雄;一个箭术特长的人类骑士,您该不会忘记吧?举个例子说,13级且有专家攻击术的Crag Hack在战场上,其手下的骑兵准备移动8步进行攻击,这时的“J”就等于30%+30%*5%*13+5%*8=89.5%。可以发现,当“J”中有多个影响因素时,需分别计算最后相加。
“C”是战斗时能出现的加倍因素,常见的是幸运,对于地狱骑士和箭车来说还有奋力一击与炮术(电脑的预先伤害统计可不会把它们的影响也显示出来)。这些因素数值都为1,也可以累加在一起,如同时出现幸运+奋力或幸运+炮术,“C”就是1+1等于2了。爽呀!
“E”的数值为50%,但只有在天使VS恶魔、泰坦VS黑龙、火怪VS灯神这三对死敌决战时才能加上。
“B”是减少伤害的技能,自然是盔甲术了,专家级的盔甲术是15%,而有三个特长盔甲术的英雄随着等级的提高也会相应提升这一数值。真可谓水涨船高。
“M”为能减少伤害的魔法,近战时是地系魔法盾,高级可减30%,而空气护盾自然是对抗远程伤害的首选了,最多可削弱50%!
“X”可不是数学中的末知数,它的含义是生物的基本伤害。除了少数几个伤害固定的家伙外,多数生物的基本伤害都在一定范围内变化:长斧兵是2-3,空气元素则有2-8之多。每次到底取多少,只有电脑说的算,当然你也可以在事后根据屏幕下方的提示,用上面的公式把那个数给算个八八九九,看看电脑是不是给你个不公正待遇。现在放松一下,考大家一个IQ题:未日之刃以后,共有六位英雄在率领自己所特长的兵种时会不同程度的加大它们的伤害,您知道他们都是谁吗?--猜对有奖!
“Y”、“Z”分别是诅咒和祝福魔法,正常情况下,初级的诅咒和祝福可使伤害变为最小或最大,而中级和高级的诅咒可使伤害变为最小再减1!别怀疑,我也很希望它是最小伤害的80%-1,可实战结果却是无情的(我的死亡阴影是3.1版本);中级和高级的祝福能出现最大伤害+1的效果。而不正常的情况就是当这个祝福是阿德拉(Adela)的杰作时,加的可不一定是1了。--又一个公式?我的妈啊!
最后轮到“F”了,它可不简单,包括了上面没讲到的战场其它因素,让我们看看它们都是谁:首先是射击部队最麻烦,距离远了减半,攻城减半,近战时往往也要减半,真难伺候。这还不算,从末日之后又来了个元素城的精神精灵跟着捣乱,在攻击非生物系怪物时伤害也要减半(刚刚才从更新上看到,多谢新任斑竹,使我又涨了几万经验值,注3)!接下来是一些可恶的魔法:致盲后,第一次反击会减弱,或许就没有这一次反击呢;在石化或麻痹状态所受到的攻击也要减半--这些情况各有相应的数值,若是同时有多个因素作祟,需分别计算最后相乘,结果是越乘越少!唉?!幸亏H3中有预先统计伤害这一项,如果还象H2那样……哼哼!可有的瞧了。
以上说的是单个生物的伤害的计算,如果有N个这样的生物同时下家伙,只须单个生物伤害的数值 * N ±修正值(与N有关,在总伤害的1%范围内)就可以了,为什么还有修正值呢,这是因为实战发现,同样条件下,伤害与数量并不是规则的正比例函数。故不能简单的拿单个伤害与总数相乘……(话末说完,台下已倒了一大片,接着又是雨点般砖头飞上来………)
以下是一点补充说明,不看也罢!
注1:战场上部队的实际攻防与英雄的攻防、生物本身的攻防、英雄是否有相应的兵种特性、地形、魔法影响、是否原地防御都有关系。在原地防御时,所增加的点数是生物防御前的防御点数除以5,结果只取整数,小数直接舍去,不进行四舍五入;若是除的结果还不到1就取1,如防御为1的农民原地防御也可以增加1点,与防御为9的狮鹫原地防御增加的是一样的。
注2:骑兵的移动步数在直来直去的面对面攻击时很容易数出来,一但要绕到敌人的身后就稍微有点麻烦:因为骑兵是占两格的大块头,这就需要它一直走到敌人身后两格处再转身攻击。而我们常常想当然的少算一步,有一次我的8个高级骑兵加了祝福后,算的是走了6步,应该打91点,可实际老是打94?虽说只有3点差异,这也不对啊,反复计算还是如此,最后恍然大悟:实际走了7步!如果你也是这样导致算的比不上打的,可千万别用鸡蛋砸我呀!
数学打小就不好的路过;han; 难点:1、幸运和致命的因素!估计是判断不出来的!
2、骑兵的冲锋效果,步数的计算,记得对枪兵无效;
3、仇恨的判断;
4、最后的F值的计算; 寻们你是来度假还是正式回归啊
整个帖子带个招呼啊
我顶你一个,虽然我一点不懂 顶一下寻梦大大先,希望是正式回归啊,大家伙都好想你啊;orz;
慢着,为虾米是在清明节回归啊;balu; :deyi: 这个确实是个历史难题,英雄宝典里有关于此的很繁琐的“H3物理伤害全面公式”(作者:阿斌)的文章,还有一篇DarkRain 的“H3物理伤害简化公式”,H3里已经很复杂了,在WOG里更复杂了,单是一个憎恨就增加了多少生物啊:nianjing:
哈哈,出去溜达了一圈,大师不准备亲自出马解决啊
同求同求。奖励加倍!关于移动的步数计算问题,难点和要点确实如寻梦所说,双格兵转到身后攻击这个计算总之没头绪。 想法宏大,脚本我不会,嘿嘿 :buxie: 回归是愚人节活动吗;jx;
回复 9# 的帖子
拜托各位大哥大姐不要忘记了此帖主题,特别是最后两句重奖!!!;ekow; 原帖由 寻梦人 于 2012-4-2 23:13 发表 http://www.h3wog.com/images/common/back.gif
难点:1、幸运和致命的因素!估计是判断不出来的!
2、骑兵的冲锋效果,步数的计算,记得对枪兵无效;
3、仇恨的判断;
4、最后的F值的计算; 关于冲锋这个计算步数的好像沧海已经解决了的吧,我看他怪物强化3里面好像有。 原帖由 兽哥哥 于 2012-4-2 23:53 发表 http://www.h3wog.com/images/common/back.gif
关于冲锋这个计算步数的好像沧海已经解决了的吧,我看他怪物加强3里面好像有。
呵呵,关于计算移动步数至今没解决的主要就是寻梦人说的,还有那个计算步数是召唤师写的。
今天搞了一点,很不完善!期待强人补上!
ZVSE!?MF1;
!!FU7000:P100;
!?FU7000&x1=100;
!!BG:N?y-1 E?y-2 A?y-3;
!!MF:N?y1;
!!FU7000&y-2=y1:P101/y-1/y-2/y-3;进攻
!!FU7000&y-1=y1:P102/y-2/y-1;反击
!?FU7000&x1=101;进攻
!!BMx2:A?y10 U1/?y11 U2/?y12 N?y13 I?y14;攻伤数量所属方
!!BMx2:G41/?y15/d G42/?y16/d;祝福和诅咒只计算高级
!!BMx3:D?y17 I?y18;
!!BMx3:G27/?y19/d G28/?y20/d;护盾和气盾只计算高级
!!BMx3:G70/?y21/d;石化
!!FU7000:P103/y18;计算B值就是防御术
!!FU7000:P104/y19/y20/x4;计算M值就是魔法护盾和气盾
!!FU7000:P105/y15/y16/y11/y12;计算X-Y+Z伤害值
!!FU7000:P106/y21;计算F值石化
!!FU7000:P107/y10/y17;计算攻防差
!!FU7000:P108/y14/x4;计算特长进攻术
!!FU7000:P109/y14/x4;计算特长箭术
!!FU7000:P110/x2/x3;计算仇恨
!!VRz1:S^{B值:%V201M值:%V200 伤害:%V202F值:%V203攻防差:%V204进攻术:%V205 箭术:%V206 仇恨:%V207}^;
!!VRy-64:Sv201*v200:10000;单个基本伤害
!!VRy-65:Sv202*v203:100;单个基本伤害
!!VRy-66:Sy-64*y-65:100;单个基本伤害
!!VRe-66&v204>0:S100+v204+v207*100+v205+v206:10000;
!!VRy-76&v204<0:S100+v204;
!!VRy-77&v204<0:S100+v207*100+v205+v206;
!!VRe-66&v204<0:Sy-76*y-77:1000000;
!!VRe-67:Sy-66*e-66*y13;
!!VRy-67:Se-67;
!!MF:Fy-67;
!!VRz2:S^{计算伤害为:%Y-67基本伤害:%Y-64 %Y-65 %Y-66 %Y-76 %Y-77 %Y13 系数:%E-66}^;
!!MM:Sz1;
!!MM:Sz2;
!?FU7000&x1=103;计算B值就是防御术v201
!!BHx2:N?y1;
!!VRv201&y1<0:S10000;
!!FU&y1<0:E;
!!HEy1:X?y2/?y3/d/d/d/d/d ;
!!HEy1:S23/?y4 ;
!!HEy1:Ed/?y5;
!!VRy12&y4=0:S0;
!!VRy12&y4=1:S5;
!!VRy12&y4=2:S10;
!!VRy12&y4=3:S15;高级防御术
!!VRy13&y2=0/y3=23:Sy12 *y5*5;特长防御术
!!VRy14:S100-y12*100;
!!VRv201:Sy14-y13;
!?FU7000&x1=104;计算M值就是魔法护盾和气盾v200
!!VRv200:S100;
!!VRv200&x2>0/x4=6:S70;
!!VRv200&x3>0/x4=7:S50;
!?FU7000&x1=105;计算X-Y+Z伤害值v202
!!VRy99&x2>0:Sx5+1;祝福
!!VRy99&x3>0:Sx4-1;诅咒
!!VRy99&x2=0/x3=0:Sx4+x5:2;平均数
!!VRv202:Sy99;
!?FU7000&x1=106;计算F值石化v203
!!VRv203:S100;
!!VRv203&x2>0:S50;
!?FU7000&x1=107;计算攻防差v204
!!VRy-1:Sx2-x3;
!!VRv204&y-1>=0:Sy-1*5;
!!VRv204&y-1<0:Sy-1*5:2;
!!VRv204&v204>300:S300;
!!VRv204&v204<-70:S-70;
!?FU7000&x1=108;计算箭术和进攻术v205
!!FU&x3<>6:E;
!!BHx2:N?y1;
!!VRv205:S0;
!!FU&y1<0:E;
!!HEy1:X?y2/?y3/d/d/d/d/d ;
!!HEy1:S22/?y4;
!!HEy1:Ed/?y5;
!!VRy12:S0;
!!VRy12&y4=1/x3=6:S10;
!!VRy12&y4=2/x3=6:S20;
!!VRy12&y4=3/x3=6:S30;高级进攻术
!!VRy13&y2=0/y3=22:Sy12 *y5*5;特长进攻术
!!VRy14:Sy12*100;
!!VRv205:Sy14+y13;
!?FU7000&x1=109;计算箭术v206
!!FU&x3<>7:E;
!!BHx2:N?y1;
!!VRv206:S0;
!!FU&y1<0:E;
!!HEy1:X?y2/?y3/d/d/d/d/d ;
!!HEy1:S1/?y4;
!!HEy1:Ed/?y5;
!!VRy12:S0;
!!VRy12&y4=1/x3=7:S10;
!!VRy12&y4=2/x3=7:S30;
!!VRy12&y4=3/x3=7:S50;高级箭术
!!VRy13&y2=0/y3=1:Sy12 *y5*5;特长箭术
!!VRy14:S100+y12*100;
!!VRv206:Sy14+y13;
!?FU7000&x1=110;计算仇恨v207
!!BMx2:T?x6;
!!BMx3:T?x7;
!!VRy-1:Sx2+1*-1;
!!EAy-1:E?y-2/2/d/d;
!!MA:Lx6/?y-3;
!!VRy-3:+1;
!!VRy-3&y-3=7/x6>131/x6<136:S8;
!!VRy-3&y-3=7/x6>149/x6<159:S8;
!!VRy-3&y-3=7/x6=196:S8;
*Level 1~7
!!VRy-2&y-3<8::y-3;
!!VRy-4&y-3<8/y-2<1000:S0;
!!VRy-4&y-3<8/y-2>=1000/y-2<2000:S1;
!!VRy-4&y-3<8/y-2>=2000/y-2<3200:S2;
!!VRy-4&y-3<8/y-2>=3200/y-2<4600:S3;
!!VRy-4&y-3<8/y-2>=4600/y-2<6200:S4;
!!VRy-4&y-3<8/y-2>=6200/y-2<8000:S5;
!!VRy-4&y-3<8/y-2>=8000/y-2<10000:S6;
!!VRy-4&y-3<8/y-2>=10000/y-2<12200:S7;
!!VRy-4&y-3<8/y-2>=12200/y-2<14700:S8;
!!VRy-4&y-3<8/y-2>=14700/y-2<17500:S9;
!!VRy-4&y-3<8/y-2>=17500:S10;
*Level 8
!!VRy-4&y-3=8/y-2<1050:S0;
!!VRy-4&y-3=8/y-2>=1050/y-2<2100:S1;
!!VRy-4&y-3=8/y-2>=2100/y-2<3360:S2;
!!VRy-4&y-3=8/y-2>=3360/y-2<4830:S3;
!!VRy-4&y-3=8/y-2>=4830/y-2<6510:S4;
!!VRy-4&y-3=8/y-2>=6510/y-2<8400:S5;
!!VRy-4&y-3=8/y-2>=8400/y-2<10500:S6;
!!VRy-4&y-3=8/y-2>=10500/y-2<12810:S7;
!!VRy-4&y-3=8/y-2>=12810/y-2<15435:S8;
!!VRy-4&y-3=8/y-2>=15435/y-2<18375:S9;
!!VRy-4&y-3=8/y-2>=18375:S10;
!!EAy-1:F104/x7/?y-5; 仇恨
!!EAy-1&y-5>0:By-5/1/104/x7/?y10/?y11/?y12/?y13/?y14/?y15/?y16/?y17/?y18/?y19/?y20;
!!VRy21&y-5>0:Sy-4 +10;
!!VRv207:S0;
!!VRv207&y-5>0/yy21>0:Syy21*10; 个人认为H5的攻防修正公式比H3要合理,值得借鉴。
如果攻方的攻击力(A)高于防守方的防御力(D) ,则
伤害=攻方杀伤×[1+(A-D)×5%]×攻方数量
如果攻方的攻击力低于防守方的防御力,则
伤害=攻方杀伤÷[1+(D-A)×5%]×攻方数量 一个炸雷把电脑打坏了,几近波折修好了,一上来就见一个巨难题,顶一个先
页:
[1]