Page 1 of 1

Cerere plugin

Posted: 11 Jan 2020, 00:31
by mariusexeqt
Plugin Cerut: limita ip
Descriere (adica ce face el mai exact): permite doar un singur jucător cu același IP
Încearcă cineva să bage boți.. Am rom protect dar verifica cam greu si durează ceva până da ban
Serverul impune conditii strict HLDS/REHLDS?: nu
Ai cautat pluginul?(daca da, precizeaza cum): da, am probat tot ce se putea.. Unele dădeau kick jucătoriol chiar daca nu aveau același IP
Necesita mod special?:nu

Re: Cerere plugin

Posted: 11 Jan 2020, 15:32
by mariusexeqt
up.

Re: Cerere plugin

Posted: 11 Jan 2020, 21:59
by levin
nu există să dea sau să verifice greu la rom protect
dacă ai reunion setezi limita din .cfg

Re: Cerere plugin

Posted: 12 Jan 2020, 08:41
by Laurentiu P.
era prin cereri un asemenea plugin facut, insa nu ii bana doar nu le permitea se se conecteze pe server

Re: Cerere plugin

Posted: 12 Jan 2020, 09:47
by mariusexeqt
Mă poți ajuta să-l găsesc? , am cautat până acum si n-am găsit..
si in reunion nu gasesc asa ceva..

Re: Cerere plugin

Posted: 21 Jan 2020, 19:18
by levin
reauth* greșeala mea

Code: Select all

#include <amxmodx>

new KM[]="Someone is already connected with your ip address!"

new g_iMaxPlayers;

public plugin_init() 
{
    register_plugin( "Block Same Ips", "1.0", "AlliedModders" );
    
    g_iMaxPlayers = get_maxplayers();
}

public client_putinserver(client)//x2check4me
{
    if( CheckIpAddress( GetIp( client ) ) ) UserKick( client, KM );
}

public client_connect( client )	if( CheckIpAddress( GetIp( client ) ) ) UserKick( client, KM );

stock bool:CheckIpAddress( const szConnectIp[] )
{
    for( new i = 1; i <= g_iMaxPlayers; i++ )
    {
        if( !is_user_connected( i ) ) continue;
        
        if( equal( szConnectIp, GetIp( i ) ) )
            return true;
    }
    
    return false;
}

stock GetIp( const index )
{
    static ip[ 35 ];
    
    get_user_ip( index, ip, charsmax( ip ), 1 );
    
    return ip;
}

stock UserKick( iClient, szReason[] )
{
    message_begin( MSG_ONE, SVC_DISCONNECT, {0,0,0}, iClient );
    write_string( szReason );
    message_end();
} 

Code: Select all

#include <amxmodx>

public client_connect()	ip_check()
public client_putinserver()	ip_check()
public ip_check()
{
	new players[32], num, ip[16], ip2[16], player;
	get_players(players, num);
	get_user_ip(id, ip, charsmax(ip), 1);
	
	for(new k = 0; k < num; k++)
	{
		player = players[k];
		if (player == id)
			continue;
		
		get_user_ip(player, ip2, charsmax(ip2), 1);
		if (equal(ip, ip2))
		{
			server_cmd("kick #%d ^"Someone is already connected with your ip address!^"", get_user_userid(id));
			break;
		}
	}
}

Code: Select all

#include <amxmodx>

new gIP[32], gbConnected;

public plugin_init()
    register_plugin("Kick player(s) on same IP", "1.0", "[ --{-@ ]");

public client_putinserver(id) {

    static IP[16], playersnum;
    get_user_ip(id, IP, charsmax(IP), 1);
    
    gIP[--id] = iIP(IP);

    if ( !playersnum )
        playersnum = get_maxplayers();

    for ( new i ; i < playersnum ; i++ ) {

        if ( ~gbConnected & (1 << i) )
            continue;

        if ( equali(gIP[id], gIP[i]) ) {
            
            new szName[2][32], szIP[16];
            get_user_name(++id, szName[0], 31);
            
            get_user_name(++i, szName[1], 31);
            get_user_ip(i, szIP, 15, 1);
            
            server_cmd("kick #%d ^"Someone is already connected with your ip address!^"", get_user_userid(id));
            log_to_file("ip_kick.txt", "%s kicked. IP matched %s's IP (%s == %s).", szName[0], szName[1], IP, szIP);
            return;
        }
    }
    
    gbConnected |= (1 << id);
}

public client_disconnect(id)
    gbConnected &= ~ (1 << id - 1);

stock iIP(IP[]) {
    new pos, ret;

    for ( new i ; i < 4 ; i++ ) {
        ret |= str_to_num(IP[pos]) << ( ( 3 - i ) * 8 );
        pos = strfind(IP, ".", _, pos) + 1;
    }

    return ret;
}

Code: Select all

#define PLUGIN "Block same IPs"
#define VERSION "0.2"
#define AUTHOR "Mario AR."

#pragma semicolon 1

new Trie:g_IPs, g_ignore[16];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    g_IPs = TrieCreate();
}

public plugin_end()
    TrieDestroy(g_IPs);

public client_putinserver(id)
{
    static szIP[16];
    get_user_ip(id, szIP, charsmax(szIP), 1);
    
    if (TrieKeyExists(g_IPs, szIP))
    {
        g_ignore = szIP;
        server_cmd("kick #%d ^"Someone is already connected with your ip address!^"", get_user_userid(id));
    }
    else
        TrieSetCell(g_IPs, szIP, 1);
}

public client_disconnect(id)
{
    static szIP[16];
    get_user_ip(id, szIP, charsmax(szIP), 1);

    if (g_ignore[0] && equal(szIP, g_ignore))
    {
        g_ignore[0] = 0;
        return;
    }
    
    TrieDeleteKey(g_IPs, szIP);
} 

Re: Cerere plugin

Posted: 21 Jan 2020, 19:46
by mariusexeqt
deocamdata am rezolvat prin protectia oferita de host...oricum..mersi mult

Re: Cerere plugin

Posted: 18 Mar 2020, 10:08
by mariusexeqt
L E V I N wrote:
11 Jan 2020, 21:59
nu există să dea sau să verifice greu la rom protect
dacă ai reunion setezi limita din .cfg
reunion se poate adauga pe hlds?

Re: Cerere plugin

Posted: 18 Mar 2020, 11:57
by Laurentiu P.
doar pe rehlds