北大侠客行MUD论坛

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

4.62有关一个乱入的代码问题,救命啊

[复制链接]
发表于 2016-1-18 22:15:26 | 显示全部楼层 |阅读模式
#t+ exit;
npcnum=0;
degree=0;
searchpath=;
pathnum=;
#wa 500;
look;
#t+ go_2;
alias 寻找目标;
#t- go_1
上面这一句是准备开始 alias 寻找目标是得到一句触发。

#if (%numwords(@pathnum,"|")<@degree) {#var searchpath %additem(@item(@exit,1),@searchpath);
#var pathnum %additem(1,@pathnum);
@item(@exit,1);
alias 寻找目标} {#t- exit;
#var roomnum 0;
#var npcnum 0;
#t+ find;
#wa 500;
#forall @exit {look %i}};
#wa 500;
alias 是否找到目标

这里就开始寻找的过程了

#t- find;
#if @npcnum>0 {#t+ go_6;
alias 找到目标} {#t+ go_4;
alias 未找到目标}

这里是判断是否找到的触发


#t+ exit;
#wa 1000;
#if (%numwords(@pathnum,"|")=0) {#add degree 1;
alias 寻找目标} {goback}

这里是如果没找到,那么判断当前房间的度,如果是0 degree+1开始遍历1度,否则返回

#if (%numwords(@pathnum,"|")=0and@temp<%numwords(@exit,"|")) {bianlinextdegree} {#if (@temp<%numwords(@exit,"|")) {#add temp 1;
#var temp2 @item(@exit,@temp);
#var pathnum %additem(@temp,@pathnum);
#var searchpath %additem(@temp2,@searchpath);
@temp2;
alias 寻找目标} {goback}}

这里是返回一步以后的判断。。

@item是用的论坛上的自定义函数,经过测试,我可以遍历地点1度的所有房间,可问题是,如果超过,我就没办法去,永远在起点跟1度的房间循环,这个思路跟方式都是看的一篇帖子,原帖用的是5.55,我用的是462,我实在找不到解决的办法,请大神帮我看看问题出在哪里

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2016-1-18 22:18:54 | 显示全部楼层
#var exit "%1";
#var exit %replace(@exit,"、","|");
#var exit %replace(@exit,"和","|");
#var exit %replace(@exit,"。","|。");
#var num [%numwords("@exit",|)-1];
#loop @num {#var exit %additem(%trim(@item(@exit,1)),@exit);
#var exit %delitem(@item(@exit,1),@exit)};
#var exit %delitem(@item(@exit,1),@exit)
这里是用来取房间所有出口并且变成可用的list
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 10:42 AM , Processed in 0.009928 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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