北大侠客行MUD论坛

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

Mudlet陆乘风破阵机器人基础版

[复制链接]
发表于 2020-12-26 12:46:04 | 显示全部楼层 |阅读模式
本帖最后由 senglit 于 2020-12-28 12:25 PM 编辑

发个自制Mudlet破阵简陋版机器人,请高人指点。感谢Vingi,叶云在调试过程中给的帮助。
说明:
1. 这个机器人只做了最简单最基本的动作,主要包括接任务和走方位。其它的高级功能自动找地图什么的都没有。
2. 为了方便大家根据自己的需求来修改,我没有导出包,而是把trigger一个个都拷贝出来,也给用其它客户端的同学做个思路参考。
3. 大家可以自己做个alias,把wirld weapon,jiali max, exert powerup,zhanbu -maze等破阵前的准备工作做了
4. “可以开始”、“陆乘风CD”两个Trigger初始状态为关闭,其它为开启
5. 所有的Pattern类型都是perl正则

以下为Trigger

Triger Name:
        接任务
Pattern:
        ^(> )?你对陆乘风道:“听闻近来有人冒名桃花岛弟子在(\S+)的(\S+)布下迷阵行恶,我愿代劳除去此獠。”$
        ^(> )?你对(\S+)道:“听闻近来有人冒名(\S+)子布下迷阵行恶,我愿代劳除去此獠。$
Script:
        job_pozhen_possible_dir = {1,1,1,1,1,1,1,1}
        job_pozhen_possible_dir_ptr = 1
        job_pozhen_dae_cname = "未确定"
        enableTrigger("可以开始")
        enableTrigger("陆乘风CD")
        if matches[3] ~= "陆乘风" then
          JobInfoConsole:echo("陆乘风: "..matches[3].." "..matches[4].."\n")
        end
备注:
        JobInfoConsole是我定义的小窗口,用来记录job信息的,大家可以根据自己的喜好改成自己的记录方法,要是记性好,那么不用记录也行。下同。

Triger Name:
        可以开始
Pattern:
        ^(> )?陆乘风对着你点了点头。
        ^(http)(.*)
Script:
        disableTrigger("可以开始")
        disableTrigger("陆乘风CD")
        if matches[2] == "http" then
          JobInfoConsole:echo("陆乘风: "..matches[1].."\n")
        end
备注:
        该Trigger初始状态为关闭

Triger Name:
        陆乘风CD
Pattern:
        ^(> )?陆乘风说道:「你请稍等片刻再来吧。」
Script:
        disableTrigger("可以开始")
        disableTrigger("陆乘风CD")
        JobInfoConsole:echo("陆乘风 -- CD\n")
备注:
        该Trigger初始状态为关闭
        这个机器人在CD期间什么也不干,大家可以根据自己情况把这里改成吃饭喝水泡妞大保健等操作

Triger Name:
        方位分析
Pattern:
        ^(树|竹|石)(\S+)(树|竹|石)$
Script:
        local str=matches[1]
        local nomeanword={"树","竹","石"}
        local dir={"nw","n","ne","w","e","sw","s","se"}
        local fmt
        for i = 1, utf8.len(str) do
          if not table.contains(nomeanword,utf8.sub(str,i,i)) then
            moveCursor(0,getLineNumber())
            selectSection(i-1, 1)
            fmt = getTextFormat()
            if not fmt["italic"] then
              job_pozhen_possible_dir[job_pozhen_possible_dir_ptr] = 0
            end
            job_pozhen_possible_dir_ptr = job_pozhen_possible_dir_ptr + 1
          end
        end
        if job_pozhen_possible_dir_ptr > 8 then
          echo("\n"..table.concat(job_pozhen_possible_dir,", ").."\n")
          for j = 1, 8 do
            if job_pozhen_possible_dir[j] == 1 then
              job_pozhen_try_dir = j
              send(dir[j])
              break
            end
          end
        end

Triger Name:
        破了一层迷宫
Pattern:
        ^(> )?这里的迷阵在你眼中如同儿戏一般。$
Script:
        job_pozhen_possible_dir = {1,1,1,1,1,1,1,1}
        job_pozhen_possible_dir_ptr = 1

Triger Name:
        走错方向
Pattern:
        ^(> )?你尝试破阵,可惜选择了错误的方向,损失了一些气血和内力。$
Script:
        job_pozhen_possible_dir[job_pozhen_try_dir] = 0
        job_pozhen_possible_dir_ptr = 1

Triger Name:
        见到大恶
Pattern:
        ^    大 恶 (\S+)\((.*)\)
Script:
        job_pozhen_dae_cname = matches[2]
        local enemy = string.lower(matches[3])
        send("kill "..enemy)

Triger Name:
        杀死大恶
Pattern:
        ^(\S+)道:想不到我最终还是失败了!哎!$
Script:
        if matches[2] == job_pozhen_dae_cname then
          send("e")
        end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-4-4 16:02:12 | 显示全部楼层
大牛
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-9-10 18:18:48 | 显示全部楼层
mark
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-9-27 11:50:42 | 显示全部楼层
fmt = getTextFormat()
if not fmt["italic"] then
全篇精华处
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2022-12-4 02:00 PM , Processed in 0.010812 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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