Друзья, на пополнения счёта добавлены новые платежные методы FreeKassa, ЮМани, Perfect Money, Cryptomus (все виды криптовалют)
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
ChatPlus - Расширенная система управление чатом, разширение функционала чата, управление привелегиями. Данный плагин является универсальным и будет работать на ВСЕХ играх, которые поддерживаются модификацией Oxide! Возможности
Система личных сообщений.
Русская конфигурация
Антимат (будет ещё совершенствоваться и улучшаться).
Блокировка чата (система мута игроков, а так же мут общего чата, выдача по SteamID, список нецензурной лексики и слова исключения). Возможность заблокировать чат игроку, находящемуся в данный момент вне сети.
Цензура в чате
Система префиксов, цветных имён и сообщений. С возможностью для игроков выбирать из доступных им префиксов\цветов.
Расширенная система привилегий с очень гибкими настройками.
/muteall - заблокировать/разблокировать общий чат (необходима привилегия chatplus.muteall)
/mutelist - выводит список игроков, у которых на данный момент активна блокировка чата (необходима привилегия chatplus.mute или chatplus.unmute)
global.say (say) - команда, доступная из консоли сервера\игрока-администратора. Формат вывода можно настроить в файле конфигурации. --Только игра RUST
Команды mute, unmute, muteall, mutelist можно использовать в консоли (только без / в начале). Так же есть возможность блокировки по SteamID (Пример: mute STEAMID 1d REASON)
Не удаляйте привилегию chatplus.default, без него плагин работать не будет.
После окончания времени привилегии у игрока (Пример: если выдано на неделю\месяц) настройки его чата сбрасываются к default
Для полной совместимости с Clans Reborn вам нужно поправить функцию OnPluginLoaded в плагине Clans:
Код:
void OnPluginLoaded(Plugin plugin)
{
if (plugin.Title != "Better Chat" || plugin.Title != "ChatPlus") return;
if (enableClanTagging) Interface.CallHook("API_RegisterThirdPartyTitle", this, new Func<IPlayer, string>(getFormattedClanTag));
}
Команды для магазина(Так же работают через консоли сервера\администратора и через чат!) chatplus.prefix {steamid/ник} привилегия - установить префикс игроку. chatplus.name {steamid/ник} привилегия - установить цвет имени игроку. chatplus.message {steamid\ник} привилегия - установить цвет сообщений игроку. Данные команды лишь УСТАНАВЛИВАЮТ префикс\цвета игроку. Для использования необходимо выдать игроку привилегии. Без привилегий команды работать НЕ будут. Для использования из консоли игрока требуется привилегия на присваивание префикса и цветов (chatplus.assign)
Для того, чтобы автоматически установить префикс\цвет имени\сообщений в чате игроку при покупке добавьте дополнительную команду в магазин.
Примеры:
Выдача цвета имени (обе команды в один товар)
Код:
oxide.grant user %STEAMID% chatplus.hotpink
chatplus.name %STEAMID% chatplus.hotpink
Выдача префикса (обе команды в один товар)
Код:
oxide.grant user %STEAMID% chatplus.vip
chatplus.prefix %STEAMID% chatplus.vip
Выдача цвета сообщений в чате (обе команды в один товар)
Код:
oxide.grant user %STEAMID% chatplus.blue
chatplus.message %STEAMID% chatplus.blue
Пример выдачи привилегий
oxide.grant group "moderator" "chatplus.moderatormode" - группе
oxide.grant user "76561190000000000" "chatplus.moderatormode" - игроку
С версии 1.1.0 добавлена возможность использовать команды chatplus.prefix,chatplus.name,chatplus.message,mute,unmute на игроках, не находящихся на сервере.
С версии 1.1.0 изменён принцип работы команды mute(/mute).
Теперь время и причина опциональны: можно заблокировать человека навсегда, но с причиной.
Примеры: mute vlad - блокировать игроку чат на всегда. Причина - Not specified mute vlad 1d - блокировать чат игроку на 1 день. Причина - Not specified mute vlad Просто потому что я так решил. - блокировать чат игроку навсегда. Причина - "Просто потому что я так решил." mute vlad 1d Это весомая причина - блокировать чат игроку на 1 день. Причина - "Это весомая причина"
Формат времени: #d дни #h часы #m минуты #s секунды.Пример: 2 дня 1 час 30 минут 15 секунд: 2d1h30m15s
IsPlayerMuted(object ID) - проверяет заблокирован ли у игрока чат.
Код:
[PluginReference]
private Plugin ChatPlus;
private bool IsPlayerMuted(BasePlayer player)
{
var result = ChatPlus?.CallHook("IsPlayerMuted", player.userID);
if (result is bool)
return (bool) result;
return false;
}
string CurrentPrefix(BasePlayer player)
Возвращает привилегию активного на данный момент префикса
string GetPrefixesInfo()
Возвращает список объектов PrefixInfo, описывающий все доступные на данный момент префиксы
[PluginReference]
private Plugin ChatPlus;
public class PrefixesInfo
{
public string Privelage;
public string Argument;
public string[] Colors;
public string Text;
}
private List<PrefixesInfo> IsPlayerMuted(BasePlayer player)
{
var result = ChatPlus?.CallHook("GetPrefixesInfo", player.userID) as string;
if (string.IsNullOrEmpty(result))
return null;
return JsonConvert.DeserializeObject<List<PrefixesInfo>>(result);
}
Хуки:
OnChatPlusMessage(Dictionary<string,object> dict) - вызывается при отправке сообщения в чат игроком. Словарь содержит 4 переменные:
["Player"] - Iplayer - игрок, написавший в чат
["Message"] - string - его сообщение в чат
["CensoredMessage"] - string - версия его сообщения с цензурой
["Prefixes"] - string - все префиксы игрока, разделённые одним пробелом.
Если возвращён словарь - будет предпринята попытка заменить значения полученными от стороннего плагина. Если возвращено что-либо кроме словаря, но не null - сообщение не будет выведено в чат. При возврате null или не возврате ничего - функция типа void - изменения внесены не будут.
Код:
object OnChatPlusMessage(Dictionary<string, object> dict)
{
IPlayer player = (IPlayer) dict["Player"];
if (player == null)
{
PrintWarning("Unknown error - ChatPlus send the wrong data");
return null;
//Такой ситуации не должно быть вообще, но берёжного - бог бережёт.
}
string message = dict["Message"] as string;
string censored = dict["CensoredMessage"] as string;
string prefixes = dict["Prefixes"] as string;
PrintWarning($"Игрок {player.Name} отправил в чат текст \"{message}\". Цензура заменила его на \"{censored}\".");
//А теперь поменяем немного текст, если игрок - администратор.
if (player.IsAdmin)
dict["Message"] = "Я администратор, УРА!";
return dict;
}
Привет! Мы недавно переехали на новый стиль, поэтому возможны различные ошибки. Если вы заметили такую - пожалуйста, оставьте сообщение в этом разделе. Спасибо!
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.