Голосование за AWP

Тема в разделе "Запросы", создана пользователем m9c0, 19 июн 2016.

  1. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    Всем привет, друзья!

    Может быть уже есть такой плагин (на АМ я такого не нашел)
    Или может быть кто-то согласится его написать.

    Суть плагина такова: если ЛЮБОЙ игрок на сервере CSGO напишет в чат !voteawp, то перед ним открывается меню (как админ меню SM), в котором ему предлагается запустить одно из голосований:
    1. Голосование за запрет AWP на карте
    2. Голосование за разрешение AWP на карте
    Далее запускается голосование (наподобие как за смену карты SM).
    - Если голосование за запрет AWP проходит успешно, то ни один игрок не может купить AWP и поднять его.
    - Если голосование за запрет AWP провалилось, то ничего не происходит (то есть все могут играть с AWP).
    - Если голосование за разрешение AWP проходит успешно, то все игроки могут купить AWP и поднять его.
    - Если голосование за разрешение AWP провалилось, то все игроки не могут покупать AWP и поднять его.

    И было бы классно, чтобы этот плагин был совместим с плагином Weapon Restrict.
     
    Dreizehnt нравится это.
  2. MFS

    MFS

    Сообщения:
    1.309
    Симпатии:
    537
  3. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    да нее, ребят, я наверное неправильно выразился.
    хотелось бы, чтобы плагин работал не как voteban, то есть не нужно, чтобы каждый игрок писал в чате !voteawp , тем самым отдавая свой голос
    а нужно, чтобы один игрок написал !voteawp, выбирал необходимое голосование
    1. Голосование за запрет AWP на карте
    2. Голосование за разрешение AWP на карте
    а потом бы всем игрокам на сервере выпадало меню голосования (как за смену карты SM) с вариантами ДА и НЕТ

    Например:
    Хотите ли Вы запретить AWP на карте?
    1. Да
    2. Нет
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.540
    Симпатии:
    1.984
    Разве это не одно и то же, по сути?
    Сделал один вопрос: 50% голосов для ответа "Нет" - разрешает AWP, более половины проголосовавших за "Да" - запрещает.
    PHP:
    new Handle:g_hMenug_iTime;

    public 
    OnPluginStart()
    {
        
    SetMenuTitle(g_hMenu CreateMenu(SelectMenuMenuAction_Select), "Хотите ли Вы запретить AWP на карте?\n \n");
        
    SetVoteResultCallback(g_hMenuVoteResults);
        
    AddMenuItem(g_hMenu"""Да");
        
    AddMenuItem(g_hMenu"""Нет");
        
    SetMenuExitButton(g_hMenufalse);
        
    decl Handle:cvar;
        
    HookConVarChange(cvar CreateConVar("weapon_restrict_vote_time",    "60",    "Продолжительность голосования, секунд."_true0.0), ChangeCvar_Time);
        
    g_iTime GetConVarInt(cvar);
    }

    public 
    ChangeCvar_Time(Handle:convarString:oldValue[], String:newValue[]) g_iTime GetConVarInt(convar);

    public 
    SelectMenu(Handle:menuMenuAction:actionparam1param2){}

    public 
    OnClientSayCommand_Post(client, const String:command[], const String:sArgs[])
    {
        if ((
    strcmp(sArgs[1], "voteawp"false) == || strcmp(sArgs"voteawp"false) == 0) && client)
        {
            if (
    IsVoteInProgress()) PrintToChat(client"\x01\04[VoteAWP] \x01Это или другое \x05голосование \x03уже в процессе\x01!");
            else
            {
                
    decl players[MaxClients];
                new 
    total;
                for (new 
    1<= MaxClients; ++i)
                {
                    if (
    IsClientInGame(i) && !IsFakeClient(i)) players[total++] = i;
                }
                
    VoteMenu(g_hMenuplayerstotalg_iTime);
            }
        }
    }

    public 
    VoteResults(Handle:menunum_votesnum_clients, const client_info[][2], num_items, const item_info[][2])
    {
        
    decl String:winner[19];
        if (
    item_info[0][VOTEINFO_ITEM_VOTES] > item_info[1][VOTEINFO_ITEM_VOTES])
        {
            
    ServerCommand("sm_restrict_awp_ct 0;sm_restrict_awp_t 0");
            
    winner "запретить";
        }
        else
        {
            
    ServerCommand("sm_restrict_awp_ct -1;sm_restrict_awp_t -1");
            
    winner "разрешить";
        }
        for (new 
    1<= MaxClients; ++i)
        {
            if (
    IsClientInGame(i)) PrintToChat(i"\x01\04[VoteAWP] \x01Игроки предпочли \x03%s \x01оружие \x05AWP\x01!"winner);
        }
    }
    Квар weapon_restrict_vote_time - длительность голосования в секундах.
    Требуется:
     
    Последнее редактирование: 14 авг 2016
    m9c0 нравится это.
  5. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, я люблю тебя мужик, ты лучший!
    Пошел тестить)
    --- Добавлено позже ---
    @AlmazON, Все работает. Но вот только еще одна просьба, не мог бы ты сделать, чтобы !voteawp работал и без "!" тоже.
     
    Последнее редактирование: 13 авг 2016
  6. komashchenko

    komashchenko

    Сообщения:
    479
    Симпатии:
    421
    Оффтоп
     
  7. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, братан, сорян, я не знал, как это реализауется.
    ставлю задачу более подробно:
    1. вызов голосования командами: voteawp и !voteawp
    2. cделай пожалуйста, чтобы в чате выводилась инфа, какой вариант выиграл голосование!
    3. сделай пожалуйста конфиг с кваром о длительности голосования (необязательно)
    Заранее благодарен)
     
    Последнее редактирование: 13 авг 2016
  8. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.540
    Симпатии:
    1.984
    Всё выше.
     
    m9c0 нравится это.
  9. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, все работает, кроме voteawp (без !)
     
  10. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, ну чтож, и на этом спасибо!
     
    Последнее редактирование: 14 авг 2016
  11. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, ну так я еще вчера вечером скопировал, после того, как ты добавил квар о длительности голосования и сообщение в чате о результате голосования.
    Версия 1.0.1 потому, что это 2е твое изменение, так что чисто технически, я читаю так будет правильнее. Версия 1.0.0 если что, у меня тоже есть
     
  12. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, хорошо, исправлю. спасибо!

    плагин хороший. будем тестить в течении некоторого времени. Если меня все устроит, то запилю обзор на твой замечательный плагин и выложу на свой Youtube канал
     
  13. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.540
    Симпатии:
    1.984
    Он был бы замечательным, если, скажем, добавить в него интеллектуальности: AWP уже запрещено, то выдать текст:
    Если разрешено:
    Также добавить файл перевода для иностранцев и запрет спамом повторного голосования. А так, больше показательный.
     
  14. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @AlmazON, проверил voteawp, теперь все в порядке. спасибо!
    --- Добавлено позже ---
    @AlmazON, есть еще несколько предложений, касательно данного плагина. Реализовывать их или нет, дело твое...
    1. сделать возможность настройки через конфиг, длительности голосования
    2. сделать возможность настройки через конфиг, оружия или нескольких оружий (например чтобы можно было к примеру указать "weapon_awp;weapon_scar-20;weapon_ssg08" и .т.п. Но в таком случае уже нужно будет переписывать большую часть плагина и в соответствии с вышеуказанным оружием в конфиге, менять сам вопрос в голосовании. Я думаю, что это сложно будет реализовать, поэтому смотри сам.
    3. в случае, если в голосовании выигрывает вариант "разрешить", то чтобы данные о ограничениях на то или иное оружие тянулись из конфигов Weapon Restrict. Например, если к примеру на сервере играется карта $2000$, и Weapon Restrict настроен таким образом, что оружие ограничивается на каждой карте по своему, то чтобы инфа тянулась из этих конфигов в случае выигрыша варианта "разрешить". Но опять же, я не знаю, насколько сложно это реализовать.

    Сейчас плагин достаточно прост, а если в него добавить тот функционал, который я предлагаю, боюсь что он обрастет парой сотен строчек кода, что в последствии повлечет за собой более высокую нагрузку на сервер.

    А с другой стороны, можно не мудрить и всего лишь сделать копию данного плагина и поменять в нем вопрос, квар для ограничения желаемого оружия и все. Но в таком случае будет один и тот же код повторяться в Voteawp, VoteScar и т.д., что тоже негативно скажется на пожирании ресурсов машины.
    --- Добавлено позже ---
    Также еще есть предложение сделать плагин за запрет использования на сервере так называемых анимированных клантегов и ников, а то эта ерунда флудит в консоль, лично меня это напрягает
     

    Вложения:

    Последнее редактирование: 15 авг 2016
  15. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.540
    Симпатии:
    1.984
    Просто в server.cfg вбей квар. Ради него одного нет смысла делать отдельный конфиг.
    Будто все игроки знают, что это за оружие. Оффтоп
    Тогда при старте карты всё это оружие будет запрещено/разрешено изначально по его конфигу.
     
  16. Mr.Credo

    Mr.Credo

    Сообщения:
    132
    Симпатии:
    4
    Народ а на ксго данный плагин не работает что-ль ?
    Залил на сервер вылазит меню люди голосуют на запрет но авп купить все же можно, с этого раунда и с нового, и при смене карты не чего ни поменялось!
    Плагин интересен но требует доработки))
     
  17. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.540
    Симпатии:
    1.984
     
  18. m9c0

    m9c0

    Сообщения:
    93
    Симпатии:
    17
    @Mr.Credo, для работы плагина, необходим установленный на сервер плагин Weapon Restrict

    @AlmazON, так как ты автор плагина, я думаю, тебе пора запилить тему на HLMODe с релизом этого плагина =)
    --- Добавлено позже ---
    @AlmazON, братан, нашел несколько багов.

    1. Если уже запущено голосование voteawp и оно еще не закончилось, то можно запустить еще одно. Надо это как то ограничить.

    2. Если AWP запрещено через конфиги или админку, и игроки хотят его разрешить, то при написании в чат voteawp, выходит вопрос "Хотите ли Вы запретить AWP?" с вариантами ответов:
    - "Да", при выборе которого, AWP разрешается (оно действительно разрешается, его можно подобрать\купить и также об этом говорится в чате сервера, что AWP "разрешено").
    - "Нет", при выборе которого, AWP запрещается (оно действительно запрещается, его нельзя подобрать\купить и также об этом говорится в чате сервера, что AWP "запрещено").
    ПыСы: возможно это баг Weapon Restrict
     
    Последнее редактирование: 28 авг 2016