Ejemplo n.º 1
0
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;

}