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
 

Wklejka 130813442710674 dodana przez Leihto, 15.06.2011 11:40
Typ:


130813442710674
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
/* AMX Mod script
* 
* (c) 2002-2003, DynAstY translated by Adrix, upgraded by Hleb
* This file is provided as is (no warranties).
*  Opis i instalacja na www.cs.bitmar.net 
* Players with immunity won't be checked
*/
 
#include <amxmodx>
 
new HIGHPING_MAX 
new HIGHPING_TIME  
new HIGHPING_TESTS
new HIGHPING_ADMIN
new HIGHPING_PUNISH
 
new iNumTests[33]
 
public plugin_init() {
	register_plugin("High Ping Kicker PL","2.0","Hleb")
	register_cvar("amx_hpk_max", "120")
	register_cvar("amx_hpk_time", "10")
	register_cvar("amx_hpk_tests", "3")
	register_cvar("amx_hpk_admin", "1")
	register_cvar("amx_hpk_punish", "0")
	HIGHPING_MAX = get_cvar_num("amx_hpk_max") // Maksymalny dopuszczalny ping u gracza.
	HIGHPING_TIME = get_cvar_num("amx_hpk_time") // Czas po którym osoba z wysokim pingiem jest wyrzucana.
	HIGHPING_TESTS = get_cvar_num("amx_hpk_tests") // Ilosc sprawdzen zanim cos zrobi.
	HIGHPING_ADMIN = get_cvar_num("amx_hpk_admin") // Czy sprawdzenie pingu dotyczy tez adminow z flagami ADMIN_IMMUNITY czy ADMIN_RESERVATION.
	HIGHPING_PUNISH = get_cvar_num("amx_hpk_punish") // Rodzaj kary za wysoki ping. 0 - kick, 1 - ban 1 min, 2 - ban 5 min.
	if (HIGHPING_TIME > 15) HIGHPING_TIME = 15
	if (HIGHPING_TESTS > 4) HIGHPING_TESTS = 4
	if (HIGHPING_MAX > 200) HIGHPING_MAX = 200
	return PLUGIN_CONTINUE
}
 
public client_disconnect(id) {
	remove_task(id)
	return PLUGIN_CONTINUE
}
 
public client_putinserver(id) {
	iNumTests[id] = 0
	if (!is_user_bot(id)) {
		new param[1]
		param[0] = id
		set_task(30.0, "showWarn", id, param, 1)
	}
	return PLUGIN_CONTINUE
}
 
punishPlayer(id) {
	new name[32]
	get_user_name(id, name, 31)
	new uID = get_user_userid(id)
	new IP[33]
	get_user_ip(id, IP, 32)
	if (HIGHPING_PUNISH == 0)
	{
	server_cmd("kick #%d", uID)
	client_cmd(id, "echo ^"[HPK] Przykro mi, masz zbyt wysoki ping. Sprobuj pozniej...^"; disconnect")
	client_print(0, print_chat, "[HPK] %s zostal rozlaczony za wysoki ping!", name)
	}
	if (HIGHPING_PUNISH == 1)
	{
	server_cmd("banid 1 #%d", IP)
	client_cmd(id, "echo ^"[HPK] Przykro mi, masz zbyt wysoki ping. Sprobuj pozniej...^"; disconnect")
	client_print(0, print_chat, "[HPK] %s zostal zbanowany na 1 minute za wysoki ping!", name)
	}
	if (HIGHPING_PUNISH == 2)
	{
	server_cmd("banid 5 #%d", IP)
	client_cmd(id, "echo ^"[HPK] Przykro mi, masz zbyt wysoki ping. Sprobuj pozniej...^"; disconnect")
	client_print(0, print_chat, "[HPK] %s zostal zbanowany na 5 minut za wysoki ping!", name)
	}
	return PLUGIN_CONTINUE
} 
 
public checkPing(param[]) {
	new id = param[0]
	if (HIGHPING_ADMIN == 1)
	{
		if ((get_user_flags(id) & ADMIN_IMMUNITY) || (get_user_flags(id) & ADMIN_RESERVATION)) 
		{
			remove_task(id)
			client_print(id, print_chat, "[HPK] Sprawdzanie pingu wylaczone, poniewaz masz immunitet...")
			return PLUGIN_CONTINUE
		}
	}
	else
	{
		new p, l
		get_user_ping(id, p, l)
		if (p > HIGHPING_MAX)
			++iNumTests[id]
		else
			if (iNumTests[id] > 0) --iNumTests[id]
		if (iNumTests[id] > HIGHPING_TESTS)
			punishPlayer(id)
	}
	return PLUGIN_CONTINUE
}
 
public showWarn(param[]) {
	client_print(param[0], print_chat, "[HPK] Gracz z pingiem wyzszym niz %dms zostanie wyrzucony!!!", HIGHPING_MAX)
	set_task(float(HIGHPING_TIME), "checkPing", param[0], param, 1, "b")
	return PLUGIN_CONTINUE
}