目录

PaoTin++ 教程之打坐机器人

第一个小板凳

最简单的打坐机器人,就只有下面一行代码

  #tick dz {dazuo 10} 5;

确实看上去很简单,直接在游戏中复制粘贴就可以生效。

它的功能也很好理解。#tick 表示创建一个定时器,dz 是定时器的名字,

5 是定时器的执行间隔时间(单位为秒),然后 dazuo 10 是定时器每次发送的命令。

dazuo 10 的意思就是将 10 点气血转化成内力。假设你的 ID 状态是正常的, 那么你会看到提示:

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

你的内力增加了!!

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

然而,聪明的你可能已经想到了,真正的打坐不会只有这么简单。我之所以给你一个简单的版本,

纯粹是因为不想一上来就吓到你。上面的打坐机器人(没错,虽然只有一行命令,但它确实是一个机器人),存在很明显的效率问题。

因为我每隔 5 秒才打坐 10 点气血。这显然太慢了。

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

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

第二个小板凳

  #tick dz {dazuo 100} 1;

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

确实,中间发呆的时间没有了,但是出现了大量的报错。

这是因为我们每秒钟发送了一个 dazuo 100 命令给服务器,但 dazuo 100 并不能在一秒内完成。

那么在上一个打坐期间,发送的新的 dazuo 命令,会被服务器拒绝执行,代之以错误提示「你现在正忙着呢」。

我们也可以通过 PaoTin++ 的〔HP摘要〕观察到这一点。注意末尾的「忙」字小尾巴,以及黄色的 busy 主题色。

这看起来有点像是在攻击服务器,运气不好的话,甚至可能会被服务器惩罚。

那么这种问题应当如何解决呢?显然,我们又得改。

不过在修改之前,让我们先把这个有点疯狂的蹩脚机器人给停下来:

  #untick dz;

好了,这下一切都清净了。

你会发现这个命令比上面那个短一些,因为取消定时器只需要知道定时器的名字就足够了。

而 #untick 就是 PaoTin++ 中用来取消定时器的命令。

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

接下来我会告诉你,这样反复在 PaoTin++ 界面下输入命令并加以修改确实看上去毕竟硬核。

正常的做法是,我们需要一个「文本编辑器」,来修改机器脚本。推荐的文本编辑器有 Notepad2 和 vscode,

前者简单,后者专业。本文以 Notepad2 为例,继续教学。

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

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

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

出现界面:

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

这就算安装好了,可以用了。

现在,让我们用 Notepad2 写一个机器人脚本,把我们的第一个小板凳放进去。

(嗯,第一个效率不高,但是不急不躁,我们有的是时间慢慢改,不会被错误刷屏制造紧张感)

  #nop 我的第一个打坐机器人。;
  
  #tick dz {dazuo 10} 5;

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

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

点击「保存」按钮。

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

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

  LM my

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

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

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

那么,如何停止机器呢?

  KM my

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

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

别忘了我们的目标,是做一个完善的打坐机器人。

首先,把我们的第二个小板凳复制到 Notepad2 中,分析一下它存在的问题。

  #tick dz {dazuo 100} 1;

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

所以我们可以做个判断:

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

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

  KM my; LM my

你会发现,现在就好多了。似乎已经成功了!

没错,如果你要求不高的话,这已经是一个能用的打坐机器人了。

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