Проверка находиться ли игрок у капота
#1

Вот делаю так:
PHP код:
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
for(new 
1MAX_VEHICLESv++) {
    
GetPosBonnetVehicle(v,Pos[0],Pos[1],Pos[2]);
    if(
IsPlayerInRangeOfPoint(playerid,2.0,Pos[0],Pos[1],Pos[2])) {
        
SendClientMessage(playerid,COLOR_WHITE,"Игрок у капота!");
        break;
    }

Хочу сделать что бы если игрок НЕ у капота писало сообщение что вы должны быть рядом с капотом. Пытался сделать что то похожое на это:
PHP код:
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
for(new 
1MAX_VEHICLESv++) {
    
GetPosBonnetVehicle(v,Pos[0],Pos[1],Pos[2]);
    if(
IsPlayerInRangeOfPoint(playerid,2.0,Pos[0],Pos[1],Pos[2])) {
        
SendClientMessage(playerid,COLOR_WHITE,"Игрок у капота!");
        break;
    }
    else {
        
SendClientMessage(playerid,COLOR_WHITE,"Вы должны быть у капота.");
    }

Но так можно сказать не робит. Даже если я у машины буду мне будет выводиться сообщение до того момента пока не дойдет до ида машины возле которой я стою.

Подскажите как правильно в данной ситуации сделать что бы все работало.
Reply
#2

pawn Код:
...
if (IsNearHood(playerid)) {
    SendClientMessage(playerid,COLOR_WHITE,"Игрок у капота!");
} else {
    SendClientMessage(playerid,COLOR_WHITE,"Вы должны быть у капота.");
}
...


bool:IsNearHood(playerid) {
    for (new v = 1, Float:Pos[3]; v < MAX_VEHICLES; v++) {
        GetPosBonnetVehicle(v, Pos[0], Pos[1], Pos[2]);
        if (IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2])) {
            return true;
        }
    }
    return false;
}
Reply
#3

А как мне в этом коде узнать ид машины? Всмысле вот я хочу сделать так:
PHP код:
if (IsNearHood(playerid)) {
    
SendClientMessage(playerid,COLOR_WHITE,"Игрок у капота!");
SetVehicleHealth(Ид_машины,1000.0);
} else {
    
SendClientMessage(playerid,COLOR_WHITE,"Вы должны быть у капота.");

Reply
#4

return true; замени на return v;
Reply
#5

Quote:
Originally Posted by White_116
Посмотреть сообщение
return true; замени на return v;
pawn Код:
IsNearHood(playerid) {
    for (new v = 1, Float:Pos[3]; v < MAX_VEHICLES; v++) {
        GetPosBonnetVehicle(v, Pos[0], Pos[1], Pos[2]);
        if (IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2])) {
            return v;
        }
    }
    return INVALID_VEHICLE_ID;
}
Reply
#6

Когда делаю это
PHP код:
return INVALID_VEHICLE_ID
Перестает работать.
Reply
#7

Самому подумать никак, 0 поставь?!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)