lequn 发表于 2012-1-11 15:01:22

本帖最后由 lequn 于 2012-1-11 03:05 PM 编辑

人才啊,居然把所有书的章节给记录了。。我比较懒,直接把变量页数加10进行检查,章节对才计算正确页数
fengbing 发表于 2012-1-8 06:31 PM http://pkuxkx.com/forum/images/common/back.gif
我也是哦。hz6
遍历我也只搞自动寻路的(结果用来推车了,想当初,终于实现遍历时的那个激动啊),没录过,不过如果做hyd看来要录了。不然那什么长江岸边什么的,这自动寻路遍历就用不上了。

suxxx 发表于 2012-3-25 13:17:18

inkflower师姐,你那个转换中文数字的方法太繁琐了吧,转换数字,其实一条语句就够了

#var number %ismember( @cnumber, "一|二|三|四|五|六|七|八|九|十|十一|十二|十三|十四|十五")

alucar 发表于 2012-3-25 18:07:21

你这是穷举啊,要是遇到成百上千的数字就不好使了。
另外,不记录章节号也可以用对半法来到找对应的页数。

msxxhh 发表于 2012-4-5 23:29:40

受益匪浅,类触旁通,收藏....

bestoml 发表于 2012-6-26 22:50:12

本帖最后由 bestoml 于 2012-6-26 10:53 PM 编辑

这个贴很好,不过在CMUD下面有关道德经的都解析不了,原因是一个中文的%len(%3)=2的,二十就是4,二十二就是6了,我做了整合:
只需要一个触发语句就行了:
你向冲虚道长打听有关『quest』的消息。$冲虚道长说道:「今天全派弟子要在(*)熟读典籍,据说要诵唱(*)的第(*)章
sj_pos=%1;
sj_book=%2;
sj_item=%2;
#if %begins(%3,一) {sj_page=1};
#if %begins(%3,二) {sj_page=2};
#if %begins(%3,三) {sj_page=3};
#if %begins(%3,四) {sj_page=4};
#if %begins(%3,五) {sj_page=5};
#if %begins(%3,六) {sj_page=6};
#if %begins(%3,七) {sj_page=7};
#if %begins(%3,八) {sj_page=8};
#if %begins(%3,九) {sj_page=9};
#if %begins(%3,十) {sj_page=10};

#if (%len(%3)>=4) {#math sj_page @sj_page*10 }

sj_temp=%copy(%3,5,2);
#if (%len(%3)>=6) {
#if (@sj_temp=一) {#math sj_page @sj_page+1};
#if (@sj_temp=二) {#math sj_page @sj_page+2};
#if (@sj_temp=三) {#math sj_page @sj_page+3};
#if (@sj_temp=四) {#math sj_page @sj_page+4};
#if (@sj_temp=五) {#math sj_page @sj_page+5};
#if (@sj_temp=六) {#math sj_page @sj_page+6};
#if (@sj_temp=七) {#math sj_page @sj_page+7};
#if (@sj_temp=八) {#math sj_page @sj_page+8};
#if (@sj_temp=九) {#math sj_page @sj_page+9};
}

可以用#say %len(%3)@sj_temp看看对应的长度.
还有不要用遍历,效率不好,
用地图+定位,会快很多,而且准确.我用CMUD,遍历有时会停下来不走.晕.

在这里我偷了点小懒,因为对于道德经上下来说,一般都是一章一页的,但是中间有那么一两章占了两页,所以从那开始之后的页数都需要再加1,因为碰见的少,所以我也懒得做了,各位可以自行加上。
我是这样做的:
trigger:^任务诵经任务要求你拿着(*)在(*)诵唱第(*)章
#wa 1000
#math sj_page @sj_page+1
checkjing

caihong 发表于 2012-7-10 11:09:33

学习MUSH中,支持任何技术交流

djhuxiao 发表于 2012-9-1 12:50:17

真复杂

nol 发表于 2012-9-1 13:21:05

本帖最后由 nol 于 2012-9-1 01:22 PM 编辑

鼓励交流机器人制作的相关技术,但绝对禁止交流以下资料:
1:全自动机器人
2:包含10个房间以上的地图数据
3:门派新手任务机器人
yct57

dqxie 发表于 2013-1-27 23:30:11

本帖最后由 dqxie 于 2013-1-28 12:40 AM 编辑

这几天重玩MUD,第一次用Mush,第一次碰到诵经,炼丹。。任务,正好用来学习Mush和Lua。
感觉这里经书中的中文页码比较有特点(如一百十页),跟财务用的方式有点不同(如一百一十页)。

下面是中文数字转换算法,Mush/Lua,(动态编译的,可以用散列数组,和C不一样):

--------------------------------------------------
---===============================================
-- 中文数字转换成阿拉伯数字
---===============================================
--------------------------------------------------

chNum = {
    ["零"] = 0,
    ["一"] = 1,
    ["二"] = 2,
    ["三"] = 3,
    ["四"] = 4,
    ["五"] = 5,
    ["六"] = 6,
    ["七"] = 7,
    ["八"] = 8,
    ["九"] = 9,
    ["十"] = 10,
    ["百"] = 100,
    ["千"] = 1000,
    ["万"] = 10000,
};
chBit = {
    ["十"] = 10,
    ["百"] = 100,
    ["千"] = 1000,
    ["万"] = 10000,
};
function chNum:convert(str)
local len=string.len(str);
i=1;
amount=0;
tempStr=nil;
temp=1;

while i < len do
    tempStr = string.sub(str,i,i+1);
    if nil ~= chBit then
       -- 该字符是“位数”
       temp = temp * chBit;
       amount = amount + temp;    -- 临时结果可以累计入总数
       temp = 1;                  -- 准备转换更低位数的数字
    else
       -- 该字符是零到九
       temp = chNum;
    end

--    Note(" 第 "..i.." 次 temp = "..temp..",amount = "..amount);
    i=i+2;
end;
if temp==chNum then
   amount = amount + temp;
end
      
--Note("转换结果:"..str.." ==> "..amount);

return amount;
end

dqxie 发表于 2013-1-27 23:33:05

转换的实际效果如下:

后堂 -
到达诵经目标地点 后堂
    这里已经是武当的内院了,进进出出都是武当门下的弟子,
一般客人没有许可是不能进来的。左面两个小道童垂手侍立,
旁边站着一位神色严肃的中年人。用敏锐的目光打量着你,使
你不由的有些顾虑,脚步也放轻了些。
    这里明显的出口是 east、north、west 和 south。
    飞雪正盘膝坐在地下修炼内力。
    武当派真人「武当四侠」张松溪(Zhang songxi)
>
page 1
chanting 1 1
l jing
庄子·外篇·秋水(1)
checkArt name =庄子, chapter=外篇
第一次翻书
================================================================
==                                                            ==
==                  秋水时至百川灌河泾流                  ==
==                  之大两涘渚崖之间不辩                  ==
==                  牛马于是焉河伯欣然自                  ==
==                  喜以天下之美为尽在己                  ==
==                  顺流而东行至于北海东                  ==
==                  面而视不见水端                        ==
==                                                            ==
================================================================
庄子·外篇「下卷」                           第一页/总二百十七页
第 一 页总 二百十七 页
第 1 页总 217 页
上一页(pageup)/下一页(pagedown)                   诵经(chanting)
> 任务诵经任务要求你拿着庄子·外篇「下卷」在后堂诵唱庄子·外篇·山木(23)

name = 庄子, chapter = 外篇, section = 下卷
         article = 山木, page = 23, place = 后堂
完整任务书名 = 庄子·外篇「下卷」
checkArt 误入,直接返回

道教典籍可以从复真观找到或者找知客道长租借!
>
page 109.5
庄子·外篇「下卷」(Zhuang zi)
这是一册庄子,包含外篇的秋水、至乐、达生、山木、田子方、知北游。
任务目标【山木】在书目中:秋水、至乐、达生、山木、田子方、知北游

> 庄子·外篇·山木(3)
checkArt name =庄子, chapter=外篇
任务目标文章找到 山木
self.page =0, self.quest.page =23, page =3
================================================================
==                                                            ==
==                  庄子笑曰周将处乎材与                  ==
==                  不材之间材与不材之间                  ==
==                  似之而非也故未免乎累                  ==
==                  若夫乘道德而浮游则不                  ==
==                  然无誉无訾一龙一蛇与                  ==
==                  时俱化而无肯专为                        ==
==                                                            ==
================================================================
庄子·外篇「下卷」                     第一百零九页/总二百十七页
第 一百零九 页总 二百十七 页
第 109 页总 217 页
上一页(pageup)/下一页(pagedown)                   诵经(chanting)
>
page 129
庄子·外篇·山木(23)
checkArt name =庄子, chapter=外篇
任务目标文章找到 山木
任务目标文章页码找到 23
================================================================
==                                                            ==
==                  夫相收之与相弃亦远矣                  ==
首次赋值record = 夫相收之与相弃亦远矣
==                  且君子之交淡若水小人                  ==
==                  之交甘若醴君子淡以亲                  ==
==                  小人甘以绝彼无故以合                  ==
==                  者则无故以离孔子曰敬                  ==
==                  闻命矣                                  ==
==                                                            ==
================================================================
庄子·外篇「下卷」                   第一百二十九页/总二百十七页
第 一百二十九 页总 二百十七 页
第 129 页总 217 页
chanting 129 夫相收之与相弃亦远矣且君子之交淡若水小人之交甘若醴君子淡以亲小人甘以绝彼无故以合者则无故以离孔子曰敬闻命矣
chanting 129 夫相收之与相弃亦远矣且君子之交淡若水小人之交甘若醴君子淡以亲小人甘以绝彼无故以合者则无故以离孔子曰敬闻命矣
页: 1 [2] 3 4
查看完整版本: Zmud462武当新手任务诵经机器人的制作