[Duda]: Max counts por IP
#1

Bueno estaba definiendo en mi sistema de registro un Maximo de cuentas por IP
osea que solo se puedan registrar 2 cuentas maximas por IP

Pero no me salio, no sй si alguno me pueda dar alguna forma la que yo usaba en el Conncet y en el dialogo era asн

Maso menos

pawn Код:
if(PlayerInfo[playerid][Registrado] > 2)//Variable que se pondra 1 al registrarse y el > es mayor 2 de counts maximos
Kick(playerid);//El jugador sera kickeado al entra y verificar que tendra mas de 2 Counts de la misma IP
GetStampIP(playerid);//Extraer la IP

stock GetStampIP(playerid)
{
new S_IP[16];
Join_Stamp=GetTickCount();
GetPlayerIp(playerid,S_IP,16);
format(ban_s, 16, "%s", S_IP);
}

//Obviamente no creo que con la variable detenga el registro de mas de 2 cuentas del mismo IP ademas es solo un ejemplo
//necesitaria hacer un GetCount de IP

//Aca el dialogo al registrarse
if(udb_Create(PlayerName2(playerid),inputtext))
{
new guardar[20], year,month,day;    getdate(year, month, day);
GetPlayerName(playerid,name,sizeof(name)); format(file,sizeof(file),"/Registros/%s.sav",udb_encode(name));
GetPlayerIp(playerid,tmp3,100); dini_Set(file,"ip",tmp3);
dUserSetINT(PlayerName2(playerid)).("registrado",1);
format(guardar, sizeof(guardar), "%d/%d/%d",day,month,year);
dini_Set(file,"RegisteredDate",guardar);
dUserSetINT(PlayerName2(playerid)).("Logueo",1);
dUserSetINT(PlayerName2(playerid)).("Admin",0);
dUserSetINT(PlayerName2(playerid)).("Kits",0);
dUserSetINT(PlayerName2(playerid)).("Galletas",0);
dUserSetINT(PlayerName2(playerid)).("Dinero",0);
dUserSetINT(PlayerName2(playerid)).("Exp",0);
dUserSetINT(PlayerName2(playerid)).("kills",0);
dUserSetINT(PlayerName2(playerid)).("Muertes",0);

PlayerInfo[playerid][Logueado] = 1;
PlayerInfo[playerid][Registrado] = 1;
GameTextPlayer(i,"~g~Registrado",3000,3);
GuardarInfo(playerid);
return 1;
}
Espero una idea
Reply
#2

No pierdas tiempo haciendolo, hoy dнa creo que muy pocos tienen IP fija. Reinician router y ya se saltan la restricciуn.
Reply
#3

que son galletas?
Reply
#4

Pon esto arriba en del gamemode:

Код:
enum IPinfo
{
Iip[32],
Iusado
};

new IPInfo[500][IPinfo];


CargarIPS()
{
	new arrCoords[26][64];
	new strFromFile2[256];
	new File: file = fopen("cargarips.cfg", io_read);
	if (file)
	{
		new ips;
		while (ips < 500) // cambia esto por las ips que quieras que sea el limite
		{
			fread(file, strFromFile2);
			splits(strFromFile2, arrCoords, '|');
			strmid(IPInfo[ips][Iip], arrCoords[0], 0, strlen(arrCoords[0]), 128);
	  		IPInfo[ips][Iusado] = strval(arrCoords[1]);
	  		
			ips++;
		}
		print("IP's Cargadas.");
		fclose(file);
	}
	return 1;
}

GuardarIPS()
{

	new szFileStr[512],
	File: fHandle = fopen("cargarips.cfg", io_write);

	for(new ips; ips < 500; ips++)
	{
		format(szFileStr, sizeof(szFileStr), "%s|%d\r\n",
			IPInfo[ips][Iip],
			IPInfo[ips][Iusado]);
			fwrite(fHandle, szFileStr);
	}
	return fclose(fHandle);
}
En ongamemodeinit pon "CargarIPS();"

el guardar ips puedes ponerlo en un timer de 1 hora para que no te de lag

Esto iria en onplayerconnect "GetStampIP(playerid);"
Aqui la funcion:
Код:
stock GetStampIP(playerid)
{
new S_IP[16],ban_s[32];
GetPlayerIp(playerid,S_IP,16);
format(ban_s, 16, "%s", S_IP);
for(new ips; ips < 500; ips++)
{
if(strcmp(IPInfo[ips][Iip], ban_s, true) == 0)
{
   if(IPInfo[ips][Iusado] > 2) Kick(playerid);
   return 1;
}
else if(IPInfo[ips][Iip] == 0)
{
    format(IPInfo[ips][Iip], 16, "%s", S_IP);
    break;
}
}
return 1;
}
Si te falta algo o hay un bug o no entiendes algo avisame por pm o aqui para que lo vean todos y nos ayudemos entre todos
Reply
#5

Si no me equivoco en la carpeta del samp cuando te lo descargas hay un archivo llamado maxip.pwn solo metelo en tu gm.
Reply
#6

Julian - tienes razуn en sн con eso

Jurgen - galletas son al estilo minecraft donde puedes obtener cosas en una tienda como galletas y mas cosas
osea para que el dinero sea util y comprar comida

dindong1 Gracias por el cargador de IPS seguro me servira como base para acoplar aunque me desanime poco por lo de Julian porque es verdad pero de algo servira ya que el FTP se me llena de cuentas la ultima vez tenia 30.000
pero por otro lado ya habia creado un limite de IPS en el sv, en otras palabras limite que mas de 2 playeres con el mismo IP no puedan entrar al SV.

- Zodiaco gracias pero lo que me dices no viene al tema se de ese FS pero solo es un MaxIP y se pueden crear mejores ese solo es un BETA, en mi caso limito users por IP, pero gracias a todos


PD: me referia a maximos registros por IP, en fin seguro ya lo averiguare gracias hommies.
Reply
#7

Vale cualquier cosas aqui estamos, otra cosa... No te desanimes por personas que dicen que esta mal algo o simplemente no sirve tu haz lo que tengas que hacer y hazlo bien olvida las demas personas tu sabes bien que estas haciendo, nos vemos
Reply
#8

Quote:
Originally Posted by dindong1
Посмотреть сообщение
Vale cualquier cosas aqui estamos, otra cosa... No te desanimes por personas que dicen que esta mal algo o simplemente no sirve tu haz lo que tengas que hacer y hazlo bien olvida las demas personas tu sabes bien que estas haciendo, nos vemos
Sуlo le aconsejamos. Es perder el tiempo hacer algo que es fбcil de "vulnerar".
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)