int LuaCreatureObject::getPlayerObject(lua_State* L) { Reference<PlayerObject*> obj = realObject->getPlayerObject(); if (obj != NULL) { obj->_setUpdated(true); lua_pushlightuserdata(L, obj); } else lua_pushnil(L); return 1; }
int LuaCreatureObject::getConversationSession(lua_State* L) { Reference<ConversationSession*> session = realObject->getActiveSession(SessionFacadeType::CONVERSATION).castTo<ConversationSession*>(); if (session != NULL) { session->_setUpdated(true); lua_pushlightuserdata(L, session); } else lua_pushnil(L); return 1; }
int LuaPlayerObject::getSuiBox(lua_State* L) { uint32 pageId = lua_tointeger(L, -1); Reference<SuiBox*> object = realObject->getSuiBox(pageId); if (object == nullptr) { lua_pushnil(L); } else { lua_pushlightuserdata(L, object.get()); object->_setUpdated(true); //mark updated so the GC doesnt delete it while in LUA } return 1; }