最后一次提出解决zmud 721乱码问题
以后再也不提了,天天看你们说乱码头大,拿推车举个例子:你需要把镖车运给王武通的伙计(%x),他会在王府井大街接应你!
huoji=%1
^ ~「店铺伙计~」(%x)~(*~)
#if %ismember(%1,@huoji) {该干嘛干嘛} 回复 1# oolong
如果这个要匹配的变量在一行的开头怎么办,
比如说
“左全死了”
如果@shashou_id=左全
那么#tri {^??(@shashou_id死了}和{^(@shashou_id)死了}
输入"#show 左全死了"
都可以触发。
#tri {^??(%x)死了}和{^(%x)死了}
#show %1
一个显示%1是"全"一个是"左全"
那么类似"左全死了"这样的,要做触发的话,pattern要怎么写? zmud721用@shashou_id死了触发是不行的。
那么解决办法有几个,先介绍一个:
已知杀手名字,比如“坎坷”
你可以用正则触发如下:
#REGEX "npc_die" {[>]*[\s]*(\S+)死了} {#sh %1;#if %ismember(%1,“坎坷”) {kill @id}} 方法二、主要针对喜欢用@shashou_id死了触发的主{:7_279:}
做一个alias (vbs的),set_trigger
Dim RetString,Mchar,Mchar_array
Mchar=getvar("job_npc_name","").value
Mchar_array=Split(Mchar, "|", -1, 1)
ProcessCommand "#REGEX "&%1&" {[>]*[\s]*"&Mchar_array(0)&"死了。$} {"&%2&"} "&%3
你一定要定义了一个job_npc_name,比如job_npc_name=左权
得到以后输入set_trigger "npc_die" "get all from corpse;#sh xxxx" "xiaofeng|kill_npc"
你就能在xiaofeng class下面kill_npc class下面找到这个触发,npc_die是自定义的trigger id
这个方法适用BT玩家就是要用@name死了来触发的。 谢谢oolong和静电的热心指点,还是学学正则好了。 回复 1# oolong
谢谢你oolong,你的帖子对我这样的新人很有用,那么我想再多问一个问题,房间的描述我可以拿到,但是因为是逐行取的,然后#add到一个变量,这和地图数据库中的描述很多时候差异比较大,你是如何处理的呢? 本帖最后由 oolong 于 2014-1-14 08:53 PM 编辑
我理解的是描述不变,但是add变量出现乱码,是这个意思么?
解决办法有几个,最简单的如下。
#tr (%x)
#noop %arrset(roomdesc,n)
n可以是0-1000
那么你最后会得到一个数组 roomdesc
@roomdesc.0 @roomdesc.1 @roomdesc.2 ...
就是么每一行的描述,你可以用来%mapquery
当然你也可以将所有描述整到一个数组数值里面,举例
aa=坎坷;bb=慷慨;#var info %array();#noop %arrset(info,2,@aa@bb)
你会发现 @info.2 就是"坎坷慷慨" 本帖最后由 oolong 于 2014-1-14 08:59 PM 编辑
用这个方法要注意,地图里面两行描述之间是否有空格,如果有你也要加上空格,不然不好匹配吧
我基本就是将所有个人信息,臂力师傅气血全部设置到一个数组里面,直接@info.1 @info.2,简单整洁。
为了省事我触发写的更简单
【 精神 】 3751/ 3751 【 精力 】 4375/ 4375(+ 0)
#tr 【 精神 】%s(%d)
#noop %arrset(info,1)
可以写成
#tr 【 精神 】%s(&info.1)
触发都不要写了,非常简洁,强力推荐啊 回复 9# oolong
多谢前辈,受益匪浅 前辈太不敢当了{:7_274:}
一起讨论而已
页:
[1]