bbye 发表于 2017-5-22 15:13:50

【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等等。

dddr 发表于 2017-5-22 15:51:19

强势插楼yct10.

xiaodog 发表于 2017-5-26 00:11:13

#exec是什么意思?
能不能把变量名写在数组里,然后调用这个数组给变量赋值?

bbye 发表于 2017-5-26 09:38:40

#exec是什么意思?
能不能把变量名写在数组里,然后调用这个数组给变量赋值?
xiaodog 发表于 2017-5-25 04:11 PM http://www.pkuxkx.com/forum/images/common/back.gif


    #exec是指令啊,就是把参数变成指令执行。
你试试就知道了,比如
#exec haha

salonpas 发表于 2017-9-5 14:19:35

本帖最后由 salonpas 于 2017-9-5 06:25 AM 编辑

numwords返回不了路径中的步数,最大返回值是2,462没这个功能吧。
用#fu numitems %numwords(%1,"|"),用@numitems可以返回,
白大的462机器里应该有些自制的函数吧

ffff 发表于 2019-9-29 09:24:26

确实挺不错的
页: [1]
查看完整版本: 【zmud462教学】如何在462下建立和使用数组。