java - LuaJ:超过 3 个参数
java - LuaJ: more than 3 arguments
在 lua 函数中是否可以使用三个以上的参数?
这是我的一段代码:
LuaValue luaGlobals = JsePlatform.standardGlobals();
luaGlobals.get("dofile").call(LuaValue.valueOf("./data/Actions/" + a_itemScript));
LuaValue luaValLevel = CoerceJavaToLua.coerce(a_level);
LuaValue luaValPlayer = CoerceJavaToLua.coerce(a_player);
LuaValue luaValItem = CoerceJavaToLua.coerce(a_thing);
LuaValue luaValItemX = CoerceJavaToLua.coerce(a_fromX);
LuaValue luaValItemY = CoerceJavaToLua.coerce(a_fromY);
LuaValue luaOnUse = luaGlobals.get("onUse");
if(!luaOnUse.isnil())
{
luaOnUse.call(luaValLevel, luaValItemX, luaValItemY);
}
else
{
a_parent.WriteInConsole("\nx Cannot Run Script: " + a_itemScript);
}
使用 LuaValue.invoke() 而不是 LuaValue.call()。它需要一个可以包含任意数量参数的 Varargs,并且 returns 是一个包含所有 return 值的 Varargs:
Varargs results = luaOnUse.invoke(
LuaValue.varargsOf(new LuaValue[] {
luaValLevel, luaValPlayer, luaValItem, luaValItemX, luaValItemY }));
在 lua 函数中是否可以使用三个以上的参数?
这是我的一段代码:
LuaValue luaGlobals = JsePlatform.standardGlobals();
luaGlobals.get("dofile").call(LuaValue.valueOf("./data/Actions/" + a_itemScript));
LuaValue luaValLevel = CoerceJavaToLua.coerce(a_level);
LuaValue luaValPlayer = CoerceJavaToLua.coerce(a_player);
LuaValue luaValItem = CoerceJavaToLua.coerce(a_thing);
LuaValue luaValItemX = CoerceJavaToLua.coerce(a_fromX);
LuaValue luaValItemY = CoerceJavaToLua.coerce(a_fromY);
LuaValue luaOnUse = luaGlobals.get("onUse");
if(!luaOnUse.isnil())
{
luaOnUse.call(luaValLevel, luaValItemX, luaValItemY);
}
else
{
a_parent.WriteInConsole("\nx Cannot Run Script: " + a_itemScript);
}
使用 LuaValue.invoke() 而不是 LuaValue.call()。它需要一个可以包含任意数量参数的 Varargs,并且 returns 是一个包含所有 return 值的 Varargs:
Varargs results = luaOnUse.invoke(
LuaValue.varargsOf(new LuaValue[] {
luaValLevel, luaValPlayer, luaValItem, luaValItemX, luaValItemY }));