Alguma configuração do config.lua ou na source para teleportar summons para perto quando tiver longe em X sqms.
- Fórum
- OTServ
- Suporte
- Resolvidos
- [Resolvido] Mover Pokemon tfs 1.3
info
Grupo: Administrador
Registrado: 23/07/06
Posts: 121
Reputação: +99
Gênero: Masculino
Char no Tibia: Politico

Se observar nao e esse o caso, ao dar ordem em 1 sql ele vai, quanto e pra mais longe ele vai mais nao vai caminhando ele se teleporta ate o local o certo e ir andando ate o local.
Editado Maio 27 por nociam
info
Grupo: Administrador
Registrado: 23/07/06
Posts: 121
Reputação: +99
Gênero: Masculino
Char no Tibia: Politico

Ah sim, nem tinha analisado o código, só o gif, rs. Pensei que você tava arrastando ele pra testar, awoejawei.
Enfim, a função internalMoveCreature é usada para mover criaturas (quase igual a função internalTeleport) sem usar o algoritmo de Path Finding.
Em C++:
int LuaScriptInterface::luaGamePlayerMovePokemon(lua_State* L) { // Game.playerMovePokemon(pokemon, toPosition) Creature* pokemon = getCreature(L, 1); const Position& position = getPosition(L, 2); if (pokemon->getMonster()) { std::forward_list<Direction> dirList; if(pokemon->getPathTo(position, dirList, 0, 0, true, true)) pokemon->startAutoWalk(dirList); } return 1; }
Lua: (Esse código ta mais elaborado do que o C++)
local pokemonsMoveTo = {} function Player:movePokemonByList(pokemon, dirList, index) if self and pokemon and #dirList >= index then local speed = pokemon:getSpeed() * 3 pokemon:move(dirList[index], 16) index = index + 1 pokemonsMoveTo[self:getId()] = addEvent(function() self:movePokemonByList(pokemon, dirList, index) end, speed) end end function Player:movePokemon(pos) local pokemon = self:getSummons() if #pokemon == 0 then return false end if pokemonsMoveTo[self:getId()] then stopEvent(pokemonsMoveTo[self:getId()]) pokemonsMoveTo[self:getId()] = nil end local dirList = pokemon[1]:getPathTo(pos, 0, 0, true, true) self:movePokemonByList(pokemon[1], dirList, 1) return true end
Editado Maio 27 por PoRaI
Estranho nesse modo ele so vai pra baixo.
código c++

código lua

Editado Maio 27 por nociam
info
Grupo: Administrador
Registrado: 23/07/06
Posts: 121
Reputação: +99
Gênero: Masculino
Char no Tibia: Politico

atualizei ambos os scripts, testa aí e me fala.
100% obrigado os 2 modos no lua foi so ajustar o tempo.
info
Grupo: Administrador
Registrado: 26/02/07
Posts: 254
Reputação: +205
Gênero: Masculino
Char no Tibia: Frenvius




info
Grupo: Conde
Registrado: 04/02/13
Posts: 541
Reputação: +90
Gênero: Masculino
Boa tarde.
Pensei em fazer um ordem para pokemon mas estou com um bug alguém tem ideia de como resolver.
Problema: quanto do ordem em 1 sqm ele vai certinho mas quanto e mais longe ele se teleporta.
Código c++:
int LuaScriptInterface::luaGamePlayerMovePokemon(lua_State* L) { // Game.playerMovePokemon(pokemon, toPosition) Creature* pokemon = getCreature(L, 1); if (pokemon->getMonster()) { const Position& position = getPosition(L, 2); Tile* toTile = g_game.map.getTile(position); g_game.internalMoveCreature(*pokemon, *toTile, FLAG_NOLIMIT); } return 1; }código lua:
function onUse(player, item, fromPosition, target, toPosition, isHotkey) local poke = player:getSummons()[1] Game.playerMovePokemon(poke, toPosition) return true endEditado Maio 27 por nociam