北大侠客行MUD论坛

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

求教 关于MUSH和lua之间互相调用的问题

[复制链接]
发表于 2015-8-21 11:21:26 | 显示全部楼层 |阅读模式
本帖最后由 mudkiller 于 2015-8-21 07:47 AM 编辑

初学MUSH,弱弱地问一下

想实现以下代码,

if wait.regexp("^yuy.*你今天太累了,结果什么也没有学到。$")
then 睡觉
else
wait.regexp("^.*你听了谷虚道长的指导,似乎有些心得。$")
end

怎么写呢,还有怎么在MCL文件中调用呢,谢谢了

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-8-21 19:26:07 | 显示全部楼层
同新手,说错了请多包含。
新建一个文本文档,比如C:\KILLGUXU.TXT,填上:
require("wait");

function ShuiJiao()
        Send("去睡觉的命令"); end;

function ShaGuXu()
        print("你被谷虚杀死了"); end;

function courtineWTF()
        if wait.regexp("^yuy.*你今天太累了,结果什么也没有学到。$") then
               ShuiJiao();
        elseif wait.regexp("^.*你听了谷虚道长的指导,似乎有些心得。$") then
               ShaGuXu(); end; end;

wait.make(courtineWTF);

保存退出。

用写字板打开.MCL文件,下面这行有就改没有就加,加在第一个空行下面:
   script_filename="C:\KILLGUXU.TXT"
也可以在菜单里通过Game->Configure->Scripting调出一个窗口修改,或者直接按shift+ctrl+6调出。
保存退出。

用MUSHclient打开上面的.MCL文件,MUSHclient就会去调用C:\KILLGUXU.TXT啦。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-8-22 08:27:51 | 显示全部楼层
谢谢,我名字起得急了点,虽然叫killer,不过也不会去杀师傅,呵呵
不过还是谢谢你的指教,在论坛里看了好几天,这些东西也没有看到,现在明白了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-8-22 08:28:57 | 显示全部楼层
wait.make(courtineWTF) 的作用是什么呢
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-8-22 10:14:47 | 显示全部楼层
在论坛里看了好几天,这些东西也没有看到
mudkiller 发表于 2015-8-22 08:27 AM



    弱弱地推荐下我自己弄的一个视频教程。。http://pkuxkx.com/forum/thread-38551-1-1.html

  虽然冗长拖沓,但是基础的东西基本都有。。你可以先把字幕文件下下来打开浏览下再选择你需要的部分去看视频

flee
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-8-22 11:20:18 | 显示全部楼层
不好意思,单词我打错了,应该是coroutine,是lua的一个功能,wait就是用这个写的。
我的理解是coroutine是一个能暂停的函数,wait.make把普通函数变成能暂停的函数然后执行一次,执行过程中遇到wait.regexp就会暂停,wait.regexp生成一个名字是wait_trigger_xxxx的触发,再把这个暂停了的函数存在全局变量threads["wait_trigger_xxxx"]里,wait_trigger_xxxx被触发后会执行wait.trigger_resume函数,wait.trigger_resume根据当前触发名字从threads[]里取出被暂停的函数继续执行,遇到下一个wait.regexp再暂停、生成触发........循环往复直到函数结束。每个wait_trigger_xxxx都不相同,所以多个wait.regexp不会互相干扰。
膜拜楼上大神!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-8-22 12:50:04 | 显示全部楼层
to adasibi   这么复杂啊,我慢慢学吧
谢谢5楼的好心人大侠,正在下载视频,下载下来好好学习一下。
周围没有玩MUD的,只能靠你们这些好心人的指点了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-8-22 18:13:05 | 显示全部楼层
还是没有太明白,不知道怎么调用script中的函数,能不能看看下面这个短小的XML代码有什么是不对的

      enabled="y"
   group="学技能"
   match="^.*你今天太累了,结果什么也没有学到。$"
   regexp="y"
   send_to="10"
   sequence="100"
  >
  tailei()

  


北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-8-22 22:05:21 | 显示全部楼层
我不知道怎么在.mcl里用
写好以后菜单File->Plugins...,点Add...加载插件。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-8-22 22:36:45 | 显示全部楼层
你们这样直接改xml和mcl真的好吗。。
就好像餐厅提供了刀叉,却想要自己动手撕牛排。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 03:27 PM , Processed in 0.012642 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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