CloseMaxScript6 命令
命令表达一段代码,你可以为不同的功能片段设置不同的命令
可以单独使用,也可以组合使用
命令授权
在命令执行前将会执行一次授权代码
根据授权代码返回true/false来判断是否继续执行命令
设置命令授权代码
config.UseCommandAuth = true
config.CommandAuthSource = (Cmxs6Publisher.readFile (thisDir + @"授权代码.ms"))
设置命令
方式1
外部设置,在打包时设置命令
-- cmdName --命令名字
-- useAuth --该是否使用授权
-- src --命令内容源代码
-- compress:false 是否开启压缩(文件太小可能导致压缩后尺寸更大)
config.AddCommandSource "功能1" true (Cmxs6Publisher.readFile (thisDir + @"功能1.ms")) compress:false
方式2
在源代码内部进行标记,会在编译时将内容提取并将标记移除,本质与方式1并无差别
- 以
@cmxs_cmd_auth
或@cmxs_cmd
开头 - [] 内填写命令名字
- 最后接需要调用的代码
global LA3DB02C873334E4F8
'@cmxs_cmd_auth [工具2] LA3DB02C873334E4F8()'
fn LA3DB02C873334E4F8 =
(
print "这是第二个工具"
)
命令名字不区分大小写,建议使用全小写英文数字和下划线来进行命名
调用命令
product.Call "ExecuteCommand" "工具2"
- 返回值
"<no_cmd>" 未找到命令
"<ok>" 执行成功
"<err>" 执行失败
异步调用命令
注意:异步调用不能操作max对象,否则会崩溃或者出错
请在授权代码和命令中避开对max对象的操作
如果命令当前正在执行中,则不会触发
-- cmdName --命令名字
-- delay --延迟毫秒数
product.Call "ExecuteCommandAsync" "工具2" 2000
- 返回值
调用成功,返回true
存在调用,返回false
请不要关注返回值和错误,异步调用不可控制