1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  1. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Всем привет.

    Есть вот такой плагин:
    Код:
    #include <amxmodx>
    #include <reapi>
    
    new round;
    new g_has[33];
    
    public plugin_init()
    {
        register_plugin("Steam Bonus", "1.0", "xFit");
        register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
        register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
        RegisterHookChain(RG_CBasePlayer_Spawn, "Player_Spawn", true);
    }
    
    public eRestart()round = 0;
    
    public RoundStart()round++;                                 
    
    public client_connect(id)g_has[id]=0;
    
    public Player_Spawn(id)
    {                           
        if(is_user_steam(id) && ~get_user_flags(id) & ADMIN_LEVEL_E)
        {                                                         
            if(round < -1) return false; // -1 - с первого раунда; 1 - после первого раунда; 2 - после второго раунда... и т.д.                   
            rg_set_user_armor(id, 100, ARMOR_VESTHELM);
            rg_add_account(id, 400);
            new TeamName:team = get_member(id, m_iTeam);             
            if(team == TEAM_CT) rg_give_defusekit (id, true),g_has[id]++;                                                                                                         
            if(g_has[id]<2)client_print_color(id, print_team_default, "^4[STEAM] ^1Каждый раунд Вам будут выданы бонусы за steam клиент.");
        }
        return PLUGIN_HANDLED;
    }
     
    stock bool:is_user_steam(id)
    {                       
        static dp_pointer;
        if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
        {               
            server_cmd("dp_clientinfo %d", id);
            server_exec();
            return (get_pcvar_num(dp_pointer) == 2) ? true : false;
        }
        return false;
    }

    При компиляции ошибок нет и при запуске сервера тоже все ОК, но при смене карты непосредственно из игры через [1.4.1] Maps Menu, сервер падает...
    P.S. Если делать рестарт или смену карты через консоль, сервер не падает.

    Вопрос к знающим людям, где в этом плагине дыра?
     
  2. MakapoH.

    MakapoH. Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    48
    Симпатии:
    28
    Пол:
    Мужской
    Без данного плагина не падает?
     
  3. Inline

    Inline Постоялец Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
  4. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Без плагина не падает.
    --- Сообщения объединены 21 июн 2017 ---
    я в скриптинге не силён, это?
    Код:
    stock bool:is_user_steam(id)
    {                       
        static dp_pointer;
        if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
        {               
            server_cmd("dp_clientinfo %d", id);
            server_exec();
            return (get_pcvar_num(dp_pointer) == 2) ? true : false;
        }
        return false;
    }
     
  5. MakapoH.

    MakapoH. Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    48
    Симпатии:
    28
    Пол:
    Мужской
    Inline, Оно же требует наличие Reautcheck, не? Не факт же, что у него есть)
    Но переименовать надо бы is_user_steam. Например в user_steam.
    И кстати, раньше проверка на стима не работала у некоторых юзеров, хотя reaut был
     
  6. Inline

    Inline Постоялец Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
    Reunion нужен, API reauthcheck и не используется
     
    Последнее редактирование: 22 июн 2017
  7. MakapoH.

    MakapoH. Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    48
    Симпатии:
    28
    Пол:
    Мужской
    Inline, ах да, точно, перепутал
     
  8. Inline

    Inline Постоялец Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
  9. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    После удаления стока.

    [​IMG]
     
  10. Inline

    Inline Постоялец Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
  11. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Теперь это пишет в логах, хотя Reunion включён...
    HTML:
    L 06/22/2017 - 11:23:37: [ReAPI] Reunion: isn't available
    L 06/22/2017 - 11:23:37: [AMXX] Run time error 10 (plugin "reapi_steam_bonus.amxx") (native "REU_GetAuthtype") - debug not enabled!
    L 06/22/2017 - 11:23:37: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
     
  12. Inline

    Inline Постоялец Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
    Tenseus, у тебя всё последних версий? Странненько)
     
  13. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    [​IMG]
     
  14. Inline

    Inline Постоялец Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
  15. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Да.
     
  16. neygomon

    neygomon Его Темнейшество :j Команда форума Администратор

    Регистрация:
    8 июн 2017
    Сообщения:
    190
    Симпатии:
    126
    Пол:
    Мужской
    Tenseus, обновись на последние версии.
    так же попробуй reunion выше грузить чем amxmodx
     
    Tenseus нравится это.
  17. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Всё работает спасибо!
     
  18. neygomon

    neygomon Его Темнейшество :j Команда форума Администратор

    Регистрация:
    8 июн 2017
    Сообщения:
    190
    Симпатии:
    126
    Пол:
    Мужской
    Inline нравится это.
  19. Tenseus

    Tenseus Новичок

    Регистрация:
    12 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Пол:
    Мужской
    Нарисовался еще 1 мелкий баг в этом плагине.

    При первом подключении к серверу steam игрок получает сообщение о том, что ему будут выданы бонусы каждый раунд, но беда в том, что это работает только для КТ, для Т сообщение выводится каждый раунд.

    Как сделать так, что бы и для КТ и для Т сообщение показывалось только 1 раз при подключении?
     
  20. MakapoH.

    MakapoH. Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    48
    Симпатии:
    28
    Пол:
    Мужской
    Tenseus,
    PHP:
    if(team == TEAM_CTrg_give_defusekit (idtrue),g_has[id]++;
    -->
    PHP:
    g_has[id]++;
    if(
    team == TEAM_CTrg_give_defusekit (idtrue)