Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

  1. mcrc

    Регистрация:
    01.03.15
    Сообщения:
    76
    Симпатии:
    16
    Пол:
    Мужской
    Хочется, чтобы при выборе 3-го скина (SAS и Arctic) игрок на самом деле получал 1-й скин.
    Ребята в чате мне подсказали (спасибо: neygomon, MakapoH), но я не очень понял как довести до ума.
    Помогите допилить:
    PHP:
    #include <amxmodx>

    public plugin_init()
    register_clcmd("joinclass""clcmdJoinClass");
    public 
    clcmdJoinClass(id)
    {
        new 
    arg[2]; read_argv(1arg1);
        return (
    str_to_num(arg) == 3) ? 0;
    }

        
    engclient_cmd(id"joinclass""1")
     
  2. InzGIBA

    Регистрация:
    13.04.16
    Сообщения:
    35
    Симпатии:
    20
    Пол:
    Мужской
    VKcom:
    id319741830
    Telegram:
    87475975017
    Skype:
    InzGIBA
    А не проще тебе будет заменить модельки игроков?
     
  3. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    835
    Симпатии:
    227
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    @InzGIBA, он, наверное, хочет, чтобы не у одного него так отображались модельки, а у всех).
     
  4. InzGIBA

    Регистрация:
    13.04.16
    Сообщения:
    35
    Симпатии:
    20
    Пол:
    Мужской
    VKcom:
    id319741830
    Telegram:
    87475975017
    Skype:
    InzGIBA
    @Le$hiy, это да, но я имел ввиду чтобы заменить стандартные модельки у всех и забыть про это вовсе
     
  5. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    835
    Симпатии:
    227
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    @InzGIBA, но это ведь можно сделать только посредством плагина). Или ты говоришь о ручной замене моделей в своей папке с игрой каждым игроком?
    А вообще можно сошку отредактировать в hex-редакторе и обойтись без плагинов. Я так менял все модельки на сервере.
     
  6. InzGIBA

    Регистрация:
    13.04.16
    Сообщения:
    35
    Симпатии:
    20
    Пол:
    Мужской
    VKcom:
    id319741830
    Telegram:
    87475975017
    Skype:
    InzGIBA
    @Le$hiy, да, я говорю про плагин. 1 моделька у ТТ и 1 моделька у КТ (custom models) вроде. Но так же есть плагины заменяющие определенные модельки на другие. Начиная от рук, заканчивая заложниками
     
  7. TauJIeP

    Регистрация:
    04.04.16
    Сообщения:
    413
    Симпатии:
    43
    Пол:
    Мужской
    Skype:
    hohlachev-s
    cl_minmodels 0
    не?
     
  8. InzGIBA

    Регистрация:
    13.04.16
    Сообщения:
    35
    Симпатии:
    20
    Пол:
    Мужской
    VKcom:
    id319741830
    Telegram:
    87475975017
    Skype:
    InzGIBA
    @TauJIeP, Думая на вряд-ли. ТЗ нужно сделать это на сервере. Да возможно просто менять квары игрокам с cl_minmodels/cl_min_t/cl_min_ct, но как мне известно, мониторинги против, чтобы пользователю что нибудь меняли в CS, без их ведома.
     
  9. mcrc

    Регистрация:
    01.03.15
    Сообщения:
    76
    Симпатии:
    16
    Пол:
    Мужской
    Хочется обособить определённую группу игроков. Т.е. чтобы можно было без труда визуально их отличить от других.
    При этом не хочется грузить отдельные модели или подменять кастомные.
     
  10. Punisher

    Регистрация:
    08.02.16
    Сообщения:
    2.830
    Симпатии:
    505
    Пол:
    Мужской
    VKcom:
    wkolopunisher
    Telegram:
    punproject
    Skype:
    punproject
    не обязательно что-то менять клиентам. не проще ли поставить плагин замены моделек от неугомона и поставить одну модель вместо 4х ?
     
  11. mcrc

    Регистрация:
    01.03.15
    Сообщения:
    76
    Симпатии:
    16
    Пол:
    Мужской
    @Punisher
    >Хочется обособить определённую группу игроков
     
  12. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    835
    Симпатии:
    227
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    @mcrc, ну он тебе про это и говорит. Повесить модель на флаг посредством плагина, а "обособленной группе" повесить этот флаг. Или ты как-то по-другому хочешь?
    Другой вопрос - то, что ты не хочешь посторонние модели ставить, а хочешь, чтобы были только кастомные... Ну тогда я вижу 2 пути: 1) плагин твой допиливать, но при этом все равно придется использовать второй плаг для моделей; 2) редактирование cs.so + плагин для моделей (чтобы повесить их на флаг для твоих избранных).
     
  13. wopox1337

    Регистрация:
    10.12.15
    Сообщения:
    41
    Симпатии:
    12
    Пол:
    Мужской
    VKcom:
    wopox
    Telegram:
    wopox1337
    Skype:
    wopox3
    @mcrc, согласно вашему запросу Ув. Vaqtincha подготовил для вас готовое решение.
    По скольку он не имеет адекватного соединения с интернетом, я иногда помогаю ему.

    Готовое решение для прикрепил к этому комментарию.
    Отпишитесь о том, подошло ли вам это решение.

    Код плагина:
    PHP:
    //    Copyright © 2016 Vaqtincha

    //============================ CONFIG START ===========================//
    // #define NOTIFY_MESSAGE        "* This class is not available!"
    // #define IMMUNITY_ACCESS         ADMIN_IMMUNITY

    #define TARGET_CLASS         CLASS_4
    #define ENTER_CLASS            CLASS_1
    //============================= CONFIG END ============================//

    #include <amxmodx>

    enum _:CLASSESCLASS_1CLASS_2CLASS_3CLASS_4 }

    new const 
    KEYS_BITSUM[CLASSES] = { MENU_KEY_1MENU_KEY_2MENU_KEY_3MENU_KEY_4 }
    new const 
    KEYS_COMMAND[CLASSES] = { '1''2''3''4' }
    new const 
    KEYS_STRING[CLASSES][2] = { "1""2""3""4" }

    new const class[] = 
    "joinclass"

    public plugin_init()
    {
        
    register_plugin("Choose Class Block""0.0.1""Vaqtincha")

        
    register_clcmd(class, "ClCmd_Joinclass")    // vgui menu
        
    register_menucmd(register_menuid("Terrorist_Select"1), KEYS_BITSUM[TARGET_CLASS], "ClCmd_Joinclass")// old menu
        
    register_menucmd(register_menuid("CT_Select"1), KEYS_BITSUM[TARGET_CLASS], "ClCmd_Joinclass")// old menu

    }

    public 
    ClCmd_Joinclass(id)
    {
    /*     if(!is_user_connected(id))
        {
            return PLUGIN_CONTINUE
        }
    */
    #if defined IMMUNITY_ACCESS
        
    if(get_user_flags(id) & IMMUNITY_ACCESS)
        {
            return 
    PLUGIN_CONTINUE
        
    }
    #endif

        
    new szCommand[2]
        
    read_argv(1szCommandcharsmax(szCommand))
       
        
    // if(equali(szCommand, KEYS_STRING[TARGET_CLASS]) || equali(szCommand, "6"))
        
    if(szCommand[0] == KEYS_COMMAND[TARGET_CLASS] || szCommand[0] == '6')
        {
        
    #if defined NOTIFY_MESSAGE
            
    client_print(idprint_chatNOTIFY_MESSAGE)
        
    #endif
            
    engclient_cmd(id, class, KEYS_STRING[ENTER_CLASS])

            return 
    PLUGIN_HANDLED
        
    }

        return 
    PLUGIN_CONTINUE
    }

    Надеюсь мы вам помогли.
     

    Вложения:

    mcrc нравится это.
  14. mcrc

    Регистрация:
    01.03.15
    Сообщения:
    76
    Симпатии:
    16
    Пол:
    Мужской
    @worox1337, ух ты, спасибо вам и уважаемому Vaqtincha)
    Потестил локально, вроде, нормуль.
    Поставлю сегодня на "живой" сервер, если что, отпишусь сюда.
    Ещё раз, спасибо вам! :)
     
  15. wopox1337

    Регистрация:
    10.12.15
    Сообщения:
    41
    Симпатии:
    12
    Пол:
    Мужской
    VKcom:
    wopox
    Telegram:
    wopox1337
    Skype:
    wopox3
    @mcrc, рады вам помочь
     
  16. mcrc

    Регистрация:
    01.03.15
    Сообщения:
    76
    Симпатии:
    16
    Пол:
    Мужской
    @wopox1337, а можно в TARGET_CLASS указать несколько классов?
    чтобы несколько пунктов меню вели на один и тот же скин.
    Если "да", то как правильно написать?
     
  17. Lexx

    Регистрация:
    19.06.16
    Сообщения:
    9
    Симпатии:
    2
    Пол:
    Мужской
    @mcrc, попробуй, может устроит такой вариант (не проверял работоспособность, должно при любом выборе класса выставлять 2 модельку для Т и 4 модельку для КТ):
    Код:
    #include <amxmodx>
    #include <amxmisc>
    
    #define CLASS_KEYS MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5
    
    public plugin_init ( )
    {
        register_plugin ( "Custom joinclass", "0.1", "Lexx" )
    
        register_clcmd ( "joinclass", "f_choose_model" )
        register_menucmd ( register_menuid ( "Terrorist_Select", 1 ), CLASS_KEYS, "f_choose_model" )
        register_menucmd ( register_menuid ( "CT_Select", 1 ), CLASS_KEYS, "f_choose_model" )
    }
    
    public f_choose_model(id)
    {
        new szCommand [2]
        read_argv ( 1, szCommand, charsmax ( szCommand ) )
    
        new szTeam [ 2 ]
        get_user_team ( id, szTeam, 1 )
    
        switch ( szTeam [ 0 ] )
        {
            case 'T':
            {
                if (szCommand [0] == '2') return PLUGIN_CONTINUE
                else
                {
                    if ( task_exists ( id ) ) remove_task ( id )
                    set_task ( 0.1 , "task_joinclass_t" , id )
                    return PLUGIN_HANDLED
                }
            }
            case 'C':
            {
                if (szCommand [0] == '4') return PLUGIN_CONTINUE
                else
                {
                    if ( task_exists ( id ) ) remove_task ( id )
                    set_task ( 0.1 , "task_joinclass_ct" , id )
                    return PLUGIN_HANDLED
                }
            }
        }
    
        return PLUGIN_HANDLED
    }
    
    public task_joinclass_t ( id ) client_cmd ( id, "joinclass 2" )
    public task_joinclass_ct ( id ) client_cmd ( id, "joinclass 4" )
     
  18. Lexx

    Регистрация:
    19.06.16
    Сообщения:
    9
    Симпатии:
    2
    Пол:
    Мужской
    Может и без тасков будет нормально работать:
    Код:
    #include <amxmodx>
    #include <amxmisc>
    
    #define CLASS_KEYS MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5
    
    public plugin_init ( )
    {
        register_plugin ( "Custom joinclass", "0.1.1", "Lexx" )
    
        register_clcmd ( "joinclass", "f_choose_model" )
        register_menucmd ( register_menuid ( "Terrorist_Select", 1 ), CLASS_KEYS, "f_choose_model" )
        register_menucmd ( register_menuid ( "CT_Select", 1 ), CLASS_KEYS, "f_choose_model" )
    }
    
    public f_choose_model(id)
    {
        new szCommand [2]
        read_argv ( 1, szCommand, charsmax ( szCommand ) )
    
        new szTeam [ 2 ]
        get_user_team ( id, szTeam, 1 )
    
        switch ( szTeam [ 0 ] )
        {
            case 'T':
            {
                if (szCommand [0] == '2') return PLUGIN_CONTINUE
                else
                {
                    client_cmd ( id, "joinclass 2" )
                    return PLUGIN_HANDLED
                }
            }
            case 'C':
            {
                if (szCommand [0] == '4') return PLUGIN_CONTINUE
                else
                {
                    client_cmd ( id, "joinclass 4" )
                    return PLUGIN_HANDLED
                }
            }
        }
    
        return PLUGIN_HANDLED
    }
     
    mcrc нравится это.
  19. mcrc

    Регистрация:
    01.03.15
    Сообщения:
    76
    Симпатии:
    16
    Пол:
    Мужской
    @Lexx, оба варианта попробовал, результат один: после выбора скина, респауна не происходит, игрок просто висит в спектрах
    В вашем коде ещё можно добавить, чтобы при выборе любого скина, рандомно брался, скажем, 1-й или 2-й?
     
  20. Lexx

    Регистрация:
    19.06.16
    Сообщения:
    9
    Симпатии:
    2
    Пол:
    Мужской
    Странно, сейчас запустил на тестовом сервере, у меня оба варианта сработали. Именно "просто висит в СПЕКТРАХ"? Если спектры, а не в какой-то команде, то это очень странно, ведь плагин начинает работать только тогда, когда выбирается моделька, а моделька выбирается только после того, как выбрана сторона T или CT, не спектры. Рандомность можно добавить, вопрос только в том, что конкретно нужно (разделять ли T и CT модели, какие модели должны быть доступны и рандомиться).