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 i9bs9vzjql8 dodana przez Misiaczek ;c, 12.03.2014 11:14
Typ:



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.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
#if defined _check_player_included
#endinput
#endif
 
#define _check_player_included
 
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
 
public prebanned_check(id)
{
	id -= 204
 
	if(!get_user_state(id, PDATA_CONNECTED) || get_user_state(id, PDATA_BOT) || get_user_state(id, PDATA_IMMUNITY) || !get_pcvar_num(pcvar_show_prebanned))
	{
		return PLUGIN_HANDLED
	}
 
	new pquery[512]
 
	formatex(pquery, 511, "SELECT COUNT(*) FROM `%s%s` WHERE ((`player_id` = '%s' AND `ban_type` = 'S') OR (`player_ip` = '%s' AND `ban_type` = 'SI')) AND `expired` = '1';", g_dbPrefix, TBL_BANS, playerData[id][playerSteamid], playerData[id][playerIp])
 
	new data[1]
	data[0] = id
 
	return SQL_ThreadQuery(g_SqlX, "prebanned_check_", pquery, data, 1)
}
 
public prebanned_check_(failstate, Handle:query, error[], errnum, data[], size) {
	new id = data[0]
 
	if (failstate) {
		new szQuery[256]
		MySqlX_ThreadError( szQuery, error, errnum, failstate, 16 )
		return PLUGIN_HANDLED
	}
 
	new ban_count=SQL_ReadResult(query, 0)
 
	if(ban_count < get_pcvar_num(pcvar_show_prebanned_num))
		return PLUGIN_HANDLED
 
	new name[32], player_steamid[35], player_ip[20];
	get_user_authid(id, player_steamid, 34)
	get_user_name(id, name, 31)
	get_user_ip(id, player_ip, 19, 1)
 
	for(new i=1;i<=plnum;i++) {
		if(is_user_bot(i) || is_user_hltv(i) || !is_user_connected(i) || i==id)
			continue
		if(get_user_flags(i) & ADMIN_CHAT) {
			ColorChat(i, RED, "[AMXBans] ^x01%L",i, "PLAYER_BANNED_BEFORE", name, player_ip, player_steamid, ban_count)
		}
	}
	log_amx("[AMXBans] %L",LANG_SERVER, "PLAYER_BANNED_BEFORE", name, player_ip, player_steamid, ban_count)
 
	return PLUGIN_HANDLED
}
 
public check_player_(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
	if(failstate)
	{
		return SQL_Error(query, error, errornum, failstate)
	}
 
	new id = data[0]
 
	if(!SQL_NumResults(query) || is_user_disconnected(id))
	{
		return SQL_FreeHandle(query)
	}
 
	new ban_reason[128], admin_nick[100], admin_steamid[50], admin_ip[30], ban_type[4]
	new player_nick[50], player_steamid[50], player_ip[30], server_name[100], server_ip[30]
 
	new bid = SQL_ReadResult(query, 0)
	new ban_created = SQL_ReadResult(query, 1)
	new ban_length_int = SQL_ReadResult(query, 2) * 60
	SQL_ReadResult(query, 3, ban_reason, 127)
	SQL_ReadResult(query, 4, admin_nick, 99)
	SQL_ReadResult(query, 5, admin_steamid, 49)
	SQL_ReadResult(query, 6, admin_ip, 29)
	SQL_ReadResult(query, 7, player_nick, 49)
	SQL_ReadResult(query, 8, player_steamid, 49)
	SQL_ReadResult(query, 9, player_ip, 29)
	SQL_ReadResult(query, 10, server_name, 99)
	SQL_ReadResult(query, 11, server_ip, 29)
	SQL_ReadResult(query, 12, ban_type, 3)
 
	SQL_FreeHandle(query)
 
	if(get_pcvar_num(pcvar_debug) >= 1)
	{
		log_amx("[AMXBans] Player Check on Connect:^nbid: %d ^nwhen: %d ^nlenght: %d ^nreason: %s ^nadmin: %s ^nadminsteamID: %s ^nPlayername %s ^nserver: %s ^nserverip: %s ^nbantype: %s",
		bid, ban_created, ban_length_int, ban_reason, admin_nick, admin_steamid, player_nick, server_name, server_ip, ban_type)
	}
 
	new current_time_int = get_systime(get_pcvar_num(pcvar_offset))
 
	if((ban_length_int == 0) || (ban_created == 0) || ((ban_created + ban_length_int) > current_time_int))
	{
		new complain_url[256]
		get_pcvar_string(pcvar_complainurl, complain_url, 255)
 
		client_cmd(id, "echo ^"[AMXBans] ===============================================^"")
 
		new show_activity = get_pcvar_num(pcvar_activity)
 
		if(get_user_flags(id) & get_admin_mole_access_flag() || id == 0)
		{
			show_activity = 1
		}
 
		switch(show_activity)
		{
			case 1:
			{
				client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_9")
			}
			case 2:
			{
				client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_8", admin_nick)
			}
			case 3:
			{
				if(is_user_admin(id))
				{
					client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_8", admin_nick)
				}
				else
				{
					client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_9")
				}
			}
			case 4:
			{
				if(is_user_admin(id))
				{
					client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_8", admin_nick)
				}
			}
			case 5:
			{
				if(is_user_admin(id))
				{
					client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_9")
				}
			}
		}
 
		if(ban_length_int == 0)
		{
			client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_10")
		}
		else
		{
			new cTimeLength[128]
			new iSecondsLeft = (ban_created + ban_length_int - current_time_int)
			get_time_length(id, iSecondsLeft, timeunit_seconds, cTimeLength, 127)
			client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_12", cTimeLength)
		}
 
		replace_all(complain_url, 255, "http://", "")
 
		client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_13", player_nick)
		client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_2", ban_reason)
		client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_7", complain_url)
		client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_4", player_steamid)
		client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_5", player_ip)
		client_cmd(id, "echo ^"[AMXBans] ===============================================^"")
 
		if(get_pcvar_num(pcvar_debug) >= 1)
		{
			log_amx("[AMXBans] BID:<%d> Player:<%s> <%s> connected and got kicked, because of an active ban", bid, player_nick, player_steamid)
		}
 
		if(get_pcvar_num(pcvar_debug) >= 1)
		{
			new id_str[3]
			num_to_str(id, id_str, 3)
			log_amx("[AMXBans] Delayed Kick-TASK ID1: <%d>  ID2: <%s>", id, id_str)
		}
 
		add_kick_to_db(bid)
 
		set_task(1.0, "delayed_kick", id + 200)
 
		return PLUGIN_HANDLED
	}
	else
	{
		client_cmd(id, "echo ^"[AMXBans] %L^"", id, "MSG_11")
 
		new pquery[256]
		formatex(pquery, 255, "UPDATE `%s%s` SET `expired` = '1' WHERE `bid` = '%d';", g_dbPrefix, TBL_BANS, bid)
 
		SQL_ThreadQuery(g_SqlX, "insert_to_banhistory", pquery)
 
		if(get_pcvar_num(pcvar_debug) >= 1)
		{
			log_amx("[AMXBans] PRUNE BAN: %s", pquery)
		}
	}
 
	return PLUGIN_HANDLED
}
 
public insert_to_banhistory(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
	if(failstate)
	{
		return SQL_Error(query, error, errornum, failstate)
	}
 
	return SQL_FreeHandle(query)
}
 
public add_kick_to_db(bid)
{
	new pquery[256]
	formatex(pquery, 255, "UPDATE `%s%s` SET `ban_kicks` = `ban_kicks` + 1 WHERE `bid` = '%d';", g_dbPrefix, TBL_BANS, bid)
 
	return SQL_ThreadQuery(g_SqlX, "_add_kick_to_db", pquery)
}
 
public _add_kick_to_db(failstate, Handle:query, const error[], errornum, const data[], size, Float:queuetime)
{
	if(failstate)
	{
		return SQL_Error(query, error, errornum, failstate)
	}
 
	return SQL_FreeHandle(query)
}

Dodanych wklejek: 11179
Powered By (Pav32) Pastebin © 2011