求教,帮看下所使用的触发使用的系统变量怎么改,每次不触发 (已经解决,谢谢各位)
本帖最后由 feishu 于 2013-7-30 05:58 PM 编辑触发句有两种七心甲虫 = beetle, jia chong, chong
星宿毒蛛 = du zhu, zhi zhu, zhu
我做的触发格式是
星宿毒蛛 = du zhu, zhi zhu, zhu
#TRIGGER {(%x)%s=%s(%x)%s(%x)%p}
{#var bugid_temp %lower( %2 %3);#if %1=%item( @bugname, %ismember( %1, @bugname)) {#additem @bugid "@bugid_temp"}}
七心甲虫 = beetle, jia chong, chong
#TRIGGER {(%x)%s=%s(%x)%p}
{#if %1=%item( @bugname, %ismember( %1, @bugname)) {#additem @bugid "%2"}}
请问大侠,我这两句为什么不能给变量bugid赋值,命令中的变量bugname是通过前一句的“看起来(%x)想杀死你”而抓去的,我的想法是因为这两个变量都是list类型的变量,不能直接和%1所抓去的值直接比较,所以就先用“%item( @bugname, %ismember( %1, @bugname”的转换来和抓取的值比较,再抓去npc的拼音赋予到bugid变量,但在实际使用中,根本不能实现。
请问各位大侠,
1、我的思路的有实现的可能吗,如果能怎么修改,如果不能还有别的办法吗?
2、如果我想用一个触发实现同时匹配这两种句式,怎么些匹配句?
非常感谢!
北大侠客行MUD,中国最好的MUD 只有%additem, 没有#additem... 有的,在zmud7.21 help查使用的,我在《Zmud机器人制作》这里看到的,#additem和%additem的区别是#additem不可以添加重复的item,另一个反之。
另外发现了问题
我把通配符写错了,(%x)%s=%s(%x)%s(%x)%p应该改成(%x)%s=%s(%w)%s(%w)%p就可以抓取了,但是还是不能赋值,不知道为什么 {#additem @bugid "@bugid_temp"}}
應該不用" " 雙引號吧? 本帖最后由 bluse 于 2013-7-27 08:01 AM 编辑
{#additem @bugid "@bugid_temp"}
bugid好像不用加@前导吧,这个句子里bugid这个变量的身份是左值,被改写赋值,因此不用加@。
加@的变量,是用于作右值,就是取出值参与运算的。
我没用721,你改成这个试试
{#additem bugid "@bugid_temp"} 谢谢楼上两位,试一下bluse高人的意见,终于可以正确的抓取和赋值了,太谢谢了,这个问题困扰了我好几天 本帖最后由 ycryu 于 2013-7-30 08:40 AM 编辑
#tr 看起来(%x)想杀死你 {#var bugName %1;look};
#tr @bugName~((*)~) {#var bugID {%lower(%1)};kill @bugID} #TRIGGER {(%x)%s=%s(%w)%s(%w)%p} {#if %1=%item( @bugname, %ismember( %1, @bugname)) {#additem bugid %lower( %2 %3)}
我楼上写的真简洁,根据各位给的意见,这是我最后改的,可以正常运行了
页:
[1]