TUTORIAL - TELEPORTE SUMMON
Introdução:
Fala pessoal, hoje vim aqui liberar um código para que futuros criadores de pokemon não usem GLOBALEVENTS ou MOVEMENTS para teleportar seus pokemons a distancia... hoje irei ensinar a você não usar mais esses scripts que aonde da maioria da vezes crash o servidores em WINDOWS em testes.
Sobre o Sistema:
Esse sistema tem a função de teleportar seu pokemon a certos sqm, tipo assim, você tem um pokemon e a distancia dele é 7 sqm, ao passar os 7 sqm ele teleporta para você, seja em qualquer lugar até de baixo da terra ou lugares super longe (Não se preocupe o problema do pokemon Morrer com source novas será removido e assim ele não vai morrer)
Creature.cp
Tutorial:
Vá em sua source procure por creature.cpp e abra com algum editor de texto e ache:
if(!summons.empty())
{
std::list<Creature*>::iterator cit;
std::list<Creature*> despawnList;
for(cit = summons.begin(); cit != summons.end(); ++cit)
{
const Position pos = (*cit)->getPosition();
if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs((
newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30))
despawnList.push_back((*cit));
}
for(cit = despawnList.begin(); cit != despawnList.end(); ++cit)
g_game.removeCreature((*cit), true);
}
Mude para:
/*if(!summons.empty())
{
std::list<Creature*>::iterator cit;
std::list<Creature*> despawnList;
for(cit = summons.begin(); cit != summons.end(); ++cit)
{
const Position pos = (*cit)->getPosition();
if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs((
newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30))
despawnList.push_back((*cit));
}
for(cit = despawnList.begin(); cit != despawnList.end(); ++cit)
g_game.removeCreature((*cit), true);
}*/
Agora salve ctrl+s e feche.
Monster.cpp
Tutorial:
Agora procure por Monster.cpp e ache:
void Monster::onThink(uint32_t interval)
abaixo de:
if(teleportToMaster && doTeleportToMaster())
teleportToMaster = false;
coloque:
if(getMaster()){
if(!Position::areInRange<6,6,0>(getPosition(), getMaster()->getPosition()))
doTeleportToMaster();
}
salve ctrl+s e revompila no modo rebuilde não esqueça de habilitar as opções em config.lua
-- Summons
maxPlayerSummons = 1
teleportAllSummons = true
teleportPlayerSummons = true
lembre se de remover qualquer scripts que teleporta seu pokemon a distancia.
Créditos:
By L3K0T