Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Meelo - zdjęcie

Meelo

Rejestracja: 09.11.2010
Aktualnie: Nieaktywny
Poza forum Ostatnio: 01.03.2011 14:34
-----

#190997 Czy jest plugin kickujacy NS ?

Napisane przez Meelo w 22.11.2010 23:28

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Non-Steam kicker"
#define VERSION "1.0"
#define AUTHOR "peku33"


public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
}
public client_authorized(id)
{
	if(get_maxplayers() <= get_playersnum() + 1)
	{
		new authid[64];
		get_user_authid(id, authid, 63);
		if(check_nonsteam(authid))
		{
			server_cmd("kick #%d Slot zarezerwowany dla graczy STEAM", get_user_userid(id));
		}
		else
		{
			new players[32], plnum;
			get_players(players, plnum, "bhc");
			new kickid;
			if(plnum > 0)
			{
				kickid = find_id_to_kick(players, plnum);
			}
			else
			{
				get_players(players, plnum, "hc");
				kickid = find_id_to_kick(players, plnum);
			}
			if(kickid)
			{
				server_cmd("kick #%d Pierwszenstwo maja gracze STEAM", get_user_userid(kickid));
			}
			else
			{
				//Brak wolnego slota do gry
				server_cmd("kick #%d Brak wolnego slota", get_user_userid(id));
			}
		}
	}
}
public check_nonsteam(authid[])
{
	if(containi(authid, "LAN"))
	{
		return true;
	}
	return false;
}
public find_id_to_kick(players[32], plnum)
{
	new authid[64];
	for(new i = 0; i < plnum; i++)
	{
		get_user_authid(i, authid, 63);
		if(check_nonsteam(authid))
		{
			return i;
		}
	}
	return false;
}


/* AMX Mod X
*   Slots Reservation Plugin
*
* by the AMX Mod X Development Team
*  originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
*  This program is free software; you can redistribute it and/or modify it
*  under the terms of the GNU General Public License as published by the
*  Free Software Foundation; either version 2 of the License, or (at
*  your option) any later version.
*
*  This program is distributed in the hope that it will be useful, but
*  WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*  General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software Foundation,
*  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*  In addition, as a special exception, the author gives permission to
*  link the code of this program with the Half-Life Game Engine ("HL
*  Engine") and Modified Game Libraries ("MODs") developed by Valve,
*  L.L.C ("Valve"). You must obey the GNU General Public License in all
*  respects for all of the code used other than the HL Engine and MODs
*  from Valve. If you modify this file, you may extend this exception
*  to your version of the file, but you are not obligated to do so. If
*  you do not wish to do so, delete this exception statement from your
*  version.
*/

#include <amxmodx>
#include <amxmisc>

new g_ResPtr
new g_HidePtr

public plugin_init()
{
    register_plugin("Slots Reservation", AMXX_VERSION_STR, "AMXX Dev Team")
    register_dictionary("adminslots.txt")
    register_dictionary("common.txt")
    g_ResPtr = register_cvar("amx_reservation", "0")
    g_HidePtr = register_cvar("amx_hideslots", "0")
}

public plugin_cfg()
{
    set_task(3.0, "MapLoaded")
}

public MapLoaded()
{
    if (!get_pcvar_num(g_HidePtr))
        return
    
    new maxplayers = get_maxplayers()
    new players = get_playersnum(1)
    new limit = maxplayers - get_pcvar_num(g_ResPtr)
    setVisibleSlots(players, maxplayers, limit)
}

public ackSignal(id)
{
    new lReason[64]
    format(lReason, 63, "%L", id, "DROPPED_RES")
    server_cmd("kick #%d ^"%s^"", get_user_userid(id), lReason)
    
    return PLUGIN_HANDLED
}

public client_authorized(id)
{
    new maxplayers = get_maxplayers()
    new players = get_playersnum(1)
    new limit = maxplayers - get_pcvar_num(g_ResPtr)
    
    if (access(id, ADMIN_RESERVATION) || (players <= limit))
    {
        if (get_pcvar_num(g_HidePtr) == 1)
            setVisibleSlots(players, maxplayers, limit)
        return PLUGIN_CONTINUE
    }
    
    if(is_steam(id))
    {
        new tokick = get_fresh_ns()
        
        if(!tokick || !is_user_connected(tokick))
        {
            ackSignal(id)
            return PLUGIN_CONTINUE            
        }
        
        ackSignal(tokick)        
        return PLUGIN_CONTINUE
    }
        
    ackSignal(id)    
    
    return PLUGIN_HANDLED
}

public client_disconnect(id)
{
    if (!get_pcvar_num(g_HidePtr))
        return PLUGIN_CONTINUE
    
    new maxplayers = get_maxplayers()
    
    setVisibleSlots(get_playersnum(1) - 1, maxplayers, maxplayers - get_pcvar_num(g_ResPtr))
    return PLUGIN_CONTINUE
}

stock is_steam(id)
{
    static authid[33]
    get_user_authid(id, authid, 32)
    
    if(contain(authid, "0:0") != -1 || contain(authid, "0:1") != -1)
    {
        return true
    }
    return false
}  

stock get_fresh_ns()
{
    static who, itime, shortest = 0x7fffffff, players[32], num, i
    get_players(players, num)
    for(i = 0; i < num; i++)
    {
        if(is_steam(players[i]) || !is_user_connected(players[i]))
            continue
        
        if(get_user_flags(players[i] & ADMIN_RESERVATION))
            continue
        
        itime = get_user_time(players[i]) 
        if(shortest > itime )
        {
            shortest = itime
            who = players[i]
        }        
    }
    return who
}

stock setVisibleSlots(players, maxplayers, limit)
{
    new num = players + 1
    
    if (players == maxplayers)
        num = maxplayers
    else if (players < limit)
        num = limit
    
    set_cvar_num("sv_visiblemaxplayers", num)
}

albo to, albo to ;) takie znalazłem
  • +
  • -
  • 1


#190945 Czy jest plugin kickujacy NS ?

Napisane przez Meelo w 22.11.2010 19:52

Jest.
  • +
  • -
  • 0


#189336 ban za napisanie ip w say

Napisane przez Meelo w 17.11.2010 18:21

Powiedz co Ci tam nie psauje bo to mój plugin i nie chce sma udostępnic.

Twój plugin ?
Don't say IPsv0.1 by JGHG
W tym temacie:http://amxx.pl/dont-ips-nie-banuje-t8076.html
jest .sma tego pluginu :)
  • +
  • -
  • 1