• Рекомендуем зарегистрироваться для просмотра контента и скачивания файлов!

Персонализация WebAdmin'a

denfil777

Патриарх
Команда форума
Регистрация
12 Янв 2024
Сообщения
73
Реакции
10
Баллы
8
Меня давно задрало, что непонятно какой из админов пишет в игровой чат из вебадмина

За основу возьмём мутатор "WebAdmin и кириллица"
Получим такое

u1c8iXA.png

Настройки:

Добавим в настройки массив пар Логин-ИмяАдмина
То есть, если админ Flame, а логин kfvij0q7d8998cvq8w, то в настройках стоит писать пару

AdminNamesList=(Login="kfvij0q7d8998cvq8w",Prefix="Flame")

Ну а про другие настройки мутатора и нюансы использования - читайте тему про вебадмина и кириллицу


В самом мутаторе нам надо добавить префикс с ником админа перед сообщением
В код мутатора пропишем статическую функцию GetAdminName
Она будет получать на вход логин админа, находить в настройках желаемое имя админа и возвращать в формате [ИмяАдмина]

Код:
class WebAdminPersonalizationMut extends Mutator config(WebAdminPersonalizationMut);
...
struct AdminNamesStruct
{
var config string Login;
var config string Prefix;
};
var config array<AdminNamesStruct> AdminNamesList;
...
static function string GetAdminName(string AdminName)
{
local int i;
for(i=0;i<default.AdminNamesList.Length;i++)
{
if(default.AdminNamesList[i].Login~=AdminName)
return "["$default.AdminNamesList[i].Prefix$"]";
}
return "[Unknown]";
}
...


А в классе WebAdminCyrillicNewxWebQueryCurrent мы получаем строку и добавляем к ней префикc с помощью GetAdminName

Код:
class WebAdminCyrillicNewxWebQueryCurrent extends xWebQueryCurrent config;
...
function QueryCurrentConsole(WebRequest Request, WebResponse Response)
{
...
//Flame. Префикс перед сообщением вебадмина
local string prefixAdminString;
local int sayPos;
prefixAdminString=class'WebAdminCyrillicMut'.Static.GetAdminName(Request.Username);
//
if (CanPerform("Xc"))
{
SendStr = Request.GetVariable("SendText", "");
sayPos=InStr(SendStr,"say");
//Flame. Конвертация и префикс админа
if(sayPos>=0)
{
SendStr=ConvertString(SendStr);
if(sayPos==0)
SendStr="say "$prefixAdminString@Mid(SendStr,4);
}
//
...
}

Ссылка
Автор Flame.
 
Сверху Снизу