Ir para conteúdo
  • 0
Havokz

Programação Distância da Visão de Criaturas

Pergunta

Havokz    0
Havokz

Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo:

https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/

https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/

Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.).

Ex: The Forgotten Server 1.3, Versão: 10.98. 

Base:

Uso, The Forgotten Server 1.3 (Mark Samman/gustavo contreiras), Versão: 10.98.  Repositório com as sources -- > SRC

Qual é a sua pergunta?

--

Olá pessoal!

Estou tentando fazer com que os Monstros consigam ver os Jogadores à uma distância compatível com o número de tiles que acrescentei ao meu servidor/client. Que seria 15 quadros de distância em X e 9 Quadros em Y

Mas atualmente os Monstros só começam a te seguir apartir de 9 quadros.  Que é muito pouco, o jogador consegue ver ele parado até se aproximar o suficiente pra ele te ver.

 

5e6c278f514ed_9sqms.thumb.png.666a63164f8f7ad9d67512ec09f9a5d5.png

 

Queria  que ele começasse a seguir apartir de 15 quadros de distância do Jogador.

 

5e6c27cfacfba_15sqms.thumb.png.2658c9cd99d2715df454936edb10d68a.png

 

 

O meu  map.h está assim:

class Map
{
	public:
		static constexpr int32_t maxViewportX = 15; //min value: maxClientViewportX + 1
		static constexpr int32_t maxViewportY = 9; //min value: maxClientViewportY + 1
		static constexpr int32_t maxClientViewportX = 14;
		static constexpr int32_t maxClientViewportY = 8;

 

E meu creature.cpp assim:

bool Creature::canSee(const Position& pos) const
{
	return canSee(getPosition(), pos, Map::maxViewportX, Map::maxViewportY);
}

 

Iso era para fazer com queo range de atividade monstros serem respectivamente x = 15 e y = da posição dele, não? Mas os monstros continuam se limitando à distâncias padrão

 

já experimentei  substituir a linha 

return canSee(getPosition(), pos, Map::maxViewportX, Map::maxViewportY);

por:

return canSee(getPosition(), pos, 15, 9);

 

Porém, sem sucesso. O que eu posso estar esquecendo?

 

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Spoiler


 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:

Spoiler

 

 

SQM PROBLEMA.png

Editado por Havokz

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0
TEKADON    7
TEKADON

Client

void Map::resetAwareRange()
{
	AwareRange range;
	range.left = 11; //Change this to = maxClientViewportX
	range.top = 8; //Change this to = maxClientViewportY
	range.bottom = range.top + 1;
	range.right = range.left + 1;
	setAwareRange(range);
}

Server

class Map
{
    public:
        static constexpr int64_t maxClientViewportX = 11; // SÓ EDITAR AQUI
        static constexpr int64_t maxClientViewportY = 8; // SÓ EDITAR AQUI

        static constexpr int64_t maxViewportX = maxClientViewportX  + 3;
        static constexpr int64_t maxViewportY = maxClientViewportY + 3;

Só gostaria de lembrar uma coisa... Quanto maior quadros vooc enviar para o cliente, maior vai ser o trafego de rede, e consequentemente menos pessoas vão poder ficar conectadas no servidor, isso é um efeito colateral do aumento de quadros na tela. O The Forgotten Server (Otclient) e seus derivados não foram projetados para isto, então é por conta disso o efeito colateral. O Cliente juntamente com o servidor trabalha com um limite finito de pacotes por segundo, mesmo vooc aumentando este limite as coisas podem piorar, jogadores deslogando sozinhos, só um jogador conectado na rede e etc. Também bastante cuidado com as opcodes enviadas servidor para cliente pois elas seram afetadas consequentemente pelos problemas de conexão.

Fique atento ao console do Otclient pois nele vooc vai saber o que está acontecendo, se vooc notar criaturas sumindo ou não se movendo ou piscando, já sabe onde é o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×