diff options
Diffstat (limited to 'src/scripting/luautil.cpp')
-rw-r--r-- | src/scripting/luautil.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/scripting/luautil.cpp b/src/scripting/luautil.cpp index 67dd7395..feed7568 100644 --- a/src/scripting/luautil.cpp +++ b/src/scripting/luautil.cpp @@ -255,13 +255,22 @@ NPC *checkNPC(lua_State *s, int p) int checkSkill(lua_State *s, int p) { - if (lua_isstring(s, p)) - { - int id = skillManager->getId(luaL_checkstring(s, p)); - luaL_argcheck(s, id != 0, p, "invalid skill name"); - return id; - } - return luaL_checkint(s, 2); + if (lua_isnumber(s, p)) + return luaL_checkint(s, p); + + int id = skillManager->getId(luaL_checkstring(s, p)); + luaL_argcheck(s, id != 0, p, "invalid special name"); + return id; +} + +int checkSpecial(lua_State *s, int p) +{ + if (lua_isnumber(s, p)) + return luaL_checkint(s, p); + + int id = specialManager->getId(luaL_checkstring(s, p)); + luaL_argcheck(s, id != 0, p, "invalid special name"); + return id; } |