[AYUDA]Sobre OnRonLoginAttempt
#1

Hola, he estado mirando por la wiki de sa-mp y he encontrado una funciona para la 0.3 bastante interesante, antes de aсadirla queria preguntarles una duda

Aqui la original de samp wiki (en espaсol)

Код:
public OnRconLoginAttempt(ip[], password[], success)
{
  if(!success) //If the password was incorrect
  {
    printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password);
    new pip[16];
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
      GetPlayerIp(i, pip, sizeof(pip));
      if(!strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login
      {
        SendClientMessage(i, 0xFFFFFFFF, "Contraseсa Incorrecta. Has sido baneado"); //Manda mensaje
        Ban(i); //Jugador baneado
      }
    }
  }
  return 1;
}
Me parece algo excesivo que si pones mal la contraseсa te banee, asi que quiero preguntarles, si es posible, hacer que banee a la persona al segundo intento de poner mal la contraseсa.

Resumiendo, si la funcion de arriba me pueden explicar como hacerla para que al segundo error banee
Reply
#2

No lo baneen, cбmbialo po kick.
Reply
#3

si es posible
y segun lo que vi en varios post sobre OnRconLoginAttempt el codigo de wiki esta mal xD

para que lo banee/kickee o lo que vos quieras cuando ingresa la contraseсa mal 2 veces puedes hacer algo asi:

debajo de los includes
pawn Код:
new RconFails[MAX_PLAYERS];
pawn Код:
public OnRconLoginAttempt(ip[], password[], success)
{
  if(!success){ //si la contraseсa no es correta...
    for(new i=0; i<MAX_PLAYERS; i++){ //define i y hace un bucle x todos los jugadores
      new PIP[20], str[128]; //definicion de variables
      GetPlayerIp(i, PIP, sizeof(PIP)); //toma la ip del jugador y la asigna a la variable PIP
      if(!strcmp(ip, PIP, true)){ //si la ip de donde viene el intento de logueo rcon es igual a la de algun jugador...
        RconFails[i]++; //suma 1 a la variable RconFails
        if(RconFails[i] == 2){ //si RconFails es = 2 entonces...   (Puedes cambiar el 2 x el numero de intentos que quieras)
          new playername[MAX_PLAYER_NAME]; //definicion de variable
          GetPlayerName(i, playername, sizeof(playername)); //toma el nombre del jugador y se lo asigna a la variable playername
          format(str, sizeof(str), "%s ha sido baneado automaticamente. [Razуn: Intentar loguearse con Rcon]", playername); //define un formato de texto(como va a ser el texto)
          SendClientMessageToAll(0xAFAFAFAA, str); //envia un mensaje con el texto anterior
          Ban(i); //banea la ip del jugador
        }
      }
      else{ //si la ip no es la de algun jugador...
        format(str, sizeof(str), "banip %s", ip); //define un formato de texto
        printf("la ip %s intento loguearse con rcon y fue baneada", ip); //envia a la consola un mensaje
        SendRconCommand("str"); //envia el comando str(en este caso el de banear esa ip)
      }
    }
  }
  return 1;
}
sintetisado lo que hace es comprar si la ip del intento de logueo rcon es la de un jugador entonces suma 1 a RconFails, y si esta variable es 2 entonces banea esa ip.
pero si por el contrario la ip del intento de logueo rcon no es la de algun jugador banea la ip automaticamente.

espero que te sirva

Edit: Intenta ahora que corregi 3 cosas falaba una /de alcaracion no estaba definido el color y habia tipiado un 1 de mas al lado de una i
lo probe y compilpa perfecto
Reply
#4

Erm...me da erorr

Код:
DIRECCION....(86) : error 029: invalid expression, assumed zero
DIRECCION....(86) : warning 215: expression has no effect
DIRECCION....(86) : error 001: expected token: ";", but found "]"
DIRECCION....(86) : error 029: invalid expression, assumed zero
DIRECCION....(86) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
pd: el codio de la wiki funcioonaba, lo probe ayer
Reply
#5

Pero que banee.. no se si seria muy productivo cambialo por kick.
Reply
#6

a mi me interesa que banee a la segunda o tercera
Reply
#7

Quote:
Originally Posted by SuperMarioRol
a mi me interesa que banee a la segunda o tercera
pero el samp tiene algunos bugs,por ejemplo algfuns cuando logueamos rcon con la password bien nos tira bad password,por eso fijate de ese lado tambien no?
Reply
#8

en realidad a mi modo de ver no sirve kickear ya que si lo estan intentando x afuera (es decir q el que intenta loguearse con rcon no es un jugador) para que lo vas a "kiciear" si ni esta en el servidor, definitivamente me quedo con el ban.
Quote:
Originally Posted by xenowort
Quote:
Originally Posted by SuperMarioRol
a mi me interesa que banee a la segunda o tercera
pero el samp tiene algunos bugs,por ejemplo algfuns cuando logueamos rcon con la password bien nos tira bad password,por eso fijate de ese lado tambien no?
y en el tiempo que llevo en servidores de samp casi 2 aсos nunca me paso q al loguearme correctamente con rcon me diga que me retorne bad password.
Reply
#9

Quote:
Originally Posted by the_chaoz
en realidad a mi modo de ver no sirve kickear ya que si lo estan intentando x afuera (es decir q el que intenta loguearse con rcon no es un jugador) para que lo vas a "kiciear" si ni esta en el servidor, definitivamente me quedo con el ban.
Quote:
Originally Posted by xenowort
Quote:
Originally Posted by SuperMarioRol
a mi me interesa que banee a la segunda o tercera
pero el samp tiene algunos bugs,por ejemplo algfuns cuando logueamos rcon con la password bien nos tira bad password,por eso fijate de ese lado tambien no?
y en el tiempo que llevo en servidores de samp casi 2 aсos nunca me paso q al loguearme correctamente con rcon me diga que me retorne bad password.
a mi me paso,pero queda a discusion de 1 si quieres que banee que banee xd
Reply
#10

buweno, volvemos al topic? soluciones para arreglar los errores? alguna fomra de scriptearlo diferente?

Repito: Busco una forma que banee al seugndo intento
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)