[Ayuda] Comparar IP's entre usuarios.
#1

La duda es sencilla, que si la IP de 7 y de 2 es la misma, realice una acciуn, sea banear, kickea y etc. Estuve pensando y lo que se hizo es que cada ID al logear, guarde su IP en una variable en MAX_PLAYERS. Pero no sй bien cуmo realizar la comparaciуn, ya que son textos, pero tambiйn nъmeros.

Код:
if((!strcmp(Info[playerid][IP], Info[giveplayerid][IP])) // No funciona, devuelve 0/1.
{

}

if(Info[playerid][IP] == Info[giveplayerid][IP] // Funciona a ratos.
{

}
No pregunto por el cуdigo completo, si no como se realiza esta revisiуn y que de un resultado, no sй muy bien el uso de STRCMP. Saludos! Mil gracias el que sepa, recibirб reputaciуn. En general si X es igual a Y cuando a textos se refiere, por ejemplo.

Este cуdigo por ejemplo, pensй en ello, pero no me funciona, para que de como respuesta 1= Multicuenta, 0 = No lo es.

Код:
Revisar entre 2 IP, algo estilo: CheckPlayersIP(id1, id2) y devuelve 1 - 0.
CheckPlayerIPs(id)
{
    new IP[2][16], ips;
    GetPlayerIp(playerid, IP[0], 16);
    for(new i; i<GetMaxPlayers(); i++)
    {
        if(IsPlayerConnected(i))
        {
             GetPlayerIp(i, IP[1], 16);
             if(!strcmp(IP[0], IP[1]))ips++;
       }
   }
if(ips > 2)Kick(id); // Este cуdigo seria obtener la IP de un usuario y compararla con el resto de conectados, pero lo que intento es que se obtengan 2 ID's y sean comparados. Pero el cуdigo creado por mi al principio no funciona.
}
Reply
#2

Код:
enum PlayerData
{
     ...,
     IP[16],
     ...
};

new Info[MAX_PLAYERS][PlayerData];

//Obtener la IP del jugador al conectarse o en algъn momento
GetPlayerIp(playerid, Info[playerid][IP], 16);

//Comprobar si la IP de playerX es igual a la IP de playerY

if(!strcmp(Info[playerX][IP],Info[playerY][IP],false))
{
     //PlayerX y PlayerY tienen la misma IP!
}
Reply
#3

Quote:
Originally Posted by aoEXE
Посмотреть сообщение
Код:
...

if(!strcmp(Info[playerX][IP],Info[playerY][IP],false))
{
     //PlayerX y PlayerY tienen la misma IP!
}
Voy a probar eso, creo que es el "false" en lo que fallй, muchas gracias.
Reply
#4

Creo que fallaste en el guardado de las IP, el false ese estб de sobra, ese parбmetro es para las letras mayъsculas y minъsculas. Cuando estб en true tomarб como que BiEn es igual a bien, si estб en false solo dirб que son iguales cuando la variable 1 sea BIEN y la 2 BIEN, o bien y bien, pero como acб comparas nъmeros, ese parбmetro no hay que usarlo, aunque igualmente funcionarб.
Reply
#5

PHP код:
if(strcmp(Info[playerid][IP], Info[giveplayerid][IP], true) == 0
Reply
#6

http://forum.sa-mp.com/showpost.php?...postcount=4569

Ejemplo:

PHP код:
new PlayersIP[MAX_PLAYERS] = { 0, ... };
public 
OnPlayerConnect(playerid)
{
    new 
ip[16];
    
GetPlayerIp(playeridipsizeof(ip));
    
PlayersIP[playerid] = ip2long(ip);
}
CheckPlayerIP(playerid)
{
    new 
ips 0;
    new 
max GetMaxPlayers();
    for(new 
0maxi++)
    {
        if(
IsPlayerConnected(i))
        {
            if(
PlayersIP[playerid] == PlayersIP[i])
                
ips++;
        }
    }
    return 
ips;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)