[FilterScript] M'RCON2 System (Simple y sencillo)
#1

Hola, hoy hace poquito buscaba un sistema de RCON-2 y como solo encontraba sistemas de administraciуn con sistema de segunda rcon me puse a crear uno yo solo ya que buscaba uno a parte.

M'RCON2 System
Este sistema trae una seguridad para su servidor, sabemos que hay Hacks que pueden llegar a violar la contraseсa Rcon de su servidor y con eso una vez que se obtenga con los comandos de Rcon se puede modificar y hasta apagar el servidor.

Este sistema trae dos protecciones:

-Sistema de segunda RCON
--Al iniciar con la Rcon al instante aparece un dialogo (INPUT) en el cual se debe ingresar la segunda rcon que es solamente modificable desde el cуdigo, al fallar 3 veces en el ingreso de la RCON2 el mismo usuario se llevarб un Ban.

-Sistema de intentos en la primera RCON
--Al fallar 3 veces con la Rcon el mismo usuario se llevarб un ban


Es un sistema sencillo pero a medida lo irй mejorando.

El sistema no requiere ningъn include para su compilaciуn


Descarga:

Mediafire: Source

Mediafire: Compilaciуn

Pastebin: Source

Creditos:
Yo :3
+ la gente que me enseсo este lenguaje :3


~Saludos
Reply
#2

Un link a pastebin?
Reply
#3

Se ve bueno, Lo implementarй a mi GameMode, Claro, Respetando los debidos crйditos.
Saludos.
Reply
#4

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Un link a pastebin?
Aquн

~Saludos.
Reply
#5

Quote:
Originally Posted by MatrixenXD
Посмотреть сообщение
Aquн

~Saludos.
Como esta el sistema no va ha funcionar correctamente. En "!success", no estas validando IP's. Y hay que usar "break" cuando es necesario.

Mira aquн y veras porque:

Versiуn con un jugador con la misma IP:
pawn Код:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <foreach>

// MAIN:

main()
{
    print("Development Mode: rcon_protection.amx");
}

// CALLBACKS:

public OnGameModeInit()
{  
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    new playerid = -1;
    foreach(new i: Player)
    {
        if(strcmp(ip, GetPlayerIP(i), true) == 0)
        {
            playerid = i;
            break;
        }
    }

    if(playerid != -1)
    {
        if(success)
        {
            if(IsPlayerAdmin(playerid)) // Change this for your admin system's condition that validates a player's admin level possession.
            {
                printf("[RCON] %s (%d) has logged-in.", PlayerName(playerid), playerid);
            }
            else
            {
                printf("[RCON] %s (%d) was kicked from the server (Bad RCON Login).", PlayerName(playerid), playerid);
                Kick(playerid);
            }
        }
    }
    return 1;
}

// FUNCTIONS:

stock PlayerName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    return name;
}

stock GetPlayerIP(playerid)
{
    new ip[16];
    GetPlayerIp(playerid, ip, sizeof(ip));
    return ip;
}
Versiуn para 3 jugadores con la misma IP:
pawn Код:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <foreach>

// MAIN:

main()
{
    print("Development Mode: rcon_protection_multiple.amx");
}

// CALLBACKS:

public OnGameModeInit()
{  
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    new playerid[3] = -1, count;
    foreach(new i: Player)
    {
        if(strcmp(ip, GetPlayerIP(i), true) == 0)
        {
            playerid[count] = i;
            count ++;

            if(count == 3) break;
        }
    }

    for(new i = 0; i < 3; i ++)
    {
        if(playerid[i] != -1)
        {
            if(success)
            {
                if(IsPlayerAdmin(playerid[i])) // Change this for your admin system's condition that validates a player's admin level possession.
                {
                    printf("[RCON] %s (%d) has logged-in.", PlayerName(playerid[i]), playerid[i]);
                }
                else
                {
                    printf("[RCON] %s (%d) was kicked from the server (Bad RCON Login).", PlayerName(playerid[i]), playerid[i]);
                    Kick(playerid[i]);
                }
            }
        }
    }
    return 1;
}

// FUNCTIONS:

stock PlayerName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    return name;
}

stock GetPlayerIP(playerid)
{
    new ip[16];
    GetPlayerIp(playerid, ip, sizeof(ip));
    return ip;
}
Reply
#6

Pos a mi sv me funcionу, lol.
Pero si tu lo dices Sick, lo agregarй para la v0.2 con tus creditos.
Reply
#7

me funciono de maravilla gracias brother
Reply
#8

No le veo la utilidad. Esto es algo que se ve implementado en muchos servidores y Gamemodes liberados, no es nuevo.
Sin mencionar que los diбlogos se pueden "esconder" o "evitar" con nuestro querido s*beit. De nada sirve mostrar un diбlogo como mйtodo de verificaciуn si este puede ser no respondido.
No nos olvidemos de que si el servidor tiene RCON remota habilitada, el usuario podrнa usar RCON desde una consola para йstos fines. La mejor soluciуn es evitar que el usuario ingrese a RCON, de alguna forma.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)