Проверка находиться ли игрок у капота -
Romz - 28.06.2013
Вот делаю так:
PHP код:
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
for(new v = 1; v < MAX_VEHICLES; v++) {
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 v = 1; v < MAX_VEHICLES; v++) {
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,"Вы должны быть у капота.");
}
}
Но так можно сказать не робит. Даже если я у машины буду мне будет выводиться сообщение до того момента пока не дойдет до ида машины возле которой я стою.
Подскажите как правильно в данной ситуации сделать что бы все работало.
Re: Проверка находиться ли игрок у капота -
Stepashka - 28.06.2013
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;
}
Re: Проверка находиться ли игрок у капота -
Romz - 28.06.2013
А как мне в этом коде узнать ид машины? Всмысле вот я хочу сделать так:
PHP код:
if (IsNearHood(playerid)) {
SendClientMessage(playerid,COLOR_WHITE,"Игрок у капота!");
SetVehicleHealth(Ид_машины,1000.0);
} else {
SendClientMessage(playerid,COLOR_WHITE,"Вы должны быть у капота.");
}
Re: Проверка находиться ли игрок у капота -
White_116 - 28.06.2013
return true; замени на
return v;
Re: Проверка находиться ли игрок у капота -
Stepashka - 28.06.2013
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;
}
Re: Проверка находиться ли игрок у капота -
Romz - 28.06.2013
Когда делаю это
PHP код:
return INVALID_VEHICLE_ID;
Перестает работать.
Re: Проверка находиться ли игрок у капота -
Stepashka - 29.06.2013
Самому подумать никак, 0 поставь?!