北大侠客行MUD论坛

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

分享一个10w经验的明教小萌新PaoTin++成长之路

[复制链接]
发表于 2024-6-7 01:07:39 | 显示全部楼层 |阅读模式
本帖最后由 kickuhead 于 2024-6-7 01:11 AM 编辑

一、明教拜师之路

小萌新进北侠,注册账号,挑了一个系统随机生成的头像,两大眼睛挺有神。
出了新手村,发现不知道为什么其中一个眼睛变成绿豆眼了,从萌新小张变成了独眼小张

站到扬州广场,看着来来往往的大侠,萌新也想变的跟他们一样强。 研究一番wiki之后,发现跟其它网游也类似嘛,一样需要经验、技能、装备。
装备比较遥远,那我们先从经验和技能开始。
再一番研究,发现没经验也学不了技能,并且很多门派收徒有经验限制,为避免夜长梦多,先拜师再说。
经过某位能背wiki的高人指点,我决定加入明教。

第一个问题来了——怎么去明教?
新人给了一个路引,但是用路引travel 明教是不行的,最多只能去到灵州。
那我们从灵州出发去明教好了。

  1. 1.travel 灵州,然后来到灵州城中心,发现有系统内建路径可用,输入指令walk -c,真能去明教,但是上面写的是“黄河[明教]”,不管,我们先walk试试。

  2. 2.walk mingjiao,果然到不了明教,来到了黄河南岸码头,码头有个船老大姓周,看来要收钱,刚好身上有新手村带出来的几两银子,我们问问他怎么过河好了。

  3. 3.ask zhou about huanghe,有船靠岸,按提示enter上船,到对岸后自动被out赶下船,到了黄河北岸码头(黄河北岸的黄河古渡)。

  4. 4.lzdk_mj 。北岸码头walk -c不管用了,还好有玩家定义路径可以用,指令node,弹出列表,表里面可以看到去明教的山门指令是lzdk_mj,我们“lzdk_mj”,终于到达明教了。
复制代码


不愧是被中原正统武林排斥的教派,这一通操作下来艰难跋涉才到了山门,找老颜拜师,成功加入明教。
拜完师我们有了2个问题:
一、新手期过了没路引了怎么办?
二、这一通操作能简化吗?

久闻PaoTin的逍遥行功能,我们在客户端里“HELP xiaoyao”,看到逍遥行的介绍,看来输入任意系统内建路径的节点名称就可以直接飞奔过去。
刚才上面第3步到的那个地方叫啥来着——“黄河北岸的黄河古渡”,我们试试travel 灵州回到灵州城中心,输入指令
  1. xiaoyao.Goto  黄河北岸的黄河古渡
复制代码
执行之后,PaoTin自动把我们移动到了第3步到达的终点——黄河北岸码头(黄河北岸的黄河古渡),连ask船老大都自动完成了。
那我们接着操作上面第4步——“lzdk_mj ”,就来到山门了。

再试试这个逍遥行,发现"xiaoyao.Goto"是可以简写成"xy"的,“黄河北岸的黄河古渡”也可以写成“北岸的黄河古渡
试试"xy 北岸的黄河古渡",发现也行
并且在灵州的城中心、洛阳的城中心、扬州的城中心用都可以达到同样效果
那我们操作就简化成了两步:
  1. 1.xy 北岸的黄河古渡
    2.lzdk_mj
复制代码



继续研究“HELP xiaoyao”,发现另外有个指令“xiaoyao.GotoThen”,看描述,作用是到达目的地后还可以自动接着执行指令
那我们试试输入:
  1. xiaoyao.GotoThen 北岸的黄河古渡 {haha}
复制代码

果然,到达北岸的黄河古渡后,哈哈大笑了几声

这不就简单了么,我们直接把上面已经简化的两步操作,用xiaoyao.GotoThen合并成一步
  1. xiaoyao.GotoThen 北岸的黄河古渡 {lzdk_mj}
复制代码
在随便一个城中心输入,直接就飞奔到明教山门了。

新的问题来了:
这串指令这么多字母和文字,敲起来太费劲了。

一般客户端都用别名来解决,我们来试试PaoTin的,输入指令
  1. #alias gomj {xiaoyao.GotoThen 北岸的黄河古渡 {lzdk_mj}};
复制代码
这回舒服了,想回明教,随便一个城中心输入"gomj",起身去喝口水,回来就在明教山门了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 01:34:29 | 显示全部楼层
二、平一指任务

拜师之后并没有解决我们学技能的问题,没经验值是学不了的。
杨逍这货也不给门派任务。
研究了一下论坛里前辈的攻略,我选了平一指任务,有2个好处:
1.简单
2.给钱,可以用来洗澡、买第一把武器、过河的船费 等


任务很简单,手动做下来,发现是3个步骤循环:
  1. 1.ask ping about 工作

  2. 2.平一指说道:「我们现在正好缺少一种药,这是药方,你去配吧」          这时我们要输入 n 到配药房,然后输入 peiyao 开始配药

  3. 3.药配好之后会提示——不知过了多久,你终于把药配完。         这时我们要输入 s 到药店,然后 give yao to ping 把药给平一指完成任务

  4. 4.平一指笑呵呵接过你配好的药,说:谢谢这位小兄弟       这时我们要重复步骤1
复制代码

正好拿PaoTin来练手


在 盘符:\my-paotin\plugins目录下创建一个txt,改名为"pingyizhi.tin"
打开"pingyizhi.tin",写一个触发
  1. #act {平一指说道:「我们现在正好缺少一种药,这是药方,你去配吧」} {n;peiyao};
复制代码
保存"pingyizhi.tin"
然后在PaoTin客户端输入“LM pingyizhi”,提示pingyizhi模块已载入

现在测试一下,在平一指的房间输入“ask ping about 工作”,平一指给完配药任务后,我们自动就到配药房开始配药了,说明操作成功


接下来分别做好
#act {不知过了多久,你终于把药配完。}
#act {平一指笑呵呵接过你配好的药,说:谢谢这位小兄弟}
这两个触发

然后在PaoTin客户端输入“RLM pingyizhi”,重新加载pingyizhi模块

现在解放双手了,我们可以看wiki规划下一步应该去干什么
或者我们可以学习一下PaoTin和TinTin的几个帖子:
PaoTin++ 超新手教程之打坐机器人
本雪的《新手向炮艇驾驶手册》
Paotin++ 关于BotStep的应用于类似华山巡山任务场景的说明
[paotin++]新人打坐机器——记一次愉快的学习过程
TinTin++中文手册
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 01:36:15 | 显示全部楼层
本帖最后由 kickuhead 于 2024-6-8 06:42 PM 编辑

三、杨逍任务

平一指做到2000经验就不会给任务了
没关系,在之前写平一指脚本的过程中我们已经入门了PaoTin
挂平一指的过程中我们看完了wiki上的新手攻略


接下来有经验获取效率更高的门派任务等着我们
在去明教做门派任务之前,我们已经有平一指任务攒下的2金左右资本,可以先做3件事:


1.洗澡
  wiki新手攻略里有链接

2.摘果子拿月饼
  扬州广场摘果子,吃了加1000经验;拿咸月饼(先不要吃)

3.初级装备,为后面做韦一笑任务做准备
  扬州广场地下的发呆室领新手装备;
  当铺买一把燕翎刀,不要嫌贵,用完以后还可以卖,一去一来实际花不了多少钱;
  如果当铺没货的话,发呆室领的大砍刀也行

接下来gomj去明教,可以找杨逍领门派新手任务了
第一阶段任务由杨逍直接发布
ask yang about job——走到瞭望塔——liaowang——接到站岗完毕提示——走回杨逍处——ask yang about fuming
有了上面平一指任务的经验,做起来非常轻松

但照平一指的触发依样画瓢去做,我们很容易发现几个问题:
1.平一指给完任务我们就可以直接n;peiyao了,杨逍这货怎么给完任务不让我们直接走啊
2.平一指任务完成后,直接ask就接下一个任务了,杨逍这货怎么老提示我们说话太快了啊
3.旁边有其他人接任务的话,怎么老把我的脚本误触发啊
4.这任务还带CD的,等下一个任务中间的时间我能不能利用一下啊

延时——delay
上面的问题1、2,都是延时问题
PaoTin里#help delay,可以看到关于延时的说明
或者你也可以在平一指任务那一楼后面,点进tintin++手册,看delay的中文介绍

我们拿问题1的处理来实操一下
也就是杨逍对我们说去了望山下观察敌踪之后,延时1秒再行动,避免系统提示我们不能移动
  1. #act {杨逍说道:「瞭望塔是我教一处关键所在,你去了望(liaowang)山下,观察敌踪吧。」} {#delay 1 {sd;sd;sd;sd;w;liaowang}};
复制代码

这个方式同样可以用来处理问题2

防误触发
问题3就是误触发的例子,防误触主要防两方面
  1. 1.别人say、chat出现跟我们触发语句一样的内容

  2. 2.别人接任务时,“杨逍说道:「瞭望塔是我教一处关键所在,你去了望(liaowang)山下,观察敌踪吧。」”,这段话同样出现在我们屏幕上
复制代码

误触1的处理

例子: #act {杨逍对你道:幸苦了。} {#delay 1 {ask yang about job}};

很显然,如果王二狗来到我们旁边“say 杨逍对你道:幸苦了。”
我们客户端会出现“王二狗说道:杨逍对你道:幸苦了。”
包含了我们#act里的内容,最后面花括号里要执行的指令就会被触发。

怎么避免?
tintin++手册里可以查到——“^”匹配文本的开头
所以我们只要把上面例子换成:
  1. #act {^杨逍对你道:幸苦了。} {#delay 1 {ask yang about job}};
复制代码

就避免了被来捣蛋的王二狗用say触发它

误触2的处理

例子: #act {^杨逍说道:「瞭望塔是我教一处关键所在,你去了望(liaowang)山下,观察敌踪吧。」} {#delay 1 {sd;sd;sd;sd;w;liaowang}};

这个场景容易发生在我们在杨逍旁边等任务CD时
王二狗又来了,他居然跟我们是同门,并且他也找杨逍接任务
杨逍一视同仁交给他任务,同时:
杨逍说道:「瞭望塔是我教一处关键所在,你去了望(liaowang)山下,观察敌踪吧。」

很不幸,杨逍对这个狗蛋说的话,同样出现在我们屏幕上,触发我们上面的#act
而实际我们并没有接到任务,屁颠屁颠跑去瞭望塔,成了终极白忙活

怎么解决这个捣蛋的王二狗?
显然我们不具备顺着网线过去砍他的实力
但在PaoTin里改脚本的能力还是有的
实际上wiki首页,PaoTin++点进去,“贝海拾珠”部分的钓鱼机器人例子,已经演示了如何用#class来规避误触发

我这里用另一个更容易理解的例子: #line oneshot,做单次触发
  1. #act {^你向杨逍打听有关『job』的消息。} {
        #line oneshot {
            #act {^杨逍说道:「瞭望塔是我教一处关键所在,你去了望(liaowang)山下,观察敌踪吧。」} {走到瞭望塔;liaowang;};
        };
    };
复制代码


为了便于看明白,上面的内容我用tab制表符稍做了排版,事实上这个习惯我们在写脚本的任何时候都应该保持
这个例子里,只有我们向杨逍ask yang about job之后,  “杨逍说道:「瞭望塔是我教。。。”  才会被触发
并且因为它在#line oneshot {}里面,只会被触发一次

解决掉这2个误触问题后,现在王二狗已经不具备给我们捣蛋的能力了

当然,真要解决多个#action误触的问题,还是建议去看明白wiki钓鱼机器人例子里的#class


任务CD的利用

“时间就是金钱,我的朋友”。在等任务CD时,我们要是能去学习、打坐,看起来就很美好
时间管理大师是我们的目标

这个时期,我的npc师傅颜垣就在杨逍所在广场处sd,往南下一格
思路来了:杨逍提示CD——南下——自我时间管理——10秒后北上——ask杨逍job
(这里自我时间管理中,我建议的学习优先级:光明圣火功 > 基本内功 > 烈焰刀 > 基本刀法 > 基本招架 > 大腾挪步法 > 基本轻功)

延时10秒我们上面已经知道了 #delay 10 {北上;ask杨逍job};
那实现起来应该就是:
  1. #act {^你刚做完任务不久,先去休息一会吧。} {
        南下;
        #delay 10 {北上;ask杨逍job};
    };
复制代码


如果在脚本执行北上这时,我们不是在跟颜垣学习,而是在打坐
这时是busy状态,北上是不能成功执行的
我们修改一下:
  1. #delay 10 {halt;北上;ask杨逍job};
复制代码

这样打坐也不怕了

如果在等这10秒的过程中,我们想去大沙漠逛逛
刚进沙漠,坏事,10秒到了,脚本里的{halt;北上;ask杨逍job}开始执行,直接导致我们在沙漠里迷路
怎么办?
我们可以给这个delay命名,方便我们取消它
  1. #delay yang.job {halt;北上;ask杨逍job} 10;
复制代码
yang.job就是它的名字,10秒按语法我们要放到后面去
现在我们想逛沙漠的时候,就可以用:
  1. #undelay yang.job;
复制代码

来取消它


四大法王任务

在做杨逍的瞭望塔任务达到一定经验值后,杨逍会把任务转交给四大法王
他说的话分别是
  1. 杨逍说道:「现在金毛狮王正在找人帮忙,你去看看吧。」
    杨逍说道:「现在紫衫龙王正在找人帮忙,你去看看吧。」
    杨逍说道:「现在青翼蝠王正在找人帮忙,你去看看吧。」
    杨逍说道:「现在白眉鹰王正在找人帮忙,你去看看吧。」
复制代码


很显然,这个触发里只有四大法王的名字不一样
我们直接用PaoTin的正则匹配来获取它,%*
  1. #act {^杨逍说道:「现在%*正在找人帮忙,你去看看吧。」} {
       okLog 要找的人是 %1;
    };
复制代码


做完之后我们测试一下:
  1. #show 杨逍说道:「现在金毛狮王正在找人帮忙,你去看看吧。」
复制代码


不出意外,屏幕上会显示“要找的人是 金毛狮王”,说明这个触发写成功了
记住#show ,这是常用的触发测试方式

既然匹配到了四大法王的名字,我们整理一下思路:
  1. #act {^杨逍说道:「现在%*正在找人帮忙,你去看看吧。」} {
        #switch {"%1"} {
        #case {"金毛狮王"} {延时1秒  去谢逊所在地;ask谢逊job};
        #case {"紫衫龙王"} {延时1秒  去黛绮丝所在地;ask黛绮丝job};
        #case {"白眉鹰王"} {延时1秒  去殷天正所在地;ask殷天正job};
        #case {"青翼蝠王"} {延时1秒  去韦一笑所在地;ask韦一笑job};
       };
    };
复制代码


当然,你也可以分成4个#act写
但这种很雷同的触发,我推荐用switch case ,便于后面维护

后面我们分开研究这4个不务正业,连老窝光明顶也守不住的家伙
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 01:39:16 | 显示全部楼层
本帖最后由 kickuhead 于 2024-6-8 12:40 AM 编辑

四、谢逊任务

引用wiki任务说明
  1. 金毛狮王谢逊位于广场和大殿之间的走廊,负责圣火坛相关事务,发布的任务是看守圣火。ask xie about job,狮王会告诉进入圣火坛的方法。看守圣火需要两种道具,木柴和蒲扇,木柴可以在后山小路jian,捡十根左右就够了,蒲扇被狮王弄丢了 ,会随机出现在明教的一个房间,找到后get,即可从明教大殿enter去圣火坛。在圣火坛输入kanshou后开始看守圣火,根据圣火的描述jiachai或shanfeng,jiachai会消耗一根木柴,所以之前需要检10根左右。看守一定时间后会提示完成,此时去谢逊那里ask xie about fuming就完成任务。
复制代码

看一遍任务流程,再手动做一次
思路就有了:

  1. 杨逍接任务,触发走到谢逊;接谢逊任务;
  2. 谢逊给任务,找蒲扇;
  3. 谢逊给任务,去后山小路;捡木柴;
  4. 捡到10根木柴后,去圣火坛;看守;
  5. 根据圣火提示,做相应动作;
  6. 根据圣火完成提示,回到谢逊;交任务;
  7. 谢逊告我们任务完成,回到杨逍;重复上述过程
复制代码


整理完思路,我们发现这个任务有3个重点:
  1. 1.找蒲扇
  2. 2.捡到10根树枝就停下
  3. 3.看守圣火时做好每一个提示语的触发
复制代码

1.找蒲扇

实际上我们并不需要专门为找蒲扇写个很复杂的脚本,因为蒲扇找到一次后,会一直在身上,后面任务就不用找了
所以我们跑完整个明教,能找到它一次就行

这里问题又有2个:
①明教这个山路又是sd又是su的,还有nd和nu,跟扬州n;s;w;e比,走起来难受极了
②这个蒲扇不明显,容易漏过去,我们需要给它一个显眼的提示

遇到问题,解决问题:

①PaoTin里输入指令”HOTKEYS“,找小键盘走路的快捷键
   ctrl+o  , k ,开启小键盘走路
   按四个方向键,走山路就跟平地一样轻松

②我们给蒲扇做个提示明显的触发
   比如:
  1. #act {蒲扇} {okLog <431>找到扇子~~~~~};
  2. #act {捡起蒲扇} {#unact {蒲扇}};
复制代码

  以上代码只体现思路,不保证能用
  其中<431>是颜色代码,如果你想用其它颜色,请翻看上面的TinTin++手册
  这样遇到某个房间有蒲扇了,会有显眼的提示,确保不会漏过

2.猛男捡树枝

捡木柴需要对已捡到的木柴数量计数,这里我们就来到了创建变量环节:#var
试试创建一个木柴数量的变量,并用okLog调试显示它的值:
  1. #var chaiNum 0;
  2. okLog 木柴数量现在是 $chaiNum;
复制代码
不出意外,屏幕会显示  “木柴数量现在是 0”

然后我们对变量进行数学运算:#math
试试让这个变量增加1:
  1. #var chaiNum 0;
  2. #math chaiNum {$chaiNum + 1};
  3. okLog 木柴数量现在是 $chaiNum;
复制代码
得到  “木柴数量现在是 1”
或者更简洁优雅一点,使用PaoTin的自带别名 math.Inc
  1. #var chaiNum 0;
  2. math.Inc chaiNum;
  3. okLog 木柴数量现在是 $chaiNum;
复制代码
同样得到 “木柴数量现在是 1”

最后我们还要判断变量:#if
试试这个变量超过8时的判断:
  1. #var chaiNum 8;
  2. #if { $chaiNum >= 8} {
  3.     okLog 柴火已够8根;
  4. };
  5. #else {okLog 柴火还不够8根};
复制代码
得到  “柴火已够8根”

用上面学到的基础,加上这个环节的#if、#var和#math,我们很容易实现以下思路:
  1. 谢逊给任务,触发{
  2.    创建变量$chaiNum,并赋值为0;
  3.    去后山小路;捡木柴;
  4. };
  5. 出现开始捡木柴动作的提示,触发{2秒后继续捡木柴,命名这个2秒延时为xie.chai};
  6. 出现捡到木柴的提示,触发{
  7.      变量$chaiNum + 1;
  8.      okLog 已捡到 $chaiNum 根柴火;
  9.      判断$chaiNum是否超过10根 {
  10.          okLog 柴火已够10根,执行下一步;
  11.          取消这个名为xie.chai的延时;
  12.          延时2秒,去圣火坛;看守;
  13.      };
  14.   };
复制代码
这样,猛男就可以自动捡树枝了


3.圣火提示语触发

这是这个任务最耗时的部分,但也是最死板的部分
收集提示文本,做好相应触发就可以
就是个体力活

有意思的是,这个文本花活还挺多
像下面的部分文本:
  1. 可能有必要用扇子
    也许有必要用扇子
    似乎很必要用扇子
    好像有必要用扇子
    应该有必要用扇子
    有必要用扇子
    很必要用扇子
复制代码


如果偷懒只做一个#act {%*有必要用扇子}
它偶尔会来个
  1. 没有必要用扇子
复制代码

让人不得不老老实实收集文本



北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 01:40:53 | 显示全部楼层
本帖最后由 kickuhead 于 2024-6-7 07:50 PM 编辑

五、黛绮丝任务

引用wiki任务说明
  1.   紫衫龙王黛绮丝位于碧水潭畔,毕竟是四大护法中唯一的女性,发布的任务就是帮她打水美容 。ask dai about job,龙王会给一个水罐,在碧水潭畔fill guan,拿到后花园dao gang就把水倒入水缸,这个流程需要重复多次,直到把水缸装满。倒满后找龙王ask dai about fuming完成任务。
  2.   注:由于每次领任务时龙王都会给水罐,所以任务做多了身上会有一堆罐子,可以在复命后drop guan。
复制代码

照例看完wiki,自己手动做一遍,其实和杨逍瞭望塔任务没有本质的区别


有了上面任务的基础,黛绮丝就是经验宝宝


并且这个任务完成速度非常稳定,平均耗时在四大法王任务里是最短的
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 01:42:18 | 显示全部楼层
本帖最后由 kickuhead 于 2024-6-8 02:25 AM 编辑

六、殷天正任务

引用wiki任务说明
  
  1. 白眉鹰王殷天正位于鹰王宫,负责操练弟子,所以需要很多武器,其发布的任务是找到指定的兵器并打磨。ask yin about job,鹰王会指定一种武器,武器类别有钢刀和钢剑两种,颜色包括红、粉、黄、白、蓝、绿、青等,在练功房输入zhao会自动开始寻找兵器,找到符合条件的兵器后,返回鹰王宫前的武场,输入mo blade或mo sword一次就可以去交给鹰王完成任务了。
复制代码

同样手动体验一遍,殷天正任务的流程大致是:
  1. 1.杨逍指派给殷天正;走到殷天正所在地;接任务
  2. 2.接到殷天正任务;走去练功房;zhao
  3. 3.匹配到殷天正要求颜色名字的武器
  4. 4.走去武场;mo
  5. 5.走到殷天正所在地;交武器
复制代码

有了之前任务的PaoTin使用经验,我们1、2步大致都没问题了
难点显然在第3步zhao兵器做触发时,需要跟第1步的殷天正给的武器颜色匹配


颜色匹配

那我们先从第1步的颜色匹配来

殷天正给的任务是这样一个提示

这回我们的普通匹配不好用了,像下面这个匹配:#act {殷天正对你道:你去练功房找(zhao)一件%*去武场打磨(mo)一下交给我。}
显然只能匹配出"钢剑",满足不了第3步zhao兵器时的颜色需求

首先我们找一下服务器发到客户端的原始信息,搞明白殷天正这句话的结构
我是windows系统,打开“盘符:\my-paotin\log\自己id\” 下的socket.log
找到了这句话的原始信息:
  1. 殷天正对你道:你去练功房找(zhao)一件\e[1;34m钢剑\e[2;37;0m去武场打磨(mo)一下交给我。
复制代码

从原始信息看这句话,很明显中间蓝色字“钢剑”是这么实现的:
  1. (蓝色码)“钢剑” (白色码)“去武场打磨(mo)一下交给我。”
复制代码


接下来我们通过PaoTin颜色触发专用的正则匹配表达式 %c,来匹配蓝色码“\e[1;34m”
通过%u来匹配单个汉字字符,通过%+2u来匹配“钢剑” 这2个汉字字符
以及还要通过第二个%c,来匹配白色码“\e[2;37;0m”
另外,按照语法规则,#act花括号的触发语句前面还要加一个“~”,来代表启用颜色触发

以上4个要点组合起来,形成一个触发匹配:

  1. #act {~殷天正对你道:你去练功房找(zhao)一件%c%+2u%c去武场打磨(mo)一下交给我。} {
  2.     #var yin-weaponName %1%2;
  3.     okLog 要找的武器是 $yin-weaponName;
  4. };
复制代码

在不确定这个稍复杂一点的触发靠不靠谱时,我们照例用#show 来测试一下
  1.    #show {殷天正对你道:你去练功房找(zhao)一件\e[1;34m钢剑\e[2;37;0m去武场打磨(mo)一下交给我。}
复制代码

发送之后看到成果,带颜色的“钢剑”已经被我们成功捕获到了



并且将捕获内容储存到了变量$yin-weaponName里面
第1步的关键工作完成
中间不多说,我们直接跳到第3步zhao兵器的重点——颜色触发


颜色触发

通过第1步的匹配,我们已经有了变量$yin-weaponName
它里面存着的,正是我们的宝贝

在这一步zhao兵器的时候,我们要用上这个宝贝
它可以让我们在zhao到正确颜色、名称的兵器时,触发提示我们找对了

只要机器明白我们找对了,就可以顺利进行后面的4、5步了

思路就是这样,来实操一波
  1. #act {~你找到一柄$yin-weaponName} {
          okLog 找到了殷天正要的武器,可以进行下一步了;
    };
复制代码


接着用#show来测试一下:
  1. #show {你找到一柄\e[1;34m钢剑\e[2;37;0m。}
复制代码



准确触发

这里了准确触发之后还可以干些什么?我们已经有了用PaoTin做以上任务的经验,应该不用我再描述了



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 01:43:46 | 显示全部楼层
本帖最后由 kickuhead 于 2024-6-12 01:12 PM 编辑

七、韦一笑任务

以下引用wiki
  1. 青翼蝠王韦一笑与狮王在同一地点,蝠王给人感觉就是阴森森的 ,发布的任务也是新手任务中唯一需要战斗的除奸。ask wei about job,蝠王会告诉有一个六大派的奸细混入明教,要求前去铲除。奸细会随机出现在明教范围内,包括绿柳山庄、大沙漠迷宫、沙漠边缘等地,进绿柳需要给庄丁10 silver,因为37skill打不过 ,进杨不悔房间需要打晕看门的小昭,不过37skill时只会被打晕 ,如果奸细在休息室等不能fight的地方,可以ask xxx about fight。奸细需要打三次,前两次找到kill后奸细会随机逃到另一个房间,逃跑时会给出具体房间名称,直接跑过去kill就行,最后一次kill完就可以去蝠王处ask wei about fuming。
复制代码

韦一笑任务是四大法王任务里相对技术含量最高的任务,也是PaoTin++成长之路里非常重要的任务

分析一下它的环节,步骤如下:
  1. 1.杨逍所在地接任务;走到韦一笑所在地;接任务
  2. 2.根据韦一笑给的奸细名字,找奸细
  3. 3.找到奸细后杀他
  4. 4.杀到没气血后奸细跑路第1次,重复步骤2、3一次
  5. 5.杀到没气血后奸细跑路第2次,再重复步骤2、3一次
  6. 6.回到韦一笑所在地;交任务
  7. 7.回到杨逍所在地;接下一个任务
复制代码

首先,这个任务过程有打架,考验我们技能和装备的时候到了
帖子第三楼做杨逍任务之前,我们当铺买的燕翎刀派上用场了
帖子第三楼做杨逍任务中间,我们利用时间管理学的武功技能也到了展示环节

PaoTin脚本方面,我们已经学到的触发、别名、延时、小键盘走路,可以搞定这个任务的大部分环节

在我们能轻松砍翻奸细刘三蛋之后,新的问题出现了
步骤2需要我们跑遍整个明教去找这个刘三蛋,刘三蛋本身实力倒不强,但这狗蛋可真难找啊
而且这狗蛋前两次打完还跑路,一个任务我们要找他3趟
找这狗蛋的过程中,我们恨不得剥开他的肚子、扯出他的肠子、绕着他的脖子转3圈、打一个漂亮的蝴蝶结、然后手起刀落
咔~~

连续手刃几次刘三蛋后
现在,让我们直面自己的内心
我们可以忍受重复找他多少次?

越重复做下去,刘三蛋在我心里的仇恨值越是飙升
我佛慈悲,戒贪定嗔破痴
还是让PaoTin来救赎刘三蛋吧

-----path-----

我们在PaoTin里“HELP path”,可以看到关于path的介绍文档
搞定刘三蛋,我们需要用到3个PaoTin自带的好东西:path.Tracepath.Finishpath.Walk

-----path.Trace、path.Finish-----

现在我们试试用path.Trace,记录我们走过的路径:
  1. 1.站在明教大殿和广场中间的走廊
    2.在PaoTin里输入指令path.Trace,屏幕提示“开始录制路径”
    3.用小键盘走路,走到黛绮丝的所在地
    4.走回出发点,输入指令path.Finish,屏幕提示完成录制
复制代码

这样就录好了一个路径
当然,第④步中你也可以点击下方prompt栏的"完成录制"按钮,和输入指令path.Finish一样的效果

录制完的路径存在 盘符:\my-paotin\data\map-path.tin这个文件中
打开它,会看到录制好的路径名字
我这里简称它为"录制好的路径",下同

-----path.Walk-----

接下来试试path.Walk,调用刚才录好的路径进行行走
在PaoTin里输入指令
  1. path.Walk {录制好的路径}
复制代码

然后就可以欣赏小人从走廊走到黛绮丝,然后再走回走廊

以上就是这个任务里我们用到的部分path功能,实际做起来非常轻松
操作两三次熟练之后,30个房间的地图我们可以在2-3分钟内录完

偷偷告诉你,绿柳山庄拦路的家丁这里
give ding 10 silver 也可以被录制到路径里
并且会被path.Walk执行

-----path.Walk.Stop path.Walk.Resume-----

path.Walk中的两个别名,看名字就很好理解
一个用来暂停path.Walk,一个用来继续path.Walk

在小人从走廊走到黛绮丝再走回走廊的path.Walk中,我们试试输入path.Walk.Stop
小人就停在了输入path.Walk.Stop的房间
接着输入指令path.Walk.Resume
小人就继续走回起始点——走廊

自动行走的过程中,我们应该也注意到了
path.Walk移动速度非常快
我们直接拿它来找刘三蛋,怕不是要擦肩而过

现在我们解决path.Walk移动速度太快的问题

-----Event-----

PaoTin里输入指令event.List,可以看到全部的已注册事件
行走的事件是GMCP.Move,我们来把它注册给path.Walk
  1. event.Handle {GMCP.Move} {path.Walk} {$MODULE} {haha};
复制代码

注册完之后,在path.Walk过程中,发生了GMCP.Move移动事件
就会执行最一个花括号内的指令
这里我们的指令是haha

接下来我们再走一次path.Walk
  1. path.Walk {录制好的路径}
复制代码

可以看到小人从走廊走到黛绮丝再走回来的过程中,哈哈了一路
笑断气我们也不管他,因为我们马上就让他笑不出来了

我们来创建一个别名
  1. #alias walk.cycle.time {
        path.Walk.Stop;
        cry;
        #delay walk.Resume {path.Walk.Resume} 1;
    };
复制代码

接着把GMCP.Move事件注册给path.Walk,
  1. event.Handle {GMCP.Move} {path.Walk} {$MODULE} {walk.cycle.time};
复制代码

然后再试试path.Walk {录制好的路径}
可以看到每走到一个房间,小人都执行了
  1. 1.停下walk
    2.嚎啕大哭
    3.等待1秒后继续walk
复制代码

没错,就是我们创建别名walk.cycle.time中的指令
这个事件已经重新把GMCP.Move事件注册给path.Walk,之前haha的那个注册被覆盖掉

想又快又准的找到刘三蛋,这里我习惯设置延时为0.2秒

接下来我们思考如何在path.Walk过程中关注到刘三蛋
这里我们可以用到PaoTin的另一个好东西

-----map.FocusNPC-----

事先我们用map.FocusNPC设置好要关注的npc,以及想执行的指令
之后无论是手动移动, 还是用path.Walk移动
一旦遇到关注的npc,就会执行我们设置的指令

用法是
  1. map.FocusNPC {
        {name}  {刘三蛋}
    } command {haha};
复制代码


在脚本中我们把它放在path.Walk {录制好的路径}之前
然后走一圈path.Walk试试
不出意外,path.Walk中一旦遇到刘三蛋,就会对刘三蛋哈哈大笑

但这还不够,对刘三蛋哈哈大笑完之后,我们什么也没干,又走回原点了
没关系,刘三蛋,这声哈哈代表我们已经盯上了你了
下次我们就该来取你的狗头了

现在遇到刘三蛋后我们要干两件事:停下来、超度他
我们创建一个别名来代替haha
  1. #alias job.wei.kill {
        #undelay walk.Resume;
        kill %1 %2;
    };
复制代码


把它放到map.FocusNPC我们对刘三蛋的问候里
  1. map.FocusNPC {
        {name}  {刘三蛋}
    } command {job.wei.kill};
复制代码

搞定,再来一次path.Walk,谈笑喝茶间,刘三蛋灰飞烟灭

接下来刘三蛋跑路之后,我们如何触发path.Walk.Resume回到原点
如何自动启动第2次、第3次path.Walk
刘三蛋正法后如何向韦一笑复命
这些添油加醋的东西我就不详细说了
相信我们PaoTin用到这里,搞定这些已不成问题

另外建议在测试上述path、event、map.FocusNPC功能的时候,我们把刘三蛋换成测试路径例子中的美女黛绮丝
也别忘了测试前把kill修改掉
对待美女要像春天般温暖,对待三蛋同志要像秋风扫落叶一样无情

以及,完成任务后的触发中,我们可以用
  1. event.UnHandle {GMCP.Move} {path.Walk}
复制代码

来取消之前的事件注册,防止任务结束后移动出现不必要的事件触发


最后谈一下小萌新目前PaoTin的使用感受:
PaoTin自带的三万行代码,海量的功能
玩到现在,小萌新运用的还不到一成
还有无数的功能等着我们发掘

上限巨高,各位加油


北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2024-6-7 02:14:38 | 显示全部楼层
学习了,感谢大佬无私的分享

请问这个PaoTin和Mushclient哪个学习门槛更低一些?

才入坑几天,刚学会用Mush解决新手任务(钓鱼和参禅)

只会DoAfter和DoAfterSpecial来解决打坐吐纳读书和学习

函数和变量怎么用一直搞不懂
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2024-6-7 07:46:14 | 显示全部楼层
lobster 发表于 2024-6-7 02:14 AM
学习了,感谢大佬无私的分享

请问这个PaoTin和Mushclient哪个学习门槛更低一些?

我也是萌新,mush没用过,不过我想思路应该是相通的,不同的客户端应该就是换了个语法和语句

另外PaoTin看起来搭好了框架,我觉得易用性应该比较强

你可以试试,看哪个适合自己
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2024-6-7 09:23:24 | 显示全部楼层
kickuhead 发表于 2024-6-7 07:46 AM
我也是萌新,mush没用过,不过我想思路应该是相通的,不同的客户端应该就是换了个语法和语句

另外PaoTin ...

好的好的,我研究一下
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-13 07:28 AM , Processed in 0.014411 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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