It shows me the wrong information
#1

PHP код:
format(Stringsizeof(String), "(ID:%d | Ping: %d | IP: %s | Country: %s)",playerid,GetPlayerPing(playerid),IP,Country); 
Lets see what is wrong:
ID - Okay
Ping - it always says 128 or 256.While my ping is actually 10-50
IP - it shows my only 1 number - usually 56
Country - while im actually from Israel,it always telling me something else (Italy,Norway,Spain,Turkey etc..) and im not using any proxy or something

Full script:
PHP код:
   new Country[256],Name[256],IP[256];
   
CleanChat(playerid);
   
GetPlayerName(playeridNamesizeof(Name));
   
GetPlayerCountry(playerid,Country);
   
GetPlayerIp(playeridIPsizeof(IP));
   
format(Stringsizeof(String), "(ID:%d | Ping: %d | IP: %s | Country: %s)",playerid,GetPlayerPing(playerid),IP,Country);
    
SendClientMessage(playeridCOLOR_JString); 
So what is the problem?
Reply
#2

bump,please help
Reply
#3

I think you have to use %d for the IP

The rest I can't realy help you with as I never used thoose functions.
Reply
#4

@Mikkel: No, IP is a string (it contains dots).

Hmm, as for the country function, that's not built in so that might be bugged.
GetPlayerIp should work fine though, try making the size of the string smaller.
Reply
#5

And how to so?
Ps - here is the country function:
Edit: no,still doesnt work
PHP код:
GetPlayerCountry(playerid,Country[256]){
       new 
IPAddress[256];
       new 
a,b,c,d,ipf;
       new 
File:IPFile;
       new 
Text[256],start,end;
       
GetPlayerIp(playerid,IPAddress,sizeof(IPAddress));
       
GetParams(IPAddress);
       
a=strval(Params[0]);
       
b=strval(Params[1]);
       
c=strval(Params[2]);
       
d=strval(Params[3]);
       if(
a==127 && b==&& c==&& d==1){
           
format(Country,sizeof(Country),"Localhost");
           return 
1;
       }
       
ipf = (16777216*a) + (65536*b) + (256*c) + d;
       if(!
fexist("CountriesIPs/IPLIST.csv")) return SendClientMessage(playerid,0xFF0000FF,"Country file not found.");
       
IPFile=fopen("CountriesIPs/IPLIST.csv",io_read);
       
fread(IPFile,Text,sizeof(Text),false);
    while(
strlen(Text)>0){
        
GetFileData(Text);
        
start=strval(FileData[0]);
        
end=strval(FileData[1]);
        if(
ipf>=start && ipf<=end){
            
format(Country,sizeof(Country),"%s(%s)",FileData[6],FileData[5]);
            
fclose(IPFile);
            return 
1;
        }
        
fread(IPFile,Text,sizeof(Text),false);
    }
    
fclose(IPFile);
    return 
1;

Reply
#6

Buuuuump
Reply
#7

If it gives you the wrong country, then your IPLIST.csv file is wrong. Just use that GEOip plugin
Reply
#8

Quote:
Originally Posted by dice7
Посмотреть сообщение
If it gives you the wrong country, then your IPLIST.csv file is wrong. Just use that GEOip plugin
I solved that problem,apperently some IPs were incorrect,now what about the other strings?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)