Персонализация вебадмина

Тема в разделе "Общего назначения", создана пользователем Flame, 4 янв 2017.

Метки:
  1. Flame

    Flame -Заслуженый кодер форума-

    Меня давно задрало, что непонятно какой из админов пишет в игровой чат из вебадмина

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

    Настройки:
    Добавим в настройки массив пар Логин-ИмяАдмина
    То есть, если админ 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);
            }
            //
        ...
    }
    

    Ссылка
    WebAdminPersonalizationMut.WebAdminPersonalizationMut
     
    Последнее редактирование: 4 янв 2017
    Arckon., Essence и HATAXA нравится это.
  2. STaJIKeR

    STaJIKeR Солдат


    Флейм, хороший мут)
     
  3. Flame

    Flame -Заслуженый кодер форума-

    Сам никак не нарадуюсь)