PDA

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



Killer
22.12.2017, 01:07
Как реализовать проверку. Чтобы водитель вводить команду /test, а там проверялись места. Если все 3 места остальные заняты,
то выводить текст " test "

DeimoS
22.12.2017, 12:50
GetPlayerVehicleSeat поможет.


// Массив, в котором указано максимальное количество пассажирских мест для автомобиля
// Брал первый попавшийся из интернета, так что не отвечаю за достоверность данных. Я лишь показываю принцип
new MaxSeats[212] =
{
4,2,2,2,4,4,1,2,2,4,2,2,2,4,2,2,4,2,4,2,4,4,2,2,2,1,4,4,4,2,1,9,1,2,2,1,2,9,4,2,
4,1,2,2,2,4,1,2,1,6,1,2,1,1,1,2,2,2,4,4,2,2,2,2,2,2,4,4,2,2,4,2,1,1,2,2,1,2,2,4,
2,1,4,3,1,1,1,4,2,2,4,2,4,1,2,2,2,4,4,2,2,2,2,2,2,2,2,4,2,1,1,2,1,1,2,2,4,2,2,1,
1,2,2,2,2,2,2,2,2,4,1,1,1,2,2,2,2,0,0,1,4,2,2,2,2,2,4,4,2,2,4,4,2,1,2,2,2,2,2,2,
4,4,2,2,1,2,4,4,1,0,0,1,1,2,1,2,2,2,2,4,4,2,4,1,1,4,2,2,2,2,6,1,2,2,2,1,4,4,4,2,
2,2,2,2,4,2,1,1,1,4,1,1
};

stock SomeFunc(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
return 0;

new vehicleid = GetPlayerVehicleID(playerid),
max_vehicle_seats = MaxSeats[GetVehicleModel(vehicleid)-400],
seats_occupied = 1;

for(new i, seat; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) != vehicleid)// Пропускаем итерацию, если игрок не подключён или не в авто
continue;

seat = GetPlayerVehicleSeat(i);
if(seat == 0 || seat == 128)// Пропускаем итерацию, если игрок водитель (его мы учли) или функция вернула 128 (в документации об этом написано)
continue;

if((++seats_occupied) == max_vehicle_seats)// Возвращаем 1, если все места заняты
return 1;
}
return 0;
}


Как-то так. Не проверял работоспособность