移形换影(交换2英雄位置) 20121226更新
交换英雄出现的复制英雄问题,终于可以用其它简单方法避免了.经过试验,可以将英雄放到地图之外(指位置).比如地图是 35X35,可以放到 (100,35,0) 处,那地方如果还有英雄就是见鬼了.先读取地图大小,再扔远一点就行了,不然会开了部分视野.(如果扔到xy坐标<0的地方,会导致游戏崩溃的)
按照沧版的建议,取消自身英雄在列表的出现.
最后一个不得不提的话,如果英雄的名字都是空,那就什么都没有了呢.呵呵.
好吧,放出整理好后的ERM,多谢各位的帮助和指导了.
-----------------------------以下代码(2012-12-26更新)-----------------------------------
这个小脚本是当时学习ERM的练习作品,现重新改写完善一下。(沧版提醒:排除水域英雄)
改为在英雄界面右键点击“防御”图标触发了,原睡眠按钮有其它脚本应用过。
在英雄界面下触发,基本可避免“当前英雄”非真正屏幕当前英雄的错误(若仍无法运行,可先使英雄走动一格)。
脚本下载:
ZVSE
**移形换影 ByHanter007(改为任意英雄均可触发)
**没有使用额外变量
**英雄界面右键点击“防御”图标触发!
**作用:可以交换玩家2个英雄的相互位置.
**两英雄均需消耗30点魔法值和1500的移动力.
**感谢沧版的提醒:修正BUG(排除航海中英雄)!
!?CM2&1000; [英雄界面触发]
!!CM:I?y1 F?y2; [点击位置/鼠标动作]
!!FU|y1<>51/y2<>512:E; [点击位置 防御图标/右键按下]
!!HE-1:N?y10; [当前英雄编号]
!!HE-1:B0/?z-1; [英雄名字]
!!CM:R0; [禁用标准反应]
!!VRy98:S30; [默认需消耗的魔法值]**
!!VRy99:S1500; [默认需消耗的移动力]**
!!HEy10:I?y40/1 W?y50/1; [魔法值/移动值]
!!IF|y40<y98/y50<y99:M^当前英雄没有足够的魔法值或移动力施放{移形换影}!
({移形换影}需要消耗双方英雄{%Y98}魔法值和{%Y99}移动力)^;
!!FU|y40<y98/y50<y99:E;
!!HEy10:P?y21/?y22/?y23; [获取当前英雄位置]
!!TRy21/y22/y23:T?y24/d/d/d/d/d/d/d; [检测地形]8为水域
!!IF|y24=8:M^当前英雄处于水域,不能进行{<移形换影>}!!^;
!!FU|y24=8:E;
!!OW:O-1/?y19/?y11/?y12/?y13/?y14/?y15/?y16/?y17/?y18; [获取当前玩家英雄列表(8个)]
!!FU&y19<2:M^没有合适的英雄可供交换位置!^;
!!FU&y19<2:E;
!!IF:V9/0;
!!IF|y10=y11/y10=y12/y10=y13/y10=y14/y10=y15/y10=y16/y10=y17/y10=y18:V9/1;
!!IF&-9:M^当前英雄并不在英雄列表中,不能进行{<移形换影>}^; [英雄可能处于城镇之内]
!!FU&-9:E;
!!VRz-10:S^%Z-1 可施展<移形换影>交换英雄位置
请选择你想交换位置的另一位英雄
(自动排除魔法值或移动力不足的英雄)^;
!!VRz-9:S^退出^;
!!HEy11&y11>=0:B0/?z-1 I?y41/1 W?y51/1; [获取第一个英雄名字/魔法值/移动力]
!!VRz-1|y11=-1/y11=y10/y41<y98/y51<y99:S^^; [没有英雄/是当前英雄/没有足够的魔法值或移动力]
!!HEy12&y12>=0:B0/?z-2 I?y42/1 W?y52/1;
!!VRz-2|y12=-1/y12=y10/y42<y98/y52<y99:S^^;
!!HEy13&y13>=0:B0/?z-3 I?y43/1 W?y53/1;
!!VRz-3|y13=-1/y13=y10/y43<y98/y53<y99:S^^;
!!HEy14&y14>=0:B0/?z-4 I?y44/1 W?y54/1;
!!VRz-4|y14=-1/y14=y10/y44<y98/y54<y99:S^^;
!!HEy15&y15>=0:B0/?z-5 I?y45/1 W?y55/1;
!!VRz-5|y15=-1/y15=y10/y45<y98/y55<y99:S^^;
!!HEy16&y16>=0:B0/?z-6 I?y46/1 W?y56/1;
!!VRz-6|y16=-1/y16=y10/y46<y98/y56<y99:S^^;
!!HEy17&y17>=0:B0/?z-7 I?y47/1 W?y57/1;
!!VRz-7|y17=-1/y17=y10/y47<y98/y57<y99:S^^;
!!HEy18&y18>=0:B0/?z-8 I?y48/1 W?y58/1;
!!VRz-8|y18=-1/y18=y10/y48<y98/y58<y99:S^^;
!!IF:G1/1/256/-10/-1/-2/-3/-4/-5/-6/-7/-8/-9;[结果存于V1]
!!FU&v1=256:E; [选择退出]
!!VRy-1&v1=1:Sy11;[保存选中的英雄编号]
!!VRy-1&v1=2:Sy12;
!!VRy-1&v1=4:Sy13;
!!VRy-1&v1=8:Sy14;
!!VRy-1&v1=16:Sy15;
!!VRy-1&v1=32:Sy16;
!!VRy-1&v1=64:Sy17;
!!VRy-1&v1=128:Sy18;
!!HEy-1:P?y31/?y32/?y33; [获取目标英雄位置]
!!TRy31/y32/y33:T?y34/d/d/d/d/d/d/d; [检测地形]
!!IF|y34=8:M^目标英雄处于水域,不能进行{<移形换影>}!!^;
!!FU|y34=8:E;
!!UN:X?y40/?y41; [获取地图大小]
!!VRy42:Sy40+20; [地图边界之外,足够视野之外,否则会打开部分视野]
!!HEy-1:Py42/y22/y23/0; [目标英雄先移动到边界之外]
!!HEy10:Py31/y32/y33/0; [交换位置]
!!HEy-1:Py21/y22/y23/0; [交换位置]
!!VRy98:*-1; [用于d语法]
!!VRy99:*-1;
!!HEy10:Idy98 Wdy99; [减少魔法值和移动力]
!!HEy-1:Idy98 Wdy99; [减少魔法值和移动力]
!!UN:R3/y10 R5/1/0; [重画当前英雄屏幕]
**LastUpdate 2012-12-23 贤知有您**
[ 本帖最后由 贤知有您 于 2012-12-26 17:55 编辑 ] 强帖留名;go; ;aoleof; 不错 虽然我不会erm但是会用就行。。。 绝对好东东啊,游戏的乐趣和自由度或者说RPG程度更高了,有些地图可以纳入该脚本搞出一些剧情来;gaxing; 恭喜楼主大功告成。
如果做成RPG剧情,可以设定一个军师坐镇大营,几个先锋在前线作战,然后军师用移形换影调兵遣将。
回复 5# 的帖子
老大,你的赤壁之战呢?;ekow;回复 5# 的帖子
看了风侠的话,我想可以加强移形换影,直接交换本方任意2个英雄(不一定包括自己)..哈哈..那才是真正的调度指挥:deyi: . 原帖由 沧海一粟 于 2012-5-12 17:55 发表 老大,你的赤壁之战呢? 这个,真没有计划表了。回复 1# 的帖子
建议007加上移形换影英雄可以由玩家设定是谁而不是O0的设定。另外,还有一个小BUG希望修正下:如果移形换影英雄交换的英雄刚好在船上...... 想起鬼武者了,一位古代人和一位现代人在错乱的时空里冒险,并经常互动。同一地点,不同时间,互相影响。 原帖由 踏雪无痕 于 2012-10-20 15:25 发表 http://bbs.h3wog.com/images/common/back.gif
想起鬼武者了,一位古代人和一位现代人在错乱的时空里冒险,并经常互动。同一地点,不同时间,互相影响。
这个功能有意思,我现在专玩两主角的RPG图,飞来飞去打怪冒险特爽。
至于踏雪的想法,过些时间我把《我的复仇》这种经典的SOD图就搞成你说的那样。 响应沧版的号召,更新了一下这个小脚本。
貌似用起来很爽,即时交换自己两个英雄的坐标位置,又是欺负电脑的了。
现在改为 右键点击英雄界面的防御按钮触发。
任意英雄均可交换位置,前提是两英雄都需要消耗 30魔法值和1500移动力 (数值可自行修改)
任意一方英雄处于水域中时,则不能交换位置。
英雄处于城镇之内也不能交换位置。 直接报错
贤版,为什么你要这样写:
!!VRy98:S30; [默认需消耗的魔法值]**
!!VRy99:S1500; [默认需消耗的移动力]**
回复 12# 的帖子
既然先前会直接加判定条件,为什么后面不直接减?反正不够都不能执行,你一改反而报错了。。。 ;lan;;lan;我不知道为什么插入网页代码 就变成那样子,某些字符消失了.
干脆直接粘贴出来吧.
或者直接看RAR附件吧.
我测试过没有问题的.
之所以要有 y98和y99 是方便更改消耗魔法值和移动力而已.
[ 本帖最后由 贤知有您 于 2012-12-26 17:55 编辑 ] 呵呵,我又重新试着把代码 以 "插入代码" 的方式修改贴子,
果然会出问题, 中间的字符串消失了,多了特殊的符号,S字母变小写等等.
;go; ;go;
页:
[1]