北大侠客行MUD论坛

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

[Mush]如何用Timer做机器实例:学习-领悟-修练-侠客岛机器(修复崩溃问题)

[复制链接]
发表于 2017-12-8 15:27:30 | 显示全部楼层 |阅读模式
本帖最后由 suineg 于 2018-7-3 10:45 AM 编辑



本次上岛碰到了本渣不停的刷葫芦,导致我的机器拿不了水无法继续,
就把这一块改了,现在不再需要自己写触发就能流畅的挂侠客岛了.
同时补充了学技能的触发SL,
更新了技能的识别触发.
修复了崩溃问题,我有遗留的代码没有删掉


timer型机器,
就是主体只用一个timer不停的执行,
并且在timer里面判断状态是否进入下一步,
尽量少用或着不用trigger,
这样最大的好处就是不会被触发内容出错而干扰

本机器就是这样一个机器,
主题是分享和互相学习代码,
因为是应群内网友提出,
而将自己的各代码模块整合出来,
实际上分各文件会更好理解易懂;

使用需要两点:
1.加载我修改过的状态机器;
2.改文件头部参数并加载;
然后就可以在游戏中使用了
老BT们都有自己的机器了,希望新来的用户如果用本脚本,
能好好通过我的代码中学习怎么编写机器和写脚本代码,
同时也要学会在出错的地方(不改参数就会出错)调试脚本代码,
只有真正的会写机器了,才能好好的享受玩这MUD的乐趣

=========================================
==用法说明:
==学技能:在老师点输入SL XXX级    比如:SL 350
==领悟:在领悟点输入LW XXX级      比如:LW 400
==侠客岛:在石壁任意位置输入XKD XXX级   比如:XKD 400
==其他参数需要自己修改
==有些屏刷信息,不想看的可以自己加触发屏蔽
==在Variable里面添加一个名字为ID的变量,ID为自己角色ID的变量
                    可实现不同角色加载同一脚本领悟不同的武功
                    因为我大号小号练的时间差较大,在学习上不存在这个问题,所以没写这一块,
                    可以参照领悟那一块的方式去修改
==我的角色数据获取方式也是一个亮点,看各位会不会使用了
    如果各位中已经有自己的,可以改对应模块即可
=========================================
  1. -----------------------------------------
  2. --             学技能参数              --
  3. -----------------------------------------        
  4. LearnSkill = {};

  5. LearnSkill.nSkillWanna = { "九阴神功", "玉女心法", "纤云步法", "基本剑法", "基本内功", "基本招架", "玄铁剑法"};
  6. LearnSkill.nTeacherID = "yang";
  7. --从睡到到老师的路径
  8. LearnSkill.wayTeacher = "n;e;e;n;n;n;w;n;n;n;n";
  9. --从老师到睡觉的路径,末尾带sleep
  10. LearnSkill.waySleep = "s;s;s;s;e;s;s;s;w;w;s;sleep";


  11. ------------------------------------------
  12. --             领悟与练参数             --
  13. ------------------------------------------
  14. LingwuSkills = LingwuSkills or {};
  15. if Common.id == "suineg" then
  16.         --arrLingwus与arrLians为基本与特殊武功,要一一对应,基本可重复
  17.         --只支持单一内功,自己改代码可支持多内功
  18.         --第一个必为内功
  19.         LingwuSkills.arrLingwus = {"基本内功", "基本轻功", "基本剑法", "基本招架", "基本剑法", "基本掌法"};
  20.         LingwuSkills.arrLians = {"玉女心法", "纤云步法", "玄铁剑法", "玄铁剑法", "玉女剑法", "黯然销魂掌"};
  21.         --对应特殊武功需要的jifa与装备,空手注意unwield all
  22.         LingwuSkills.arrLiansCmd = {"", "", "wield sword;jifa sword xuantie-jian", "wield sword;jifa parry xuantie-jian", "wield sword;jifa sword yunu-jianfa", "unwield all"};
  23.         --从睡觉到领悟点路径
  24.         LingwuSkills.strWayLingwu = "e;eat;drink;s";
  25.         --从领悟点到睡觉路径,结束带sleep
  26.         LingwuSkills.strWaySleep = "n;w;sleep";
  27.         --出错时的修正路径,结束带sleep,保证中间任一点中断都能回到睡觉点,不会写可空着
  28.         LingwuSkills.strFixWay = "n;w;sleep";
  29.         --特殊内功开始修练的等级
  30.         LingwuSkills.nStartXL = 380;
  31.         --特殊内功修练方式
  32.         LingwuSkills.strXL = "xiulian yunu-xinfa";
  33. elseif Common.id == "suinegy" then
  34.         LingwuSkills.arrLingwus = {"基本内功", "基本轻功", "基本剑法", "基本招架", "基本剑法", "基本拳法" };
  35.         LingwuSkills.arrLians = {"玉女心法", "纤云步法", "玄铁剑法", "玄铁剑法", "玉女剑法", "美女拳"};
  36.         LingwuSkills.arrLiansCmd = {"", "", "wield sword;jifa sword xuantie-jian", "wield sword;jifa parry xuantie-jian", "wield sword;jifa sword yunu-jianfa", "unwield all"};
  37.         LingwuSkills.strWayLingwu = "e;eat;drink;s";
  38.         LingwuSkills.strWaySleep = "n;w;sleep";
  39.         LingwuSkills.strFixWay = "n;w;sleep";
  40.         LingwuSkills.nStartXL = 380;
  41.         LingwuSkills.strXL = "xiulian yunu-xinfa";
  42. end

  43. -----------------------------------------
  44. --             侠客岛参数              --
  45. -----------------------------------------        
  46. XKD = {};

  47. --从大门刚进去后最右边,也就是最右下角为起点写应对路径
  48. --路径和技能名要一一对应
  49. --自己保持正确性;
  50. XKD.strGo = {
  51.         "w;w;w;w;w;w;n;n;n;n",
  52.         "w;w",
  53.         "n;n;n;n;n;n;w",
  54.         "w;w;w",
  55.         "n;n",
  56. }
  57. XKD.strSkill = {
  58.         "读书写字",
  59.         "医    术",
  60.         "基本硬功",
  61.         "基本掌法",
  62.         "基本拳脚",
  63. }
复制代码
因为采用0.3秒一次的暴力timer,
同时会自动修正lingwu的最大次数,
所以效率非常高,
会经常在等待睡觉

侠客岛会自动拿食物,
所以可以直接上岛即用,
不用担心食物的问题

状态插件:

机器脚本:


睡觉等待触发没有的自己加,因为这个一般人都有,我怕写在脚本里会重复

北大侠客行MUD,中国最好的MUD

本帖子中包含更多资源

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

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 15:30:14 | 显示全部楼层
感谢,收下了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 15:32:07 | 显示全部楼层
感谢分享~~下载学习一下~~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 15:32:13 | 显示全部楼层
膜拜ing
正好缺这个,另外如果规则允许,楼主能否发一个遍历机器人?剔除遍历数据的话应该可以发。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 15:49:34 | 显示全部楼层
简单的固定路线遍历只需要3个变量,大致如下。用法也不难
  1. path={"e","e","w","w","w","e"}        ----路径定义
  2. ct=1                                                        ----控制变量
  3. check=true                                                ----状态变量

  4. --第一步
  5. Send(path[ct])
  6. --第二步
  7. ct=ct+1
  8. Send (path[ct])
  9. --第三步
  10. ct=ct+1
  11. Send (path[ct])
  12. --切换状态
  13. check=false
  14. --需要判断状态时
  15. if check
  16. then Send (path[ct])
  17. else ct=1 check=true--返回初始状态
  18. end
复制代码
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 16:26:19 | 显示全部楼层
要是有动态遍历就好了,从一个房间出发,遍历指定的深度,像二叉树一样?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 20:27:54 | 显示全部楼层
动态遍历自己想办法。
吃自己消化不了的东西容易肠胃不好
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-8 20:42:22 | 显示全部楼层
点赞~~~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-9 08:31:46 | 显示全部楼层
回复 7# creat

办法我倒是也想了,从原点出发,到一个新的节点,就把这个节点的方向存到表里,再检查深度,没达到预定深度就再找新节点,同时记录一条回原点的路径。

不过总感觉好像挺笨的,而且速度也不快。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-12-10 00:22:58 | 显示全部楼层
谢谢了,真是一级棒!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 10:56 PM , Processed in 0.014181 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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