09/03/2023 12:09
Para encontrar o caixa eletrônico mais próximo, você precisaria ter uma lista de localizações de caixas eletrônicos em sua região. Em seguida, você pode usar a função GetPlayerPos para obter a localização atual do jogador e, em seguida, calcular a distância entre a localização atual do jogador e as localizações dos caixas eletrônicos em sua lista.
Você pode usar a função GetPlayerPos para obter a posição atual do jogador:
Em seguida, você pode usar a fórmula de distância euclidiana para calcular a distância entre a posição atual do jogador e a posição de cada caixa eletrônico em sua lista. Você pode armazenar as posições dos caixas eletrônicos em uma matriz de estruturas:
Em seguida, você pode usar um loop for para calcular a distância entre a posição atual do jogador e cada caixa eletrônico em sua lista:
Ao final do loop, a variável nearestATM conterá o índice do caixa eletrônico mais próximo. Você pode usar essa informação para exibir a localização do caixa eletrônico mais próximo para o jogador.
Você pode usar a função GetPlayerPos para obter a posição atual do jogador:
Código:
GetPlayerPos(playerid, &Float:x, &Float:y, &Float:z);
Em seguida, você pode usar a fórmula de distância euclidiana para calcular a distância entre a posição atual do jogador e a posição de cada caixa eletrônico em sua lista. Você pode armazenar as posições dos caixas eletrônicos em uma matriz de estruturas:
Código:
new struct ATMLocation
{
Float:x, y, z;
};
new ATMLocation:ATMLocations[MAX_ATMS];
Em seguida, você pode usar um loop for para calcular a distância entre a posição atual do jogador e cada caixa eletrônico em sua lista:
Código:
new Float:distance, Float:minDistance = 99999.0;
new nearestATM = -1;
for (new i = 0; i < MAX_ATMS; i++)
{
distance = sqrt(
pow(playerPos[0] - ATMLocations[i].x, 2.0) +
pow(playerPos[1] - ATMLocations[i].y, 2.0) +
pow(playerPos[2] - ATMLocations[i].z, 2.0)
);
if (distance < minDistance)
{
minDistance = distance;
nearestATM = i;
}
}
Ao final do loop, a variável nearestATM conterá o índice do caixa eletrônico mais próximo. Você pode usar essa informação para exibir a localização do caixa eletrônico mais próximo para o jogador.