// Miscellaneous int LuaExports::dropItemReactor(lua_State *luaVm) { int32_t itemid = lua_tointeger(luaVm, 1); int16_t amount = 1; if (lua_isnumber(luaVm, 2)) { amount = lua_tointeger(luaVm, 2); } Reactor *reactor = getReactor(luaVm); Player *player = getPlayer(luaVm); Drop *drop; if (GameLogicUtilities::isEquip(itemid)) { Item f(itemid, true); drop = new Drop(reactor->getMapId(), f, reactor->getPos(), player != nullptr ? player->getId() : 0); } else { Item f(itemid, amount); drop = new Drop(reactor->getMapId(), f, reactor->getPos(), player != nullptr ? player->getId() : 0); } drop->setTime(player != nullptr ? 100 : 0); // FFA if player isn't around drop->doDrop(reactor->getPos()); return 0; }
// Mob int LuaExports::spawnMobReactor(lua_State *luaVm) { int32_t mobid = lua_tointeger(luaVm, -1); Reactor *reactor = getReactor(luaVm); lua_pushinteger(luaVm, Maps::getMap(reactor->getMapId())->spawnMob(mobid, reactor->getPos())); return 1; }