- ShowDialogPlayerMarkerOptions(playerid)
Параметры:
PHP код:
- playerid // ID игрока, которому будет показан диалог
Пример команды с использованием данной функции:
PHP код:
cmd:radius(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF} Команда доступна только RCON-Администраторам");
ShowDialogPlayerMarkerOptions(playerid);
return 1;
}
- SetMarkerDrawDistanceForPlayer(playerid, Float: radius)
- С помощью данной функции можно обновить радиус отображения маркера для конкретного игрока (обновляет лишь значение переменной).
Для того, чтоб изменения вступили в силу для игроков, находящихся онлайн, после использования требуется вызвать UpdateMarkerRadiusForPlayer или UpdateMarkerRadiusForAll
Параметры:
PHP код:
- playerid // ID игрока (ячейки массива), которому будет обновлён радиус
- Float: radius // Новое значение радиуса в виде вещественного числа
Пример использования:
PHP код:
public OnGameModeInit()
{
SetMarkerDrawDistanceForPlayer(8, 150.0);// У игрока с ID 8, при входе на сервер, радиус отображения маркера будет равен 150 метрам.
return 1;
}
- SetMarkerDrawDistanceForAll(Float: radius, bool:mode = false)
- Аналог предыдущей функции, только действие распространяется на всех игроков. Имеет два режима работы.
Параметры:
PHP код:
- Float: radius - Новое значение для радиуса, который будет установлен всем игрокам
- bool:mode - Режим работы функции
/*Режимы работы:
false - работа функции распространяется на всех игроков (даже оффлайн) - включена по умолчанию
true - работа функции распространяется только на игроков, находящихся на сервере*/
Пример использования:
PHP код:
public OnGameModeInit()
{
SetMarkerDrawDistanceForAll(20.0);// Теперь у всех игроков, заходящих на сервер, радиус отображения маркера будет 20 метров.
return 1;
}
- UpdateMarkerRadiusForPlayer(playerid)
- Функция для обновления динамической зоны конкретного игрока
Функция нужна для того, чтоб изменения радиуса, после использования SetMarkerDrawDistanceForPlayer/SetMarkerDrawDistanceForAll вступили в силу
Параметры:
PHP код:
- playerid // Игрок, динамическая зона которого будет обновлена
Пример использования:
PHP код:
cmd:setmarkerradius(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF} Команда доступна только RCON-Администраторам");
new giveplayerid,
Float: radius;
if(!sscanf(params, "uf", giveplayerid, radius) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}/cmd:setmarkerradius [playerid] [radius]");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Данный игрок оффлайн");
if(floatcmp(radius, MIN_PLAYER_MARKER_RADIUS) == -1 || floatcmp(radius, MAX_PLAYER_MARKER_RADIUS) == 1)return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Минимальное значение радиуса - 0.1м. Максимальное - 8516.0м");
SetMarkerDrawDistanceForPlayer(giveplayerid, radius);
UpdateMarkerRadiusForPlayer(giveplayerid);
new string[18+6+1];
format(string, sizeof(string), "Новое значение - %0.1fм", radius);
SendClientMessage(playerid, -1, string);
return 1;
}
- UpdateMarkerRadiusForAll()
- Аналог предыдущей функции, распространяющийся на всех игроков, находящихся на сервере
Параметры:
Пример использования:
PHP код:
cmd:setmarkerradiusforall(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF} Команда доступна только RCON-Администраторам");
new giveplayerid,
Float: radius;
if(!isnull(params) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}/cmd:setmarkerradiusforall [radius]");
new Float: radius= floatstr(params);
if(floatcmp(radius, MIN_PLAYER_MARKER_RADIUS) == -1 || floatcmp(radius, MAX_PLAYER_MARKER_RADIUS) == 1) return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Минимальное значение радиуса - 0.1м. Максимальное - 8516.0м");
SetMarkerDrawDistanceForAll(radius, true);// Изменим радиус только тем, кто онлайн
UpdateMarkerRadiusForAll();
new string[18+6+1];
format(string, sizeof(string), "Новое значение - %0.1fм", radius);
SendClientMessage(playerid, -1, string);
return 1;
}
- TogglePlayerOnMapForPlayer(playerid, showplayerid, bool:visible)
- Функция для включения/отключения видимости на радаре одного игрока для другого (основная функция, на которой всё построено)
Параметры:
PHP код:
- playerid // игрок, которому скрываем/показываем игрока
- showplayerid // игрок, которого скрываем/показываем
- bool:visible // режим (true - показать/false - скрыть)
Пример использования:
- Данный инклюд :D
- TogglePlayerOnMap(playerid, bool:visible)
- Аналог предыдущей функции, только игрок становится невидимым для всего сервера
Параметры:
PHP код:
playerid - игрок, которого скрываем/показываем игрока
- bool:visible // режим (true - показать/false - скрыть)
Пример использования:
PHP код:
cmd:inv(playerid, params[])
{
if((GetPlayerColor(playerid) & 0xFF) == 0x00)
{
SendClientMessage(playerid, -1, "Вы снова видимы на радаре");
TogglePlayerOnMap(playerid, true);
}
else
{
SendClientMessage(playerid, -1, "Вы теперь невидимы на радаре");
TogglePlayerOnMap(playerid, false);
}
return 1;
}