zshghost 发表于 2011-8-10 16:53:45

新手请教:机器人制作中的问题

小生初玩mud,觉得机器人才是游戏的精华,打算一步步学习这些,不想拿来主义。

现在自己做武当的诵经机器人中,例如:
冲虚道长说道:「今天全派弟子要在三老峰熟读典籍,据说要诵唱庄子·杂篇「下卷」的庄子·杂篇·天下(28)
#TRIGGER {冲虚道长说道:「今天全派弟子要在(%x)熟读典籍,据说要诵唱(%x)的(%x)} {x=%1;y=%2;z=%3}

其中y=庄子·杂篇·天下(28)
并且想提取“天下”“28”这两个应该怎么做?

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

suifengl 发表于 2011-8-10 17:03:41

诵经。。。很麻烦的说。。。yct41

zgbl 发表于 2011-8-10 17:05:47

庄子·杂篇·天下(28)
*·(%x)~((%d)~)
试试,如果不行把·换成~·

prettysucker 发表于 2011-8-10 17:43:58

如果是mush的话这么写。注意有两个子函数,包括返回具体路径和具体页数的没有提供,怕被删帖扣分封IPttk_01
哦,道德经也暂时不支持,懒的做了


function ReadJing_init( name, line, wildcards )
        print(name);        print(line);        table.foreachi (wildcards, print)
        SetJhantingPath(wildcards);
        local jieBookName, startPageNumber
        if wildcards == "阴符经" then
                jieBookName = "阴符经";                trueJingBookNumber = tonumber(wildcards);
                startPageNumber = 1;
        else
                jieBookName = wildcards;        startPageNumber = GetJingStartPageNumber(wildcards..wildcards);
                trueJingBookNumber = startPageNumber - 1 + tonumber(wildcards);
        end
        if startPageNumber > 0 and chantingPath.goto ~= "" then
                EnableTimer("goodgoodstudy", false);
                DoAfterSpeedWalk(2, "3n2wu(jie " .. jieBookName .. ")")
        else
                DoAfterSpeedWalk(2, "(ask chongxu about cancel)")
        end       
end


AddTriggerEx ("tr_ReadJing_init",
                "^\\>?\\s?你向冲虚道长打听有关『quest』的消息。\\n冲虚道长说道:「今天全派弟子要在(.+)熟读典籍,据说要诵唱(.+)的.+·.+·(.+)\\((\\d+)\\)",
                "",
                trigger_flag.Enabled + trigger_flag.RegularExpression + trigger_flag.KeepEvaluating, custom_colour.NoChange, 0, "",
                "ReadJing_init",
                0,                                                100)
SetTriggerOption("tr_ReadJing_init", "multi_line", "y");
SetTriggerOption("tr_ReadJing_init", "lines_to_match", "2");

AddTriggerEx ("tr_ReadYinFuJing_init",
                "^\\>?\\s?你向冲虚道长打听有关『quest』的消息。\\n冲虚道长说道:「今天全派弟子要在(.+)熟读典籍,据说要诵唱阴符经的(.+)\\((\\d+)\\)",
                "",
                trigger_flag.Enabled + trigger_flag.RegularExpression + trigger_flag.KeepEvaluating, custom_colour.NoChange, 0, "",
                "ReadJing_init",
                0,                                                100)
SetTriggerOption("tr_ReadYinFuJing_init", "multi_line", "y");
SetTriggerOption("tr_ReadYinFuJing_init", "lines_to_match", "2");

firebolt 发表于 2011-8-11 06:16:19

美西,为什么单独处理阴符经?如果是因为章节数是汉字的话,道德经也得这么处理。

firebolt 发表于 2011-8-11 06:20:09

原帖由 <i>zshghost</i> 于 2011-8-10 16:53 发表 <a href="http://pkuxkx.net/forum/redirect.php?goto=findpost&pid=272844&ptid=22678" target="_blank"><img src="http://pkuxkx.net/forum/images/common/back.gif" border="0" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" /></a><br />
小生初玩mud,觉得机器人才是游戏的精华,打算一步步学习这些,不想拿来主义。<br />
<br />
现在自己做武当的诵经机器人中,例如:<br />
冲虚道长说道:「今天全派弟子要在三老峰熟读典籍,据说要诵唱庄子·杂篇「下卷」的庄子·杂 ... <br />

ZMUD7.21吗?
7.21因为中文处理有BUG, 做诵经机器人有困难
只能半自动

prettysucker 发表于 2011-8-11 06:33:04

阴符经最简单,名字简单而且告诉你的数字就是实际页数
庄子有明确的章节,把每章的起始页记在机器人里面就行了 startpage - 1 + 道长说的页数 = 实际页数
道德经麻烦,并不像庄子那样明确告诉你有几篇,比如道德经39还有个39(2)真不知道有多少这样的章节,实际页数不好弄

alucar 发表于 2011-8-11 06:49:36

721可以利用触发中直接获取的%1、%2的值不出乱码的特点制作全自动诵经机器人

zshghost 发表于 2011-8-11 08:51:08

十分感谢楼上的各位大侠,现在又有新的问题,求教:

①我是全任务地图游走,触发到目标地名的时候停下诵经,完事后继续剩下的路径,应该怎么弄?

②诵经的时候要翻到指定页,然后copy诵经内容,并取消其中的“空格”和“-”号又该怎么弄?

prettysucker 发表于 2011-8-11 09:07:13

1 就那么点地方,你把所有地方做两个路径就行了呀,一个goto一个back
2 正则抓取,也是触发
function ReadJing_InfoAdd( name, line, wildcards )
        currentJingInfo = currentJingInfo..wildcards;
        print(currentJingInfo);
end

AddTriggerEx ("tr_ReadJing_InfoAdd",
                                                "^==                  (\\S+)\\s+==$",
                                                "",
                                                trigger_flag.Enabled + trigger_flag.RegularExpression,
                                                custom_colour.NoChange,
                                                0,
                                                "",
                                                "ReadJing_InfoAdd",
                                                0,
                                                100)

你问的好细啊ttk_13
页: [1] 2
查看完整版本: 新手请教:机器人制作中的问题