Соеденить 2 плагина

Тема в разделе "Запросы", создана пользователем cangncan, 14 июл 2015.

  1. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    Добрый день ребята!
    Мод сервера - DOD
    Имеется два плагина:

    Первый плагин "Connect Announce", с ограниченным функционалом, при подключении игрока проигрывает звук как в HL и пишет в чат сообщение вида:
    Player (STEAM_0:0:1190045352) connected

    Второй плагин "Country On Connect", многофункционален, пишет как Hud сообщения так и обычные, все функции можно посмотреть в исходнике.
    Пишет hud и чат - сообщения вида:
    Player is playing from: Russia Federation

    Помогите соеденить функционал плагинов, а именно добавить возможности ПЕРВОГО плагина ВО ВТОРОЙ, т.е.
    добавить прогрывание звука и сделать чтобы сообщение выглядело так:
    Player (STEAM_0:0:1190045352) connected from: Russia Federation

    исходники:
    Посмотреть вложение connect_announce.sma
    Посмотреть вложение country_connect.sma
     
  2. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.721
    Симпатии:
    461
    Вроде так

    PHP:
    #include <amxmodx>
    #include <amxmisc>
    #include <geoip>


    #define ADMIN ADMIN_IMMUNITY

    new g_szSoundFile[] = "buttons/blip1.wav";
    new 
    p_connectp_adminsp_botsp_usersp_defaultp_msgp_msgmode
    new p_redp_greenp_bluep_positionp_position_xp_position_y

    public plugin_precache()
    {
        
    precache_sound(g_szSoundFile);
    }

    public 
    plugin_init()
    {
        
    register_plugin("Country Connect Announce""1.4""diamond-optic, v3x, Danyas")
        
        
    p_connect register_cvar("amx_country_connect","0")
        
        
    p_users register_cvar("amx_country_connect_users","1")
        
    p_admins register_cvar("amx_country_connect_admins","1")
        
    p_bots register_cvar("amx_country_connect_bots","1")
        
        
    p_default register_cvar("amx_country_connect_default","United States")
        
        
    p_msg register_cvar("amx_country_connect_msg"," * $name ($sid) connected from: $country")
        
        
    p_msgmode register_cvar("amx_country_connect_msgmode","1")
        
        
    p_position register_cvar("amx_country_connect_hudpos","1")
        
    p_position_x register_cvar("amx_country_connect_hudx","-1.0")
        
    p_position_y register_cvar("amx_country_connect_hudy","-1.0")
        
        
    p_red register_cvar("amx_country_connect_hudred","255")
        
    p_green register_cvar("amx_country_connect_hudgreen","255")
        
    p_blue register_cvar("amx_country_connect_hudblue","255")
    }

    public 
    client_putinserver(id)
    {
        if(!
    get_pcvar_num(p_connect) || !is_user_connected(id) || (access(id,ADMIN) && !get_pcvar_num(p_admins)) || (is_user_bot(id) && !get_pcvar_num(p_bots)) || (!is_user_bot(id) && !access(id,ADMIN) && !get_pcvar_num(p_users)))
            return 
    PLUGIN_CONTINUE
        
        
        
    new msg[128]
        
    get_pcvar_string(p_msg,msg,127)
            
        new 
    szAuthID[33];
        
    get_user_authid(id szAuthID 32);
        
        new 
    name[32]
        
    get_user_name(id,name,31)
        
        
    replace(msg,127,"$name",name)
        
    replace(msg,127,"$sid",szAuthID)
        
        
        new 
    country[46]
        
        if(
    is_user_bot(id))
            
    get_pcvar_string(p_default,country,45)
        else    
            {
            new 
    ip[17]
            
            
    get_user_ip(id,ip,16,1)
            
    geoip_country(ip,country,45)
            
            if(
    equali(country,"error"))
                
    formatex(country,45,"Unknown")
            }

        
    replace(msg,127,"$country",country)
            
        switch(
    get_pcvar_num(p_msgmode))
            {
            case 
    1client_print(0,print_chat,"%s",msg)
            case 
    2: {
                new 
    color[3]
                
    color[0] = get_pcvar_num(p_red)
                
    color[1] = get_pcvar_num(p_green)
                
    color[2] = get_pcvar_num(p_blue)
                    
                switch(
    get_pcvar_num(p_position))
                    {
                    case 
    1set_hudmessage(color[0],color[1],color[2], -1.00.2504.04.00.50.34)
                    case 
    2set_hudmessage(color[0],color[1],color[2], 0.050.6704.04.00.50.34)
                    case 
    3set_hudmessage(color[0],color[1],color[2], -1.00.8204.04.00.50.34)
                    case 
    4set_hudmessage(color[0],color[1],color[2], get_pcvar_float(p_position_x), get_pcvar_float(p_position_y), 04.04.00.50.34)
                    }
                
                
    show_hudmessage(0,"%s",msg)
                }
            }
            
        new 
    iPlayers[32], iNumi;
        
    get_players(iPlayersiNum);
        for(
    0<= iNumi++)
        {
            new 
    iPlayers[i];
            if(!
    is_user_connected(x) || is_user_bot(x)) continue;
            
    client_cmd(x"spk %s"g_szSoundFile);
        }    
        return 
    PLUGIN_CONTINUE
    }
     

    Вложения:

    • cc.amxx
      Размер файла:
      5,7 КБ
      Просмотров:
      0
    • cc.sma
      Размер файла:
      3,1 КБ
      Просмотров:
      3
    cangncan нравится это.
  3. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    SteamID по-прежнему не печатается
    - Виноват Danyas! Я забыл что квар надо и в конфиге записать...
    Все пучком)))
    Спасибо за помощь!

     
    Последнее редактирование: 15 июл 2015
    Danyas нравится это.
  4. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    Danyas, может еще кто-нибудь, помогите сделать финальную версию этого плагина!
    Имеются плагины, которые
    помимо модуля GeoIP используют еще и модуль GeoIPse (база городов)
    пример использования модуля в плагинах:

    1. Посмотреть вложение players_info.sma
    2. Посмотреть вложение CityConnectAnnouncer.sma

    нужно добавить использование этого модуля в исправленный плагин от Danyas, чтобы сообщение выглядело так:
    $name ($sid) connected from: $city, $country

    также в плагине есть исправление для неизвестных стран (error заменяется на unknown)
    вроде это
    if(equali(country,"error"))
    formatex(country,45,"Unknown")
    нужно это сделать и для городов

    модуль Geoipcity
    база geoipcity
     
  5. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Может так, не пробывал amx'e писать ниразу
    PHP:
    #include <amxmodx>
    #include <amxmisc>
    #include <geoipse>
    #include <geoip>


    #define ADMIN ADMIN_IMMUNITY

    new g_szSoundFile[] = "buttons/blip1.wav";
    new 
    p_connectp_adminsp_botsp_usersp_defaultp_msgp_msgmode
    new p_redp_greenp_bluep_positionp_position_xp_position_y

    public plugin_precache()
    {
        
    precache_sound(g_szSoundFile);
    }

    public 
    plugin_init()
    {
        
    register_plugin("Country Connect Announce""1.4""diamond-optic, v3x, Danyas")
        
        
    p_connect register_cvar("amx_country_connect","0")
        
        
    p_users register_cvar("amx_country_connect_users","1")
        
    p_admins register_cvar("amx_country_connect_admins","1")
        
    p_bots register_cvar("amx_country_connect_bots","1")
        
        
    p_default register_cvar("amx_country_connect_default","United States")
        
        
    p_msg register_cvar("amx_country_connect_msg"," * $name ($sid) connected from: $city$country")
        
        
    p_msgmode register_cvar("amx_country_connect_msgmode","1")
        
        
    p_position register_cvar("amx_country_connect_hudpos","1")
        
    p_position_x register_cvar("amx_country_connect_hudx","-1.0")
        
    p_position_y register_cvar("amx_country_connect_hudy","-1.0")
        
        
    p_red register_cvar("amx_country_connect_hudred","255")
        
    p_green register_cvar("amx_country_connect_hudgreen","255")
        
    p_blue register_cvar("amx_country_connect_hudblue","255")
    }

    public 
    client_putinserver(id)
    {
        if(!
    get_pcvar_num(p_connect) || !is_user_connected(id) || (access(id,ADMIN) && !get_pcvar_num(p_admins)) || (is_user_bot(id) && !get_pcvar_num(p_bots)) || (!is_user_bot(id) && !access(id,ADMIN) && !get_pcvar_num(p_users)))
            return 
    PLUGIN_CONTINUE
        
        
        
    new msg[128]
        
    get_pcvar_string(p_msg,msg,127)
            
        new 
    szAuthID[33];
        
    get_user_authid(id szAuthID 32);
        
        new 
    name[32]
        
    get_user_name(id,name,31)
        
        
    replace(msg,127,"$name",name)
        
    replace(msg,127,"$sid",szAuthID)
        
        
        new 
    country[46], city[46]
        
    city "New York"
        
        
    if(is_user_bot(id))
            
    get_pcvar_string(p_default,country,45)
        else    
        {
            new 
    ip[17]
            
            
    get_user_ip(id,ip,16,1)
            
    geoip_country(ip,country)
            
    geoip_city(ipcity)
             
            if( 
    equal(country"error") ) 
            {
                if( !
    contain(ip"192.168.") || !contain(ip"10. ") || !contain(ip"172.") || equal(ip"127.0.0.1") )country "LAN";
                else if( 
    equal(ip"loopback")) country "LAN Owner";
                else 
    country "Unknown Country";
            }
        }

        
    replace(msg,127,"$country",country)
        
    replace(msg,127,"$city",city)    
        switch(
    get_pcvar_num(p_msgmode))
            {
            case 
    1client_print(0,print_chat,"%s",msg)
            case 
    2: {
                new 
    color[3]
                
    color[0] = get_pcvar_num(p_red)
                
    color[1] = get_pcvar_num(p_green)
                
    color[2] = get_pcvar_num(p_blue)
                    
                switch(
    get_pcvar_num(p_position))
                    {
                    case 
    1set_hudmessage(color[0],color[1],color[2], -1.00.2504.04.00.50.34)
                    case 
    2set_hudmessage(color[0],color[1],color[2], 0.050.6704.04.00.50.34)
                    case 
    3set_hudmessage(color[0],color[1],color[2], -1.00.8204.04.00.50.34)
                    case 
    4set_hudmessage(color[0],color[1],color[2], get_pcvar_float(p_position_x), get_pcvar_float(p_position_y), 04.04.00.50.34)
                    }
                
                
    show_hudmessage(0,"%s",msg)
                }
            }
            
        new 
    iPlayers[32], iNumi;
        
    get_players(iPlayersiNum);
        for(
    0<= iNumi++)
        {
            new 
    iPlayers[i];
            if(!
    is_user_connected(x) || is_user_bot(x)) continue;
            
    client_cmd(x"spk %s"g_szSoundFile);
        }    
        return 
    PLUGIN_CONTINUE
    }  
     
  6. Саша Шеин

    Саша Шеин

    Сообщения:
    1.258
    Симпатии:
    191
    Scarface_slv, молорик!

    Разве cs 1.6 ещё жива?
     
  7. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    Scarface_slv, не компилируется(((
     
  8. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    cangncan, А ты инклуд geoipse.inc закинул в папку include?
     
  9. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    конечно! у меня бы и старая версия не компильнулась бы...
     
  10. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    хз тогда, у меня компилируется
     

    Вложения:

    • 1.amxx
      Размер файла:
      2,7 КБ
      Просмотров:
      0
    • 1.sma
      Размер файла:
      3,7 КБ
      Просмотров:
      1
  11. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    Компилируется, но не работает