Отключение кнопки "Spawn" при регистрации

Уроки по созданию сервера и готовые решения
Ответить
Аватара пользователя
danilasar
Сообщения: 199
Зарегистрирован: 17 июл 2018, 09:55
Откуда: Саратов, Россия
Контактная информация:

Отключение кнопки "Spawn" при регистрации

Сообщение danilasar » 21 окт 2018, 17:19

Доброго времени суток. Действительно, очень большая проблема. Многие любят похулиганить и во время регистрации (на OnPlayerRequestClass) нажимают на стрелочки выбора скина и кнопку "Spawn". Сейчас принято кикать или банить за подобные деяния. Однако, есть способ, помогающий и сохранить игрока, и не дающий лишний раз сходить с ума. В этом мануале я скину оба варианта решения проблемы.
О том, как реализовать реакцию на наши кнопочки
public OnPlayerRequestClass(playerid, classid) отвечает за нажатие на стрелочки (выбор одежды).
public OnPlayerRequestSpawn(playerid) - за кнопку "Spawn".
Соответственно, если выполнение кода вернёт значение false (0), действие будет проигнорировано, а при true (1), соответственно, произойдёт обратное - выполнится.
Вариант 1. Отключение от сервера или блокировка стандартными средствами Ciminal Russia MP
Таким образом, мы можем решить все проблемы двумя строками кода:

Код: Выделить всё

public OnPlayerRequestClass(playerid, classid) { // При нажатии на "<<" или ">>"
	if(IsPlayerNPC(playerid)) return true
	else {
		Ban(playerid); // Блокируем игрока. Также можете использовать функцию Kick для отключения от сервера.
		return false;
	}
}
public OnPlayerRequestSpawn(playerid) { // Клик на "Spawn"
	if(IsPlayerNPC(playerid)) return true
	else {
		Ban(playerid);
		return false;
	}
}
Вариант 2. Просто игнорируем нажатие
Всё аналогично, просто не используем функцию кика/бана:

Код: Выделить всё

public OnPlayerRequestClass(playerid, classid) { // При нажатии на "<<" или ">>"
	if(IsPlayerNPC(playerid))
		return true
	else
		return false;
}
public OnPlayerRequestSpawn(playerid) { // Клик на "Spawn"
	if(IsPlayerNPC(playerid))
		return true
	else
		return false;
}
Автор: JoKeR2020
Переделал: danilasar (я)

Ответить