PDA

Просмотр полной версии : [Вопрос] Поиск свободного места.



Log
18.03.2016, 15:23
Такой вопрос, как сделать проверку на свободное место?
К примеру, есть 3 машины, если они все свободны - игроку ставится чекпоинт около одной из них, сделущему игроку - выдается уже 1 из 2 машин.
Ну а если первый игрок поставил машину на место, то следущему игроку опять же выдается 1 из 2.
В общем - как сделать так, чтобы если 1 из десяти занята, то она уже не выдается?

VVWVV
18.03.2016, 16:14
Такой вопрос, как сделать проверку на свободное место?
К примеру, есть 3 машины, если они все свободны - игроку ставится чекпоинт около одной из них, сделущему игроку - выдается уже 1 из 2 машин.
Ну а если первый игрок поставил машину на место, то следущему игроку опять же выдается 1 из 2.
В общем - как сделать так, чтобы если 1 из десяти занята, то она уже не выдается?


static
TDW_g_sVehicleList[3];

public
OnGameModeInit()
{
for (new i = -1; ++i != sizeof TDW_g_sVehicleList; )
TDW_g_sVehicleList[i] = CreateVehicle(411, 12.0 + float((i * 10)),
12.0, 12.0, 0.0, 0, 0, 0);
}

stock
IsVehicleOccupied(vehicleid)
{
for (new i = GetPlayerPoolSize(); --i != -1;)
if (GetPlayerVehicleID(i) == vehicleid)
return 1;
return 0;
}

CMD:getunsedcar(playerid, params[])
{
static vehicleid;
for (new i = -1; ++i != sizeof TDW_g_sVehicleList; )
if (IsVehicleOccupied((vehicleid = TDW_g_sVehicleList[i])))
continue;
else
{
static Float:x, Float:y, Float:z, Float:angle;
GetVehiclePos(vehicleid, x, y, z);
GetVehicleZAngle(vehicleid, angle);
// далее, находите точку, где должен стоять чекпоинт.
}
return 0;
}