hhw 发表于 2017-12-29 18:53:39

462的问题

实例一:做一个trigger来拾取游戏中掉落的随机装备

#var baobei "剑|刀|杖|鞭|斧|枪|锤|戟|匕|铠甲|盔|腰带|靴|项链|戒指|披风|袍|护腕|手套|盾"
#var baobei2 "sword|blade|staff|whip|axe|spear|hammer|halberd|dagger|armor|head|waist|boots|necklace|ring|surcoat|cloth|wrists|hands|shield"
#tri {从@dbrname身上掉了出来一*之(*)$} {get %item(@baobei2,%ismember(%1,@baobei))}
在这个例子中@baobei中保存了所有随机装备的种类,@baobei2中保存所有随机装备的id,并且注意到@baobei和@baobei2中种类和id是一一对应的。
%ismember(%1,@baobei)返回%1在@baobei中的位置。比如如果掉落刀返回值为2,掉落鞭返回值为4
如果%1不在@baobei中,返回为0
%item(@baobei2,%ismember(%1,@baobei)),通过%ismember(%1,@baobei)的返回值得到掉落的随机装备的id

这个是不是721才能用啊,我尝试了下用不了,有没高手指点下462的机器,这种tigger咋做呢?

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

dddr 发表于 2017-12-29 21:28:28

回复 1# hhw


    群里找白公公,462一霸

ambi 发表于 2017-12-29 21:55:12

刚好最近帮别人做机器,回顾了下462,用到相关的东西
462没有item函数,取代的是word
462的ismember只返回true和false,不返回list中的位置,可以论坛搜索下,有前辈做了函数实现这个功能

hhw 发表于 2017-12-31 12:39:29

tri {从@dbrname身上掉了出来一*之(*)$} {get %word(@baobei2,%ismember(%1,@baobei))}
#fu ismember {%if(%ismember(%1,%2),%if(%ismember(%1,%word(%2,%3,|)),%3,@ismember(%1,%2,[%3+1])),0)
#show @ismember(杖,@baobei,1)
{{{3
#show @ismember(staff,@baobei2,1)
{{{3
显示的结果正确了

实际触发:
从劫匪身上掉了出来一件刑天之剑
[从劫匪身上掉了出来一*之(*)$-> get %word(@baobei2,%ismember(剑」,@baobei))]
get sword|blade|staff|whip|axe|spear|hammer|halberd|dagger|armor|head|waist|boots|necklace|ring|surcoat|cloth|wrists|hands|shield
还是没有抓取@baobei2中的sword,请大神指点下啊!

ambi 发表于 2017-12-31 13:00:30

触发中的ismember前的%改为@

hhw 发表于 2017-12-31 13:10:09

回复 5# ambi



你丢下一柄钢刀。
> say 从劫匪身上掉了出来一件刑天之刀
你说道:「从劫匪身上掉了出来一件刑天之刀」
[从劫匪身上掉了出来一*之(*)$-> get %word(@baobei2,@ismember(刀」,@baobei))]
get sword|blade|staff|whip|axe|spear|hammer|halberd|dagger|armor|head|waist|boots|necklace|ring|surcoat|cloth|wrists|hands|shield

改成@了,执行的结果没有变

ambi 发表于 2017-12-31 13:18:20

刀 后面为什么还有个尾巴

hhw 发表于 2018-1-2 17:25:01

{:7_287:}回复 7# ambi

{:7_287:}{:7_287:}{:7_287:}
是啊,为什么多了个」

dddr 发表于 2018-1-2 17:29:20

本帖最后由 dddr 于 2018-1-2 09:31 AM 编辑

从劫匪身上掉了出来一*之(*)   通配符用错了,用*抓出来是刀」,用%x,或者(*)~」    用*是个不太好的习惯,尽量%x之类的
页: [1]
查看完整版本: 462的问题