北大侠客行MUD论坛

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

门忠任务脚本(残缺)

[复制链接]
发表于 2017-2-6 18:10:43 | 显示全部楼层 |阅读模式
本帖最后由 foolenough 于 2017-2-6 06:13 PM 编辑

有需要的自己改下,配合城际通使用。半成品,门忠够了,没有继续完善了。
menzhong.lua文件内容如下:
mz={}

function mz.gt(node, gogogo)
  DoAfterSpecial(1,"mz_to_node", 10)    ---自己加个mz_to_node这个别名,从接任务地点到最近的城际通节点的路径
  DoAfterSpecial(3,"gt "..node, 10)
  DoAfterSpecial(25, gogogo, 10)
end

function mz.back(toNode, after)
  DoAfterSpecial(1, toNode, 10)
  DoAfterSpecial(3, "gt xx",10)  -- xx改成你自己的门派城际通节点名
  DoAfterSpecial(20, "node_to_mz;ask a zi about quest;"..after, 10)  -- node_to_mz是门派城际通节点到门忠任务npc路径,另外改下这句里面的a zi
end

function mz.find(t)
  if (t=="道德经「第十三章」" or t=="旧竹片" or t=="长鞭" or t=="玉竹杖" or t=="军服" or t=="毒蛇胆") then
    mz.gt("yz", "s;e;list "..t);
  elseif (t=="短剑") then
    mz.gt("yz", "s;s;e;buy duanjian;")
  elseif (t=="托钵僧") then
    mz.gt("yz", "s;s;fight tuobo seng;")
  elseif (t=="药铺伙计") then
    mz.gt("yz", "#2e;n;hit huo ji")
  elseif (t=="家丁") then
    mz.gt("yz", "w;w;n;n;fight jia ding")
  elseif (t=="王铁匠") then
    mz.gt("yz", "e;e;s;fight want tiejiang")
  elseif (t=="好逑汤" or t=="熏田鸡") then
    mz.gt("taohua", "n;n;nu;nu;nu;n;n;n;n;e;e;e;e;get all;")
  elseif (t=="火折") then
      mz.gt("tianshan", "nw;w;buy fire;")
  elseif (t=="牢房钥匙") then
      mz.gt("yz", "w;w;n;n;n;killall cui;")
  elseif (t=="狗肉") then
      mz.gt("yz", "w;w;n;killall dog;")
  elseif (t=="衙役服" or t=="衙役") then
    mz.gt("yz", "w;n;killall yayi;")
  elseif (t=="雷震挡") then
    mz.gt("ll", "give ding 10 silver;n;n;fight zhao;")
  elseif (t=="华山弟子") then
    mz.gt("hs", "e;e;n;n;n;fight dizi")
  elseif (t=="成都城门官") then
    mz.gt("cd", "n;n;fight guan")
  elseif (t=="岳阳弓手") then
    mz.gt("yy", "n;n;")
  elseif (t=="手信" or t=="信纸") then
    mz.gt("hs", "e;n;")
  elseif (t=="明州捕快") then
    mz.gt("mz", "fight bukuai")
  elseif (t=="烧饭僧") then
    mz.gt("sl", "s;s;sd;s;w;n;n;fight seng;")
  elseif (t=="烧红的铁锤") then
    mz.gt("xc", "e;s;fight feng")
  elseif (t=="说文解字" or t=="马屁宝典") then
    mz.gt("nc", "w;w;w;wu;wu;nu;enter;buy shu;out;sd;ed;ed;ed;3 e")
  elseif (t=="七寸子蛇" or t=="眼镜蛇" or t=="竹青蛇") then
    mz.gt("gyz", "#4w;#3(nu);w;jiali 0")
  elseif (t=="阿牧" or t=="庄仆") then
    mz.gt("gyz", "enter;")
  elseif (t=="黄金") then
    mz.gt("gyz", "#6w;give gold to shang ren")
  elseif (t=="知客道长") then
    mz.gt("wd", "sd;hit zhike daozhang")
  elseif (t=="净慈" or t=="巡山弟子" or t=="大金刚拳法") then
    DoAfterSpecial(1, "ask a zi about cancelquest;ask a zi about quest;", 10)
  else
    Note(t.." 找不到")
  end
end

function mz.done(t)
  if t=="道德经「第十三章」" or t=="旧竹片" or t=="玉竹杖" or t=="军服" then
    mz.back("w;n;", "")
  elseif t=="裘万家" then
    mz.back("u;out", "")
  elseif t=="竹叶青" then
    DoAfterSpecial(1,"s;w;n;n;n;enter shudong;give zhuyeqing to qiu",10)
  elseif t=="好逑汤" or t=="熏田鸡" then
    mz.back("#2w", "give ji to a zi;give tang to a zi;")
  elseif t=="冯铁匠" then
    DoAfterSpecial(1, "get all from corpse;n;w", 10)
    DoAfterSpecial(3, "gt sl",10)
    DOAfterSpecial(8, "n;e;e;n;e;open door;e;give hot hammer to seng",10)
  elseif t=="打铁僧" then
    mz.back("w;s;w;w;s", "")
  elseif t=="马屁宝典" then
    DoAfterSpecial(1, "out;sd;#2(ed);#3e", 10)
    DoAfterSpecial(3, "gt xc",10)
    DoAfterSpecial(12, "#6e;n;give mapi baodian to teller;",10)
  elseif t=="李铁嘴" then
    mz.back("s;#6w", "")
  elseif t=="说文解字" then
    DoAfterSpecial(1,"out;sd;#2(ed);#3e;",10)
    DoAfterSpecial(3,"gt ts",10)
    DoAfterSpecial(12,"#6(sd);(wd);#3(sd);#2s;give book to shu sheng",10)
  elseif t=="书生" then
    mz.back("#2n;#3(nu);(eu);#6(nu)", "")
  elseif t=="赵一伤" then
    Execute("get all from corpse")
    mz.back("#3s", "give hammer to a zi")
  elseif t=="知客道长" then
    mz.back("nu", "")
  elseif t=="托钵僧" then
    mz.back("#2n", "")
  elseif t=="药铺伙计" then
    mz.back("s;w;w","")
  elseif t=="家丁" then
    mz.back("s;s;e;e", "")
  elseif t=="王铁匠" then
    mz.back("n;w;w","")
  elseif t=="衙役" then
    mz.back("get all from corpse;s;e;", "")
  elseif t=="牧羊人" then
    mz.back("#8s","")
  end
end

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-2-12 16:15:17 | 显示全部楼层
牛人、请问一下,把任务提示做到小窗口里该怎么做,发一个成品,注释一下,让我等码盲学习学习
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-2-14 11:00:51 | 显示全部楼层
回复 1# foolenough


    alias的“”gogogo“”的内容是什么
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2017-2-14 14:46:03 | 显示全部楼层
触发器,用于获取 物品,然后调用mz.find(物品)就可以了。实际的话其实最好把目标任务也加上,门忠够了就没有继续完善了。
   enabled="y"
   group="xxmz"
   match="^[> ]*\S+对你点头说道:本派现在需要搜集(\S+),"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+对你说道:(\S+)欺压我派中人"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+对你说道:(\S+)在武林中耀武扬威"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+对你说道:去把将(\S+)杀掉!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+对你说道:听说\S+需要(\S+),"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+对你一点头说道:这里尚缺些(\S+)$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+回头对你说道:我现在正需要你去将(\S+)除掉!"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+气愤地说道:(\S+)最近太驳我派面子"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*\S+细想了一下对你说道:本派需要(\S+)$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*对你点点头说道:听说\S+需要(\S+),你给送去吧。$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*对你说道:(\S+)正在比武,你去给我踢了"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*对你说道:你马上去给\S+送(\S+)去。$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*对你说道:你马上去给\S+送(\S+)去。$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
  
      enabled="y"
   group="xxmz"
   match="^[> ]*对你说道:正好正好,\S+现在急需要(\S+),你赶紧送过去。$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  mz.find("%1")
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2017-2-14 14:55:30 | 显示全部楼层
本帖最后由 foolenough 于 2017-2-14 02:59 PM 编辑

回复 3# linjpen

mz.find 取门忠物品
mz.done 取到物品之后执行

gogogo内容是到了目标节点之后的动作.比如到门忠目标是 岳阳弓手,那么mz.gt("yy", "n;n;"), 到了岳阳之后,gogogo内容是n;n;, 执行n;n;之后就是到岳阳北门。
你可以改成n;n;kill gongshou之类的(因为弓手比较厉害,这里就没有自动kill)

如果要做成全自动的话,就是
1. 接任务,要送烧红的铁锤给打铁僧
mz.find("烧红的铁锤")  
-> mz.gt("xc","e;s;kill feng")
->function mz.gt(node, gogogo)
  DoAfterSpecial(1,"mz_to_node", 10)    ---自己加个mz_to_node这个别名,从接任务地点到最近的城际通节点的路径
  DoAfterSpecial(3,"gt "..node, 10)         ---这里就是gt xc, 到华山小村
  DoAfterSpecial(25, gogogo, 10)          这里gogogo的内容就是e;s;kill feng; 到了小村之后e;s;kill feng
end
2. 增加一个冯铁匠死的触发,然后调用mz.done("冯铁匠")
elseif t=="冯铁匠" then
    DoAfterSpecial(1, "get all from corpse;n;w", 10)
    DoAfterSpecial(3, "gt sl",10)
    DOAfterSpecial(8, "n;e;e;n;e;open door;e;give hot hammer to seng",10)
3. 铁锤送个僧人之后有个僧人感谢的话做个触发回师门任务
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2017-2-14 14:57:04 | 显示全部楼层
回复 2# linjpen

小窗口我还不会,
我一般都是InfoClear();Info("门忠:"..sth);这样可以显示在mush下面的状态栏上
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 06:26 AM , Processed in 0.010250 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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