Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Gostaria de aumentar a distância que posso lurar as criaturas antes que elas desapareçam. Alguém sabe me dizer se tem como e aonde posso encontrar isso nas Sources? 

0.4 8.60

 

Link para o post
Compartilhar em outros sites
7 minutos atrás, diarmaint disse:

Gostaria de aumentar a distância que posso lurar as criaturas antes que elas desapareçam. Alguém sabe me dizer se tem como e aonde posso encontrar isso nas Sources? 

0.4 8.60

 

Após investigação, descobri que isso acontece porque o elseif no método de limpeza no arquivo spawn.cpp está "removendo" a criatura de sua zona de spawn se ela não estiver lá

Citarei aqui algum código de spawn.cpp

 

loadFromXml () tenta carregar o raio para cada spawn, se não for definido, então -1 é definido.

Codigo C++ Spawn.cpp:

int32_t radius;
pugi::xml_attribute radiusAttribute = spawnNode.attribute("radius");
if (radiusAttribute) {
    radius = pugi::cast<int32_t>(radiusAttribute.value());
} else {
    radius = -1;
}

 

Durante spawnCheck(), cleanup() método é executado e se o monstro estiver vivo
e saiu de seu spawner (o raio de spawn é importante, não antiLureRadius) e depois no mapa gerado the monster is detached from its spawn (now it is attached to spawn of id = 0) and
server thinks that there is no monster spawned yet in this spawn (so it is going to be respawn soon).

void Spawn::checkSpawn()
{
    checkSpawnEvent = 0;

    cleanup();
    // o resto do método checkSpawn[ ... ]
}

void Spawn::cleanup()
{
    // [...]
        } else if (!isInSpawnZone(monster->getPosition()) && spawnId != 0) {
            spawnedMap.insert(spawned_pair(0, monster));
            it = spawnedMap.erase(it);
        }
    // [...]
}

Uma coisa importante é que o método isInZone () pense que o monstro está em spawn
se spawnRadius for definido como -1

bool Spawn::isInSpawnZone(const Position& pos)
{
    return Spawns::isInZone(centerPos, radius, pos);
}

bool Spawns::isInZone(const Position& centerPos, int32_t radius, const Position& pos)
{
    if (radius == -1) {
        return true;
    }

    return ((pos.getX() >= centerPos.getX() - radius) && (pos.getX() <= centerPos.getX() + radius) &&
            (pos.getY() >= centerPos.getY() - radius) && (pos.getY() <= centerPos.getY() + radius));

Não tenho certeza de qual é a ideia por trás desse recurso, mas provavelmente removendo as seguintes linhas no método void Spawn :: cleanup ()

Veja spawn.cpp deve ajudar

  } else if (!isInSpawnZone(monster->getPosition()) && spawnId != 0) {
            spawnedMap.insert(spawned_pair(0, monster));
            it = spawnedMap.erase(it);
        }

Esteja ciente de que se o antilure estiver desligado por algum motivo e o monstro se afastar de seu spawn, ele não irá reaparecer até que alguém o mate

 

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • Por yuriowns
      Salve rapazes, estou precisando de um client próprio para o meu servidor 7.4, preciso que algum programador experiente e com referências faça um client do jeito que eu procuro. Responda aqui para fazermos um orçamento, obrigado!

      Não sei se estou no lugar certo, se não me desculpem e peço que movam por gentileza!
    • Por paulo thush
      Pessoal to com um grande problema, estou com um servidor TFS 1.4x 10.98, recentemente começou dar um problema, sempre quando falava "trade" com o npc dava um erros, com qual quer npc, o erro e o seguinte.
       
       
      me falaram que o problema e nas sourcer que precisava mudar umas coisas me passaram um link no github esse aqui 
      https://github.com/otland/forgottenserver/pull/3996/files
       
      porem eu vi vídeos no youtube ensinando a compilar, já vi muitos tópicos como compilar a sourcer, ai quando vou compilar da esse erro
      já tentei instalar, desinstala muitas coisas, alterar também não vai, minha sourcer e essa 
      https://github.com/otland/forgottenserver
       
       
      Alguém poderia me ajuda com esse erro, ou ate compilar 100% as sourcer. os Tópicos que eu tentei para compilar e esse daqui, se não poder o link me desculpe.
      https://forums.otserv.com.br/index.php?/forums/topic/169234-windowsvc2019-compilando-sources-tfs-14-vcpkg/
       
      alguém me da uma luz por favor kkk
    • Por Ryzek
      Uso tfs 0.4 trunk3884 bem simples.
      Queria acrescentar magic effects para 255 pois o meu só vai até 69. Encontrei um tópico que falava sobre porém parece ter sido removido, não consigo acessar!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo