Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Para TFS 0.4/0.3.6 e OTX2

 

Em luascript.h depois de:

static int32_t luaGetCreatureName(lua_State* L);

Adicionar:

static int32_t luaGetCreaturePathTo(lua_State* L);

Em luascript.cpp depois de:

//getCreatureName(cid)
lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName);

Adicionar:

//getCreaturePathTo(cid, pos, maxSearchDist)
lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo);

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;
}

E sejam felizes!

 

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.
 

  • Respostas 19
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • vc ta ligado que eu vou querer fazer um server onde dá 22h e todos os npcs vão pra casa dormir, né? AUHIUHIEUA traçar a rota deles pra casa com essa função lindosa

  • isso já ecxiste!, doCreatureSetHideHealth(cid, true)

  • @fireelement, a do mock retorna o autowalk, a do elwyn retorna as direções que vc tem que seguir pra chegar na pos. A diferença é bem sutil, com as direções vc faz oque vc quiser (pode inclusive man

Postado

Você é o melhor ser humano desse saite, REP+ e aprovadíssimo. Selo Lobo de qualidade hahahaha

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

Nossa, muito bom, uma função interessante, posso sugerir uma outra função que seria muito boa e creio que fácil de se fazer?
uma função que esconda o HP e Nome da criatura/player, oque acha?

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo