北大侠客行MUD论坛

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

请教关于%additem的用法

[复制链接]
发表于 2011-9-10 21:07:20 | 显示全部楼层 |阅读模式
在ZMUD中输入%additem(@x,y)就会执行这个命令,如何让这个命令只添加到list表里而不立即执行呢?

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

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 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
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 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)测试不通过呢?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-9-10 22:06:09 | 显示全部楼层
看错了 是应该要加@引用 SORRY~~~~

感谢alucar耐心指教!!!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 10:37 PM , Processed in 0.009719 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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