supertu 发表于 2011-9-10 21:07:20

请教关于%additem的用法

在ZMUD中输入%additem(@x,y)就会执行这个命令,如何让这个命令只添加到list表里而不立即执行呢?

我现在用#show %additem(@x,y)可以实现,但我不想让他显示到屏幕上,有什么办法可以解决呢?

北大侠客行MUD,中国最好的MUD

alucar 发表于 2011-9-10 21:32:23

zmud中%开头的是函数,%additem返回一个list变量,但不能直接直接改变一个既有list变量的值
改变已有list变量的值要用#additem,但#additem与%additem的功能不完全相同,具体可查help文件
利用%additem函数实现添加list变量值可以用如下代码:

若有#var list {a|b|c|d}
则#var list %additem(e,@list)后
#show @list 显示a|b|c|d|e

supertu 发表于 2011-9-10 21:56:52

明白了thanks a lot~~~~
还有个问题
#var a {1|2}
#var b {3|4}

#var list {a|b}

我想通过遍历list表来遍历a与b的值

#var num %numitems(@list)
#while @num<>0 {#if (%ismember("4",@{%item(@list,@num)})=0)
{#if @num=1 {#say %ansi(high,red)"未发现相关字符串";#exit}};#add num -1 }
代码测试通过

但有点不解,@{%item(@list,@num)}这个值在%ismember的右参数项,应该不能引用@

为什么用%item(@list,@num)测试不通过呢?

supertu 发表于 2011-9-10 22:06:09

看错了 是应该要加@引用 SORRY~~~~

感谢alucar耐心指教!!!
页: [1]
查看完整版本: 请教关于%additem的用法