MA 插件与Lua脚本入门(三)

编者按:

上一节介绍了使用合并运算符(..)把多个变量连成一串,并更进一步的介绍了使用函数 string.format 来将变量插入到文本中。那这一节我们将沿着这个方向继续深入讲解。

通常我们在编写代码的时候会使用 local 定义 gma.cmd 函数来简化编写。

local cmd = gma.cmd

得益于 string.format ,我们可以创建一个包含字符串格式化的 cmd 函数:

local cmd = function(cmd命令)
    gma.cmd(cmd命令)
end

添加字符串格式化后:

local cmd = function(语句, 参数1, 参数2)
    local cmdstring = string.format(语句, 参数1, 参数2)
    gma.cmd(cmd命令)
end

但如果函数这样写就只有两个参数,实际上我们会需要尽可能多的参数,这时候我们可以用三个点()来定义不确定数量参数:

local cmd = function(语句, ... )
    local cmdstring = string.format(语句, ... )
    gma.cmd(cmd命令)
end

去除中间变量简化后:

local cmd = function( ... )
    gma.cmd(string.format(... ))
end

这样我们就有了可以写入 CMD 命令的方法,而不仅仅是使用内置函数 gma.cmd

回到实际应用中,假设我们已经把上面的预定义语句添加到我们的插件开头,然后:

page = 3
exec = 2
cue = 1
name = 'intro'

cmd('Store Executor %i.%i Cue %i "%s" /o', page, exec, cue, name)

-> Store Executor 3.1 Cue 1 "intro" /o

cmd('ClearAll')

-> ClearAll

其中 % 为参数变量,需要注意的是上例中 cue 号为整数,但如果 cue = 1.5 则报错,因为我们使用了 %i (整数型)来定义参数。

下面介绍几个常用的定义参数格式

%i — 整数型

%g — 十进制数,更倾向于格式化为整型

%s — 字符串型

%q — 字符串包含”双引号”

所以上面例子可以改为:

Cue = 1.5

cmd('Store Executor %i.%i Cue %g %q /o', page, exec, cue, name)

-> Store Executor 3.1 Cue 1.5 "intro" /o

同样道理,我们无须为了变量有小数点而烦恼,只需要给它定义 %g 即可!


欢迎您关注网站的微信公共平台,我会尽快将教程及资讯信息发布到微信公众平台上:


欢迎您加入我们的QQ群,一起讨论解答技术问题:


请注意,所有留言将通过审核后才会显示,请不必重复留言。

关于 张俊辉

就职于东莞广播电视台灯光组,专注舞美灯光设计图像数字化,为同行推广好用、实用的舞美灯光知识。
Bookmark the permalink.

发表回复

您的电子邮箱地址不会被公开。