Admin System
Это система администрирования, которая имеет массу возможностей и при этом очень простая и понятная в использовании.
Особенности:
* Многоуровневая система наблюдения
* Панель для админов при клике по игроку на Tab
* Общая админ-панель с пунктами в зависимости от уровня
* Возможность указывать в одной команде сразу несколько игроков
* Сообщения о действиях администрации выводятся только администраторам и указанному игроку
* Взаимодействие с RCon (вошедшие в RCon становятся администраторами)
* Возможность отмены последней введённой команды
* Динамическая панель предполагаемых читеров
Команды:
В некоторые команды вместо параметров можно вводить ключевые слова, например, "/spec off" будет делать тоже самое, что и команда "/specoff".
Также в некоторые команды параметры можно не вводить вообще, тогда команда сработает на того, кто её ввёл.
Команды будут работать на любом cmd процессоре! (кроме rCmd).
/report [текст] - отправить вопрос/жалобу администрации
/achat [текст] - Админ чат
/ahelp - Помощь по админ командам
/showstats [id] - Показать статистику игрока
/answer [id] [текст] - Ответить игроку на report
/apanel - Админ-панель со всеми доступными командами
/admins - Список администраторов онлайн
/eject [id] - Высадить игрока из транспорта
/spec [id] - Войти в режим наблюдения за игроком
/spawnveh [id транспорта] - Телепортировать транспорт на респавн
/(un)mute [id] [время] [причина] - Выдать/снять с игрока молчанку
/asay [текст] - Сообщение в формате: "Администратор: [текст]"
/warn [id] [причина] - Выдать предупреждение игроку
/kick [id] [причина] - Выкинуть игрока с сервера
/(un)freeze [id] - Заморозить/разморозить игрока
/slap [id] [причина] - Дать пинка игроку
/goto [id] - Телепортироваться к игроку
/suspectlist - Список подозреваемых игроков
/gethere [id] - Телепортировать игрока к себе
/gotoveh [id транспорта] - Телепортироваться к транспорту
/gotopos [x] [y] [z] - Телепортироваться на координаты
/ban [id] [причина] - Заблокировать аккаунт игрока
/gmtest [id] - Проверка на бесконечное здоровье
/spawn [id] - Телепортировать игрока на респавн
/unwarn [id] - Снять предупреждение с игрока
/banip [IP] - Блокировка IP-адреса
/cc - Очистка чата
/sethealth [id] [здоровье] - Выдать здоровье игроку
/setarmour [id] [броня] - Выдать броню игроку
/setmoney [id] [деньги] - Установить деньги игроку
/givemoney [id] [деньги] - Выдать деньги игроку
/setscore [id] [очки] - Установить очки (уровень) игроку
/setskin [id] [id скина] - Установить скин игроку
/setint [id] [интерьер] - Установить игроку интерьер
/setvw [id] [номер] - Установить игроку виртуальный мир
/giveweapon [id] [оружие] [патроны] - Выдать игроку оружие
/repairveh [id транспорта] - Отремонтировать транспорт
/unbanip [IP] - Разблокировать IP-адрес
/getall - Телепортировать всех к себе
/setweather [номер] - Установить погоду
/settime [час] - Установить время суток
/destroyveh [id транспорта] - Уничтожить транспорт
/veh [id транспорта] [цвет 1] [цвет 2] - Создать транспорт
/sban [id] - Тихая блокировка
/skick [id] - Тихий кик
Функции:
Если вы имеете систему аккаунтов, то некоторые приведённые ниже функции будут вам полезны.
public OnPlayerBan(playerid, gaveid, bool:sban)
PHP код:
Аргументы:
playerid - ID игрока, которому выдали бан
gaveid - ID игрока, который выдал бан
sban - Скрытый ли бан (true) или нет (false)
Этот callback не возвращает каких-либо значений
public OnPlayerKick(playerid, gaveid, bool:skick)
PHP код:
Аргументы:
playerid - ID игрока, которого кикнули
gaveid - ID игрока, который кикнул
skick - Скрытый ли кик (true) или нет (false)
Этот callback не возвращает каких-либо значений
public OnPlayerWarn(playerid, gaveid, count)
PHP код:
Аргументы:
playerid - ID игрока, которому выдали предупреждение
gaveid - ID игрока, который выдал предупреждение
count - Количество предупреждений у 'playerid' на данный момент (включая выданный)
Этот callback не возвращает каких-либо значений
IsPlayerAdminEx(playerid, lvl = 1)
PHP код:
Аргументы:
playerid - ID игрока, у которого хотим проверить админ-права
lvl - Уровень админки, который мы проверяем у игрока (если не указывать, будет равен 1)
Возвращает 1, если игрок имеет уровень админки равный либо больший, чем указано в 'lvl'
Возвращает 0, если игрок не имеет заявленный уровень админки
GetPlayerAdminLevel(playerid)
PHP код:
Аргументы:
playerid - ID игрока, у которого хотим узнать уровень админки
Возвращает уровень админки указанного игрока
SetPlayerAdminLevel(playerid, lvl)
PHP код:
Аргументы:
playerid - ID игрока, которому нужно установить уровень админки
lvl - Уровень админки, который нужно установить игроку
Возвращает 1, если всё прошло успешно
Возвращает 0, если указанный игрок не подключен
Возвращает -1, если уровень введён некорректно
SendMessageToAdmins(lvl, color, const msg[])
PHP код:
Аргументы:
lvl - Уровень админки, с которым админам будет отправлено сообщение
color - Цвет сообщения, которое будет отправлено
msg - Строка с сообщением
Всегда возвращает 1
GetPlayerMuteTime(playerid)
PHP код:
Аргументы:
playerid - ID игрока, у которого хотим узнать оставшееся время молчанки
Возвращает оставшееся время молчанки для указанного игрока в секундах (0 - молчанки нет)
SetPlayerMuteTime(playerid, time)
PHP код:
Аргументы:
playerid - ID игрока, которому нужно установить время молчанки
time - Время молчанки (в секундах), которое нужно установить игроку
Возвращает 1, если всё прошло успешно
Возвращает 0, если указанный игрок не подключен
Возвращает -1, если время введено некорректно
AddPlayerInSuspectList(playerid)
PHP код:
Аргументы:
playerid - ID игрока, которого нужно добавить в список подозреваемых
Возвращает 1, если всё прошло успешно
Возвращает 0, если указанный игрок не подключен
RemovePlayerFromSuspectList(playerid)
PHP код:
Аргументы:
playerid - ID игрока, которого нужно исключить из списка подозреваемых
Возвращает 1, если всё прошло успешно
Возвращает 0, если указанный игрок не подключен
UpdateSuspectList()
PHP код:
Возвращает количество исключённых игроков из списка
Установка и использование:
1. Скачайте admsys.inc по ссылкам ниже и скопируйте в pawno\include
2. Откройте ваш мод и добавьте в начало: "#include <admsys>", скомпилируйте изменённый скрипт
3. По желанию добавьте в загрузку аккаунта выдачу админки при входе всем администраторам
Если вы хотите добавить сохранение админки после выхода игроков, используйте функцию SetPlayerAdminLevel (см. "Функции"), добавив её в загрузку вашего аккаунта и функцию GetPlayerAdminLevel в сохранение.
Если вы хотите добавить какие-либо действия при блокировке, кике или предупреждении, добавьте у себя в моде паблики OnPlayerBan, OnPlayerKick и OnPlayerWarn.
Если же вы хотите, чтобы панель предполагаемых читеров показывала этих самых "предполагаемых читеров", используйте функцию AddPlayerInSuspectList для добавления игрока в список подозреваемых и RemovePlayerFromSuspectList для удаления.
Скачать:
MediaFire Pastebin (v2.8, на русском)
MediaFire Pastebin (v2.8, на английском)
GitHub
История изменений:
Код:
v2.8
* Добавлена команда /gotopos для 3 уровня админки
* Добавлена команда /givemoney для 4 уровня админки
* Добавлены новые дефайны цветов для отдельных групп сообщений в чате
* Диалог в /ahelp разделён на несколько более мелких (по уровням админки)
* Мелкие улучшения и исправления
v2.7
* Добавлена команда /setscore для 4 уровня админки
v2.6
* Добавлены более короткие альтернативные имена для нескольких команд
v2.5
* Добавлена возможность вывода сообщений о подключениях игроков администраторам
* Добавлена возможность отображения килл листа администраторам (включено по умолчанию)
* Дефайн "SEND_ACTION_MSGS_TO_ALL" переименован в "ADMSYS_SEND_ACTION_MSGS_TO_ALL"
* Добавлены альтернативные имена для команд "/banip" и "/unbanip" ("/blockip" и "/unblockip")
v2.4
* Возможность выноса дефайнов с настройками перед подключением инклуда
* OnPlayerBan, OnPlayerKick и OnPlayerWarn теперь вызываются со всех фильтрскриптов
* Убрана дополнительная поддержка y_hooks
* Мелкие улучшения и исправления
v2.3
* Функции SetPlayerAdminLevel и SetPlayerMuteTime теперь возвращают -1, если второй аргумент указан неверно
v2.2
* Исправлены возвращаемые значения в некоторых автовызываемых функциях
v2.1
* Теперь при слежке за мёртвым игроком вы по-прежнему будете видеть его
* Очистка чата теперь чистит чат на 30 сообщений
* Мелкие улучшения
v2.0
* Добавлена функция SetPlayerMuteTime
* Добавлена проверка аргумента уровня админки для функции SetPlayerAdminLevel
* Исправлены возвращаемые значения в некоторых функциях
v1.9
* Теперь администратор может применять наказания к самому себе
* Добавлен запрет на некоторые действия, если игрок находится в режиме наблюдения
v1.8
* Исправлена ошибка с вызовом диалогов
v1.7
* Уменьшена вероятность совпадения id'ов диалогов с id'ами из других фс/мода
* Исправлена ошибка компиляции, возникавшая при попытке использовать это вместе с izcmd
v1.6
* Совместимость с y_hooks
* Совместимость с foreach
* Мелкие улучшения
v1.5
* Добавлена проверка в некоторые команды (нельзя дать варн/кикнуть/забанить админов уровня выше)
v1.4
* Совместимость с Nexius's Update Checker'ом
v1.3
* Небольшая оптимизация
v1.2
* Команда "/kick" вызывается со 2 уровня админки
* Добавлена возможность вывода сообщений о действиях администрации всем игрокам
v1.1
* Мелкие улучшения
v1.0
* Первый релиз
Баги:
На данный момент их не обнаружено. Если вы нашли любой баг - дайте мне знать.
Благодарности:
DeimoS, _leon_lacartez_, Kolor4dO - идеи и предложения
Magic_York, Vitalik_Gonsor, RobertoYork, TheHero, Error4o4 - тестирование
Lasho4 - Грузинский перевод
Приятного использования