Ir para conteúdo
  • Cadastre-se

Como saber a Distância de um Player / monstro em relação a você!


Posts Recomendados

Olá gostaria de saber como eu descubro que eu estou a sei la 2 sqm de um player ou 5 sqm de um monstro!!!

 

acredito eu que seja pela battle list também... Porém minha battle list não tem nenhum atributo de distância ou algo similar...

 

Vou postar os atributos

 

Na hora em que vou fazer a leitura leio como qual quer...

 

Gostaria de saber alguma forma ou qual atributo a distância do player tem para eu poder declarar e poder ler como no exemplo abaixo

 

Teria um sei la DistancePlayer = X Valor; que me devolve-se se o char lido estiver a 1,2,3,4,5,6,7... sqms do meu personagem?

 

 

  DistanceId = 0;
  DistanceType = 3;
  DistanceName = 4;
  DistanceX = 44;
  DistanceY = 40;
  DistanceZ = 36;
  DistanceIsWalking = 80;
  DistanceDirection = 84;
  DistanceOutfit = 96;
  DistanceAddon = 116;
  DistanceMountId = 120;
  DistanceIsVisible = 172;
  DistanceSkull = 152;
  DistanceColorHead = 100;
  DistanceColorBody = 104;
  DistanceColorLegs = 108;
  DistanceColorFeet = 112;
  DistanceWarIcon = 168;
  DistanceWalkSpeed = 144;
  DistanceHPBar = 140;
  DistanceParty = 152;
 

 

 

Aqui é como eu leio por exemplo o nome...

      BattleList[i].Name := ReadString(Start + (i * StepCreatures)+ DistanceName);
 

 

 

Obrigado!!!

 

:B

Link para o post
Compartilhar em outros sites

Simples assim, use a battle list para achar a suas coordenadas x, y e z e use para achar as do monstro, subtraia uma pela outra e achará a distancia.

Link para o post
Compartilhar em outros sites

Realmente Somar minha pos e diminuir do bicho da certo... (x+y)-(x+y)  o unico problema é que em diagonal no qual seria 3 blocos de distancia ele me devolve 7 por que ele não considera apenas os diagonais... ele considera como se fosse andar normal clicando... isso que fica hardcore!

Link para o post
Compartilhar em outros sites
if Creatures[x].X > Player.X then
 mx := Creatures[x].X - Player.X
else
 mx := Player.X - Creatures[x].X;

if Creatures[x].Y > Player.Y then
 my := Creatures[x].Y - Player.Y
else
 my := Player.Y-Creatures[x].Y;

md := my+mx;
Link para o post
Compartilhar em outros sites

ou pode fazer uma função que verifique se a posição x e y forem diferentes ele subtrai a sua da dele e depois checa se os resultados são iguais e pega qualquer um x ou y que daria o número de diagonais.

Exp: 1000 1000 7

      -  998  998 7

 ----------------------------

        2    2     0

 

 

No caso a resposta para a diagonal seria 2 '-'

Editado por alfbru (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo