北大侠客行MUD论坛

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

怎么在462中实现555中%ismember()的功能?

[复制链接]
发表于 2013-11-25 19:41:38 | 显示全部楼层 |阅读模式
首先不得不说,糖果的帖子写的很好,可惜是对应zmud5.55,而本人一直用惯了462,难道462真的就没救了么,还得自己开动脑筋。

糖果的帖子里面有这么一段:

“在这个例子中@baobei中保存了所有随机装备的种类,@baobei2中保存所有随机装备的id,并且注意到@baobei和@baobei2中种类和id是一一对应的。
%ismember(%1,@baobei)返回%1在@baobei中的位置。比如如果掉落刀返回值为2,掉落鞭返回值为4
如果%1不在@baobei中,返回为0


悲剧的是在462中的%ismember只会返回1和0,不会返回位置。

想来想去只能利用#fuction命令来变相实现。

#fu item {%word(%1,%2,|)}
//462中没有%item系统函数,可以自己做一个

#fu ismember {%if(%ismember(%1,%2),@item(%2,%1),0}

举例:

#va abc "20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1"

#show @ismember(8,@abc)

显示13

#show @ismember(12,@abc)

显示9

都正确。

但是另外一个就不行了

#var baobei2 "sword|blade|staff|whip|axe|spear|hammer|halberd|dagger|armor|head|waist|boots|necklace|ring|surcoat|cloth|wrists|hands|shield"

#show @ismember(staff,@baobei2)

显示sword

#va baobei "剑|刀|杖|鞭|斧|枪|锤|戟|匕|铠甲|盔|腰带|靴|项链|戒指|披风|袍|护腕|手套|盾"
#show @ismember(斧,@baobei)
显示剑

不知道什么原因,请教高手指点。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-11-25 20:38:01 | 显示全部楼层
只怪721对汉字支持不怎么好
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-11-26 07:18:20 | 显示全部楼层
本帖最后由 mookt 于 2013-11-25 11:22 PM 编辑

快想破了脑袋,又在论坛上看了不少前辈的帖子,感觉终于搞定了。

#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

不过感觉不爽的就是5.55中的%ismember只需要两个参数,一个参数是需要判定在不在list中的变量(比如说杖,staff)一个参数是list列表,

462中自制的@ismember要多一个参数,这个参数设为1就好了(用于计数),从列表中的第一个开始比较,直到比较结束。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-11-26 15:25:41 | 显示全部楼层
太厉害了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-11-26 21:46:11 | 显示全部楼层
我要做护镖路径集 就得30多个#if 嵌套 啊?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-11-27 10:13:39 | 显示全部楼层
我要做护镖路径集 就得30多个#if 嵌套 啊?
snowboy 发表于 2013-11-26 09:46 PM



    有必要么,可以一个连一个,非要嵌套?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-11-27 14:58:49 | 显示全部楼层
lst=99;#20 {#if %ismember(@abc,%word(@ku1,%i,|)) {lst=%i}};#if @lst<50 {#var cba {%word(@ku2,@lst,|)}}
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-11-28 14:21:03 | 显示全部楼层
上次发你不在?今晚发,不见不散哈
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 12:58 PM , Processed in 0.009886 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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