好像看到过莎莉文大大有发过这个,我转贴下给你吧
要完成诵经全自动,需要解决的问题如下:
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记录了页数,接下来就是去复真观二楼去借书,这个应该没什么问题,这里就不多写了。 |