xcnever 发表于 2012-12-26 20:45:39

(已解决)求高手帮忙搞一个试练洞穴的代码!

在下想用wog的新物体做一个类似冒险洞穴的试练洞穴,让英雄每次踩上去的时候耗费500步,然后和一群怪物战斗,战斗结束除获得经验值外,还可以获得一个随机的宝物。
虽然感觉应该很简单,但是在下以前没接触ERM,系统里面的冒险洞穴和水井这些代码又看不懂,求高人帮忙发一个
感激不尽!

[ 本帖最后由 灰狼王子 于 2012-12-27 10:36 编辑 ]

此心光明 发表于 2012-12-26 21:19:05

回复 1# 的帖子

老的宝屋如龙国墓室沉船等还不够吗?(话说WOG不知道怎么回事,龙国等出宝物的宝屋不算生物银行了)

a968574 发表于 2012-12-26 21:27:52

ZVSE
!#UN:P30/?v1;
!#VRz404&v1=1:Sz130000;
!#HT63/57&v1=1:T404;
!#TM90&v1=1:S1/999/1/255;
!#VRv548&v1=1:S0;
!#VRv547&v1=1:S0;
!#VRv524&v1=1:C0/0/0/0/0/0/0/0;
!#VRv510&v1=1:C0/0/0/0/0/0/0/0;
!#VRv550&v1=1:C1/2/4/8/16/32/64/128/256/512;
!#VRz368&v1=1:Sz130001;
!#VRz369&v1=1:Sz130002;
!#VRz370&v1=1:Sz130003;
!#VRz371&v1=1:Sz130004;
!#VRz372&v1=1:Sz130005;
!#VRz373&v1=1:Sz130006;
!#VRz374&v1=1:Sz130007;
!#VRz375&v1=1:Sz130008;
!#VRz376&v1=1:Sz130009;
!#VRz377&v1=1:Sz130010;
!#VRz378&v1=1:Sz130011;
!#VRz379&v1=1:Sz130012;!?TM90;
!!UN:P30/?y-1;
!!FU&y-1=0:E;
!!UN&v548=0:U63/57/?v600;
!!DO730/1/v600/1&v548=0:P;
!!DO750/0/155/1&v548=0:P;
!!VRv548:S1;
!!OW:C?y-1;
!!DO752/0/155/1:Py-1;
!!VRy-2:S524 +y-1;
!!IF&1000/vy-2>0:M1/z130013;
!!UN&vy-2>0:U53/6/vy-2/600;
!!VRv600:+1;
!!UN&vy-2>0:Lv600/v601/v602/0;
!!VRvy-2:S0;!?OB63/57;
!!UN:P30/?y-1;
!!FU&y-1=0:E;
!!HE-1:O?v1;
!!PM998:V0 Pv1/1;
!?OB63/57&1000;
!!UN:P30/?y-1;
!!FU&y-1=0:E;
!!OB998:S;
!!FU768:P601/998;
!!VRv601:&3;
!!VRz326:Sz130014;
!!VRz327:Sz130015;
!!VRz328:Sz130016;
!!FU733&v601=0:P53/98/602;
!!IF&v601=0/v602=1:M1/z130017;
!!FU731&v601=0/v602=0:P0;
!!FU732&v601<>0:P;!?FU730;
!!UN:U63/57/x16/601;
!!PM601:V0;
!!DO770/0/3/1:P;
!!VRy1:S0 R3;
!!FU769:Py1/601;!?FU731;
!!FU734:Px1/610;
!!FU766:Px1/611/998;
!!VRv611::4;
!!FU742&v610=0:Px1/v611;
!!FU772&v610=1:Px1/v611;
!!FU784&v610=2:Px1/v611;
!!FU795&v610=3:Px1/v611;!?FU732;
!!VRy1:Sv998 %4;
!!FU768:P609/998;
!!VRy1&y1=1/v609>=4:S0;!!VRz326:Sz130018;
!!VRz327:Sz130019;
!!VRz328:Sz130020;
!!FU733:P53/98/602;
!!IF&v602=1:M1/z130021;
!!IF&v602=0/y1=1:M1/z130022;
!!VRv547&v602=0/y1=1:S1;
!!HE-1&v602=0/y1=1:Tv998/v999/v1000/71/70;
!!HE-1:O?y3;
!!VRv609:|4;
!!FU769&v602=0/y1=1/y3<>-1:Pv609/998;
!!VRv602&v602=0/y1=1/y3=-1:S1;!!VRz329&y1=0:Sz130023;
!!VRz329&v602=0/y1=1:Sz130024;
!!VRy1&v602=0/y1=1:S0;
!!FU734:P0/603;
!!VRv608:S-1;
!!FU734&v601>1:P1/608;
!!FU734&v601=1:P1/604;
!!FU734&v601>1:P2/604;
!!VRv609:S-1;
!!FU734&v601=3:P3/609;
!!FU735&v602=0:Pv603/v608/360;
!!FU735&v602=0:Pv604/v609/361;
!!VRz330:Sz360;
!!VRy4:Sv999 %2;
!!VRz360&y1=3/y4=0:Sz361;
!!VRz361&y1=3/y4=0:Sz330;
!!IF:V2/0;
!!IF&z360=z361:V2/1;
!!VRz329&y1=2/-2:Sz130025;
!!VRz329&y1=2/2:Sz130026;
!!VRz329&y1=3/-2:Sz130027;
!!VRz329&y1=3/2:Sz130028;
!!VRz362:S^"%Z360?" "%Z361?"^;
!!VRz362&2:S^"%Z360"^;
!!VRz326:Sz329+z130029;
!!VRz327:Sz130030;
!!VRz328:Sz130031;
!!VRv605:S1;
!!FU733&v602=0:P50/98/605;
!!IF&v602=0/v605=1:M1/z130032;
!!VRz326:Sz130033;
!!VRz327:Sz130034;
!!VRz327&y1=2:Sz130035+z360+^"^;
!!VRz327&y1=3:Sz130036+z62;
!!VRz328:Sz130037;
!!VRz328&y1=2:Sz130038+z361+^"^;
!!VRz328&y1=3:Sz130039+z362;
!!FU733&v605=0:P38/128/606;

a968574 发表于 2012-12-26 21:29:58

!!FU731&v605=0/v601=1/v606=0:P0;handle visiting cave 0 on left]
!!FU731&v605=0/v601=1/v606=1:P1;handle visiting cave 1 on right]



!!VRz326:Sz130040;
!!VRz327:Sz130041;
!!VRz328:Sz130042;
!!FU733&v605=0/v601=2/v606=0:P38/128/607;get 2nd tunnel choice in v607]
!!FU731&v605=0/v601=2/v606=0/v607=0:P0;handle visiting left-left cave 0]
!!FU731&v605=0/v601=2/v606=0/v607=1:P1;handle visiting left-right cave 1]
!!FU731&v605=0/v601=2/v606=1:P2;handle visiting cave 2 on right]



!!VRz326:Sz130043;
!!VRz327:Sz130044;
!!VRz328:Sz130045;
!!FU733&v605=0/v601=3:P38/128/607;get 2nd tunnel choice in v607]
!!FU731&v605=0/v601=3/v606=0/v607=0:P0;handle left-left cave 0]
!!FU731&v605=0/v601=3/v606=0/v607=1:P1;handle left-right cave 1]
!!FU731&v605=0/v601=3/v606=1/v607=0:P2;handle right-left cave 2]
!!FU731&v605=0/v601=3/v606=1/v607=1:P3;handle right-right cave 3]

** end of function


** function to handle choice between two pictures
** z326 is message to display
** z327/z328 are choices
** x1/x2 are artifact numbers for pictures
** vx3 returns the choice (0 left, 1 right)

!?FU733;

!!UN:Ax1/9/?y1;remember left artifact name]
!!UN:Ax1/10/?y2;remember left artifact description]
!!UN:Ax2/9/?y3;remember right artifact name]
!!UN:Ax2/10/?y4;remember right artifact description]

!!UN:Ax1/9/327;set left artifact name]
!!UN:Ax1/10/327;set left artifact description (same as name)]
!!UN:Ax2/9/328;set right artifact name]
!!UN:Ax2/10/328;set right artifact description (same as name)]

!!IF:Q2/8/x1/8/x2/7/z326;give message with picture choice]
!!VRvx3&2:S0;return 0 for left]
!!VRvx3&-2:S1;return 1 for right]

!!UN:Ax1/9/y1;restore original artifact names/descriptions]
!!UN:Ax1/10/y2;
!!UN:Ax2/9/y3;
!!UN:Ax2/10/y4;

** end of function


** function to get type of cave #x1 and return it in vx2

!?FU734;

!!FU766:Px1/x2/998;get cave's bits into vx2]
!!VRvx2:&3;cave type is low 2 bits]

** end of function


** function to get name of cave types x1/x2 into zx3

!?FU735;

!!VRzx3&x1=0/x2=-1:Sz130046;
!!VRzx3&x1=0/x2=0:Sz130047;
!!VRzx3&x1=0/x2=1:Sz130048;
!!VRzx3&x1=0/x2=2:Sz130049;
!!VRzx3&x1=0/x2=3:Sz130050;
!!VRzx3&x1=1/x2=-1:Sz130051;
!!VRzx3&x1=1/x2=0:Sz130052;
!!VRzx3&x1=1/x2=1:Sz130053;
!!VRzx3&x1=1/x2=2:Sz130054;
!!VRzx3&x1=1/x2=3:Sz130055;
!!VRzx3&x1=2/x2=-1:Sz130056;
!!VRzx3&x1=2/x2=0:Sz130057;
!!VRzx3&x1=2/x2=1:Sz130058;
!!VRzx3&x1=2/x2=2:Sz130059;
!!VRzx3&x1=2/x2=3:Sz130060;
!!VRzx3&x1=3/x2=-1:Sz130061;
!!VRzx3&x1=3/x2=0:Sz130062;
!!VRzx3&x1=3/x2=1:Sz130063;
!!VRzx3&x1=3/x2=2:Sz130064;
!!VRzx3&x1=3/x2=3:Sz130065;

** end of function


** function to set-up special battlefield v547

!?FU736;

!!BF:C;always start with empty battlefield]

!!BF&v547=1:O47/36 O47/155 O47/146 O46/92 O46/178 O45/63 O44/43 O44/103 O20/99 O79/160 O45/184 O80/14 O46/6 O60/51;

!!BF&v547=2:O45/18 O46/3 O44/38 O46/171 O47/173 O40/163 O41/77 O55/167 O42/65 O40/99 O43/47 O37/154;

!!BF&v547=3:O45/18 O42/29 O35/86 O35/120 O35/92 O35/126 O47/182;

!!BF&v547=4:O0/69 O3/171 O57/105 O3/38 O3/160 O1/127 O3/96 O57/60 O0/11 O3/6;

!!BF&v547=5:M49152/40952/32784/16286/8192/15608/12320/10190/12288/9470/34304/79;

!!BF&v547=6:O64/36 O62/103 O62/138 O62/173 O61/71 O61/124 O61/24 O61/143 O67/158 O61/110 O61/59 O69/24 O61/78 O61/146 O62/165 O66/150 O62/132 O62/99 O61/64 O65/28;

!!BF&v547=7:O80/8 O80/10 O79/25 O79/29 O80/42 O80/44 O79/65 O80/76 O80/78 O79/93 O79/97 O80/110 O80/112 O79/133 O80/144 O80/146 O79/161 O79/165 O80/178 O80/180;

!!BF&v547=8:O57/20 O3/106 O38/159 O67/160 O23/162 O20/179 O2/171 O38/74 O20/27 O20/9 O68/24;

!!BF&v547=9:O80/43 O53/56 O82/78 O53/86 O80/105 O81/113 O82/139 O79/143 O53/161 O51/18 O81/183 O80/171 O80/30;

!!BF&v547=10:M0/992/63504/33264/31752/16632/15876/8316/7938/62/0/75;

** end of function


** function to set-up initial troop positions for special battlefield v547

!?FU737;

!!FU738&v547=1:P57/59/90/77/125/111/127/3/133/30/137/70/164/174;
!!FU740&v547=1:P70/10/4 P70/10/31 P70/10/48 P70/10/173 P70/10/165;

!!FU738&v547=2:P36/53/69/86/103/121/138/41/58/75/93/109/127/144;
!!FU740&v547=2:P143/10/60 P143/10/95 P143/10/129 P143/10/110 P143/10/80 P143/10/47 P143/10/133 P143/10/148;

!!FU738&v547=3:P96/92/88/86/90/94/98/140/39/142/41/144/43/146;
!!BM21&v547=3:Q1/40/0 Q1/42/0 Q1/82/0 Q1/83/0 Q1/116/0 Q1/117/0 Q1/141/0 Q1/143/0 Q1/145/0 Q1/57/0 Q1/58/0 Q1/59/0 Q1/60/0 Q1/124/0 Q1/125/0 Q1/126/0 Q1/127/0 Q1/128/0 Q1/129/0;

!!FU738&v547=4:P21/53/56/89/121/124/157/31/48/65/82/116/133/150;

!!FU738&v547=5:P1/35/69/86/103/137/171/80/31/147/47/131/48/164;

!!FU738&v547=6:P89/57/125/93/61/129/97/42/162/131/56/160/63/123;

!!FU738&v547=7:P1/35/69/86/103/137/171/94/26/162/96/28/164/95;
!!FU740&v547=7:P116/10/27 P116/10/163 P35/90/99;

!!FU738&v547=8:P35/52/69/86/103/120/137/31/167/99/66/134/64/132;
!!BM21&v547=8:Q0/76/0 Q0/77/0 Q0/93/0 Q0/94/0 Q0/95/0 Q0/110/0 Q0/111/0;

!!FU738&v547=9:P74/76/91/93/95/108/110/57/59/61/90/97/125/129;
!!FU740&v547=9:P43/25/58 P43/25/60 P43/25/73 P43/25/78 P43/25/107 P43/25/112 P43/25/126 P43/25/127 P43/25/128 P45/30/38 P45/30/45 P45/30/164;

!!FU738&v547=10:P39/72/105/138/130/97/64/42/75/108/141/128/95/62;
!!FU792&v547=10:P39/42 P72/75 P105/108 P138/141 P130/128 P97/95 P64/62;

** end of function


** function to set 14 base slots to positions x1-x14 (attacker first)
** all defender stacks will always be present

!?FU738;

!!VRv532:Cx1/x2/x3/x4/x5/x6/x7/x8/x9/x10/x11/x12/x13/x14;look-up table]
!!DO739/0/41/1:P P;replace slots with new positions if found, twice to handle some overlaps]
!!BU:Ev539/?y1;get slot number of first enemy stack, which must exist]
!!BMy1:T?y2;get type of enemy monster]
!!VRv523:S0;count of total enemy troops]
!!DO741/0/6/1:Py2;fill in empty enemy slots and add up troops]
!!VRv523::7;divide troops among all slots]
!!VRv523&v523<1:S1;must be at least 1 per slot]
!!DO771/0/6/1:Pv523;set all base enemy stacks to this amount

无心云 发表于 2012-12-26 21:31:42

这个东西早就有了嘛,不用自己搞了

a968574 发表于 2012-12-26 21:32:46

fastarrow 发表于 2012-12-26 21:47:34

楼主可以参考《仙剑别传》“雪岭镇后山山洞脚本”

fastarrow 发表于 2012-12-26 21:52:38

自己修改建筑名称和坐标

ZVSE

ERMS_ScriptName=雪岭镇后山山洞
ERMS_ScriptAuthor=liuzhf
ERMS_ScriptVersion=1.0.0
ERMS_ScriptDate=19.11(November).2012
ERMS_ScriptERMVersion=2.70
ERMS_ScriptLanguage=中文(简体,中国) or 中文(简体) (native)

!#VRv25:S0;初始化变量-访问次数,想与二追脚本一起用的话,v25需要替换成别的v变量

***设置鼠标右键提示***
!#VRz404:S^{雪岭镇后山山洞}

山洞里住着一些强者,你可以挑战他们,战胜后奖励WOG宝物,可重复访问,每次耗400移动力。^;
!#HT63/68:T404;
***鼠标提示设置完成***

***访问时触发***
!?OB66/32/0&1000; 访问坐标点66/32/0时触发,人类玩家有效

!!HE-1:W?y10;获取当前英雄移动力,保存至y98
!!IF&y10<400:M^你已经精疲力竭了,明天再来吧。^;   移动力不足时提示
!!FU&y10<400:E; 移动力不足时函数终止

!!VRy11:S150 R14;   y11赋值为随机数,用来设定8级兵类型
!!VRy11&y11=159:S168; y11=159时,生成血污怪
!!VRy11&y11=160:S196; y11=160时,生成龙巫妖
!!VRy11&y11=161:S132; y11=161时,生成圣龙
!!VRy11&y11=162:S133; y11=162时,生成水晶龙
!!VRy11&y11=163:S134; y11=163时,生成紫龙
!!VRy11&y11=164:S135; y11=164时,生成毒龙


!!VRy12:Sc;
!!VRy12:+300;
!!UN:N3/2/y11/0;   获取怪物y11的单数名称保存至z2
!!IF:Q2/21/y11/2^当前强者是%Y12个%Z2,你要挑战它们吗?^;
!!FU&-2:E;

!!HE-1:Tv998/v999/v1000/y11/y12; 令英雄和500个随机8级兵在当前位置作战

!!HE-1:O?i;      检查战后访问英雄的颜色
!!FU&i=-1:E;       战后英雄无颜色(失败)时函数终止

!!HE-1:Wd-400;
!!HE-1:N?y13;

****行囊宝物统计****
***防止撑爆行囊
!!VRv4:C0;      v4复位
!!DO1099/19/82/1:P1/y13;循环调用函数FU1099
!!IF&v4>63:M^你行囊已满,无法接受宝物!^;
!!FU&v4>63:E;
***宝物统计完毕***

***行囊未满时给予宝物***
!!FU7998:P;
***行囊未满时给予宝物***


***宝物给予函数**

!?FU7998;            函数触发器7998
!!VRy10|v25=1/v25=7/v25=13/v25=19/v25=25:S151;    速度之靴
!!VRy10|v25=2/v25=8/v25=14/v25=20/v25=26:S149;    不朽之冠
!!VRy10|v25=3/v25=9/v25=15/v25=21/v25=27:S147;    秘银之甲
!!VRy10|v25=4/v25=10/v25=16/v25=22/v25=28:S148;   锋利之剑
!!VRy10|v25=5/v25=11/v25=17/v25=23/v25=29:S146;   击碎之斧
!!VRy10|v25=6/v25=12/v25=18/v25=24/v25=30:S154;   硬化之盾
!!VRy10&v25>30/v25<36:S157;      深红色复仇之盾
!!VRy10&v25>35/v25<57:S156;      战神旗帜
!!VRy10&v25>56/v25<1000:S146 R11;随机
!!VRy10&v25=1000:S142;             金城箭
!!VRy10&v25>1000/v25<2000:S-1;   没有
!!VRy10&v25=2000:S158;             野蛮斧
!!VRy10&v25>2000:S-1;            没有

!!HE-1&y10>-1:A4/y10; 给予宝物
!!IF&y10>-1:Q1/8/y10/1^{恭喜你!}

这是你的奖励!^;
!!VRv25:+1;
***给予宝物***

****行囊宝物统计函数***
!?FU1099&x1=1;      函数触发器1099
!!HEx2:A1/?y10/x16; 检查行囊每个格子宝物类型

!!FU|y10=144/y10=145:E;

!!VRv4&y10>-1:+1;   宝物类型大于-1时v4+1
!!VRv4&y10<0:+0;    宝物类型小于 1时v4+0
***宝物统计函数结束***

[ 本帖最后由 fastarrow 于 2012-12-26 22:14 编辑 ]

xcnever 发表于 2012-12-28 19:56:29

论坛高人果然多啊
预期发完贴,过几天才有人回,所以当天就关机睡了,没想到这么快就有人回!
多谢3楼和8楼!
页: [1]
查看完整版本: (已解决)求高手帮忙搞一个试练洞穴的代码!

捐赠