Активный
- Тема Автор
- #1
Идея и назначение
Идея в том, чтобы админы могли быстро замораживать игрока, отключая управление.
Это полезно при проверках, выдаче наказаний или разборе конфликтов.
Заморозка и разморозка делаются одной и той же командой.
Суть реализации
1. Храним состояние заморозки в логическом массиве.
2. В команде переключаем значение и блокируем управление.
3. Выводим игроку сообщение о текущем состоянии.
Реализация
Дополнительные идеи
1. Логировать все случаи заморозки.
2. Добавить автоснятие заморозки через таймер.
3. Запрещать заморозку админов ниже или выше определенного уровня.
Идея в том, чтобы админы могли быстро замораживать игрока, отключая управление.
Это полезно при проверках, выдаче наказаний или разборе конфликтов.
Заморозка и разморозка делаются одной и той же командой.
Суть реализации
1. Храним состояние заморозки в логическом массиве.
2. В команде переключаем значение и блокируем управление.
3. Выводим игроку сообщение о текущем состоянии.
Реализация
Код:
new bool:PlayerFrozen[MAX_PLAYERS];
CMD:freeze(playerid, params[])
{
new target;
if(sscanf(params, "u", target))
return SendClientMessage(playerid, -1, "Используй: /freeze [id].");
if(!IsPlayerConnected(target))
return SendClientMessage(playerid, -1, "Игрок не найден.");
PlayerFrozen[target] = !PlayerFrozen[target];
TogglePlayerControllable(target, !PlayerFrozen[target]);
if(PlayerFrozen[target])
SendClientMessage(target, -1, "Ты заморожен администратором.");
else
SendClientMessage(target, -1, "Ты снова можешь двигаться.");
return 1;
}
Дополнительные идеи
1. Логировать все случаи заморозки.
2. Добавить автоснятие заморозки через таймер.
3. Запрещать заморозку админов ниже или выше определенного уровня.