Нужна помощь в Добавление Города

Gena2017

Участник
Сообщения
5
Реакции
0
Привет.Уважаемы Гуру. Помогите добавить в этот код.
Чтоб показывало еще из какого города.
Этот код
C-подобный:
public RankConnectCallback(client, rank, any:data){
    
    if (!g_bRankBots && (!IsValidClient(client) || IsFakeClient(client)))
        return;
        
    g_aPointsOnConnect[client] = RankMe_GetPoints(client);
    
    g_aRankOnConnect[client] = rank;
        
    new String:sClientName[MAX_NAME_LENGTH];
    GetClientName(client,sClientName,sizeof(sClientName));
    
    /* Geoip, code from cksurf */
    decl String:s_Country[32];
    decl String:s_address[32];       
    GetClientIP(client, s_address, 32);
    Format(s_Country, 100, "Unknown");
    GeoipCountry(s_address, s_Country, 100);     
    if(!strcmp(s_Country, NULL_STRING))
        Format( s_Country, 100, "Unknown", s_Country );
    else               
        if( StrContains( s_Country, "United", false ) != -1 ||
            StrContains( s_Country, "Republic", false ) != -1 ||
            StrContains( s_Country, "Federation", false ) != -1 ||
            StrContains( s_Country, "Island", false ) != -1 ||
            StrContains( s_Country, "Netherlands", false ) != -1 ||
            StrContains( s_Country, "Isle", false ) != -1 ||
            StrContains( s_Country, "Bahamas", false ) != -1 ||
            StrContains( s_Country, "Maldives", false ) != -1 ||
            StrContains( s_Country, "Philippines", false ) != -1 ||
            StrContains( s_Country, "Vatican", false ) != -1 )
        {
            Format( s_Country, 100, "The %s", s_Country );
        }           
    
    if(g_bAnnounceConnect){
        
        if(g_bAnnounceConnectChat){
        
            CPrintToChatAll("%s %t",MSG,"PlayerJoinedChat",sClientName,g_aRankOnConnect[client],g_aPointsOnConnect[client],s_Country);
            
        }
        
        if(g_bAnnounceConnectHint){
        
            PrintHintTextToAll("%t","PlayerJoinedHint",sClientName,g_aRankOnConnect[client],g_aPointsOnConnect[client],s_Country);
            
        }
    
    }
    
    if(g_bAnnounceTopConnect && rank <= g_AnnounceTopPosConnect){
        
        if(g_bAnnounceTopConnectChat){
        
            CPrintToChatAll("%s %t",MSG,"TopPlayerJoinedChat",g_AnnounceTopPosConnect,sClientName,g_aRankOnConnect[client],s_Country);
            
        }
        
        if(g_bAnnounceTopConnectHint){
        
            PrintHintTextToAll("%t","TopPlayerJoinedHint",g_AnnounceTopPosConnect,sClientName,g_aRankOnConnect[client],s_Country);
            
        }
        
    }
    
}

Оригинал

От сюда ... Другого не нашел
C-подобный:
public OnClientConnected( client )
{
     new String:IP[16];
     new String:City[32];
     GetClientIP( client, IP, 16 );
     GeoipCity( IP, City, 32 );
     PrintToChat( client, "%N is from %s", client, City );
}

Оригинал

Спасибо.. Просто хотелось что и город показывало.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #2
PHP:
public RankConnectCallback(client, rank, any:data){
    
    if (!g_bRankBots && (!IsValidClient(client) || IsFakeClient(client)))
        return;
        
    g_aPointsOnConnect[client] = RankMe_GetPoints(client);
    
    g_aRankOnConnect[client] = rank;
        
    new String:sClientName[MAX_NAME_LENGTH];
    GetClientName(client,sClientName,sizeof(sClientName));
    
    /* Geoip, code from cksurf */
    decl String:s_Country[32];
    decl String:s_City[32];
    decl String:s_address[32];       
    GetClientIP(client, s_address, 32);
    Format(s_Country, 32, "Unknown");
    GeoipCountry(s_address, s_Country, 32);
    GeoipCity(s_address, s_City, 32);
    if(!strcmp(s_Country, NULL_STRING))
        Format( s_Country, 100, "Unknown", s_Country );
    else               
        if( StrContains( s_Country, "United", false ) != -1 ||
            StrContains( s_Country, "Republic", false ) != -1 ||
            StrContains( s_Country, "Federation", false ) != -1 ||
            StrContains( s_Country, "Island", false ) != -1 ||
            StrContains( s_Country, "Netherlands", false ) != -1 ||
            StrContains( s_Country, "Isle", false ) != -1 ||
            StrContains( s_Country, "Bahamas", false ) != -1 ||
            StrContains( s_Country, "Maldives", false ) != -1 ||
            StrContains( s_Country, "Philippines", false ) != -1 ||
            StrContains( s_Country, "Vatican", false ) != -1 )
        {
            Format( s_Country, 100, "The %s", s_Country );
        }           
    
    if(g_bAnnounceConnect){
        
        if(g_bAnnounceConnectChat){
        
            CPrintToChatAll("%s %t",MSG,"PlayerJoinedChat",sClientName,g_aRankOnConnect[client],g_aPointsOnConnect[client],s_Country, s_City);
            
        }
        
        if(g_bAnnounceConnectHint){
        
            PrintHintTextToAll("%t","PlayerJoinedHint",sClientName,g_aRankOnConnect[client],g_aPointsOnConnect[client],s_Country, s_City);
            
        }
    
    }
    
    if(g_bAnnounceTopConnect && rank <= g_AnnounceTopPosConnect){
        
        if(g_bAnnounceTopConnectChat){
        
            CPrintToChatAll("%s %t",MSG,"TopPlayerJoinedChat",g_AnnounceTopPosConnect,sClientName,g_aRankOnConnect[client],s_Country);
            
        }
        
        if(g_bAnnounceTopConnectHint){
        
            PrintHintTextToAll("%t","TopPlayerJoinedHint",g_AnnounceTopPosConnect,sClientName,g_aRankOnConnect[client],s_Country);
            
        }
        
    }
    
}
Так же, надо будет отредактировать переводы. На примере русской локализации:
PHP:
	"TopPlayerJoinedChat"
	{
		"#format"	"{1:d},{2:s},{3:d},{4:s},{5:s}"
		"ru"		"Топ {RED}{1}{NORMAL} игрок {PINK}{2}{NORMAL} из {LIGHTGREEN}{4}, {5} {NORMAL}присоединился, текущий ранг {GREEN}{3}{NORMAL}."
	}

	"TopPlayerJoinedHint"
	{
		"#format"	"{1:d},{2:s},{3:d},{4:s},{5:s}"
		"ru"		"<font color='#28FF28'>Информация</font> \n Топ <font color='#FF0000'>{1}</font> игрок <font color='#B15BFF'>{2}</font> из <font color='#00FF7F'>{4}, {5}</font> присоединился \n Текущий ранг <font color='#28FF28'>{3}</font>"
	}
 

Gena2017

Участник
Сообщения
5
Реакции
0
@Kr1kuzya, Спасибо огромное... Все сделал как писали перевод тоже изменил по примеру. Но у меня не получилось... все это сделать. Плагин компилируется только с этим geocity.inc. В плагине добавлял #include <geocity> А в нем надо
C-подобный:
if( FileExists( "addons/sourcemod/data/sqlite/GeoLiteCity.sq3" ) )
Тоесть где такую базу взять не знаю...И после компиляции если запускать ,после страны всегда стоит цифра 5
Но все равно спасибо вам Огромное.
 

Вложения

  • geocity.inc
    4.8 КБ · Просмотры: 4

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #4
@Gena2017, базу можно скачать прямо с Вашей же ссылки. Там аж две ссылки.
Screenshot_2017-12-12-08-17-28-520_org.mozilla.firefox.png
 

Gena2017

Участник
Сообщения
5
Реакции
0
@Kr1kuzya, Они давно не работают (((( ..Если б можно было бы другой инклюд какой с нормальной базой... Было бы проще.
 
Сверху Снизу