简体   繁体   English

java - LuaJ:超过3个参数

[英]java - LuaJ: more than 3 arguments

Is there any possible to use more than three arguments in lua function? 在lua函数中是否有可能使用三个以上的参数?

Here is my piece of code: 这是我的一段代码:

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);
            }

Use LuaValue.invoke() instead of LuaValue.call(). 使用LuaValue.invoke()而不是LuaValue.call()。 It takes a Varargs which can contain any number of arguments, and returns a Varargs containing all the return values: 它需要一个可以包含任意数量参数的Varargs,并返回包含所有返回值的Varargs:

Varargs results = luaOnUse.invoke(
    LuaValue.varargsOf(new LuaValue[] { 
        luaValLevel, luaValPlayer, luaValItem, luaValItemX, luaValItemY }));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM