int script::addnpc(lua_State *L) { int n = lua_gettop(L); if (n < 6) { return 0; } unsigned short map = (unsigned short)lua_tonumber(L, 1); unsigned short x = (unsigned short)lua_tonumber(L, 2); unsigned short y = (unsigned short)lua_tonumber(L, 3); const char *name = lua_tolstring(L, 4, 0); unsigned short apr = (unsigned short)lua_tonumber(L, 5); unsigned short dir = (unsigned short)lua_tonumber(L, 6); Map *m = DataService::getService()->getMap(map); if (!m) return 0; NPC *npc = new NPC(x, y, m, name, apr, dir); m->addEntity(npc); lua_pushnumber(L, (double)npc->getOid()); return 1; }