北大侠客行MUD论坛

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

武当诵经机器语法问题求教

[复制链接]
发表于 2012-1-23 03:51:33 | 显示全部楼层 |阅读模式
Pattern: 冲虚道长说道:「今天全派弟子要在(*)熟读典籍,据说要诵唱(*)的第(*)十(*)章
Command:
sj_pos=%1;
sj_book=%2;
sj_item=%2;
#if %begins(%3,一) {sj_page=10};
#if %begins(%3,二) {sj_page=20};
#if %begins(%3,三) {sj_page=30};
#if %begins(%3,四) {sj_page=40};
#if %begins(%3,五) {sj_page=50};
#if %begins(%3,六) {sj_page=60};
#if %begins(%3,七) {sj_page=70};
#if %begins(%3,八) {sj_page=80};
#if %begins(%3,九) {sj_page=90};
#if %begins(%4,一) {#math sj_page @sj_page+1};
#if %begins(%4,二) {#math sj_page @sj_page+2};
#if %begins(%4,三) {#math sj_page @sj_page+3};
#if %begins(%4,四) {#math sj_page @sj_page+4};
#if %begins(%4,五) {#math sj_page @sj_page+5};
#if %begins(%4,六) {#math sj_page @sj_page+6};
#if %begins(%4,七) {#math sj_page @sj_page+7};
#if %begins(%4,八) {#math sj_page @sj_page+8};
#if %begins(%4,九) {#math sj_page @sj_page+9}



当第(*)十(*)章这个搭配仅适用于五十一五十二这种  为第五十章的整十章时无法进行运算
求指导

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-1-23 03:59:56 | 显示全部楼层
回复 1# feixiong
另外
@npc_cn往(*)离开
#var direction %item( @dir_list_en, %ismember(  %1, @dir_list_cn))
    这样怎么无法test过去?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-1-23 11:30:12 | 显示全部楼层
回复 2# feixiong
you 新年了,给大家拜年,有高手在么
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-1-28 12:09:50 | 显示全部楼层
好像看到过莎莉文大大有发过这个,我转贴下给你吧
要完成诵经全自动,需要解决的问题如下:

1. 抓取诵经的位置,章节,页数
2. 走到指定诵经地点
3. 获取诵经内容

1. 抓取诵经的位置,章节,页数。这个有两种情况:

第一种是:“冲虚道长说道:「今天全派弟子要在后院熟读典籍,据说要诵唱庄子·外篇「上卷」的庄子·外篇·天地(15)”,这里我们需要用变量记录下诵经的地点,经书的名称,章节的名称和页数。

Pattern: 冲虚道长说道:「今天全派弟子要在(*)熟读典籍,据说要诵唱(*)的(*)~((%d)~)
Command: sj_pos=%1;sj_book=%2;sj_item=%3;sj_page=%4


第二种是:“冲虚道长说道:「今天全派弟子要在前院熟读典籍,据说要诵唱道德经「上卷」的第一十五章”这样的,这里需要把章节名由中文换算成数字。注意,这里的章节名有可能是个位数的情况,所以要用2条trigger。(中文转换成数字除此之外不知道还有什么好的方法,请各位高手帮忙)

Pattern: 冲虚道长说道:「今天全派弟子要在(*)熟读典籍,据说要诵唱(*)的第(*)十(*)章
Command:
sj_pos=%1;
sj_book=%2;
sj_item=%2;
#if %begins(%3,一) {sj_page=10};
#if %begins(%3,二) {sj_page=20};
#if %begins(%3,三) {sj_page=30};
#if %begins(%3,四) {sj_page=40};
#if %begins(%3,五) {sj_page=50};
#if %begins(%3,六) {sj_page=60};
#if %begins(%3,七) {sj_page=70};
#if %begins(%3,八) {sj_page=80};
#if %begins(%3,九) {sj_page=90};
#if %begins(%4,一) {#math sj_page @sj_page+1};
#if %begins(%4,二) {#math sj_page @sj_page+2};
#if %begins(%4,三) {#math sj_page @sj_page+3};
#if %begins(%4,四) {#math sj_page @sj_page+4};
#if %begins(%4,五) {#math sj_page @sj_page+5};
#if %begins(%4,六) {#math sj_page @sj_page+6};
#if %begins(%4,七) {#math sj_page @sj_page+7};
#if %begins(%4,八) {#math sj_page @sj_page+8};
#if %begins(%4,九) {#math sj_page @sj_page+9}

Pattern: 冲虚道长说道:「今天全派弟子要在(*)熟读典籍,据说要诵唱(*)的第(*)章
Command:
sj_pos=%1;
sj_book=%2;
sj_item=%2;
#if %len(%3)=1 { #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};
} {};

这样,我们就使用sj_pos记录了诵经的位置,sj_book记录了经书名称,sj_item记录了经文章节名,sj_page记录了页数,接下来就是去复真观二楼去借书,这个应该没什么问题,这里就不多写了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-1-28 20:27:35 | 显示全部楼层
回复 4# zbao


    晕了,我就是看了这篇文章写的机器人,然后出现的问题,你贴这个我十分感谢,但就是这种做机器的方式才会出现我的问题
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-3-28 17:00:42 | 显示全部楼层
怎么没人回答了?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-3-28 17:06:58 | 显示全部楼层
回复 6# xspe


    那就再照样写一行trigger咯,据说要诵唱(*)的第(*)十章,像这样。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-3-28 17:54:35 | 显示全部楼层
技术版有个中文数字转阿拉伯数字的代码,记得能支持到千万级数字,可以去搜一下
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 03:45 PM , Processed in 0.011530 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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