windyhawk 发表于 2015-1-21 08:17:17

mushclient关于scripting和变量的问题

当需要用script来处理分析从一个trigger中抓到的变量,大家是否会将此变量也创建并保存在mushclient的变量表里,还是只是将其存在script文件中的变量表中。

举个例子:

触发:【气血】(\d+)/(\d+)
所抓变量:%1, %2
发送到:script的函数Qixue(%1,%2)
script中会对这两个变量值进行分析,然后储存:
1. 在script中设置全局变量qixue=%1和qixue_max=%2
2. 存储到mushclient的变量表中
    world.SetVariable ("qixue", qixue)
    world.SetVariable ("qixue_max", qixue_max)
那么,在上面这个例子中,2是否有必要,不进行2的设置,这两个变量就只存在于script中,而在mushclient的变量表中无法看到,那么在mushclient中想要直接调用这两个变量就必须要通过script来调用。那么实际操作中,大家一般都怎么做比较方便?是1和2都做?还是只做1,无论什么时候调用这两个变量都走script?不知道我说的明白没有。

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

xxxcc 发表于 2015-1-21 09:34:20

如果所有功能都通过script来完成,那么只要存储在script变量里面即可。
反正我至今还不知道怎么去创建和调用mushclient的变量,一样能够完成所有功能。

如果习惯Zmud那种方式,比如使用GUI来创建部分trigger,alias之类的,可能mushclient的变量也会有一定的用武之地吧,就功能Zmud一样嘛。

windyhawk 发表于 2015-1-21 09:36:06

花错师叔说的有道理,所以也就是说,不嫌麻烦的话,就也储存或者更新在mush变量表中的变量

windyhawk 发表于 2015-1-21 11:56:44

回复 3# xxxcc


    谢谢!

littleknife 发表于 2015-1-21 14:55:12

如果一定要区别的话,我认为可以这么来理解这两类变量:一个是内存(Lua的变量,script脚本),一个是硬盘(SetVariable,MUSH自己的变量)。

windyhawk 发表于 2015-1-21 15:04:47

回复 6# littleknife


    哇,小刀前辈出现了!我这两天正研究你的模块文件呢。好像你很少用硬盘变量,你绝大多数用的是内存变量是吧?

littleknife 发表于 2015-1-21 15:08:24

所谓的内存变量是在MUSH中你要是重置脚本就会清零的意思,无所谓一定要你用哪类变量。我之所以较多的用lua的变量是因为SetVariable这几个字母打字太费劲,不如A=123,这么简单。哈哈yct15.

windyhawk 发表于 2015-1-21 15:14:23

回复 9# littleknife


    哈哈哈,的确是,我用的是javascript,更麻烦,要先写world.

xxxcc 发表于 2015-1-22 12:22:42

回复littleknife


    哈哈哈,的确是,我用的是javascript,更麻烦,要先写world.
windyhawk 发表于 2015-1-21 03:14 PM http://pkuxkx.net/forum/images/common/back.gif

js不支持协程?那样很难模块化啊。

windyhawk 发表于 2015-1-22 13:25:00

js不支持协程?那样很难模块化啊。
xxxcc 发表于 2015-1-22 04:22 AM http://pkuxkx.net/forum/images/common/back.gif


    我想用python的,但是mushclient死活跟我的python对接不上,调用出错。不太想学lua
页: [1]
查看完整版本: mushclient关于scripting和变量的问题