tsya 发表于 2024-4-11 11:08:06

[paotin++]新人打坐机器——记一次愉快的学习过程

      萌新玩北侠2个多月了。过程非常愉快,玩的也很上头,睡眠时间再次被压缩了……
      好多年前玩mud一直是用的zmud软件,这次回归也是第一时间下载了zmud721,但是也许是操作系统的原因,各种闪退,报错,卡住不动,让人心力疲惫。偶然在群里看大佬聊天,知道了PAOTIN++,于是下载了想试一试,看看能不能玩的了,毕竟毫无编程基础,面对一个新软件,实在是信心不足。用PAOTIN++进入游戏后,第一感觉是界面美观,第二感觉用色讲究,第三感觉就是……尼玛,一个按钮都没有?触发器呢?别名呢?变量呢?我在哪?我是谁?我特么这是在干嘛?
      一边看论坛新手炮艇驾驶员手册一边试着操作,结果毫无意外,倒在了入门的前几步上。 点上一根烟,感慨岁月的无情,低头看着被按在地上摩擦的智商,无比的沮丧。
      又过了几天,本着自己行自己上,自己不行抱大腿的想法,加了一个萌新互助交流群……一看群主,哟,这不就是炮艇开发者吗?嗯,没错,炮哥!舔了舔嘴唇,我就上……请教起了前几天的一些问题。学渣面对学霸,心里其实是有些忐忑的,但是让我意外的是炮哥回答起问题来挺方正的,还颇有些循循善诱,嗯,是的诱。于是便有了一次愉快的学习过程,同时让我又恢复了一丝自信。
      一切从制作一个PAOTI++版的打坐机器人开始。
      刚开始嘛,哪好意思上来就找别人要这要那,于是假模假式的找大佬要个打坐机器人,理由是想学习下指令格式之类的。
      “大佬,能给个基础点的机器人,让我学习下吗?比如说打坐,一次打坐10,没气了就等5秒,继续打坐,内力增加了就吃喝睡觉,起床继续打坐”
      “#tick dz {dazuo max; dazuo 10} 10 就可以了”
      嗯……就这么简单?我仔细看了下,经过了几十分……秒钟之后,我瞬间看明白了!这就是一个多久执行一次的dz这个指令的timer,而dz这个指令就是dazuo max;dazuo 10。原理就是dazuo max,在dazuo max的时候会进入忙的状态,后面的dazuo 10就无法实现,等到dazuo max让内力达到圆满了,dazuo max这个指令就用不了了,后面跟着的dazuo 10刚好能让内力增加1点。这个...好像能看懂。所谓打蛇随棍上,这有了好的开始,当然得继续下去!
      “大佬,这个10秒一次,感觉很浪费时间呀,能不能让效率再提高一点?”
      “1,打坐之前,先判断内力百分比,决定要发 dazuo max 还是 dazuo 10。2,如果已经开始打坐了,就不发任何命令”
      我脑袋里面瞬间脑补了一些zmud里如何提取气血当前值和最大值,内力当前值与最大值的办法,这个……还是那个问题,没按钮,变量怎么设呢?没办法,我提出了我的疑问。
       大佬回答“没那么麻烦,你输入#var char[内力百分比] ,如果看明白了再#var char都看一看”
       我试了一下,系统反馈“#VARIABLE {char[内力百分比]} {50} ”
       这是已经把变量预设好了?我第一反应就是以前许多麻烦的操作在PAOTIN++上都不需要,有很多早就预设好的变量可以直接使用。
       大脑里面突然回荡着师父风清扬教导我独孤九剑时的声音“咱们独孤九剑,有进无退,招招都是进攻,又何必防守?”
       人就是这么奇怪,完全解决不了的东西放弃起来毫无压力,可一旦找到了解决的办法就会迸发出锲而不舍的精神。当下,我就又把我的一些疑问一点点的提出,炮哥那边也是知无不言。然后经过十几个小……分钟后,就有了下面这段代码:
#var sleeping 0;

#action {^不一会儿,你就进入了梦乡。$E} {#var sleeping 1};

#action {^你一觉醒来,精神抖擞地活动了几下手脚。$E} {#var sleeping 0};

#alias dz.do {
    #if { $sleeping } {
      #return;
    };
   
    #if { @char.IsBusy{} } {
      #return
    };
   
    #if { $char[内力百分比] <= 50 && $char[气血百分比] < 30 } {
      sleep;
      #return;
    };
   
    #if { $char[食物] < 150 } {
      eat ganliang;
    };
   
    #if { $char[饮水] < 150 } {
      drink;
    };
   
    #if { $char[内力百分比] < 99 } {
      dazuo max;
    };
    #else {
      dazuo 10;
    };
};


#tick dz {dz.do} 1;       每秒执行一次dz这个timer,而这个timer里的dz.do类似于zmud里的别名,里面包含的就是上面所有的#if判断,比如说饮水低于150了喝水,食物低于150了进食,当前内力小于99%的时候dazuo max,达到圆满的时候dazuo 10提升内力。内力提升后,如果气血低于30%就睡觉恢复……
       看着#action {xxxxxx} {xxxxxxx}这熟悉的格式,当年那个教我zmud的师姐,也是这么告诉我写的第一段触发呀……一瞬间,炮哥,师姐,师姐,炮哥……咳咳,这个都很细心,都很善诱,嗯,是的,善诱。当然感觉上炮哥长的稍微威武了点,毕竟QQ大胡子头像的不多,一般用这头像的都写实……
       所谓,授人以鱼不如授人以渔。经过这次对PAOTIN++打坐机器人的学习,我觉得……我又行了!似乎通过自己学习,不当伸手党,也能继续愉快的玩耍下去。这段时间慢慢的再移植之前在zmud里写过的机器,难度没有想象的那么大,稍微改变一下还能更简单,毕竟有些现成的变量,不用做很复杂的方式来提取。
       写这个东西,算是自己学习的一个记录。同时也给后面来得新人举一个例子,有些东西看起来难,但那只是你没有去了解之前的思维习惯。既然都在山外面绕了99圈了,何方入山一行呢?

sihuo 发表于 2024-4-11 12:33:36

{:7_280:} 写的真不错。学习受教了。
页: [1]
查看完整版本: [paotin++]新人打坐机器——记一次愉快的学习过程