北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 19006|回复: 15

【Zmud4.62 拿来主义之一:多功能遍历综合解决方案】

[复制链接]
发表于 2015-8-21 22:54:02 | 显示全部楼层 |阅读模式
本帖最后由 bbye 于 2016-8-31 08:43 AM 编辑
这是个并不成熟的462遍历代码,可以实现以下功能:
1.指令分段输入等待式遍历
2.收弟子触发式遍历

3.带有处理各种坐船上车爬铁索的解决方案
4.带有拦路npc判断解决方案
5.为了便于路径处理,增加分隔符"/",不要问我为什么。

部分代码借鉴了逍遥行
用法:可支持的路径格式为{n|w|s|e|n|busy1|/s/w/e|enter boat/stop|climb up/stop|set llnpc NPCID/stop|n|w}
说明:
1."|"与"/"在这里作用相同,之所以做了区分是另有目的。
2.支持各种动作,例如zuan hole,enter boat。
3.stop代表执行暂停,例如等待船靠岸。
4.set llnpc NPCID,此处为判断拦路NPC,需要身上有jin nang(set llnpc song yuanqiao,然后被打死的不要找我)。
5.busy1代表等待1秒
6.gt2 {路径}为每秒15步方式行走
gt3 {路径}每走一步会shou @walknpc,如果不存在会继续走,发现则停止,当然手动输入walk3会继续走完,请根据需求给变量赋值。

所有的指令和触发:
1.制作alias gt2
  1. set brief 2;
  2. Route_list=%1;
  3. step=1;
  4. stepmax=@numitems(%1);
  5. halt;
  6. #t+ walk3;
  7. #t+ walk;
  8. #alias gowalk {walk2};
  9. walk2
复制代码
2.制作alias gt3
  1. set brief 2;gostop=0;gostop2=0;Route_list=%1;step=1;cmdlist=0;stepmax=@numitems(%1);halt;#t+ walk3;#t+ walk;#alias gowalk {walk3};walkaction
复制代码

3.制作alias walk2
  1. #if (@step=@stepmax) {set brief 2};#if (@step<=@stepmax & @gostop=0) {cmd=%word(@Route_list,@step,|);#if (@cmd=stop) {step=%eval(@step+1);stepaccu=1;stop} {#if (@cmd=busy1) {step=%eval(@step+1);stepaccu=1;busy1;#wait 1000;#say 1秒过了继续:;walk2} {#if (@cmd=busy6) {step=%eval(@step+1);stepaccu=1;busy6;#wait 6000;walk2} {#if (%pos(/,@cmd)=0) {@cmd;step=%eval(@step+1);stepaccu=%eval(@stepaccu+1);gwk2} {#if (@cmdlist=0) {cmdlist=1};#if (@cmdlist<=%numwords(@cmd,"/")) {%word(@cmd,@cmdlist,/);stepaccu=%eval(@stepaccu+1);#if (%word(@cmd,@cmdlist,/)=stop) {cmdlist=%eval(@cmdlist+1)} {#if (%word(@cmd,@cmdlist,/)=busy1) {#wa 1000;cmdlist=%eval(@cmdlist+1);stepaccu=1;walk2} {cmdlist=%eval(@cmdlist+1);stepaccu=%eval(@stepaccu+1);gwk2}}} {cmdlist=0;step=%eval(@step+1);gwk2}}}}}} {whisper;time}
复制代码
4.制作alias walk3
  1. #if (@step=@stepmax) {set brief 2};#if (@step<=@stepmax & @gostop=0 & @gostop2=0) {#var cmd %word(@Route_list,@step,|);#if (@cmd=stop) {#add step 1;stop};#if (@cmd=busy1) {#add step 1;#wait 1000;walkaction};#if (@cmd=busy6) {#add step 1;#wait 6000;walkaction};#if %pos(/,@cmd) {#if @cmdlist=0 {cmdlist=1};#if @cmdlist<=%numwords(@cmd,"/") {%word(@cmd,@cmdlist,/);#add cmdlist 1;#if %word(@cmd,%eval(@cmdlist-1),/)<>stop {#if %word(@cmd,%eval(@cmdlist-1),/)=busy1 {#wa 1000;walkaction} {walkaction}}} {cmdlist=0;#add step 1;walkaction}};#if (@cmd<>stop & @cmd<>busy1 & %pos(/,@cmd)=0 & @cmd<>busy6)  {@cmd;#add step 1;walkaction}} {whisper;time}
复制代码
5.制作以下触发,并归类为walk3:
^??你想收谁作弟子?
  1. walk3
复制代码
^??设定环境变量:llnpc ~= "(*)"
  1. llnpc=%1;
  2. give jin nang to %1;
  3. #say 判断拦路NPC--->>>
复制代码

^??这里没有 (*) 。
  1. walk3
复制代码

^??这样东西不能随便给人。
  1. ka @llnpc;
  2. #wa 3000;
  3. give my sword to @llnpc;
  4. #say 判断拦路NPC--->>>
复制代码
6.落了个alias walkaction
  1. shou @walknpc
复制代码
7.此外,你可以修改逍遥行的walk类触发中的内容,把指令中的walk改成gowalk,并在逍遥行的gt指令中加入#alias gowalk {walk}作用是各种坐船过河,慕容的小舟,黑木崖的篮子,走灵鹫的铁索,等等等等,用在路径中stop停止,到地方后gowalk继续。


8.落了个变量,注意,是变量,不是别名。
numitems
  1. %numwords(%1,"|")
复制代码

评分

参与人数 1精华 +8 收起 理由
ffdm + 8 技术贴奖励

查看全部评分

北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-8-21 23:26:42 | 显示全部楼层

462遍历。。。。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-8-22 01:41:44 | 显示全部楼层
following & learning
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-8-22 05:59:15 | 显示全部楼层
玄妙,学习中
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-8-25 15:42:43 | 显示全部楼层
上不了游戏,总可以占前排吧
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-9-18 15:46:58 | 显示全部楼层
学习中~~~~~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2015-9-23 10:07:37 | 显示全部楼层
回复 1# bbye


    更新了walk2和walk3,改掉了一些 bug
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-8 04:07:52 | 显示全部楼层
3.制作alias walk2 ...
{#if (%pos(/,@cmd)=0) {@cmd;step=%eval(@step+1);stepaccu=%eval(@stepaccu+1);gwk2}
bbye 发表于 2015-8-21 02:54 PM


请问老白,alias walk2里面的gwk2是什么alias?  反斜杠 “/” 有何奥密?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-9 03:20:42 | 显示全部楼层
回复 8# oceanus


    建了一个测试路径:#var bianli_test {w|w|n|n|n|e|e|s|s|s},转一圈回到原点的路径,然后用:

   gt2 @bianli_test,只执行了一步w就停下了,输入 gt3 @bianli_test,可以一步步走回来。

    请老白解惑
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-22 23:46:03 | 显示全部楼层
学习中~~~~~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-20 01:30 AM , Processed in 0.011406 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表