dtp 发表于 2024-4-27 04:28:22

PaoTin++ 超新手教程之打坐机器人

本帖最后由 dtp 于 2024-4-27 10:31 PM 编辑

PaoTin++ 教程之打坐机器人

第一个小板凳 —— 最简单的打坐机器人,就只有一行代码

#tick dz {dazuo 10} 5;

确实看上去很简单,直接在游戏中复制粘贴就可以生效。
它的功能也很好理解。#tick 表示创建一个定时器,dz 是定时器的名字,
5 是定时器的执行间隔时间(单位为秒),然后 dazuo 10 是定时器每次发送的命令。
dazuo 10 的意思就是将 10 点气血转化成内力。假设你的 ID 状态是正常的,那么
你会看到提示:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-033026.png

很好,确实开始反复打坐了,如果你观察的足够久,你将会看到:

你的内力增加了!!

显示你的最大内力得到了提升。

然而,聪明的你可能已经想到了,真正的打坐不会只有这么简单。我之所以给你一个简单的版本,
纯粹是因为不想一上来就吓到你。上面的打坐机器人(没错,虽然只有一行命令,但它确实是一个机器人),存在很明显的效率问题。
因为我每隔 5 秒才打坐 10 点气血。这显然太慢了,我们甚至肉眼都能观察到,许多时候 ID 就是在发呆。

为什么慢?原因有两点:
1. 每次打坐的气血太少。
2. 间隔时间太长。

让我们试着改一下,改成这样:

第二个小板凳

#tick dz {dazuo 100} 1;

嗯,这样看上去好多了。之前是 5 秒 10 点,现在改成了 1 秒 100 点,效率提升了 50 倍。让我们观察一下效果:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-033158.png

确实,中间发呆的时间没有了,但是出现了大量的报错。
这是因为我们每秒钟发送了一个 dazuo 100 命令给服务器,但 dazuo 100 并不能在一秒内完成。
那么在上一个打坐期间,发送的新的 dazuo 命令,会被服务器拒绝执行,代之以错误提示「你现在正忙着呢」。
我们也可以通过 PaoTin++ 的〔HP摘要〕观察到这一点。注意末尾的「忙」字小尾巴,以及黄色的 busy 主题色。

这看起来有点像是在攻击服务器,运气不好的话,甚至可能会被服务器惩罚。
那么这种问题应当如何解决呢?显然,我们又得改。
不过在修改之前,让我们先把这个有点疯狂的蹩脚机器人给停下来:

#untick dz;

好了,这下一切都清净了。
你会发现这个命令比上面那个短一些,因为取消定时器只需要知道定时器的名字就足够了。
而 #untick 就是 PaoTin++ 中用来取消定时器的命令。

现在已经取消了,接下来该怎么办呢?

接下来我会告诉你,这样反复在 PaoTin++ 界面下输入命令并加以修改确实看上去比较硬核。
正常的做法是,我们需要一个「文本编辑器」,来修改机器脚本。推荐的文本编辑器有 Notepad2 和 vscode,
前者简单,后者专业。本文以 Notepad2 为例,继续教学。

首先,从这里下载一个 Notepad2,并双击打开压缩包:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034025.png

复制其中仅有的那个「notepad2_4.2.25_x64.utf8」文件夹,粘贴到任意盘根目录:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034450.png

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034618.png

然后双击打开其中的 Notepad2.exe:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034703.png

出现界面:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034730.png

检查默认编码,确保为 UTF-8:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034826.png

现在,让我们用 Notepad2 写一个机器人脚本,把我们的第一个小板凳放进去。(嗯,第一个效率不高,但是不急不躁,让我们有充分的时间慢慢改,不会被错误刷屏制造紧张感)

#nop 我的第一个打坐机器人。;

#tick dz {dazuo 10} 5;

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034928.png

很好,接下来让我们把它保存到文件。

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-034941.png

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035025.png

注意选择好路径,应当是 C:/my-paotin/plugins/my.tin(或者你可能安装到了 D: 盘?都可以)

点击「保存」按钮。


https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035125.png

注意左上角已经变成了「my.tin」,同时检查文件夹中,已经出现了新文件:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035211.png

然后让我们回到游戏中,加载这个机器人。

LM my

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035332.png

然后等待一会儿,如无例外,我们的第一个小板凳就又开始工作了。

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035405.png

恭喜你!这意味着,你已经掌握了如何在 PaoTin++ 里编写自己的机器人插件。

让我们稍微停顿一下,好好做个总结,以充分理解刚才究竟发生了什么。
* PaoTin++ 机器人是写在文本文件中的,不过文件名后缀必须是 .tin,文件编码必须是 UTF-8。
* 机器人脚本文件必须存放在 C:/my-paotin/plugins 目录下。
* 文件名就是插件(或者也叫模块)的名字,本例中,my 就是插件名称。
* LM my 就是加载了 my 这个插件。LM 是 load-module 的简写。PaoTin++ 中为了方便输入,发明了很多这种简写,以后会慢慢接触到。
* 我们可以用 MOD my 命令,来观察我们的插件。
* 插件加载之后,就立即开始执行了,本例中,执行结果就是创建了一个定时器,会定时向服务器发送 dazuo 命令。

那么,如何停止机器呢?

KM my

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035500.png

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035512.png

然后你就会发现,模块消失了,定时器不见了。也不会继续打坐了。

很好,我们完成了一个循环。我们学会了怎么创建机器人,怎么让它停止工作,接下来我们要修改它,让它更完善。
别忘了我们的目标,是做一个完善的打坐机器人。

首先,把我们的第二个小板凳复制到 Notepad2 中,先不急着在游戏里执行,而是分析一下它存在的问题。

#tick dz {dazuo 100} 1;

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035549.png

你会发现,它首先存在一个问题,就是不管角色有没有正在打坐(忙),每秒钟都会丢给服务器一个 dazuo 100 的命令。
所以我们可以做个判断:

第三个小板凳


#tick dz {
    #if { @char.IsBusy{} } {
      #return;
    };
    dazuo 100;
} 1;

这段话的意思是说,如果(#if)角色正忙(@char.IsBusy{}),那么我们就直接中断(#return)这个定时器,提前结束本次运行。

把上面这段话复制到 Notepad2 中去:

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035653.png

有些爱动手的同学可能会选择亲自敲一遍,很好!说明你很善于学习!请务必告诉我你的名字,我要奖励你!
但是,在手敲的时候,一定要注意,所有的标点符号都必须是半角!。很多人常常在这个环节栽跟头,希望你不会是其中一个。

然后保存,再回到游戏中试一下:

KM my; LM my

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035718.png

https://pkuxkx.net/wiki/_media/tools/paotin/tutor/pasted/20240427-035834.png

你会发现,现在就好多了。似乎已经成功了!
没错,如果你要求不高的话,这已经是一个能用的打坐机器人了。

如果你恰好有事,想早点结束,那么我宣布,下课!


dtp 发表于 2024-4-27 20:07:06

预留1

dtp 发表于 2024-4-27 20:07:43

预留2

dtp 发表于 2024-4-27 20:08:18

预留3

yekongroom 发表于 2024-4-27 22:08:01

群主好,我是雨落,看完了,全部明白,很简单很好理解,一会儿有空我去试试。

tianzaishui 发表于 2024-4-27 22:39:55


炮哥,你忘记这个了吗?最后更新时间1年前...........................{:7_274:}

dtp 发表于 2024-4-27 22:49:58

tianzaishui 发表于 2024-4-27 10:39 PM
炮哥,你忘记这个了吗?最后更新时间1年前...........................

这个没忘。还在完善。你这哪里截的图?显然不是最新的。

tianzaishui 发表于 2024-4-27 23:12:19

dtp 发表于 2024-4-27 10:49 PM
这个没忘。还在完善。你这哪里截的图?显然不是最新的。


kickuhead 发表于 2024-4-27 23:13:46

炮总这回的教程很适合刚入门的,建议收录到wiki。本雪的那篇需要一些基础才看的明白,吓退新手

dtp 发表于 2024-4-27 23:15:08

tianzaishui 发表于 2024-4-27 11:12 PM


我有空了看看。你先升级一下 pt,现在和你 A 的那会儿变化很大。
页: [1] 2
查看完整版本: PaoTin++ 超新手教程之打坐机器人