1. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    Join Teg 1.0
    Плагин для оповещения игроков о том кто зашел/покинул на сервер (Гл.Админ, Админ, ViP, Бандит,Девушка,Steam, Игрок) и их звание в AES(При включении AES).
    Для компиляции amx 1.8.2 или ниже потребуется include colorchat.inc и aes_main.inc(Еси включен AES)
    Настройки:
    Все настройки производятся в исходнике.
    #define AES - Включает вывод званий из AES

    /*Если у вас несколько флагов то покажет тот который зачекает(проверит) первым*/
    #define FLAG_1 ADMIN_LEVEL_A //Флаг который чекает первым
    #define FLAG_2 ADMIN_LEVEL_B //Флаг который чекает вторым
    #define FLAG_3 ADMIN_LEVEL_H //Третьим
    #define FLAG_4 ADMIN_LEVEL_D //Четвертым
    #define FLAG_5 ADMIN_LEVEL_C //Пятым (Всегда девушка //PS. Из за особенностей плагина....)
    Дополнительно:
    Можно подстроить под себя вывод подключившихся:
    Что бы убрать приветствие
    Бандита или любого другого просто замени на "Игрок" в static const AcsName
    new static const AcsName[][] = { "Игрок", "Гл. Админ", "Админ", "ViP", "Бандит", "Девушка", "Steam ^1игрок"}
    Префикс перед выводом информации о подключившемся
    new const PREFIX[] = "^3[^4Join^3]"; где ^1 - Дефолтный(обычный); ^3 - Цвет команды; ^4 - Зеленый.

    Для желающих помочь в оптимизации:

    PHP:
    #include <amxmodx>
    #if AMXX_VERSION_NUM < 183
    #include <colorchat>
    #define client_disconnected client_disconnect
    #endif
    /*Если у вас несколько флагов то покажет тот который зачекает первым*/
    #define FLAG_1         ADMIN_LEVEL_A //Флаг который чекает первым
    #define FLAG_2         ADMIN_LEVEL_B //Флаг который чекает вторым
    #define FLAG_3         ADMIN_LEVEL_H //Третим
    #define FLAG_4         ADMIN_LEVEL_D //Четвертым
    #define FLAG_5         ADMIN_LEVEL_C //Пятым


    //Закоментировать, если не нужно Званий AES
    #define AES

    #if defined AES
        #include <aes_main>
    #endif   
    /* Что бы убрать приветствие Бандита или любого другого просто замени на "Игрок" в static const AcsName*/
    new static const AcsName[][] = { "Игрок""Гл. Админ""Админ""ViP""Бандит""Девушка""Steam ^1игрок"}
    /* Префикс перед выводом информации о подключившемся */
    new const PREFIX[] = "^3[^4Join^3]";

    public 
    plugin_init() {
       
    register_plugin("Join_Teg""1.0""zooxel")
    }         
    public 
    client_putinserver(id)
    {
       
    set_task(4.0,"client_connecte",id)
    }
    public 
    client_connecte(id) {
        if(
    is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)){
           return 
    PLUGIN_CONTINUE
        
    }   
        new 
    name[32]
        
    get_user_name(idname31)
    #if defined AES
        
    static AESLvl[33][64], aStats[AES_ST_END]
        
    aes_get_player_stats(idaStats)
        
    aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], 63LANG_SERVER)
        if (
    CheckFlags(id) == 5)
            
    client_print_color(0,print_team_default"%s ^4%s^1 c ником ^3%s ^1Звание: ^4%s^1 Подключилась к нам! "PREFIXAcsName[CheckFlags(id)], nameAESLvl[id])
        else   
            
    client_print_color(0,print_team_default"%s ^4%s^1 c ником ^3%s ^1Звание: ^4%s^1 Подключился к нам! "PREFIXAcsName[CheckFlags(id)], nameAESLvl[id])
        return 
    PLUGIN_HANDLED
    #else   
        
    if (CheckFlags(id) == 5)
            
    client_print_color(0,print_team_default"%s ^4%s^1 c ником ^3%s^1 подключилась к нам!"PREFIXAcsName[CheckFlags(id)], name)
        else
            
    client_print_color(0,print_team_default"%s ^4%s^1 c ником ^3%s^1 подключился к нам!"PREFIXAcsName[CheckFlags(id)], name)
    #endif
    }

    public 
    client_disconnected(id){
        if(
    is_user_hltv(id) || is_user_bot(id)){
           return 
    PLUGIN_CONTINUE
        
    }
        new 
    name_d[32]
        
    get_user_name(idname_d31)
        if (
    CheckFlags(id) == 5)
            
    client_print_color(0,print_team_default"%s ^3%s^1 Покинула игру! Надеемся что она еще вернется."PREFIXname_d)
        else
            
    client_print_color(0,print_team_default"%s ^3%s^1 Покинул игру! Надеемся что он еще вернется."PREFIXname_d)
        return 
    PLUGIN_HANDLED
    }

    stock CheckFlags(id)
    {
        static 
    iFlags
        iFlags 
    get_user_flags(id)
        if(
    iFlags FLAG_1) return 1
        
    else if(iFlags FLAG_2) return 2
        
    else if(iFlags FLAG_3) return 3
        
    else if(iFlags FLAG_4) return 4
        
    else if(iFlags FLAG_5) return 5
        
    else if(is_user_steam(id)) return 6
        
    return 0
    }
     
    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
            
    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
    }
     

    Вложения:

    • join_teg.sma
      Размер файла:
      3,5 КБ
      Просмотров:
      9
    • join_teg.zip
      Размер файла:
      5 КБ
      Просмотров:
      12
    Последнее редактирование: 29.01.16
    talibana, agresogun и Frank нравится это.
  2. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    Немного переделал, Теперь чекает новых Игроков.
     

    Вложения:

    • join_teg.sma
      Размер файла:
      3,8 КБ
      Просмотров:
      5
    agresogun нравится это.
  3. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    Еще чутка переделал.....
     

    Вложения:

    • join_teg.sma
      Размер файла:
      4,2 КБ
      Просмотров:
      7
    agresogun нравится это.
  4. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.770
    Симпатии:
    835
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    zooxel52,
    PHP:
    #include <amxmodx>
    #if AMXX_VERSION_NUM < 183
        #include <colorchat>
        #define client_disconnected client_disconnect
    #endif

    /*Если у вас несколько флагов то покажет тот который зачекает первым*/
    #define FLAG_1    ADMIN_LEVEL_A //Флаг который чекает первым
    #define FLAG_2    ADMIN_LEVEL_B //Флаг который чекает вторым
    #define FLAG_3    ADMIN_LEVEL_H //Третим
    #define FLAG_4    ADMIN_LEVEL_D //Четвертым
    #define FLAG_5    ADMIN_LEVEL_C //Пятым

    //Закоментировать, если не нужно Званий AES
    #define AES
    #if defined AES
        #include <aes_main>
    #endif

    /* Что бы убрать приветствие Бандита или любого другого просто замени на "Игрок" в static const AcsName*/
    new const AcsName[][] = {"Игрок""Гл. Админ""Админ""ViP""Бандит""Девушка""Steam ^1игрок"}

    /* Префикс перед выводом информации о подключившемся */
    new const PREFIX[] = "^3[^4Join^3]";

    public 
    plugin_init()
    {
        
    register_plugin("Join_Teg""1.0""zooxel");
    }

    public 
    client_putinserver(id)
    {
        
    set_task(4.0,"client_connected",id);
    }

    public 
    client_connected(id)
    {
        if(
    is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE;
        new 
    name[32]; get_user_name(idnamecharsmax(name));
    #if defined AES
        
    static AESLvl[33][64], aStats[AES_ST_END];
        
    aes_get_player_stats(idaStats);
        
    aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], 63LANG_SERVER);
        
    client_print_color(0print_team_default"%s ^4%s^1 c ником ^3%s ^1Звание: ^4%s^1 %s"PREFIXAcsName[CheckFlags(id)], nameAESLvl[id], CheckFlags(id) == "Подключилась к нам!" "Подключился к нам!");
        return 
    PLUGIN_HANDLED;
    #else
        
    client_print_color(0print_team_default"%s ^4%s^1 c ником ^3%s^1 %s"PREFIXAcsName[CheckFlags(id)], nameCheckFlags(id) == "подключилась к нам!" "подключился к нам!");
    #endif
    }

    public 
    client_disconnected(id)
    {
        if(
    is_user_hltv(id) || is_user_bot(id)) return PLUGIN_CONTINUE;
        new 
    name_d[32]; get_user_name(idname_dcharsmax(name_d));
        
    client_print_color(0print_team_default"%s ^3%s^1 %s"PREFIXname_dCheckFlags(id) == "Покинула игру! Надеемся что она еще вернется." "Покинул игру! Надеемся что он еще вернется.");
        return 
    PLUGIN_HANDLED;
    }

    stock CheckFlags(id)
    {
        static 
    iFlagsiFlags get_user_flags(id);
        if(
    iFlags FLAG_1) return 1;
        else if(
    iFlags FLAG_2) return 2;
        else if(
    iFlags FLAG_3) return 3;
        else if(
    iFlags FLAG_4) return 4;
        else if(
    iFlags FLAG_5) return 5;
        else if(
    is_user_steam(id)) return 6;
        return 
    0;
    }

    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
        
    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;
    }
    PHP:
    new static const AcsName[][] = { "Игрок""Гл. Админ""Админ""ViP""Бандит""Девушка""Steam ^1игрок"}
    1. static можно убрать: глобальная new и так создается как static, не пересоздается каждый раз
    PHP:
        if (CheckFlags(id) == 5)
            
    client_print_color(0,print_team_default"%s ^4%s^1 c ником ^3%s^1 подключилась к нам!"PREFIXAcsName[CheckFlags(id)], name)
        else
            
    client_print_color(0,print_team_default"%s ^4%s^1 c ником ^3%s^1 подключился к нам!"PREFIXAcsName[CheckFlags(id)], name)
    2. Тут можно использовать тернарное условие
    3. Ну и напоследок
    PHP:
    public client_connecte(id)
    Не такая уж и ошибка, но все же правильно будет
    PHP:
    public client_connected(id)
    Все эти изменения найдешь под спойлером
     
    zooxel52 нравится это.
  5. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    Да ладно.... У парня просто фантазии не хватило на название новой функции, а твой вариант- уж точно ни в какие ворота
    PHP:
    public client_putinserver(id)
    {
        
    set_task(4.0,"client_connected",id);
    }
    public 
    client_connected(id)
     
  6. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.770
    Симпатии:
    835
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    zhorzh78, ты о чем?
     
  7. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    :eek: я ранее 2 раза посмотрел код.. почему же я увидел client_connect вместо client_connected
    пора отдыхать... извиняюсь:agree:
     
  8. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    Спасибо.

    Теперь по поводу:
    Код:
    #define client_disconnected client_disconnect
    Старый фоворд хорошо работает, а вот новый который:
    public client_disconnected(id)
    Почему то нет....
     
    agresogun нравится это.
  9. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.770
    Симпатии:
    835
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    zooxel52, этот форвард для 1.8.3. А что с ним не так?
     
  10. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    Просто не работает, если использовать
    client_disconnected(id)
     
    agresogun нравится это.
  11. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.933
    Симпатии:
    4.330
    Пол:
    Мужской
    zooxel52, руки надо выровнить просто
    )
     
  12. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    Вот все переделал, добавил статистику из csstats....
    Ну и вопрос: Как чекать нового игрока... ???
    PHP:
    #include <amxmodx>
    #include <csstats>
    #if AMXX_VERSION_NUM < 183
    #include <colorchat>
    //#define client_disconnected client_disconnect
    #endif
    /*Если у вас несколько флагов то покажет тот который зачекает первым*/
    #define FLAG_1         ADMIN_LEVEL_A //Флаг который чекает первым
    #define FLAG_2         ADMIN_LEVEL_B //Флаг который чекает вторым
    #define FLAG_3         ADMIN_LEVEL_H //Третим
    #define FLAG_4         ADMIN_LEVEL_D //Четвертым
    #define FLAG_5         ADMIN_LEVEL_C //Пятым


    //Закоментировать, если не нужно Званий AES
    #define AES

    #if defined AES
        #include <aes_main>
    #endif  
    /* Что бы убрать приветствие Бандита или любого другого просто замени на "Игрок" в static const AcsName*/
    new const AcsName[][] = { "Игрок""Гл. Админ""Админ""ViP""Бандит""Девушка""Steam ^1игрок"}
    /* Префикс перед выводом информации о подключившемся */
    new const PREFIX[] = "^3[^4Join^3]";

    public 
    plugin_init() {
       
    register_plugin("Join_Teg""1.0""zooxel")
    }        
    public 
    client_putinserver(id)
    {
       
    set_task(4.0,"client_connected",id)
    }
    public 
    client_connected(id) {
        if(
    is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)){
           return 
    PLUGIN_CONTINUE
        
    }  
        new 
    name[32]
        
    get_user_name(idname31)
        new 
    rankstats[8], bh[8]
        
    rank get_user_stats(id,stats,bh)
    #if defined AES
        
    static AESLvl[33][64], aStats[AES_ST_END]
        
    aes_get_player_stats(idaStats)
        
    aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], 63LANG_SERVER)
        if(
    aStats[AES_ST_EXP] <= 3)
            
    client_print_color(0,print_team_default"%s ^4Новый ^3%s^1 c ником ^3%s ^1подключился к нам!"PREFIXAcsName[CheckFlags(id)], name)
        else
            
    client_print_color(0print_team_default"%s ^4%s^1 c ником ^3%s ^1Звание: ^4%s^1 %s зaнимaeт ^3%s ^1 место из ^4%s^1."PREFIXAcsName[CheckFlags(id)], nameAESLvl[id], CheckFlags(id) == "Подключилась к нам! Она" "Подключился к нам! Он"rankget_statsnum());
        return 
    PLUGIN_HANDLED
    #else
        
    client_print_color(0print_team_default"%s ^4%s^1 c ником ^3%s!!! %s зaнимaeт ^3%s ^1 место из ^4%s^1."PREFIXAcsName[CheckFlags(id)], nameAESLvl[id], CheckFlags(id) == "Подключилась к нам! Она" "Подключился к нам! Он"rankget_statsnum());
    #endif
    }

    public 
    client_disconnected(id){
        if(
    is_user_hltv(id) || is_user_bot(id)){
           return 
    PLUGIN_CONTINUE
        
    }
        new 
    name_d[32]
        
    get_user_name(idname_d31)
        if (
    CheckFlags(id) == 5)
            
    client_print_color(0,print_team_default"%s ^3%s^1 Покинула игру! Надеемся что она еще вернется."PREFIXname_d)
        else
            
    client_print_color(0,print_team_default"%s ^3%s^1 Покинул игру! Надеемся что он еще вернется."PREFIXname_d)
        return 
    PLUGIN_HANDLED
    }

    stock CheckFlags(id)
    {
        static 
    iFlags
        iFlags 
    get_user_flags(id)
        if(
    iFlags FLAG_1) return 1
        
    else if(iFlags FLAG_2) return 2
        
    else if(iFlags FLAG_3) return 3
        
    else if(iFlags FLAG_4) return 4
        
    else if(iFlags FLAG_5) return 5
        
    else if(is_user_steam(id)) return 6
        
    return 0
    }

    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
            
    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
    }
     
    agresogun нравится это.
  13. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.770
    Симпатии:
    835
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    zooxel52, этот код на 1.8.2 работать не будет, ибо в 1.8.2 нет форварда client_disconnected
    --- добавлено 01.02.16 ---
    Неясно зачем ты закомментировал макрос
     
  14. zooxel52 Пользователь

    Регистрация:
    10.01.16
    Сообщения:
    32
    Симпатии:
    13
    Пол:
    Мужской
    --- добавлено 01.02.16 ---
    Только щас заметил.... Поправил:
    PHP:
    #include <amxmodx>
    #include <csstats>
    #if AMXX_VERSION_NUM < 183
    #include <colorchat>
    #define client_disconnected client_disconnect
    #endif
    /*Если у вас несколько флагов то покажет тот который зачекает первым*/
    #define FLAG_1 ADMIN_LEVEL_A //Флаг который чекает первым
    #define FLAG_2 ADMIN_LEVEL_B //Флаг который чекает вторым
    #define FLAG_3 ADMIN_LEVEL_H //Третим
    #define FLAG_4 ADMIN_LEVEL_D //Четвертым
    #define FLAG_5 ADMIN_LEVEL_C //Пятым


    //Закоментировать, если не нужно Званий AES
    #define AES

    #if defined AES
    #include <aes_main>
    #endif
    /* Что бы убрать приветствие Бандита или любого другого просто замени на "Игрок" в static const AcsName*/
    new const AcsName[][] = { "Игрок""Гл. Админ""Админ""ViP""Бандит""Девушка""Steam ^1игрок"}
    /* Префикс перед выводом информации о подключившемся */
    new const PREFIX[] = "^3[^4Join^3]";

    public 
    plugin_init() {
       
    register_plugin("Join_Teg""1.0""zooxel")
    }          
    public 
    client_putinserver(id)
    {
       
    set_task(4.0,"client_connected",id)
    }
    public 
    client_connected(id) {
    if(
    is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)){
      return 
    PLUGIN_CONTINUE 
    }    
    new 
    name[32]
    get_user_name(idname31)
    new 
    rankstats[8], bh[8]
    rank get_user_stats(id,stats,bh)
    #if defined AES
    static AESLvl[33][64], aStats[AES_ST_END]
    aes_get_player_stats(idaStats)
    aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], 63LANG_SERVER)
    if(
    aStats[AES_ST_EXP] <= 3)
    client_print_color(0,print_team_default"%s ^4Новый ^3%s^1 c ником ^3%s ^1подключился к нам!"PREFIXAcsName[CheckFlags(id)], name)
    else
       
    client_print_color(0print_team_default"%s ^4%s^1 c ником ^3%s ^1Звание: ^4%s^1 %s зaнимaeт ^3%s ^1 место из ^4%s^1."PREFIXAcsName[CheckFlags(id)], nameAESLvl[id], CheckFlags(id) == "Подключилась к нам! Она" "Подключился к нам! Он"rankget_statsnum());
    return 
    PLUGIN_HANDLED
    #else
    client_print_color(0print_team_default"%s ^4%s^1 c ником ^3%s!!! %s зaнимaeт ^3%s ^1 место из ^4%s^1."PREFIXAcsName[CheckFlags(id)], nameAESLvl[id], CheckFlags(id) == "Подключилась к нам! Она" "Подключился к нам! Он"rankget_statsnum());
    #endif
    }

    public 
    client_disconnected(id){
    if(
    is_user_hltv(id) || is_user_bot(id)){
      return 
    PLUGIN_CONTINUE
    }
    new 
    name_d[32]
    get_user_name(idname_d31)
    client_print_color(0print_team_default"%s ^3%s^1 %s"PREFIXname_dCheckFlags(id) == "Покинула игру! Надеемся что она еще вернется." "Покинул игру! Надеемся что он еще вернется.");
    return 
    PLUGIN_HANDLED
    }

    stock CheckFlags(id)
    {
    static 
    iFlags
    iFlags 
    get_user_flags(id)
    if(
    iFlags FLAG_1) return 1
    else if(iFlags FLAG_2) return 2
    else if(iFlags FLAG_3) return 3
    else if(iFlags FLAG_4) return 4
    else if(iFlags FLAG_5) return 5
    else if(is_user_steam(id)) return 6
    return 0
    }
      
    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
            
    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
    }
     
    Последнее редактирование: 01.02.16
    agresogun нравится это.
  15. LeninChan^^ Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.121
    Симпатии:
    368
    Пол:
    Мужской
    Telegram:
    LeninChan
    Информация.

    Тема перенесена в архив