[ERA]战场上播放任意DEF文件
本帖最后由 贤知有您 于 2014-1-15 12:56 编辑本着将ERA发扬光大的精神,且有沧海大师的无限激励,终于"研制"出战场上播放任意DEF的方法.
此方法属于ERM调用和修改内存达到目的.
原理如下:
1.首先我们都知道BM:V能够对某一堆栈播放一个内部魔法动画(动画编号从0-82,可参考ERM帮助找到相关资源)
2.BM:V播放的每个动画信息在指针指向的地址上,且每个动画带有3组信息,每组4字节,共12字节.
3.每个动画的3组信息分别是:指向魔法DEF文件名的字符型指针,指向魔法名字的字符型指针,该魔法的播放标志信息.
4.修改的原理是把指向魔法DEF文件名的指针指向改成我们自定义的z变量位置上.改z变量存储我们需要播放的DEF文件名.
5.修改了DEF文件指向,然后调用BM:V播放动画索引,就能达到播放指定任意DEF的目的.播放后需还原指针指向.
6.上述已经能够实现播放DEF动画,但还有一个特殊问题,此问题困惑了我很久,所以一直无法完善.
该问题主要在,游戏系统内部每次调用播放魔法动画,都会用一个地址记录当此动画索引和DEF指向信息.如果是首次播放该DEF,则需要先卸载(销毁)原DEF,再加载新DEF.
当下一次再调用动画播放时,对比动画信息,若动画索引跟上次一样,则直接播放上一个DEF指向.不会销毁和重新加载,纵使我们更改了DEF的指向.
举个例子:
我们使用0索引动画来模拟播放新DEF,按照上面1-5方式更改指向并播放0号动画,新的DEF被播放且DEF又重新指向旧的祈祷魔法DEF.
当我们此时英雄施法祈祷时,直接播放的是之前那个新的DEF动画,而非原来的祈祷动画.因为内部并没有销毁和重新加载DEF.
后来找到了记录点,分别是战场内存点偏移和的位置.我们在调用和还原时直接清除这2个内存数据即可解决上述问题.
另外,BM:V播放只能针对堆栈来做.实际上还有一个内存函数可以实现对空地施放魔法动画.先介绍一下此函数的调用方法:
!!UN:C6919200/4/?y10; [战场内存位置]
!!SN:E4810128/2/y10/<动画ID0-82>/<战场坐标0-187>/<延时=100>/0; [延时正常下用100毫秒的速度]
然后,我们结合这个内存函数,使用修改魔法DEF指向的原理,实现战场位置上播放任意DEF的功能.
这里必须一提的是,由于DEF的构造问题,所播放的DEF和指定战场坐标不一定能重合,甚至偏离严重.
具体的魔法DEF制作方面知识请向KSWDIY绘画大师请教.
还有沧海大师已经把此项播放技术运用到 怪3 上,大家拭目以待.
下面给出具体的ERM代码,有ERM方面知识的鞋童们可以研究研究.
ZVSE
!?CM4; [战场场景]
!!CM:F?y1 I?y2 S?y3;
!!FU|y1<>512/y2<>2005/y3<>14:E; [右键点信息栏按钮]
!!CM:R0;
!!VRz3:S^zm152z.def^;[播放新动画]
!!FU9999916:P0/3/93/100/0/0/0;[借用0号动画]
!?FU9999916;
**x1=借用的BM:V动画编号(0-82)注意不是所有编号都能在正确的位置播放动画(需修改播放标志)
**x2=存储"外调的DEF动画名字"的z变量索引(不能使用负数z变量)
**x3=播放的坐标位置(0-186)
**x4=延时(播放速度,一般用100)
**x5=播放标志,施放动画的位置(0-4)(BM:V时会考虑堆栈的体积)--默认用0和1
**(经测试) =0动画底部为基准,=1以动画中心为基准,=2,3,4其它位置
**x6=播放标志,是否透明化(0否,1是)
**x7=是否自行修改播放标志(0否,1是)
!!FU|x1<0/x1>82/x2<0/x2>1000:E;[错误的动画索引或Z变量索引]
!!VRx3|x3<0/x3>186:S93; [错误位置,放战场正中]
!!VRx4&x4<0:S100;
!!VRx5|x5<0/x5>4:S0; [默认用0]
!!VRx6|x6<0/x6>1:S0; [默认用0]
!!UN:C6919200/4/?y20;
!!VRy21:Sy20 +78568; [动画DEF]
!!VRy22:Sy20 +78572; [动画索引]
!!UN:C4454270/4/?y1;
!!UN:Cy21/4/0 Cy22/4/-1;[清除内存多余数据]
!!VRy2:Sx1 *12 +y1; [魔法动画名字的指针地址]
!!VRy3:Sy2 +8; [魔法动画播放标志的内存(这里可由x5和x6组成)]
!!VRy4:Sx2 *512 +9597416;
!!VRy5:Sx6 *256 +x5; [自定义播放标志(否则采用x1动画的原有标志)]
!!UN:Cy2/4/?y10;[原动画名指针]
!!UN:Cy3/4/?y11;[原有播放标志]
!!UN:Cy2/4/y4; [新指针]
!!UN&x7<>0:Cy3/4/y5; [自定义播放标志]
!!SN:E4810128/2/y20/x1/x3/x4/0;[调用内部函数播放战场动画]
!!UN:Cy2/4/y10; [还原]
!!UN&x7<>0:Cy3/4/y11;[还原]
!!UN:Cy21/4/0 Cy22/4/-1;[清除内存多余数据]
附带一张,测试播放大型DEF的GIF动画
本帖最后由 沧海一粟 于 2014-1-19 13:32 编辑
可以这么说,没有贤知有你版主(中国ERA先驱者和第一人,他的内存修改技术已经领先HC论坛了,个人感觉)就没有WOG更美的明天,怪物强化三2.0(我觉得应该叫四才对,因为全部都不一样了,这些都因有007)的95%左右的技能都倾注了他大量辛勤的汗水和心血。在新时代的ERA世界,只有贤知有你才称得上大师,WOG中文论坛因他而无比精彩!;hap;
怪物强化应用展示 By Hawaiing007:
1)改变魔法动画(新增魔法def圣光)+100%远程攻击必定幸运+远程攻击同时打击多支部队+远程反击
2)改变生物战场形象(大地精灵+雷神)+改变魔法动画(钻石龙+冰风暴)+全体魔法动画(全体闪电)——里面还包括检查生物等级、检查生物魔免...
本帖16楼增加组合展示3和组合展示4,欢迎体验ERA和贤知有你强大的魔力!
:good_job:007太牛了,虽然我看不懂是什么原理 007又一神作,战斗华丽好看多了。啥时候把30m破解掉:deyi:
战场动画最好加快下,不然一场战斗耗时太久了,那个远程同时打击能不能一下直接出伤害的而不是现在这样一个个。。 都是些吊咂天的大作;cn;007来酒馆喝一壶如何;jx; 这绝对是ERA最有价值的发现之一;tl;如果能够随意调用外部DEF的话就爽爆了 dadds 发表于 2014-1-16 15:35
这绝对是ERA最有价值的发现之一如果能够随意调用外部DEF的话就爽爆了
这个就是可以随意地调用外部的DEF啊,不管生物还是魔法动画....而且位置还是你随便放,想放哪就放哪 看的我眼花缭乱啊,按捺不住的激情四射啊。;kl; 沧海一粟 发表于 2014-1-16 17:59
这个就是可以随意地调用外部的DEF啊,不管生物还是魔法动画....而且位置还是你随便放,想放哪就放哪
;tl;我擦,这样的话新魔法是否成为可能啊:buxie: dadds 发表于 2014-1-17 00:05
我擦,这样的话新魔法是否成为可能啊
这个本来就是为了施放新魔法动画而制作的.主要用于单体动画的施放.
如果要出群体动画,则还要结合"联动动画"那个函数,而且需要先更改魔法DEF指向,再实施联动内存设定,然后播放完毕后重新还原原来的DEF魔法指向.有点小复杂,有兴趣的可以自行尝试. 沧海一粟 发表于 2014-1-15 16:47
可以这么说,没有贤知有你版主(中国ERA先驱者和第一人,他的内存修改技术已经领先HC论坛了,个人感觉)就 ...
太酷了.
沧海兄已经将内存函数应用得炉火纯青,发挥到极致.
怪3的生物技能和动作已经超出了原本能想象的空间,这就是沧海一粟的最强特技--->>>"量体裁衣",呵呵.
下次有人问怪3中什么生物最酷最厉害,我会说: 沧海一粟.:deyi: 沧海一粟 发表于 2014-1-15 16:47
可以这么说,没有贤知有你版主(中国ERA先驱者和第一人,他的内存修改技术已经领先HC论坛了,个人感觉)就 ...
;exp;怪物强化三2.0什么时候出啊? 看的我眼花缭乱啊 这看的有点眼花啊 好厉害,神级应用了都!赞! 本帖最后由 沧海一粟 于 2014-1-19 14:29 编辑
fly123 发表于 2014-1-16 19:07
看的我眼花缭乱啊,按捺不住的激情四射啊。
我说F大,甭激情四射了,还是出来搞搞,你也一样可以这样搞的;kl;
怪物强化III2.0应用展示(不间断继续) By Hawaiing007&骷髅召唤师:
组合展示3:生物定制魔法书+改变射击箭夭函数+100%随机一支目标函数+100%随机位置移动函数
组合展示4:瞬间移动对方生物+100%行动后必定士气高涨函数+改变生物形象(我的剑圣会变身4次,有5种def形象供它调用,变身后会增强能力,甚至魔法都变多了)+强制生物攻击函数...组合展示5:改变魔法动画函数+生物联合动画函数+修正地动山摇BUG+检查部队战力+强制生物远程攻击...
沧海一粟 发表于 2014-1-19 13:29
我说F大,甭激情四射了,还是出来搞搞,你也一样可以这样搞的
怪物强化III2.0应用展示(不间断继 ...
这个看起来好复杂,论Era操作,我现在和你老兄比起,那是差十万八千里啊。佩服,佩服。;kl; fly123 发表于 2014-1-19 19:20
这个看起来好复杂,论Era操作,我现在和你老兄比起,那是差十万八千里啊。佩服,佩服。
不会的,ERA最强大的地方是可以在写的过程中随时调用函数,而且这种通用函数是没有命令限制的,所以的命令应该都支持,使用时直接调用就行了,不用另外增加代码。至于通用函数么,007不是把最强大的都写出并放出来了;kl; WOG有你们而更精彩啊!咱们的Erm技术绝逼甩HC论坛N条街! 本帖最后由 贤知有您 于 2014-1-20 09:58 编辑
沧海一粟 发表于 2014-1-19 13:29
我说F大,甭激情四射了,还是出来搞搞,你也一样可以这样搞的
怪物强化III2.0应用展示(不间断继 ...
只要有零部件,沧海兄就能组合成任意的高端产品.真让人眼界大开.佩服佩服.
变身技能真炫啊.
那个投掷雷鸟太搞笑了.
法师的结界和魔法阵形式颠覆了原有的魔法效果
强大:good_job:
沧海V587
页:
[1]
2