xuzhouhudajz 发表于 2015-10-18 21:25:08

请教贤知大人:具体问题如下.

本帖最后由 xuzhouhudajz 于 2015-10-18 21:28 编辑

请教贤知大人:下面是我编辑的增强魔法伤害脚本,在封神2.2.1中使用时始终无法对对方塔楼英雄圣侏儒魔法伤害不加强,而只对本方英雄施法和兵种施法加强,另外还实现减少敌方的魔法伤害。在实际验证的过程中我方的魔法伤害得到加强,但是对方部分生物施法也得到了加强,就比如刚才的圣侏儒!说明我对BG后面的堆栈理解还存在问题,请帮我解答一下!我已经修改了无数次,验证了无数次仍然,时间大概有2个月左右,仍然解决不了。1、请帮我指出条件限制有什么遗漏或错误!2、能否简单指点一下BG后的细微区别,及注意事项!
!?BA0&1000;
!!BA:H0/?v9555;             保存进攻方英雄到v9555
!!BA:H1/?v9560;             防守方hero到v9560
!?BF&1000;                  战场生成后
!!DO9999996/0/20/1&v9555=v85:P;      
!!DO9999996/21/41/1&v9560=v85:P;
!?FU9999996;
!?MR0&1000;
!!BG:A?y6 Q?y3 N?y10;
!!BG&y3=0:E?y9;
!!BG&y3=1:E?y16;
!!HEv85:Ed/?y4/1;
!!BHy3:N?y8;
!!BMy10:I?y12;
!!VRy13:Sy12*-1 +1;
!!BHy13:N?y14;
!!BHy12:N?y15;
!!MR:D?y5 S?y7;
!!VRy1:Sy5 *y4 :50;
!!VRy2:Sy5-y1;
!!VRy2&y2<0:S0;
!!VRy5:+ y5 *y4 :5;
!!VRy5&y5<0:S0;
!!VRy5&y5>2140000000:S2140000000;
!!FU&y7=29:E;
!!FU10000001&y9>-1:Py5/y8/y9/y14/y15/y2/y6/y16/y3;
!?FU10000001;
!!if&x2=v85/x9=0:;
!!FU&x5<>v85/x4=v85/x7<1/x3<21/x7>11:E;
!!MR:Dx1;
!!en:;
!!if&x2=v85/x9=1:;
!!FU&x5<>v85/x4=v85/x7<1/x8>20/x7>11:E;
!!MR:Dx1;
!!en:;
!!if&x2<>v85/x9=0:;
!!FU&x5=v85/x7<0/x4<>v85/x3<21/x3>-1:E;
!!MR:Dx6;!!en:;
!!if&x2<>v85/x9=1:;
!!FU&x5=v85/x7<0/x4<>v85/x8>20:E;
!!MR:Dx6;
!!en:;

贤知有您 发表于 2015-10-18 21:47:43

首先
!?FU9999996;这个函数是干嘛用的?

其次,你能先说明一下,你想要达到什么效果吗?

xuzhouhudajz 发表于 2015-10-18 23:01:04

函数检查战场中堆栈,并进行参数调整,在函数!?FU9999996;后面还有另外的程序,完整的程序内容是:
!?FU9999996;!!BMx16:H?y-37 U1/?y2 U3/?y-62 T?y-44 N?y-45 B?y-46 S?y1;!!HEv85:E?j/?k;!!VRy3:Sk:6;!!FU&y-37<1:E;
!!VRy-37:*k :100;!!VRy-37&y-37<1:S1;

!!VRy-37&y-37>2140000000:S2140000000;
!!BMx16:Hdy-37;
!!VRy-62&y-62>0:+k;!!VRy-47&y-46>0:Sk:5;
!!VRy2:Sy2*k :20;!!BMx16:U3/y-62;!!BMx16|x16=v7208/x16=v7207:Sdy3;!!BMx16&y-44>144/y-44<149|y-44>196/y-44<0:Ndy-47 Bdy-47 U1/dy2 U2/dy2;;
------------------------------魔法伤害加倍--------------------------------


;!?MR0&1000;!!BG:A?y6 Q?y3 N?y10;!!BG&y3=0:E?y9;!!BG&y3=1:E?y16;
!!HEv85:Ed/?y4/1;!!BHy3:N?y8;!!BMy10:I?y12;!!VRy13:Sy12*-1 +1;!!BHy13:N?y14;!!BHy12:N?y15;!!MR:D?y5 S?y7;!!VRy1:Sy5 *y4 :50;!!VRy2:Sy5-y1;!!VRy2&y2<0:S0;!!VRy5:+ y5 *y4 :5;!!VRy5&y5<0:S0;!!VRy5&y5>2140000000:S2140000000;!!FU&y7=29:E;!!FU10000001&y9>-1:Py5/y8/y9/y14/y15/y2/y6/y16/y3;!?FU10000001;!!if&x2=v85/x9=0:;!!FU&x5<>v85/x4=v85/x7<1/x3<21/x7>11:E;!!MR:Dx1;!!en:;!!if&x2=v85/x9=1:;!!FU&x5<>v85/x4=v85/x7<1/x8>20/x7>11:E;!!MR:Dx1;!!en:;!!if&x2<>v85/x9=0:;!!FU&x5=v85/x7<0/x4<>v85/x3<21/x3>-1:E;!!MR:Dx6;!!en:;!!if&x2<>v85/x9=1:;!!FU&x5=v85/x7<0/x4<>v85/x8>20:E;!!MR:Dx6;!!en:;效果就是随着英雄等级增加增强本方魔法(英雄施法和兵种打击或者行动时施法)伤害,并随着英雄等级提高减少魔法伤害!

adamscheng 发表于 2015-10-19 07:15:15

原来都是程序猿,一般人插不上嘴

wuxiangjinxing 发表于 2015-10-19 08:23:00

排版捉急啊,不建议在同一行中出现一条以上的命令,否则在注释时有可能会忘记……

其次……封神的游戏环境太复杂了。建议首先在无封神的WOG环境下测试脚本。如果非要在封神下实现你想要的功能,更好的办法是直接修改封神原有的脚本

贤知有您 发表于 2015-10-19 08:36:06

那看来!?FU9999996;函数跟增强魔法之类没啥关系,这里就不讨论了.
直接讨论 MRO 触发器.
我有空再仔细看你的脚本吧.

你的脚本都是用v85固定一个英雄的能力,你是在做地图吗?超级英雄?

贤知有您 发表于 2015-10-19 11:28:21

大部分都有注释了,希望对楼主有帮助.
同时楼主也应该写写注释,方便以后自己修改.

!?BA0&1000;
!!BA:H0/?v9555;             保存进攻方英雄到v9555
!!BA:H1/?v9560;             防守方hero到v9560
!?BF&1000;                  战场生成后
!!DO9999996/0/20/1&v9555=v85:P;      
!!DO9999996/21/41/1&v9560=v85:P;
!?FU9999996;

!?MR0&1000;
*这里用MR0的话,MR:D和MR:F都是对基础伤害进行处理
*如果用MR1且用MR:F则可以对最终伤害进行处理(也就是系统计算了抗魔之后)
*实际最终伤害结果会受到很多因素影响,比如英雄有巫术,目标是抗魔类型等等.
*所以测试效果时应该避免这些能增加或减少伤害的情况,否则看不出数据是否正确.

!!FU&v9555<>v85/v9560<>v85:E;[战场没有特定英雄时应快速退出]
!!BG:Q?y1;[当前攻击方]
!!VRy2:Sy1*-1+1;[相反方]
!!BHy1:N?y11;[攻击方对应英雄y11]
!!BHy2:N?y12;[对方英雄y12]
!!HEv85:Ed/?y10/1 B0/?z1;[特定英雄的等级y10]
!!MR:D?y20 F?y21 S?y22;[原伤害y20,最终伤害y21(MR0下等同于y20),魔法编号y22]
!!FU|y20<1/y22=29:E;[排除火盾]
!!if&y11=v85:;[施法方是特定英雄]增加魔法伤害,
!!VRy30:Sy10*2; 每级+2%?
!!VRy31:Sy30 *y20 :100 +y20;[最终值]
!!VRy31&y31<0:S0;
!!VRz-1:S^%Z1增加己方%Y30%%基础魔法伤害(%Y20->%Y31)!^;
!!BU:Mz-1;[战场信息,便于测试效果]
!!MR:Dy31;
!!en:;
!!if&y12=v85:;[非施法方是特定英雄]减少魔法伤害,每级少2%?
!!VRy30:Sy10*2; 每级+2%?
!!VRy31:Sy30 *y20 : -100 +y20;[最终值]
!!VRy31&y31<0:S0;
!!VRz-1:S^%Z1减少对手%Y30%%基础魔法伤害(%Y20->%Y31)!^;
!!BU:Mz-1;
!!MR:Dy31;
!!en:;

xuzhouhudajz 发表于 2015-10-19 18:07:07

贤知有您 发表于 2015-10-19 08:36
那看来!?FU9999996;函数跟增强魔法之类没啥关系,这里就不讨论了.
直接讨论 MRO 触发器.
我有空再仔细看你 ...

我在做一个适合自己的英雄

xuzhouhudajz 发表于 2015-10-19 18:37:13

贤知有您 发表于 2015-10-19 11:28
大部分都有注释了,希望对楼主有帮助.
同时楼主也应该写写注释,方便以后自己修改.



我仔细拜读了,我存在几个问题:一个编程思路有问题,认为条件限制越多效果越明显,同时带来的就是冲突就越多;第二个就是根本的就是看了帮助手册,由于理解不到位,带来很多不确定性!非常感谢!

无心云 发表于 2015-10-19 19:51:02

楼主看来也是练家子

我就只能看看了

xuzhouhudajz 发表于 2015-10-20 19:51:45

无心云 发表于 2015-10-19 19:51
楼主看来也是练家子

我就只能看看了

这位老兄我可不会编程,只不过10多年前学了点C语言而已,早就不记得了!只是有点兴趣而已!

无心云 发表于 2015-10-20 19:55:51

xuzhouhudajz 发表于 2015-10-20 19:51
这位老兄我可不会编程,只不过10多年前学了点C语言而已,早就不记得了!只是有点兴趣而已!

哈哈,至少像我们这样的外行是看不出来的。

xuzhouhudajz 发表于 2015-10-20 20:05:44

无心云 发表于 2015-10-20 19:55
哈哈,至少像我们这样的外行是看不出来的。

你是拿我开涮呀!我看过你编的脚本,我就是练10年也赶不上你哟!更不要说贤知大人他们!他们的编程能力和无私、无怨无悔、诲人不倦的品行呀!特别是他们的品行是值得我学习的!

无心云 发表于 2015-10-21 20:00:10

xuzhouhudajz 发表于 2015-10-20 20:05
你是拿我开涮呀!我看过你编的脚本,我就是练10年也赶不上你哟!更不要说贤知大人他们!他们的编程能力和 ...

先知、沧海、还有更前的古人是真大能
我从来没有写过东西啊。

即便那个无心狮鹫王的那个也是我跪求沧海大大写的,你这话要是被兽看到了,他又要笑话我了。
我就是一纯正的水王;tq;

xuzhouhudajz 发表于 2015-10-22 18:21:09

无心云 发表于 2015-10-21 20:00
先知、沧海、还有更前的古人是真大能
我从来没有写过东西啊。



呵呵!我也是哟!只是偶尔学学!难登大雅之堂!;sw;
页: [1]
查看完整版本: 请教贤知大人:具体问题如下.

捐赠