best função do nosso amado guga ![]()
- Fórum
- OTServ
- Recursos
- Linguagens de Programação
- getCreaturePathTo(cid, position, maxSearchDist)
getCreaturePathTo(cid, position, maxSearchDist)
Por RigBy, 01 de jun. de 2015 em Linguagens de Programação
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

Pode fazer um video ou postar screenshots dela funcionando inGame?
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

Tá, depois eu faço isso, eu tô no celular agora mas ainda hoje tento posta uma gif aqui com o funcionamento dele.
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

uma gif feita pelo wolf, com a função :

info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

uma gif feita pelo wolf, com a função :
"Você já atingiu seu limite de reputações positivas para hoje."
Vlw ai, já coloquei la no tópico.




info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano
getCreaturePathTo(cid, position, maxSearchDist)
Retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições.
Ex: Da para fazer um npc anda até certo lugar e depois volta.
Suporte para: TFS 0.4/0.3.6 e OTX2
Em luascript.h depois de:
Adicionar:
Em luascript.cpp depois de:
Adicionar:
Depois de:
int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid) ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushstring(L, creature->getName().c_str()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; }Adicionar:
int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist) ScriptEnviroment* env = getEnv(); int32_t maxSearchDist = popNumber(L); PositionEx position; popPosition(L, position); Creature* creature = env->getCreatureByUID(popNumber(L)); if (!creature) { lua_pushnil(L); return 1; } std::list<Direction> dirList; lua_newtable(L); if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) { std::list<Direction>::const_iterator it = dirList.begin(); for (int32_t index = 1; it != dirList.end(); ++it, ++index) { lua_pushnumber(L, index); lua_pushnumber(L, (*it)); pushTable(L); } } else { lua_pushboolean(L, false); } return 1; }Credito: Elwyn
Editado Junho 2 por RigBy