Алгоритм выведения ближайшего АЗС к игроку.
#1

Делаю /gps, но столкнулся с такой проблемой, я не знаю как создать алгоритм таким способом что-бы обноружился ближайший Авто-Заправочная Станция к игроку.
Вот что получилось:

PHP Code:
for(new xsizeof(PS); x++) {
    new 
Floatdistance GetPlayerDistanceFromPoint(playeridPS[x][ps_pos_x],PS[x][ps_pos_y],PS[x][ps_pos_z]);
    
printf("%0.2f"distance);
    if(
distance <= 0.0) return printf("asdsa");
}
PlayerPlaySound(playerid,1083,0.0,0.0,0.0);
SendClientMessage(playerid0xB22222FF"[Справка]: {FFFFFF}Ближайшая заправка была отмечена на радаре."); 
Расстояние же определяется правильно:
PHP Code:
4437.32
4744.81
3194.19
3490.76
4062.92
5012.70
5744.01
5149.38
4248.02
5172.52
3899.89
3283.25
551.38
2036.96
2710.78
1943.12 
Reply
#2

Через цикл прогонять все заправки и запоминать ближайшею, потом ее выводить .
Reply
#3

PHP Code:
new min_id;
new 
Float:min_distance 99999.0;

for (new 
xsizeof(PS); x++) { 
    new 
Floatdistance GetPlayerDistanceFromPoint(playeridPS[x][ps_pos_x],PS[x][ps_pos_y],PS[x][ps_pos_z]); 
    if (
distance min_distance) {
        
min_distance distance;
        
min_id x;
    }
}

SetPlayerCheckpoint(playeridPS[min_id][ps_pos_x], PS[min_id][ps_pos_y], PS[min_id][ps_pos_z], 5.0); 
Reply
#4

Спасибо,всё работает
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)