barderaa 发表于 2022-12-23 14:12:48

求助:问个关于mush的全局变量的问题

我在学做新手任务机器人
在lua文件开头,定义一个变量quest_status(在这个位置定义的变量,应该是全局变量吧?),存储当前任务的状态
在执行任务时,会调用不同的函数。
现在遇到问题了,在函数内部,如何读写这个任务状态变量的值呢?

我用SetVariable 与GetVariable函数,报错。
但我不确定是不是这个变量的变量范围的问题

我这个变量,是全局变量吗?
如何在函数内部读写呢?

jarlyyn 发表于 2022-12-23 14:16:47

SetVariable函数不要理解为lua的变量。

这是整个mush的,脱离于lua存在的。

对于lua脚本,这两个函数请理解为 读写系统设置。

luoeric 发表于 2022-12-23 14:17:40

if quest_status == 1 then
elseif quest_status == 2 then




诸如此类,用if 判断你的变量值是啥,
SetVariable 与GetVariable函数是用来调用mush自带的变量表内容的,跟脚本里的全局变量不是一套活,当然可以起到一样的效果,mush这些个变量在客户端里可以直接看到。

xurufeng 发表于 2022-12-23 14:22:15

local quest_status = 1,--这个前面加了local的就是定义quest_status为局部变量,只能在其归属的函数里生效。
quest_status = 1,--这个就是定义全局变量。

-------------一般不是特殊情况,没有必要用到mush客户端里的SetVariable 与GetVariable。
定义之后,可以简单运用
if quest_status == 1 then
    Execute("hi")
    quest_status = 2

elseif quest_status == 2 then
    Execute("kill XXXX")
    quest_status = 1

else
   print("============")

end

creat 发表于 2022-12-23 14:22:16

变量quest_status就是变量quest_status,不是其他的
需要用的时候直接呼叫quest_status就可以了
类似的例子:
SetVariable是变量
GetVariable是变量
Send是变量
print是变量
Execute是变量
需要使用的时候直接呼叫对方的姓名即可{:01:}

barderaa 发表于 2022-12-23 14:30:32

jarlyyn 发表于 2022-12-23 02:16 PM
SetVariable函数不要理解为lua的变量。

这是整个mush的,脱离于lua存在的。


那么,在lua文件内定义的变量,在mush的trigger里调用,也可以直接调用吗?

我这样理解对不对:如果不是为了调试与人工查阅的方便,只是想在lua文件与trigger里面使用的变量,那么GetVariable与SetVariable就不是必须使用的了?

creat 发表于 2022-12-23 14:33:48

理解得差不多吧
GetVariable与SetVariable是接口函数,不是必须使用的
优势在于可以写盘,人工查阅其实并一定不方便。

jarlyyn 发表于 2022-12-23 14:36:37

barderaa 发表于 2022-12-23 02:30 PM
那么,在lua文件内定义的变量,在mush的trigger里调用,也可以直接调用吗?

我这样理解对不对:如果不是 ...

不可以,触发是系统级的。

如果要触发mush变量。

下策是动态更新触发。

上策是正则获取后在脚本里判断。

barderaa 发表于 2022-12-23 14:39:42

本帖最后由 barderaa 于 2022-12-23 02:47 PM 编辑

creat 发表于 2022-12-23 02:33 PM
理解得差不多吧
GetVariable与SetVariable是接口函数,不是必须使用的
优势在于可以写盘,人工查阅其实并一 ...
那么,我在lua文件里不用GetVariable,用SetVariable把需要触发调用的变量储存;在触发里面用GetVariable与SetVariable(实现触发与lua的全局变量数值传递) 。
这样的方案是正确的吗?

creat 发表于 2022-12-23 14:47:58

并没有所谓的实现触发与lua之间的数值传递
这两个函数一直不用也不会有什么影响
建议自己多去尝试,理解一下内部环境和外部环境的边界在何处
页: [1] 2
查看完整版本: 求助:问个关于mush的全局变量的问题