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 122pyrhzx9jk8 dodana przez Kawon, 20.08.2012 22:19
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.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
/* / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / *
 
 
	[Rejestracja Nicku www]
 
 
 
Skrypt do rejestracji nicku na stronie www.
wersja 0.1
 
Cvary:
 
 
 
    amx_rejestracja_host	- host (Do bazy danych)
 
    amx_rejestracja_user	- nazwa uzytkownika (Do bazy danych)
 
    amx_rejestracja_password	- haslo (Do bazy danych)
 
    amx_rejestracja_db		- nazwa bazy danych (Do bazy danych)
 
    amx_rejestracja_site	- strona na ktorej znajduje sie skrypt
 
    amx_rejestracja_maxwarn	- maksymalna ilosc pomylek przy wpisywaniu hasel
 
    amx_rejestracja_seckick	- czas na wpisanie hasla (po tym czasie KICK)
 
    amx_rejestracja_name	- blokuje zmiane nicka na serwerze by F.E.A.R.&Many Edit: kyku
 
 
 
 
- - - - - - - - - - - - - - -
 
 Logi zmian.
 
 
 
 
 
 
 
 
	0.1 - wydanie
 
 
 
 
			    |
			 _ _|
 
 
 
 
 
* / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / * / */
 
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <colorchat>
 
#define NAZWA "[Rejestracja Nicku www]"
#define WERSJA "0.1"
#define AUTOR "kyku"
#define tag "RNW"
 
#define table "users"
 
new Handle:g_SqlX
new Handle:g_SqlConnection
new g_error[512]
new warn[33];
new zalogowany[33];
 
public plugin_init(){
 
	register_plugin(NAZWA, WERSJA, AUTOR)
	register_cvar("amx_rejestracja_host", "localhost"); // Host
	register_cvar("amx_rejestracja_user", "root"); // Uzytkownik
	register_cvar("amx_rejestracja_password", ""); // Haslo
	register_cvar("amx_rejestracja_db", "fragtrade"); // Nazwa bazy danych
	register_cvar("amx_rejestracja_site", "fragtrade.net"); // Strona na ktorej jest skrypt
	register_cvar("amx_rejestracja_maxwarn", "3"); // Maksymalna ilosc pomylek przy wpisywaniu hasel
	register_cvar("amx_rejestracja_seckick", "10"); // Czas na wpisanie hasla (po tym czasie KICK)
	register_cvar("amx_rejestracja_name", "1"); // Blokuje zmiane nicka na serwerze (by F.E.A.R.&Many)
 
	register_message(get_user_msgid("SayText"), "message")
	register_clcmd("say", "login")
	set_task(0.1, "check_sql")
 
	return PLUGIN_CONTINUE 
}
 
 
public message()
{
	new arg[32]
	get_msg_arg_string(2, arg, 31)
	if(containi(arg,"name")!=-1 && get_cvar_num("amx_rejestracja_name"))
	{
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}
public client_infochanged(id) // by F.E.A.R.&Many edit: kyku
{
    new newname[32],oldname[32]
    get_user_info(id, "name", newname,31)
    get_user_name(id,oldname,31)
    if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE;
    if(!equali(newname, oldname) && get_cvar_num("amx_rejestracja_name"))
    {
        set_user_info(id,"name",oldname)
        ColorChat(id, GREEN, "[%s]^x01 Zakaz zmiany nicka!", tag);
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
} 
public client_authorized(id){
 
	warn[id] = 0;
	zalogowany[id] = 0;
	set_task(3.0, "client_start", id)
 
}
public client_disconnect(id){
	warn[id] = 0;
	zalogowany[id] = 0;	
}
 
public client_start(id){
 
	new data[1];
	data[0] = id-1337;
	new query[1001];
	new name[31];
	get_user_name(id, name, 30);
	format(query,1000,"SELECT pass FROM `%s` WHERE name='%s'",table,name) 
	SQL_ThreadQuery(g_SqlX,"QueryHandle",query, data, 1)
 
}
 
public delaykick(id){
	if(id>1000){
	id-=1000;
	if(is_user_connected(id)){
		new strona[64];
		get_cvar_string("amx_rejestracja_site", strona, 63);
		server_cmd("kick #%d ^"Zarejestruj sie na %s^"",get_user_userid(id), strona)			
	}
	} else if(is_user_connected(id)){
		new name[33];
		get_user_name(id, name, 32);
		ColorChat(id, GREEN, "[%s]^x01 Gracz %s zostal wyrzucony przez serwer. Powod: Czas na zalogowanie skonczyl sie.",tag , name)
		server_cmd("kick #%d ^"Przekroczono czas na zalogowanie sie!^"",get_user_userid(id))
	}
}
 
public login(id){
 
new haslo[192] 
read_args(haslo,191)
 
if ( containi (haslo, "/login") != -1){
 
    if(zalogowany[id]){
	ColorChat(id, GREEN, "[%s]^x01 Jestes juz zalogowany.",tag );
	return PLUGIN_HANDLED;
    }
 
    replace_all(haslo, 191, "", "")
    replace_all(haslo, 191, "/login ", "")
    remove_quotes(haslo)
    new name[32];
    get_user_name(id, name, 31);
    new query[1001]
    format(query,1000,"SELECT pass, name FROM `%s` WHERE name='%s'",table,name) 
    SQL_ThreadQuery(g_SqlX,"LoginH",query, haslo,192)
    return PLUGIN_HANDLED;
}
if(!zalogowany[id]){
	ColorChat(id, GREEN, "[%s]^x01 By pisac musisz byc zalgowanym! (Wpisz:^x03 /login haslo ^x01)",tag );
	return PLUGIN_HANDLED;
}
 
return PLUGIN_CONTINUE;
} 
 
 
public LoginH(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){
 
 
	if(FailState == TQUERY_CONNECT_FAILED){
		return log_amx("[Rejestracja]: Brak polaczenia z baza danych.")
	}else if(FailState == TQUERY_QUERY_FAILED){
		return log_amx("[Rejestracja]: Zle zbudowane zapytanie")
	}else if(Errcode){
		return log_amx("[Rejestracja]: Blad w zapytaniu: %s",Error)
	}
 
 
	new haslo[50];
	new nick[33];	
 
	new tab = SQL_FieldNameToNum(Query, "pass");
	new tab2 = SQL_FieldNameToNum(Query, "name");
	if(SQL_MoreResults(Query))
	{
		SQL_ReadResult(Query, tab, haslo, 49);
		SQL_ReadResult(Query, tab2, nick, 32);
		new id = get_user_index(nick);
		if(is_user_connected(id)){
		if(equal(Data,haslo)){
			ColorChat(id, GREEN, "[%s]^x01 Zalogowales sie.",tag );
			warn[id] = 0;
			zalogowany[id] = 1;
			if(task_exists(id))
				remove_task(id);
 
		} else {
			warn[id]++;
			ColorChat(id, GREEN, "[%s]^x01 Podano zle haslo. (%d/%d)",tag ,  warn[id], get_cvar_num("amx_rejestracja_maxwarn"));
			if(warn[id] >= get_cvar_num("amx_rejestracja_maxwarn")){
				server_cmd("kick #%d ^"Za duzo prob wpisania hasla.^"",get_user_userid(id));
				warn[id] = 0;
			}
		}
		}
	}
	return PLUGIN_CONTINUE
}
 
public QueryHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
	new id=Data[0];
	if(FailState == TQUERY_CONNECT_FAILED){
		return log_amx("[Rejestracja]: Brak polaczenia z baza danych.")
	}else if(FailState == TQUERY_QUERY_FAILED){
		return log_amx("[Rejestracja]: Zle zbudowane zapytanie")
	}else if(Errcode){
		return log_amx("[Rejestracja]: Blad w zapytaniu: %s",Error)
	}
	if(id < 0){
		id += 1337;	
		if(is_user_connected(id)){
		if(SQL_NumResults(Query) <= 0){
			new strona[64];
			get_cvar_string("amx_rejestracja_site", strona, 63);
			ColorChat(id, GREEN, "[%s]^x01 By grac na serwerze musisz sie zarejestrowac na stronie serwera.",tag )
			ColorChat(id, GREEN, "[%s]^x01 Wejdz na %s i zarejestruj sie!",tag , strona)
			set_task(1.5, "delaykick", id+1000);
		} else {
			new ilesekund = get_cvar_num("amx_rejestracja_seckick");
			if(ilesekund < 10){
				ilesekund = 10;
			}
			new str[11];
			num_to_str(ilesekund, str, 10)
			ColorChat(id, GREEN, "[%s]^x01 Twoj nick jest juz zarejestrowany. Zaloguj sie wpisujac^x03 /login haslo",tag )
			ColorChat(id, GREEN, "[%s]^x01 Masz %s sekund na zalogowanie sie.",tag , str)
			set_task(str_to_float(str), "delaykick", id);
		}
		}
	} 
	return PLUGIN_CONTINUE
}
public plugin_end() 
{ 
	SQL_FreeHandle(g_SqlConnection)
	return
} 
public check_sql()
{
     new errorcode
     new host[64], user[64], pass[64], db[64];
 
     get_cvar_string("amx_rejestracja_host", host, 63);
     get_cvar_string("amx_rejestracja_user", user, 63);
     get_cvar_string("amx_rejestracja_password", pass, 63);
     get_cvar_string("amx_rejestracja_db", db, 63);
 
     g_SqlX = SQL_MakeDbTuple(host, user, pass, db)
 
     g_SqlConnection = SQL_Connect(g_SqlX,errorcode,g_error,511);
 
     if (!g_SqlConnection) {
        console_print(0,"[Rejestracja]: Nie mozna polaczyc sie z baza danych.")
        return log_amx("[Rejestracja]: Nie mozna polaczyc sie z baza danych.")
     }
     new query_create[1001]
     format(query_create,1000,"CREATE TABLE IF NOT EXISTS `%s`(`id` int(11) NOT NULL auto_increment,`name` varchar(100) NOT NULL default '',`pass` varchar(100) NOT NULL default '',PRIMARY KEY  (`id`));",table)
     SQL_ThreadQuery(g_SqlX,"QueryHandle",query_create)
     console_print(0,"[AMXX SQL] Connected!")
     return PLUGIN_CONTINUE 
}

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