[Ajuda] GetPlayerDistanceFromPoint
#1

Gostaria vocкs me retirasem uma dъvida, Como eu posso comparar qual o ponto mais perto, usando a funзao,
GetPlayerDistanceFromPoint, Digamos assim, Estou fazendo um sistema de hospital, so que eu quero compara qual o
mais prуximo do Player, para quando ele morrer, ir para o hospital mais prуximo no caso ele captura a cordenada do player,
joga pra uma Float e checar as 6 variaveis que comportaria os valores do Float dos hospitais e obter o mas prуximo do Player como ficaria o elseif?

Exemplo:

PHP код:
new
      
FloatdistanciaGetPlayerDistanceFromPoint(playerid237.9115.61010.2), 
Wike da funзao
https://sampwiki.blast.hk/wiki/GetPlayerDistanceFromPoint
Reply
#2

Use o metodo da bolha!

http://pt.wikipedia.org/wiki/Bubble_sort
http://cafofodoprogramador.blogspot....nguagem-c.html
http://codigofonte.uol.com.br/codigo...bubble-sort%5D
http://www.vivaolinux.com.br/script/...ort-em-vetores
http://mathbits.com/MathBits/CompSci/Arrays/Bubble.htm
Reply
#3

e um loop muito complexo poderia dar um exemplo de como usalo no meu caso?
Reply
#4

olha a minha mensagem!

para quem estiver interessado vou deixar aqui o exemplo tbm

pawn Код:
//no topo do GM
#define TOTAL_DE_HOSPITAIS 3




//no comando


new Float:poshospital[TOTAL_DE_HOSPITAIS][3] = {
    {0.0,0.0,0.0},//coloca as coordenadas do hospital, voce poderб ausa-las para setar a posicao (veja mais abaixo)
    {0.0,0.0,0.0},
    {0.0,0.0,0.0}
};
new Float:menordistancia=0xFFFFFF;//16777215 em decimal
new Float:distactual;
new hospital;

for(new nh=0;nh!=TOTAL_DE_HOSPITAIS;nh++) {
    distactual = GetPlayerDistanceFromPoint(playerid,poshospital[nh][0],poshospital[nh][1],poshospital[nh][2]);
    if (distactual<menordistancia) {
        menordistancia=distactual;
        hospital=nh;
    }
}

//o hospital mais perto й o "hospital"
//agora voce pode usar por exemplo SetPlayerPos(playerid,poshospital[hospital][0],poshospital[hospital][1],poshospital[hospital][2]);
Reply
#5

eu entendi so o comeзo como ele calculo a posiзao se ta tudo zerada? tem como explicar melhor mas desde ja
obrigado pela ajuda.
Reply
#6

deu esses warings

warning 213: tag mismatch
warning 213: tag mismatch
warning 213: tag mismatch
(82 : warning 213: tag mismatch
(82 : warning 213: tag mismatch
(82 : warning 213: tag mismatch
(829) : warning 213: tag mismatch
(829) : warning 213: tag mismatch
(829) : warning 213: tag mismatch
(830) : warning 213: tag mismatch
(830) : warning 213: tag mismatch
(830) : warning 213: tag mismatch
(831) : warning 213: tag mismatch
(831) : warning 213: tag mismatch
(831) : warning 213: tag mismatch
(832) : warning 213: tag mismatch
(832) : warning 213: tag mismatch
(832) : warning 213: tag mismatch


nessas linhas
{1172.5897,-1323.2572,15.4028},//coloca as coordenadas do hospital, voce poderб ausa-las para setar a posicao (veja mais abaixo)
{2029.7606,-1402.9940,17.2528},
{-2664.5527,637.2999,14.4531},
{-316.1042,1053.5287,20.3103},
{1607.4232,1817.7029,10.8203},
{-2202.5264,-2308.6250,31.2086}
};
new Float:menordistancia=0xFFFFFF;//16777215 em decimal
new Float:distactual;
new hospital;

for(new nh=0;nh!=TOTAL_DE_HOSPITAIS;nh++) {
distactual = GetPlayerDistanceFromPoint(playerid,poshospital[nh][0],poshospital[nh][1],poshospital[nh][2]);
if (distactual<menordistancia) {
menordistancia=distactual;
hospital=nh;
Reply
#7

ajuda aew galera '-' preciso muito disso.
Reply
#8

troque
pawn Код:
new poshospital[TOTAL_DE_HOSPITAIS][3] = {
por
pawn Код:
new Float:poshospital[TOTAL_DE_HOSPITAIS][3] = {
Reply
#9

Quote:
Originally Posted by DartakousLien
Посмотреть сообщение
troque
pawn Код:
new poshospital[TOTAL_DE_HOSPITAIS][3] = {
por
pawn Код:
new Float:poshospital[TOTAL_DE_HOSPITAIS][3] = {
Testei aqui e funcionou
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)