[CS: Source] Командир для Jail с Меню

Тема в разделе "Новые плагины", создана пользователем david777, 16 апр 2014.

  1. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Описание:

    Я решил сделать кмд с меню пока я не видел такой плагин только платный!
    Что входит в меню:
    1.Дать аптечку
    2.Открыть все Джайлы
    3.Вкл\Выкл NoBlock
    4.Взять гранату
    5.Включить бокс

    Основные команды плагина:

    1) !w или !warden - взять кмд и открыть меню кмд
    3) !unw или !unwarden - покинуть пост кмд.

    Описания украл было лень писать:-D
    За все мои обучения в скриптинге СПАСИБО SemJef

    Требования:

    Установленный Colors и SM_Hosties 2.1.0 , ибо без него сам плагин не нужен будет...

    Оригинал: http://forums.alliedmods.net/showthread.php?t=157860 переведено не мною...
     

    Вложения:

    • cmdmenujail.smx
      Размер файла:
      15,5 КБ
      Просмотров:
      233
    • cmdmenujail.sp
      Размер файла:
      11,2 КБ
      Просмотров:
      283
    Последнее редактирование: 22 июл 2014
    Аскер Бабгоев, Fabiio, lol14255 и ещё 1-му нравится это.
  2. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    я писал что я его перевожу?
    на держи не жалко
     

    Вложения:

  3. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    czar45, мм ну если не нравится пользуйся wS или своим или вообще без меню!
    Щяс сервер ценятся от этих менюшек и если чего не нравится я не прошу тебя его использовать!
     
  4. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Вот теперь будет открываться при взятия кмд!
     

    Вложения:

    • warden.smx
      Размер файла:
      15,2 КБ
      Просмотров:
      31
  5. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Пробуй
     

    Вложения:

    • warden.smx
      Размер файла:
      15,2 КБ
      Просмотров:
      8
  6. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Нашел ошибку исправил щяс должно быть норм!
     

    Вложения:

    • warden.smx
      Размер файла:
      15,5 КБ
      Просмотров:
      38
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    czar45, в переводе проблема
     
  8. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    скачай плагин NoBlock любой с данного сайта
     
  9. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Теперь меню закрывается при взятия гранаты думаю будет труднее его положить))
     

    Вложения:

    • warden.smx
      Размер файла:
      15,5 КБ
      Просмотров:
      47
    czar45 нравится это.
  10. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    PHP:
    public Select_Panel(Handle:panelMenuAction:actionclientoption)  

        if (
    action == MenuAction_Select
        { 
            if(
    IsPlayerAlive(client))
            {
                if(
    option == 1)
                {
                    
    CreateMedKit(client);
                    
    ShowMyPanel(client);
                }
                else if(
    option == 2)
                {
                    
    PrintToChatAll("Командир > Командир Открыл Джайлы и другие обьекты");
                    
    OpenAllDoors();
                    
    ShowMyPanel(client);
                }
                else if(
    option == 3)
                {
                    new 
    bool:nenabled GetConVarBool(g_hCvarEnabledNoBlock);
                    if(
    nenabled)
                    {
                        
    PrintCenterTextAll"Командир Выключил NoBlock!");
                        
    PrintToChatAll("NoBlock: > Командир Выключил NoBlock");
                        
    ServerCommand("sm_noblock 0");
                    }
                    else
                    {
                        
    PrintCenterTextAll"Командир Включил NoBlock!");
                        
    PrintToChatAll("NoBlock: > Командир Включил NoBlock");
                        
    ServerCommand("sm_noblock 1");
                    }
                    
    ShowMyPanel(client);
                }
                else if(
    option == 4)
                {
                    
    GivePlayerItem(client"weapon_hegrenade");
                    
    ShowMyPanel(client);
                }
                else if(
    option == 5)
                {
                    new 
    bool:nenabled GetConVarBool(g_hCvarEnabledFriendlyFire);
                    if(
    nenabled)
                    {
                        
    PrintCenterTextAll"Командир Выключил Бокс!");
                        
    PrintToChatAll("Бокс: > Командир выключил бокс!");
                        
    SetConVarInt(FindConVar("mp_friendlyfire"), 0);
                    }
                    else
                    {
                        
    PrintCenterTextAll"Командир Запустил Бокс!");
                        
    PrintToChatAll("Бокс: > Командир запустил бокс!");
                        
    SetConVarInt(FindConVar("mp_friendlyfire"), 1);
                    }
                    
    ShowMyPanel(client);
                }
            }
        } 
    }

    Так было бы лучше:
    PHP:
    public Select_Panel(Handle:panelMenuAction:actionclientoption)  

        if (
    action == MenuAction_Select
        { 
            if(
    IsPlayerAlive(client))
            {
                switch(
    option)
                {
                    case 
    1CreateMedKit(client);
                    case 
    2:
                    {
                        
    PrintToChatAll("Командир > Командир Открыл Джайлы и другие обьекты");
                        
    OpenAllDoors();
                    }
                    case 
    3:
                    {
                        new 
    bool:nenabled GetConVarBool(g_hCvarEnabledNoBlock);
                        
    PrintCenterTextAll"Командир %s NoBlock!", (nenabled) ? "Выключил":"Включил");
                        
    PrintToChatAll("NoBlock: > Командир %s NoBlock", (nenabled) ? "Выключил":"Включил");
                        
    ServerCommand("sm_noblock %i", (nenabled) ? 0:1);
                    }
                    case 
    4GivePlayerItem(client"weapon_hegrenade");
                    case 
    5:
                    {
                        new 
    bool:nenabled GetConVarBool(g_hCvarEnabledFriendlyFire);
                        
    PrintCenterTextAll"Командир %s Бокс!", (nenabled) ? "Выключил":"Запустил"); 
                        
    PrintToChatAll("Бокс: > Командир %s бокс!", (nenabled) ? "Выключил":"Запустил"); 
                        
    SetConVarInt(FindConVar("mp_friendlyfire"), (nenabled) ? 0:1);
                    }
                }
                if(
    option 6ShowMyPanel(client);
            }
        } 
    }
     
    Последнее редактирование: 17 апр 2014
    david777 нравится это.
  11. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Вижу что код меньше но мой вариант мне привычней=))
     
  12. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    david777, плевать меньше или нет. Он оптимальнее.
     
    Primo нравится это.
  13. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    R1KO, поправь в своём посте

    PHP:
    PrintCenterTextAll"Командир Выключил Бокс!", (nenabled) ? "Выключил":"Запустил"); 
    PrintToChatAll("Бокс: > Командир выключил бокс!", (nenabled) ? "Выключил":"Запустил"); 
    на

    PHP:
    PrintCenterTextAll"Командир %s Бокс!", (nenabled) ? "Выключил":"Запустил"); 
    PrintToChatAll("Бокс: > Командир %s бокс!", (nenabled) ? "Выключил":"Запустил"); 
    _______________

    Ну и немного дополню: нет смысла оптимизировать на столько в данном случае, ведь тут действие выполняется очень редко, да и обработка в обоих случаях занимает менее фрейма, такчто можно оставить так как есть, а если хочешь поучить, то объясни "Почему надо делать именно так"
     
    david777 и R1KO нравится это.
  14. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Сомневаюсь, что оптимальнее проверять столько раз одну переменную nenabled
     
  15. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    The End Is Near..., да какая к чёрту разница!? тут разница всего в 2 раза, еслиб делали проверку 1000 раз, то была бы разница, а тут бред даже задумываться.
     
    david777 нравится это.
  16. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    The End Is Near..., я более уклонялся от ShowMyPanel(client); после каждого условия.
     
  17. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    semjef
    Логика нормальная такая, кстати, кто Тебе сказал, что эта функция не будет выполняться часто? Что эти условия не будут часто проверяться? По твоей логике следует, зачем лечить двоих людей, вот если бы было 1000, так? Другое дело, как ты заговоришь, если именно Ты окажешься среди этих двух человек. Так доходит, не?
     
  18. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    The End Is Near...,
    semjef, да ладно, че вы? Не начинайте то, что в последнее время стало привычным делом на этом форуме..
     
  19. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    The End Is Near..., ты уходишь сильно в другую область, это нельзя сравнивать.
    А часто выполняться будут эти проверки если игрок дебил и жмакает кнопку более 30 раз в секунду, что мало вероятно. Только тогда данный код будет не оптимальным.


    R1KO, Я просто перечитал хабр на эту тему очень сильно:D
    да и у Ричи о подобной псевдо-оптимизации не мало сказано (в большей степени о том, что нет смысла улучшать и без того эффективный код)
     
    david777 нравится это.
  20. david777

    david777 SemJef ЛОЛ

    Сообщения:
    55
    Симпатии:
    7
    Проверьте NoBlock должно работать если стоит плагин sm_hosties
     

    Вложения:

    • warden.smx
      Размер файла:
      15,5 КБ
      Просмотров:
      53