【zmud462教学】如何在462下建立和使用数组。
本帖最后由 bbye 于 2017-5-24 06:39 AM 编辑zmud 462是很古老的软件,开发环境很差。建议使用mush
如果一定要用462,也可以,462可以实现大多数需求,配合#dde端口,更可以达成几乎所有北侠需求。
对于462来说,并不支持数组,不过可以用%word函数来初步实现数组的功能。
做个简单的用法介绍:
1.建立数组
由于462中并无数组概念,所以我们需要把数组储存为字符型变量,这里利用一个符号作为数组的分隔符,这里统一用“|”作为元素分隔符。所以,定义一个数组:lujing="n|e|ne|eu|s|u|out";
#say @lujing结果:n|e|ne|eu|s|u|out
2.增加数组元素
增加数组元素就是改变字符变量,结尾和开头添加很容易:
lujing=@lujing+"|se";
#say @lujing结果:n|e|ne|eu|s|u|out|se
3.调用数组中元素
%word(string,expression,string)函数,函数作用是以某个字符为分隔符,返回字符串的一部分,其中3个参数分别为:欲处理的字符串,返回的元素序列号,元素分隔符。例如:#say %word("a|b|c",2,"|")结果:b
带入上面定义的变量:#say %word(@lujing,1,"|")结果:n
4.如何利用变量进行循环调用数组中的数据%numwords(string,string)函数,作用同函数名。我们可以把zmud462中每一个alias想象成一个自定义函数,然后通过函数的互相调用来实现变量传递和循环:最简单的走路函数:
#alias walktest {#if @step<=%numwords(@lujing) {#exec {%word(@lujing,@step,|)};step=@step+1;walktest}};
step=1;
walktest结果:依次执行下列指令集n;e;ne;eu;s;u;out;se
这个方法也是逍遥行走路的基础,实际上可以利用这个方法制作出遍历、走路、暂停、搜索等诸多机器。
包括自动选择技能lingwu lian xiulian,包括hsz、天珠任务自动判断当前npc id进行优先pfm等等。 强势插楼yct10. #exec是什么意思?
能不能把变量名写在数组里,然后调用这个数组给变量赋值? #exec是什么意思?
能不能把变量名写在数组里,然后调用这个数组给变量赋值?
xiaodog 发表于 2017-5-25 04:11 PM http://www.pkuxkx.com/forum/images/common/back.gif
#exec是指令啊,就是把参数变成指令执行。
你试试就知道了,比如
#exec haha 本帖最后由 salonpas 于 2017-9-5 06:25 AM 编辑
numwords返回不了路径中的步数,最大返回值是2,462没这个功能吧。
用#fu numitems %numwords(%1,"|"),用@numitems可以返回,
白大的462机器里应该有些自制的函数吧 确实挺不错的
页:
[1]