lua 脚本怎么传递参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 脚本怎么传递参数相关的知识,希望对你有一定的参考价值。

脚本一:(随机得到1--5之间的一个数)
x002117_g_scriptId = 002117

math.randomseed(os.time())--os.time()
for i=1,5 do
nRet_rw = math.random(6)
end
脚本二:(为一个函数)
function x002103_OnEventRequest( sceneId, selfId, targetId, eventId )
if nRet_rw==1 then
x002103_MY_ZH=002091
elseif nRet_rw==2 then
x002103_MY_ZH=002101
elseif nRet_rw==3 then
x002103_MY_ZH=002106
elseif nRet_rw==4 then
x002103_MY_ZH=002107
elseif nRet_rw==5 then
x002103_MY_ZH=002108
elseif nRet_rw==6 then
x002103_MY_ZH=002109
end
end
请问:如何把脚本一中获取的nRet_rw的值传递给脚本二中。请以代码的形式说明。谢谢!

参考技术A 只能调用了,多加一个参数,
for i=1,5 do
nRet_rw = math.random(6)
x002103_OnEventRequest( sceneId, selfId, targetId, eventId,nRet_rw )
end

或者把nRet_rw作为全局变量。
参考技术B static int ABC(lua_State *L)

int n =lua_gettop(L);
double sum =0;
int i;
for (i=1;i<n;i++)

sum+=lua_tonumber(L,i);

lua_pushnumber(L,sum/n);
lua_pushnumber(L,sum);
return 2;
lua_register(L, "ABC", ABC);

怎样给lua脚本传递参数和脚本怎样接受这些参数

参考技术A 两种方式:
1、脚本内定义全局函数(非local的), 然后在别的脚本require这个脚本后直接通过名称和参数进行调用(类似c函数的调用)

2、脚本内定义一个message_handler的入口函数(类似main函数),这个入口函数接受一个msg和一系列的params。然后别的脚本或函数通过postmessage或者sendmessage函数。向指定脚本传递参数msg和params,进而进行处理本回答被提问者和网友采纳

以上是关于lua 脚本怎么传递参数的主要内容,如果未能解决你的问题,请参考以下文章

怎样给lua脚本传递参数和脚本怎样接受这些参数

SWIG:Lua - 将 c++ 实例作为 lua 函数参数传递

从 C++ 将字节数组传递给 lua 脚本方法

扩展 Lua:检查传递给函数的参数数量

Redis Lua 脚本 - 如何将数组作为参数传递给 nodejs 中的 Lua 脚本?

在Lua中将数组作为函数参数传递?