Активный
- Тема Автор
- #1
Идея и назначение
Игрок может блокировать и разблокировать свой личный транспорт.
Заблокированная машина не позволяет садиться другим игрокам.
Суть реализации
1. Храним ID личного транспорта и флаг блокировки.
2. Делаем команды /lockcar и /unlockcar.
3. В OnPlayerStateChange проверяем, может ли игрок сесть в транспорт.
Реализация
Дополнительные идеи
1. Делать звуковой сигнал при блокировке и разблокировке.
2. Разрешать пассажирам садиться даже при блокировке.
3. Добавить визуальный индикатор блокировки.
Игрок может блокировать и разблокировать свой личный транспорт.
Заблокированная машина не позволяет садиться другим игрокам.
Суть реализации
1. Храним ID личного транспорта и флаг блокировки.
2. Делаем команды /lockcar и /unlockcar.
3. В OnPlayerStateChange проверяем, может ли игрок сесть в транспорт.
Реализация
Код:
new PlayerCar[MAX_PLAYERS];
new bool:CarLocked[MAX_PLAYERS];
CMD:lockcar(playerid)
{
if(PlayerCar[playerid] == 0)
return SendClientMessage(playerid, -1, "У тебя нет личного транспорта.");
CarLocked[playerid] = true;
SendClientMessage(playerid, -1, "Ты заблокировал свой транспорт.");
return 1;
}
CMD:unlockcar(playerid)
{
if(PlayerCar[playerid] == 0)
return SendClientMessage(playerid, -1, "У тебя нет личного транспорта.");
CarLocked[playerid] = false;
SendClientMessage(playerid, -1, "Ты разблокировал свой транспорт.");
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new veh = GetPlayerVehicleID(playerid);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerCar[i] == veh && CarLocked[i] && i != playerid)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, "Машина заблокирована владельцем.");
break;
}
}
}
return 1;
}
Дополнительные идеи
1. Делать звуковой сигнал при блокировке и разблокировке.
2. Разрешать пассажирам садиться даже при блокировке.
3. Добавить визуальный индикатор блокировки.