贤知有您 发表于 2013-11-14 16:48:00

【ERA】让生物施放指定魔法的简易方法

本帖最后由 贤知有您 于 2013-11-14 16:54 编辑

相信很多ERM作者都为生物不能简单施法而烦恼.
为了模拟生物可以施法(也就是在玩家控制时可以对其它生物出现施法的指针)
一般是通过!?MM0触发器判断是否轮到施法生物,改动鼠标指针的样式.
再通!?CM4触发器判断点击的位置是否符合施法要求,再施放魔法.
说到底需要一大堆代码,而且还不够灵活.

其实有一种更简便的方法,特殊生物的可否施法在内存中有3个开关位.
位置确定的如下.生物编号从13开始,因为特殊生物是从13大天使开始的.
(沧海一粟感叹说:祭司又被无情地抛弃了)
-----------------------------------------------------------------
79FB90-79FC47
00 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 //13-28(00->13大天使)
09 09 09 09 09 09 09 09 01 09 09 09 09 09 09 09 //29-44(01->灯神37)
09 09 09 09 09 09 02 09 09 09 09 09 09 09 09 09 //45-60(02->51邪神)
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 //61-76
09 09 09 09 09 09 09 09 09 09 09 09 09 09 03 09 //77-92(03->91食人魔)
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 //93-108
09 09 09 09 09 09 09 09 09 09 09 09 09 09 04 09 //109-124
05 09 06 09 07 09 09 09 09 08 09 09 09 09 09 09 //125-140(08->紫龙134)
09 09 09 09 09 09 09 09 09 00 09 09 09 09 09 09 //141-156
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 //157-172
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 //173-188(08->指挥官)
08 08 08 09 09 09 09 09-09 09 09 00 00 00 00 00 //189-196
--------------------------------------------------------------
79FAD0-79FB87
00 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 //13-28(00->13大天使)
08 08 08 08 08 08 08 08 01 08 08 08 08 08 08 08 //29-44(01->37灯神)
08 08 08 08 08 08 00 08 08 08 08 08 08 08 08 08 //45-60(00->51邪神)
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 //61-76
08 08 08 08 08 08 08 08 08 08 08 08 08 08 02 08 //77-92(02->91食人魔)
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 //93-108
08 08 08 08 08 08 08 08 08 08 08 08 08 08 03 08 //109-124
04 08 05 08 06 08 08 08 08 07 08 08 08 08 08 08 //125-140(07->紫龙134)
08 08 08 08 08 08 08 08 08 00 08 08 08 08 08 08 //141-156
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 //157-172
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 //173-188(07->指挥官)
07 07 07 08 08 08 08 08-08 08 08 00 00 00 00 00 //189-196
--------------------------------------------------------------
79FA10-79FAC7
00 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 //13-28(00->13大天使)
03 03 03 03 03 03 03 03 01 03 03 03 03 03 03 03 //29-44(01->37灯神)
03 03 03 03 03 03 00 03 03 03 03 03 03 03 03 03 //45-60(00->51邪神)
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 //61-76
03 03 03 03 03 03 03 03 03 03 03 03 03 03 01 03 //77-92(01->91食人魔)
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 //93-108
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 //109-124
03 03 03 03 03 03 03 03 03 02 03 03 03 03 03 03 //125-140(02->紫龙134)
03 03 03 03 03 03 03 03 03 00 03 03 03 03 03 03 //141-156
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 //157-172
02 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 //173-188(01->指挥官)
01 01 01 03 03 03 03 03-03 03 03 00 00 00 00 00 //189-196
---------------------------------------------------------------------
这3份开关表其实是连续的一大块内存区域.
只不过我把它拆开了,这样看起来容易点.
从表中可以看出一些特殊生物施法,是由3个开关组成的.
非特殊生物,开关上都处于无用状态(如第一表09,第二表08,第三表03)
于是我决定把其它生物改成与这些特殊生物相同的开关,以测试可用性.
经过我多番测试,发现以下一些规律:
->(0-0-0)天使类
(不受BM:U影响)能复活未完全死亡的部队.
但不能复活完全死亡的部队.(没有施法指针)
->(2-0-0)邪神类
(不受BM:U影响)但无法对死亡部队施法,能对未死亡部队施法但无效!!
基本可以说是无法应用.
->(1-1-1)灯神
(不受BM:U影响)可以实现灯神的随机施法
->(3-2-1)食人魔
(不受BM:U影响)能实现食人魔的嗜血施法,但没多大价值.
->(4-3-3)冰元素
(不受BM:U影响)能实现冰元素的施放水系魔法
(其它元素类似,施放一些四系魔法),应用度不高.
->(8-7-2)紫龙
(受BM:U影响)能施放指定的魔法,且可以区分有益或有害
能对堆栈出现施法指针!!(这点很重要)
若不指定一个BM:U魔法则会施放空魔法(但会有施法动作)
在第一次施法时,若没有BM:U4指定施法编号,可以对所有堆栈施放空魔法
可在需要的地方设置BM:U4指定魔法(如BF,BR,FU77006等)
->(8-7-1) 指挥官 ,貌似效果跟紫龙类(8-7-2)一样.

这里,用紫龙或指挥官类的施法:
施法的力量,等于施法生物的个数!!
施法的技能等级是高级(即中间等级)!
如:100个生物施法54迟缓,回合数是100
100个生物施法17闪电,正常伤害值 25*100+20=2520
-----------------------------------------------------------------------------------------------------------
好了.我觉得最有用的莫过于紫龙类的施法,因为它可以用BM:U指定施放魔法,而且能自动判断施法的势力接受情况.
当然,灯神类的开关也可以直接用.大家可以自行测试.
下面给出一个范例脚本.
让暗黑龙施法,且随机施放指定魔法.
最后又啰嗦一句,改动内存最好是有借有还.请在适当的地方还原一下,否则可能会影响到其它读档地图的使用.
另外如果改动一些有其它特殊技能的生物,如魔幻法师(它的技能不在此开关上),会得到些奇怪的情况.大家可以试试.


<P>ZVSE
!?PI;[用暗黑龙进行测试(155)]
!!MA:B155/10;
!!FU9999902:P155/8/7/2;[暗黑龙可施法]

!?FU9999902;[让生物出施法的脚本]
**x1=生物编号
**x2-x4=施法开关
**x2-x4=(0-0-0)天使类(只能复活未完全死亡部队)
**x2-x4=(1-1-1)灯神类
**x2-x4=(8-7-2)紫龙类(可用BM:U4施放指定魔法)</P>
<P>**x2-x4=(8-7-1)指挥官类(可用BM:U4施放指定魔法)跟8-7-2应该差不多
**BM:U无法指定的魔法编号包括:
**0-9冒险魔法,12力盾,40牺牲,63瞬移,64驱除障碍,76(死亡之云)及之后编号
**堆栈施法只能对有堆栈的目标施法(也就是不能对完全死亡的部队施法)
!!FU|x1<13/x1>196:E;
!!VRy2:S7994243 +x1;
!!VRy3:S7994051 +x1;
!!VRy4:S7993859 +x1;
!!UN:Cy2/1/x2;
!!UN:Cy3/1/x3;
!!UN:Cy4/1/x4;

!?FU77006;[施放指定施法]
**占用临时变量 v600-v625
!!SN:X?y1/?y2;
!!VRy3:Sy1 *21 +y2;[下一轮堆栈编号]
!!BMy3:T?y11 N?y12;
!!FU&y11<>155:E; [非暗黑龙]
!!BMy3:E?y4;
!!FU&y4<0:E; [没有施法次数]
!!VRv600:C27/28/29/37/41/43/46/48/49/51/53/58/65;[一些魔法编号]有益状态
!!VRv613:C42/45/47/50/52/54/59/62/70/71/73/74/75;有害状态
!!VRy20:S0 R25;
!!VRy20:+600;
!!BMy3:U4/vy20;[随机施法]</P>




songfx 发表于 2013-11-14 18:34:25

是不是还有很多生物没有施法动作?有办法破解吗?

mywog 发表于 2013-11-14 20:28:27

看来楼主已经破解了WOG内存的秘密。

爱的燃火 发表于 2013-11-14 21:59:19

我想说,理论上最后一个应该是第一个才是,为什么反而放到了最后呢?难道era的排列顺序不一样的吗?另外还有244和239(era里应该是反过来的吧)应该也是可行的代码。

贤知有您 发表于 2013-11-14 22:07:42

燃火说的顺序其实无关紧要,只要更改内存没错就行了。只不过按我研究的顺序定的,你看看我列出的16进制就知道实际顺序了。

爱的燃火 发表于 2013-11-14 22:10:15

3个的那个,0是复活,1是我方,2是敌方这样的?我也忘了,都是写作模式1,2,3的。下面两组就忘了,因为sod中复活和攻击类代码无效所以并没有多做研究。基本炒得mop生物编辑器的。
ps:还有经验值和魔法属性这两个贤知大大你打算修改吗?

爱的燃火 发表于 2013-11-14 22:13:43

贤知有您 发表于 2013-11-14 22:07
燃火说的顺序其实无关紧要,只要更改内存没错就行了。只不过按我研究的顺序定的,你看看我列出的16进制就知 ...

我是按照:施法类型-大类-小类这样排列的。这样方便记忆和修改。

sakuya452 发表于 2013-11-15 01:58:29

本帖最后由 sakuya452 于 2013-11-15 02:23 编辑

全列出来看,反而感到头晕啊......

顺便问下,为什么ERA的东西放这边呢?

dadds 发表于 2013-11-15 10:46:05

比原来的模拟施法简便了好多,这样一来好多脚本就能瘦身了;kl;

titanzwh 发表于 2013-11-15 12:14:54

这个脚本太牛逼了,必须要顶,貌似我又看到了新的曙光……

titanzwh 发表于 2013-11-15 12:15:45

要是能让生物施法模拟魔法书那样就完美了

沧海一粟 发表于 2013-11-15 21:03:58

这个实在太爽了:good_job:

fly123 发表于 2013-11-15 21:58:57

这样的话,做英雄专属生物就更简单了。不知道能不能找出和宝物相关的东西。虽然我已经可以用Erm做出特定职业的专属宝物,但是那个还是有点麻烦啊。不过,现在我已经想到了怎样做出暗黑破坏神那样的随机宝物Erm。;kl;。

爱的燃火 发表于 2013-11-15 22:27:33

fly123 发表于 2013-11-15 21:58
这样的话,做英雄专属生物就更简单了。不知道能不能找出和宝物相关的东西。虽然我已经可以用Erm做出特定职 ...

组合宝倒是找到几个,只是估计era里不适用。因为他的格式是代码里有个宝物编号来确定这段代码生效的宝物。如:代码 82000000 代码 这样的。所以到现在也才使用了天使联盟和诅咒铠甲的施法代码和鬼王斗篷的招魂代码。以及各宝物的四维而已。

cyjcyj8 发表于 2014-1-18 15:14:08

喜欢新的形象和新的经历,需要学习一下了。

gtfish 发表于 2014-1-19 03:28:33

我靠这个太牛逼了

参宿七 发表于 2014-4-11 21:27:59

虽然看不太懂,但是那个紫龙的看起来会很有用的

wldjsj2003 发表于 2014-4-16 18:41:58

不明觉厉...赞一个.....

雨风月影 发表于 2014-4-28 15:03:00

研究课题真真是极好的,若是读不出其中的奥秘岂不辜负?;bf;

wiwlove 发表于 2016-12-1 17:40:26

厉害了 赞一个- -
页: [1] 2
查看完整版本: 【ERA】让生物施放指定魔法的简易方法

捐赠