北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: szybd

渡深百M留念,共享藏经阁任务机器人制作全过程

[复制链接]
 楼主| 发表于 2014-1-8 12:08:19 | 显示全部楼层
群伤玩了,来个物理的。
cjgpfmphy= {basicskill = "cuff",specialskill = "luohan-quan",perform = "luohan",weapon = "none"}--物理功夫
---------------------------------------------------------------------
function cjgpfmp(nameid)
        if cjgpfmphy.basicskill == "" or cjgpfmphy.basicskill == "none" or cjgpfmphy.basicskill == nil then
                return
        else
                Execute("unwield all")
                if cjgpfmphy.weapon == "none" then
                        Execute("bei none")
                        Execute("enable "..cjgpfmphy.basicskill.." "..cjgpfmphy.specialskill)
                        Execute("bei "..cjgpfmphy.basicskill)
                else
                        Execute("wbei none")
                        Execute("enable "..cjgpfmphy.basicskill.." "..cjgpfmphy.specialskill)
                        Execute("wield ".. cjgpfmphy.weapon)
                end
                if nameid ~= nil and nameid ~= "" then
                        Execute("perform "..cjgpfmphy.basicskill.."."..cjgpfmphy.perform.." "..nameid)
                else
                        Execute("perform "..cjgpfmphy.basicskill.."."..cjgpfmphy.perform)
                end
                if cjgpfmphy.weapon ~= "none" then
                        Execute("unwield all")
                end
        end
end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 12:10:01 | 显示全部楼层
如果你不想用pfm,平砍也行:
cjgpingkan={basicskill ="",specialskill =""}--平砍功夫

function cjgpk()
        if cjgpingkan.basicskill == "" or cjgpingkan.basicskill == "none" or cjgpingkan.basicskill == nil then
                return
        else
                Execute("unwield all")
                if cjgpingkan.weapon == "none" then
                        Execute("bei none")
                        Execute("enable "..cjgpfmche.basicskill.." "..cjgpfmche.specialskill)
                        Execute("bei "..cjgpfmche.basicskill)
                else
                        Execute("wbei none")
                        Execute("enable "..cjgpfmche.basicskill.." "..cjgpfmche.specialskill)
                        Execute("wield ".. cjgpfmche.weapon)
                end
        end
end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 12:12:18 | 显示全部楼层
功夫按上门讲解的次序依次起作用。如果你只想平砍起作用,那就把前面的功夫都设为"".

如果你让几门功夫同时期作用,你要注意了,一旦一门功夫生效,自身busy了,后面的招就发不出来了,所以需根据自身功夫特点,确定自己采用什么功夫策略。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 12:14:52 | 显示全部楼层
功夫描述完了,那么打到什么时候,算个尽头?
当然把所有该消灭的对象消灭干净,就算完了。

怎么知道所有该消灭的对象都已经消灭了呢?look一下不就可以了吗?

look当然可以,但是效率不高,没打一次看一下,信息传递太多。我们通过其他触发来搞定。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 12:18:38 | 显示全部楼层
name = "cjg12"
   match="^[>\\s]*这里没有 husi zhanglao。.*"
   cmd = "cjgnozhanglao()"
   addmytriggerzz(name,match,cmd)

   name = "cjg13"
   match="^[>\\s]*这里没有 husi sengren.*|^[>\\s]*跟随自己?.*|^[>\\s]*你要自杀吗?.*|^[>\\s]*用 suicide 指令会比较快.*"
   cmd = "cjgnosengbing()"
   addmytriggerzz(name,match,cmd)

   name = "cjg14"
   match="^[>\\s]*你决定开始跟随\\S+一起行动。.*"
   cmd = "cjghaveenemy()"
   addmytriggerzz(name,match,cmd)

根据这几个触发器,就可以控制战斗的过程了。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 12:19:56 | 显示全部楼层
如果战斗中内力不够怎么办?咳药呗,当然通过触发来实现。

如果中毒怎么办?嗑药呗,还是通过触发来实现。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-1-8 13:38:21 | 显示全部楼层
必须要膜拜!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 14:39:15 | 显示全部楼层
补充内力的处理有两处:
第一次处,战斗过程中,提醒没有内力了。则马上吃一颗回气药。触发如下:
   name = "cjg15"
   match="^[>\\s]*你的内力不.*|^[>\\s]*你内力不.*"
   cmd = "Execute('eat huiqi yao')"
   addmytriggerzz(name,match,cmd)
第二处,在当地敌人全部消灭干净时:执行hpbrief,检查内力。同时恢复气血。
   name = "cjg16"
   match="^[>\\s]*\\#(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+).*"
   cmd = "cjghuifu(%1,%2,%3,%4,%5,%6)"
   addmytriggerzzhp(name,match,cmd)                       

   name = "cjg17"
   match="^[>\\s]*\\#(\\d+[\\.\\d]*)M*,(\\d+),(\\d+),(\\d+),(\\d+),(\\d+).*"
   cmd = "cjggetforce(%1,%2,%3,%4,%5,%6)"
   addmytriggerzzhp(name,match,cmd)
吃解毒丸的触发如下:
   name = "cjg18"
   match="^[>\\s]*你身体一阵颤抖,痛苦地哼了一声。混身经脉疼痛欲裂,扭结成怪异的肉筋.*"
   cmd = "Execute('eat jiedu wan')"
   addmytriggerzz(name,match,cmd)
这里有个问题:吃下解读丸后,还会发作一次。
如果只是这么处理的话,可能会多吃一颗。
现在,我还不清楚,没毒的时候让不让吃,如果没毒的时候,不让吃,就这么处理就可以了。
如果没毒的时候让吃,这样处理是有问题的,浪费啊。
可以起一个定时器,延时判断。如果随后出现"你身上的毒性终于全部消失了。",就不吃,否则就吃。
暂时,先简单处理,等确认了具体情况再说。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 14:41:41 | 显示全部楼层
接下来就是战后的恢复了:触发器已经提供了。剩下的就是内力恢复和气血恢复两件事了。
function cjghuifu(fullmaxqixue,currentmaxqixue,realqixue,fullmaxjingshen,currentmaxjingshen,realjingshen)
        local time1 = 1+math.floor((fullmaxqixue-currentmaxqixue)*100/fullmaxqixue/5)
        Note("恢复生命力的触发")

        Execute("halt")
        if currentmaxqixue < fullmaxqixue then
                for i = 1,time1 do
                        Execute("eat jinchuang yao")
                end
        end
       
        if realqixue < fullmaxqixue*0.8 then
                Execute("yun recover")
        end

        if cjgstate == "map1walk" then
                cjgwalk()
        elseif cjgstate == "map2bianli" then
                cjgbianlicont()
        else
                Note(cjgstate)
        end
end

mycurrentneili = 0
mymaxneili = 0
function cjggetforce(jingyan,qianneng,maxneili,currentneili,maxjingli,currentjingli)
        Note("得到内力信息")
        mycurrentneili = currentneili
        mymaxneili = maxneili
        if currentneili/maxneili <1/9 then
                Execute("eat huiqi yao;eat huiqi yao;eat huiqi yao")
        elseif currentneili/maxneili <4/9 then
                Execute("eat huiqi yao;eat huiqi yao")
        elseif currentneili/maxneili <7/9 then
                Execute("eat huiqi yao")
        end
end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-1-8 14:46:14 | 显示全部楼层
现在我还不知道,在藏经阁里面,普通金疮药能不能用。如果普通金疮药不能用,进去时,要注意不要带,否则会干扰。
精在爬藏经阁时,损伤不厉害,就不管它的恢复了。
恢复完,检查自己的状态,如果是在第一地图中行走"map1walk",那么就执行cjgwalk()
cjgwalk()函数我们前面已经分析过了。
如果当前状态是在第二地图中遍历"map2bianli",那么就执行继续遍历cjgbianlicont()
怎样继续遍历,等到第二个地图的处理时再展开。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-21 08:33 PM , Processed in 0.008624 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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