· 6 years ago · Oct 15, 2019, 05:28 PM
1#include <amxmodx>
2#include <amxmisc>
3#include <sqlx>
4#include <cstrike>
5#include <zombie_plague_advance>
6#include <fakemeta>
7#include <zp_colored_print>
8#include <BRA_register>
9#include <cripto>
10
11#define TAGBANK "DKS Bank"
12#define TAGREG "DKS Register"
13#define TAGTKTS "DKS Tickets"
14
15#define TASK_TICKET 25154
16#define TASK_IS_AWAY 1239183
17
18const OFFSET_CSMENUCODE = 205
19const VGUI_JOIN_TEAM_NUM = 2
20
21new const g_sqlTable[] = "DKS_Bank_TB";
22new const g_DataBase[] = "DKS_Bank_DB";
23
24new numresults;
25new bkrank_nick[15][33],
26 bkrank_nicktks[15][33],
27 bkrank_tickets[33],
28 bkrank_ammopacks[33];
29
30new tempPlayerSenha[33],
31 tempPlayerSenha2[33],
32 MudarSenhaAtual[33],
33 MudarSenhaNova[33],
34 pl_tentativas[33],
35 g_bkmodel[33],
36 g_blocktime[33],
37 g_selecao[33],
38 PlayerId[33],
39 pl_Nick[33],
40 pl_SteamID[33];
41
42new Conta[45],
43 Senha[45],
44 AmmoPacks[45],
45 Tickets,
46 LastNick[45],
47 Blocked[45],
48 BlockedE[45],
49 BlockedR[45];
50
51new g_menuPosition[33],
52 g_menuPlayers[33][32],
53 g_menuPlayersNum[33],
54 g_bPagina[33];
55
56new g_msgSyncHud;
57
58new Handle:g_SqlTuple
59
60new bool:pl_logado[33],
61 bool:g_blocked[33],
62 bool:pl_hasAccess[33],
63 bool:g_rank_allowed = false;
64
65new g_Conta[33][100],
66 g_Senha[33][100],
67 pl_APs[33],
68 pl_Tickets[33],
69 g_Blocked[33],
70 g_BlockedE[33],
71 g_BlockedR[33],
72 is_user_away[33];
73
74new cvar_bantime,
75 cvar_maxtent,
76 cvar_punish,
77 cvar_pwmin,
78 cvar_pwmax,
79 cvar_logmin,
80 cvar_logmax,
81 cvar_tickets_time,
82 cvar_tickets_amnt,
83 cvar_tickets_amnt_vip;
84
85new p_laBlockTime;
86
87new const g_begin[] = "DKS_register/begin.wav";
88new const g_accept[] = "DKS_register/button_accept.wav";
89new const g_locked[] = "DKS_register/button_locked.wav";
90
91public plugin_init()
92{
93 register_plugin("DKS | SQL Reg+Bank \r05/11", "2016", "Leozinho")
94
95 register_dictionary("DKS_registro.txt")
96
97 register_forward(FM_Sys_Error, "fw_svshutdown");
98 register_forward(FM_GameShutdown, "fw_svshutdown");
99 register_forward(FM_ServerDeactivate, "fw_svshutdown");
100 register_forward(FM_ChangeLevel, "fw_svshutdown");
101 register_forward(FM_SpectatorDisconnect, "fw_svshutdown");
102
103 register_message( get_user_msgid( "ShowMenu" ), "message_show_menu" );
104 register_message( get_user_msgid( "VGUIMenu" ), "message_vgui_menu" );
105
106 register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
107
108 register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
109
110 ReadSqlite()
111 build_rank()
112 build_rank_tks()
113
114 //----------------------------------------------------------------------------
115
116 register_clcmd("[Registrar]Login_", "register_step1")
117 register_clcmd("[Registrar]Senha_", "register_step2")
118 register_clcmd("[Registrar]Confirmar_Senha_", "register_step3")
119
120 register_clcmd("[Entrar]Login_", "login_step1")
121 register_clcmd("[Entrar]Senha_", "login_step2")
122
123 register_clcmd("[MudarSenha]Senha_Atual_", "change_pwstep1")
124 register_clcmd("[MudarSenha]Nova_Senha_", "change_pwstep2")
125 register_clcmd("[MudarSenha]Confirmar_Senha_", "change_pwstep3")
126
127 register_clcmd("[Sacar]Quantia_", "cmd_saque_filter")
128 register_clcmd("[Depositar]Quantia_", "cmd_deposito_filter")
129
130 register_clcmd("[BankAdmin]Motivo_", "cmd_reason")
131 register_clcmd("[BankAdmin]Conta_", "cmd_bankadmin")
132
133 register_clcmd("[BankAdmin]Add_Packs_", "cmd_bankadmin_add")
134 register_clcmd("[BankAdmin]Edit_Packs_", "cmd_bankadmin_edit")
135
136 register_clcmd("[BankAdmin]Add_Tickets_", "cmd_bankadmin_add_tkts")
137 register_clcmd("[BankAdmin]Edit_Tickets_", "cmd_bankadmin_edit_tkts")
138
139 register_clcmd("[BankAdmin]Nova_Senha_", "cmd_bankadmin_pw")
140 register_clcmd("[BankAdmin]Confirmar_Senha_", "cmd_bankadmin_pw2")
141
142 //----------------------------------------------------------------------------
143
144 register_clcmd("chooseteam", "cmd_chooseteam")
145 register_clcmd("jointeam", "cmd_chooseteam")
146
147 register_clcmd("say", "filter_say");
148 register_clcmd("say_team", "filter_say");
149
150 cvar_logmin = register_cvar("dksregister_logmin", "3")
151 cvar_logmax = register_cvar("dksregister_logmax", "15")
152 cvar_pwmin = register_cvar("dksregister_pwmin", "3")
153 cvar_pwmax = register_cvar("dksregister_pwmax", "15")
154 cvar_maxtent = register_cvar("dksregister_maxtent", "3")
155 cvar_punish = register_cvar("dksregister_punish", "2")
156 cvar_bantime = register_cvar("dksregister_bantime", "5")
157 cvar_tickets_time = register_cvar("dks_tickets_time", "1")
158 cvar_tickets_amnt = register_cvar("dks_tickets_quantia", "1")
159 cvar_tickets_amnt_vip = register_cvar("dks_tickets_quantia_vip", "2")
160
161 //----------------------------------------------------------------------------
162
163 g_msgSyncHud = CreateHudSyncObj();
164
165 register_menucmd(register_menuid("Main Menu"), 1023, "menu_handler");
166 register_menucmd(register_menuid("Bank Menu"), 1023, "bank_handler")
167 register_menucmd(register_menuid("BK Admin Players"), 1023, "menu_action")
168 register_menucmd(register_menuid("Bank Admin Menu"), 1023, "bkadmin_edit_handler")
169 register_menucmd(register_menuid("Menu Tickets"), 1023, "menuTickets_handler")
170}
171public fw_svshutdown()
172{
173 for (new id = 1; id <= get_maxplayers(); id++)
174 if (is_user_connected(id)) atualizar_tabela(id);
175}
176public plugin_precache()
177{
178 /*new szIP[22];
179 get_user_ip(0, szIP, charsmax(szIP));
180
181 if(!equal(szIP, "187.108.192.92:27040"))
182 {
183 set_fail_state("Plugin privado, pertence ao servidor DKS.");
184 server_cmd("shutdown")
185 }*/
186
187 new szQuery[2048]
188 new len = 0
189
190 SQL_SetAffinity( "sqlite" );
191
192 if(!SQL_SetAffinity("sqlite"))
193 set_fail_state( "SQL Error: Impossivel estabelecer conexao com banco de dados." );
194
195 g_SqlTuple = SQL_MakeDbTuple("", "", "", g_DataBase);
196
197 len += format(szQuery[len], 2048, "CREATE TABLE IF NOT EXISTS `%s`( ", g_sqlTable)
198
199 len += format(szQuery[len], 2048-len, "`Index` INTEGER PRIMARY KEY ,")
200 len += format(szQuery[len], 2048-len, "`Conta` VARCHAR( 20 ) NOT NULL ,")
201 len += format(szQuery[len], 2048-len, "`Senha` VARCHAR( 20 ) NOT NULL , ")
202 len += format(szQuery[len], 2048-len, "`AmmoPacks` INTEGER( 9 ) NOT NULL DEFAULT '0' ,")
203 len += format(szQuery[len], 2048-len, "`Safely` INTEGER( 9 ) NOT NULL DEFAULT '0' , ")
204 len += format(szQuery[len], 2048-len, "`Last Nick` VARCHAR( 32 ) NOT NULL DEFAULT 'NONE' , ")
205 len += format(szQuery[len], 2048-len, "`Last Activity` INTEGER( 16 ) NOT NULL DEFAULT '0' ,")
206 len += format(szQuery[len], 2048-len, "`Blocked` INTEGER( 16 ) NOT NULL DEFAULT '0', ")
207 len += format(szQuery[len], 2048-len, "`Block Reason` VARCHAR( 128 ) NOT NULL DEFAULT 'NONE' , ")
208 len += format(szQuery[len], 2048-len, "`Tickets` INT NOT NULL DEFAULT '0')")
209
210 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
211
212 ReadSqlite()
213 build_rank()
214
215 set_task(30.0, "cmd_ativar", 0,_,_,_,0)
216
217 precache_sound(g_begin)
218 precache_sound(g_accept)
219 precache_sound(g_locked)
220}
221/*stock EmitSound(index, sound)
222{
223 switch(sound)
224 {
225 case NEGADO: client_cmd(index, "spk ^"access denied^"");
226 case CONCEDIDO: client_cmd(index, "spk ^"access granted^"");
227 case ACEITO: client_cmd(index, "spk DKS_register/button_accept");
228 case ERROR: client_cmd(index, "spk DKS_register/button_locked");
229 case BEGIN: client_cmd(index, "spk DKS_register/begin");
230 }
231}*/
232public cmd_ativar()
233 g_rank_allowed = true
234
235public plugin_cfg()
236 build_rank()
237
238public plugin_end()
239{
240 SQL_FreeHandle(g_SqlTuple)
241}
242public build_rank()
243{
244 new ErrorCode
245 new Error[512]
246 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
247
248 if(SqlConnection == Empty_Handle)
249 {
250 set_fail_state(Error)
251 }
252
253 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT `Last Nick`, `AmmoPacks` FROM `%s` ORDER BY `AmmoPacks` DESC LIMIT 10", g_sqlTable)
254
255 if(!SQL_Execute(Query))
256 {
257 ErrorCode = SQL_QueryError(Query, Error, 511)
258 SQLError("SQL Error: %s -- (%d)", Error, ErrorCode)
259 server_print("Ocorreu um erro na consulta")
260 return;
261 }
262
263 numresults = SQL_NumResults(Query)
264
265 for(new i = 0; i < numresults; i++)
266 {
267 new name[45], ammopacks
268 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Last Nick"), name[i], charsmax(name))
269 ammopacks = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"AmmoPacks"))
270
271 copy(bkrank_nick[i], charsmax(bkrank_nick), name[i])
272 bkrank_ammopacks[i] = ammopacks
273
274 SQL_NextRow(Query)
275 }
276
277}
278public build_rank_tks()
279{
280 new ErrorCode
281 new Error[512]
282 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
283
284 if(SqlConnection == Empty_Handle)
285 {
286 set_fail_state(Error)
287 }
288
289 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT `Last Nick`, `Tickets` FROM `%s` ORDER BY `Tickets` DESC LIMIT 10", g_sqlTable)
290
291 if(!SQL_Execute(Query))
292 {
293 ErrorCode = SQL_QueryError(Query, Error, 511)
294 SQLError("SQL Error: %s -- (%d)", Error, ErrorCode)
295 server_print("Ocorreu um erro na consulta")
296 return;
297 }
298
299 numresults = SQL_NumResults(Query)
300
301 for(new i = 0; i < numresults; i++)
302 {
303 new name[45], tickets
304 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Last Nick"), name[i], charsmax(name))
305 tickets = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"Tickets"))
306
307 copy(bkrank_nicktks[i], charsmax(bkrank_nicktks), name[i])
308 bkrank_tickets[i] = tickets
309
310 SQL_NextRow(Query)
311 }
312
313}
314public ReadSqlite()
315{
316 new ErrorCode
317 new Error[512]
318 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, charsmax(Error))
319 new systime = get_systime() - 2592000
320
321 if(SqlConnection == Empty_Handle)
322 {
323 set_fail_state(Error)
324 }
325
326 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM `%s` WHERE `Last Activity` <= %d AND `Last Activity` > 0 OR `Blocked` <= %d AND `Blocked` > 1", g_sqlTable, systime, get_systime())
327
328 if(!SQL_Execute(Query))
329 {
330 SQL_QueryError(Query, Error, charsmax(Error))
331 SQLError("SQL Error: %s -- (%s)", Error, Query)
332 server_print("[%s] Ocorreu um erro na consulta", TAGREG)
333 return;
334 }
335 new iconta[50], iaps[50], itimestamp, itimestamp2
336
337 while(SQL_MoreResults(Query))
338 {
339 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Conta"), iconta, charsmax(iconta))
340 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AmmoPacks"), iaps, charsmax(iaps))
341 itimestamp = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Last Activity"))
342 itimestamp2 = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Blocked"))
343
344 if(itimestamp <= systime && itimestamp > 0)
345 {
346 Login("%s -- Conta encerrada por inatividade.", TAGREG)
347 Login("Conta: %s", iconta)
348 Login("AmmoPacks: %s", iaps)
349 Login("--------------------------------------------------------------------")
350
351 static szQuery[ 128 ]
352 formatex( szQuery, charsmax( szQuery ), "DELETE FROM `%s` WHERE Conta=^"%s^";", g_sqlTable, iconta);
353 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
354 }
355 if(itimestamp2 <= get_systime() && itimestamp2 > 1)
356 {
357 Login("%s -- Conta Desbloqueada.", TAGREG)
358 Login("Conta: %s", iconta)
359 Login("--------------------------------------------------------------------")
360
361 static szQuery[ 128 ]
362 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`='0' , `Blocked`='0' , `Block Reason`='NONE' WHERE Conta =^"%s^";", g_sqlTable, iconta);
363 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
364 }
365 SQL_NextRow(Query)
366 }
367}
368public cmd_add_ticket(id)
369{
370 id -= TASK_TICKET
371
372 if(pl_logado[id] == false || cs_get_user_team(id) == CS_TEAM_SPECTATOR || cs_get_user_team(id) == CS_TEAM_UNASSIGNED) return PLUGIN_HANDLED;
373
374 if(is_user_away[id])
375 {
376 zp_colored_print(id, "!g[%s] !yVoce nao ganhara tickets devido sua inatividade no game!", TAGTKTS)
377 return PLUGIN_HANDLED
378 }
379 else
380 {
381 if(get_user_flags(id) & ADMIN_LEVEL_B)
382 {
383 pl_Tickets[id] += get_pcvar_num(cvar_tickets_amnt_vip)
384 zp_colored_print(id, "!g[%s] !yVoce ganhou !g%d !yticket%s, voce ganha a cada !g%d !yminuto%s.", TAGTKTS, get_pcvar_num(cvar_tickets_amnt_vip), get_pcvar_num(cvar_tickets_amnt_vip) > 1 ? "s" : "", get_pcvar_num(cvar_tickets_time), get_pcvar_num(cvar_tickets_time) > 1 ? "s" : "")
385 zp_colored_print(id, "!g[%s] !yVoce ganha o dobro de ticket porque voce e vip!", TAGTKTS)
386 Save_Tickets(id)
387 }
388 else
389 {
390 pl_Tickets[id] += get_pcvar_num(cvar_tickets_amnt)
391 zp_colored_print(id, "!g[%s] !yVoce ganhou !g%d !yticket%s, voce ganha a cada !g%d !yminuto%s.", TAGTKTS, get_pcvar_num(cvar_tickets_amnt), get_pcvar_num(cvar_tickets_amnt) > 1 ? "s" : "", get_pcvar_num(cvar_tickets_time), get_pcvar_num(cvar_tickets_time) > 1 ? "s" : "")
392 Save_Tickets(id)
393 }
394 }
395 return PLUGIN_CONTINUE;
396}
397public fw_PlayerPreThink(id)
398{
399 new button = pev(id, pev_button)
400
401 if(button&IN_BACK || button&IN_FORWARD || button&IN_RUN || button&IN_JUMP || button&IN_MOVELEFT || button&IN_MOVERIGHT || button&IN_LEFT || button&IN_RIGHT)
402 {
403 remove_task(id+TASK_IS_AWAY)
404
405 if(is_user_away[id])
406 {
407 is_user_away[id] = false
408 zp_colored_print(id, "!g[%s] !ySeu ganho de tickets foi retomado!", TAGTKTS)
409 }
410
411 }
412 else if(!task_exists(id+TASK_IS_AWAY) && pl_logado[id]) set_task(20.0, "cmd_away", id+TASK_IS_AWAY);
413}
414
415public cmd_away(id)
416{
417 id -= TASK_IS_AWAY
418
419 if(!is_user_alive(id) || pl_logado[id] == false) return PLUGIN_HANDLED
420
421 is_user_away[id] = true
422 zp_colored_print(id, "!g[%s] !yVoce nao ganhara tickets devido sua inatividade no game!", TAGTKTS)
423
424 return PLUGIN_CONTINUE
425}
426public show_rank(id)
427{
428 new szQuery[2048], len = 0
429
430 if(!g_rank_allowed)
431 {
432 zp_colored_print(id, "!g[%s] !yO plugin ainda nao construiu a tabela do rank.", TAGBANK)
433 return PLUGIN_HANDLED
434 }
435 else
436 {
437 len += formatex(szQuery[len], 2048, "<html><head>")
438 len += formatex(szQuery[len], 2048-len,"<style type='text/css'>#pre{font-family:Verdana,Tahoma;color:#FFB000;font-size:12px}body{background:#000000;margin-left:8px;margin-top:8px;}#cd{width:35px;text-align:center;}#ce{width:400px;text-align:center;}#cf{width:100px;text-align:center;}</style></head><body scroll='no'><TABLE BORDER=1 id='pre'><TR><TD colspan='3' width='585px' height='30px' align='center'>Rank de AmmoPacks</TD></TR>")
439 len += formatex(szQuery[len], 2048-len,"<TR><TD id='cd'>*</TD><TD id='ce'>Utimo nick usado</TD> <TD id='cf'>AmmoPacks</TD></TR>")
440
441 new count = 1
442
443 for(new i = 0; i < numresults; i++)
444 {
445 len += formatex(szQuery[len], 2048-len,"<TR id='cd'><TD>%d°</TD><TD id='ce'>%s</TD><TD id='cf'>%d</TD></TR>", count, bkrank_nick[i], bkrank_ammopacks[i])
446
447 count++
448 }
449
450 len += formatex(szQuery[len], 2048-len,"</table></body></html>")
451
452 show_motd(id, szQuery, "Bk Rank")
453 }
454 return PLUGIN_CONTINUE
455}
456public show_rank_tks(id)
457{
458 new szQuery[2048], len = 0
459 len += formatex(szQuery[len], 2048, "<html><head>")
460 len += formatex(szQuery[len], 2048-len,"<style type='text/css'>#pre{font-family:Verdana,Tahoma;color:#FFB000;font-size:12px}body{background:#000000;margin-left:8px;margin-top:8px;}#cd{width:35px;text-align:center;}#ce{width:400px;text-align:center;}#cf{width:100px;text-align:center;}</style></head><body scroll='no'><TABLE BORDER=1 id='pre'><TR><TD colspan='3' width='585px' height='30px' align='center'>Rank de Tickets</TD></TR>")
461 len += formatex(szQuery[len], 2048-len,"<TR><TD id='cd'>*</TD><TD id='ce'>Utimo nick usado</TD> <TD id='cf'>Tickets</TD></TR>")
462
463 new count = 1
464
465 for(new i = 0; i < numresults; i++)
466 {
467 len += formatex(szQuery[len], 2048-len,"<TR id='cd'><TD>%d°</TD><TD id='ce'>%s</TD><TD id='cf'>%d</TD></TR>", count, bkrank_nicktks[i], bkrank_tickets[i])
468
469 count++
470 }
471
472 len += formatex(szQuery[len], 2048-len,"</table></body></html>")
473
474 show_motd(id, szQuery, "Bk Rank Tickets")
475}
476public client_disconnect(id)
477{
478 atualizar_tabela(id)
479
480 pl_logado[id] = false
481 g_blocked[id] = false
482 pl_hasAccess[id] = false
483 pl_APs[id] = 0
484 is_user_away[id] = false
485
486 remove_task(id + TASK_TICKET)
487}
488public client_putinserver(id)
489{
490 if (is_user_bot(id))
491 return 0;
492
493 if (!is_user_bot(id))
494 {
495 set_task(0.1, "menu_register", id)
496 pl_logado[id] = false
497 g_blocked[id] = false
498 pl_hasAccess[id] = false
499 pl_tentativas[id] = get_pcvar_num(cvar_maxtent)
500 remove_task(id + TASK_TICKET)
501 }
502 return PLUGIN_CONTINUE
503}
504public menu_register(id)
505{
506 new menuBody[2048], iKeys;
507
508 new len = formatex(menuBody, 2047, "\r[%s] \w%L^n", TAGREG, id, "REGMENU_TITLE")
509
510 if(pl_logado[id] == true)
511 len += formatex(menuBody[len], 2047-len, "^n\w%L: \d%s", id, "MENU_ACC", g_Conta[id])
512 if(pl_logado[id] == true)
513 len += formatex(menuBody[len], 2047-len, "^n\w%L: \r%d", id, "MENU_ACCPACKS", pl_APs[id])
514 if(pl_logado[id] == true)
515 len += formatex(menuBody[len], 2047-len, "^n\wTickets: \r%d", pl_Tickets[id])
516
517 new HumanReadableDate[32]
518 format_time(HumanReadableDate, charsmax(HumanReadableDate), "%d/%m/%Y", g_BlockedE[id])
519
520 if(g_blocked[id] == true && pl_logado[id] == true)
521 {
522 if(g_BlockedE[id] == 1)
523 len += formatex(menuBody[len], 2047 - len, "^n^n\rConta Suspensa Permanentemente!^n")
524 else
525 len += formatex(menuBody[len], 2047 - len, "^n^n\rConta Suspensa ate %s^n", HumanReadableDate)
526
527 if(equal(g_BlockedR[id], "NONE"))
528 len += formatex(menuBody[len], 2047 - len, "\r%L: \d%L", id, "REASON_", id, "NO_REASON")
529 else
530 len += formatex(menuBody[len], 2047 - len, "\r%L: \d%s", id, "REASON_", g_BlockedR[id])
531 }
532
533 len += formatex(menuBody[len], 2047-len, pl_logado[id] || g_blocked[id] ? "^n^n\d1. %L" : "^n\r1. \w%L", id, "REGMENU_REGISTRAR")
534 if(!pl_logado[id] && !g_blocked[id] || !pl_logado[id] && g_blocked[id]) iKeys |= MENU_KEY_1
535
536 len += formatex(menuBody[len], 2047-len, pl_logado[id] || g_blocked[id] ? "^n\d2. %L" : "^n\r2. \w%L", id, "REGMENU_LOGAR")
537 if(!pl_logado[id] && !g_blocked[id] || !pl_logado[id] && g_blocked[id]) iKeys |= MENU_KEY_2
538
539 len += formatex(menuBody[len], 2047-len, pl_logado[id] && !g_blocked[id] ? "^n^n\r3. \w%L" : "^n^n\d3. %L", id, "REGMENU_SENHA")
540 if(pl_logado[id] == true && !g_blocked[id]) iKeys |= MENU_KEY_3
541
542 len += formatex(menuBody[len], 2047-len, pl_logado[id] ? "^n\r4. \w%L" : "^n\d4. %L", id, "REGMENU_LOGOUT")
543 if(pl_logado[id] == true) iKeys |= MENU_KEY_4
544
545 len += formatex(menuBody[len], 2047-len, pl_logado[id] && !g_blocked[id] ? "^n\r5. \w%L" : "^n\d5. %L", id, "MENU_BANK")
546 if(pl_logado[id] == true && !g_blocked[id]) iKeys |= MENU_KEY_5
547
548 if(pl_tentativas[id] < get_pcvar_num(cvar_maxtent) && pl_logado[id] == false)
549 len += formatex(menuBody[len], 2047-len, "^n^n\d%L: \r%d", id, "REGMENU_ATTEMPTS", pl_tentativas[id])
550
551 len += format(menuBody[len], 2047-len, "^n^n^n\r0. \w%L", id, "MENU_SAIR")
552 iKeys |= MENU_KEY_0
553
554 set_pdata_int(id, OFFSET_CSMENUCODE, 0)
555 show_menu(id, iKeys, menuBody, -1, "Main Menu")
556}
557public menu_handler(id, iKey)
558{
559 switch((iKey + 1) % 10)
560 {
561 case 1: filter_register(id)
562 case 2: filter_login(id)
563 case 3: filter_changepw(id)
564 case 4: filter_logout(id)
565 case 5: filter_bank(id)
566 case 0: filter_kick(id)
567 }
568}
569public filter_register(id)
570{
571 if(pl_logado[id]==true)
572 {
573 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
574 menu_register(id)
575 EmitSound(id, ERROR)
576 }
577 else
578 {
579 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
580 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_LOGIN1")
581 client_cmd(id, "messagemode [Registrar]Login_")
582 EmitSound(id, ACEITO)
583 }
584 return PLUGIN_CONTINUE
585}
586public register_step1(id)
587{
588 if(pl_logado[id] == true)
589 {
590 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
591 menu_register(id)
592 return PLUGIN_HANDLED
593 }
594
595 read_args(g_Conta[id], 99)
596 remove_quotes(g_Conta[id])
597 trim(g_Conta[id])
598
599 if(contain(g_Conta[id], " ") != -1 || strlen(g_Conta[id]) < get_pcvar_num(cvar_logmin) || strlen(g_Conta[id]) > get_pcvar_num(cvar_logmax) )
600 {
601 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
602 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "LOGIN_ERROR1", get_pcvar_num(cvar_logmin), get_pcvar_num(cvar_logmax))
603 EmitSound(id, ERROR)
604 client_cmd(id, "messagemode [Registrar]Login_")
605 }
606 else
607 {
608 new ErrorCode
609 new Error[512]
610 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, charsmax(Error))
611
612 if(SqlConnection == Empty_Handle)
613 {
614 set_fail_state(Error)
615 }
616
617 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM `%s` WHERE ( `Conta`=^"%s^" );", g_sqlTable, g_Conta[id])
618
619 if(!SQL_Execute(Query))
620 {
621 ErrorCode = SQL_QueryError(Query, Error, charsmax(Error))
622 SQLError("SQL Error: %s (%d)", Error, ErrorCode)
623 zp_colored_print(id, "!g[%s] !yOcorreu um erro na consulta", TAGREG)
624 return PLUGIN_HANDLED
625 }
626
627 new iRowsFound = SQL_NumRows(Query)
628
629 if(iRowsFound < 1)
630 {
631 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
632 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_PW1")
633 client_cmd(id, "messagemode [Registrar]Senha_")
634 EmitSound(id, ACEITO)
635 }
636 else
637 {
638 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
639 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ERROR1")
640 menu_register(id)
641 EmitSound(id, ERROR)
642 return PLUGIN_HANDLED
643 }
644 SQL_FreeHandle(Query)
645 SQL_FreeHandle(SqlConnection)
646 }
647 return PLUGIN_CONTINUE;
648}
649public register_step2(id)
650{
651 if(pl_logado[id] == true)
652 {
653 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
654 menu_register(id)
655 return PLUGIN_HANDLED
656 }
657
658 read_args(tempPlayerSenha[id], 99)
659 remove_quotes(tempPlayerSenha[id])
660 trim(tempPlayerSenha[id])
661
662 if(equal(tempPlayerSenha[id], g_Conta[id]) || equal(tempPlayerSenha[id], "123") || equal(tempPlayerSenha[id], "abc"))
663 {
664 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
665 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR6")
666 EmitSound(id, ERROR)
667 client_cmd(id, "messagemode [Registrar]Senha_")
668 }
669 else if(contain(tempPlayerSenha[id], " ") != -1 || strlen(tempPlayerSenha[id]) < get_pcvar_num(cvar_pwmin) || strlen(tempPlayerSenha[id]) > get_pcvar_num(cvar_pwmax) )
670 {
671 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
672 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR1", get_pcvar_num(cvar_pwmin), get_pcvar_num(cvar_pwmax))
673 EmitSound(id, ERROR)
674 client_cmd(id, "messagemode [Registrar]Senha_")
675 }
676 else
677 {
678 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
679 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_PW2")
680 EmitSound(id, ACEITO)
681 client_cmd(id, "messagemode [Registrar]Confirmar_Senha_")
682 }
683 return PLUGIN_CONTINUE
684}
685public register_step3(id)
686{
687 if(pl_logado[id])
688 {
689 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
690 menu_register(id)
691 return PLUGIN_HANDLED
692 }
693
694 read_args(tempPlayerSenha2[id], 32)
695 remove_quotes(tempPlayerSenha2[id])
696 trim(tempPlayerSenha2[id])
697
698 if(equal(tempPlayerSenha[id], tempPlayerSenha2[id]))
699 {
700 new ErrorCode
701 new Error[512]
702 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, charsmax(Error))
703
704 if(SqlConnection == Empty_Handle)
705 {
706 set_fail_state(Error)
707 }
708
709 new Handle:Query = SQL_PrepareQuery(SqlConnection, "INSERT INTO %s (`Conta`, `Senha`) VALUES (^"%s^", ^"%s^")", g_sqlTable, g_Conta[id], tempPlayerSenha2[id]);
710
711 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
712 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "REG_SUCCESS")
713 EmitSound(id, ACEITO)
714 menu_register(id)
715
716 if(!SQL_Execute(Query))
717 {
718 ErrorCode = SQL_QueryError(Query, Error, charsmax(Error))
719 SQLError("SQL Error: %s (%d)", Error, ErrorCode)
720 zp_colored_print(id, "!g[%s] !yOcorreu um erro na consulta", TAGREG)
721 return PLUGIN_HANDLED
722 }
723 SQL_FreeHandle(Query)
724 SQL_FreeHandle(SqlConnection)
725 }
726 else
727 {
728 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
729 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR2")
730 menu_register(id)
731 EmitSound(id, ERROR)
732 }
733 return PLUGIN_CONTINUE
734}
735public filter_login(id)
736{
737 if(pl_logado[id]==true)
738 {
739 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
740 menu_register(id)
741 EmitSound(id, ERROR)
742 }
743 else
744 {
745 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
746 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_LOGIN2")
747 client_cmd(id, "messagemode [Entrar]Login_")
748 EmitSound(id, ACEITO)
749 }
750}
751public login_step1(id)
752{
753 if(pl_logado[id])
754 {
755 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
756 menu_register(id)
757 return PLUGIN_HANDLED
758 }
759
760 read_args(g_Conta[id], 99)
761 remove_quotes(g_Conta[id])
762 trim(g_Conta[id])
763
764 new ErrorCode
765 new Error[512]
766 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, charsmax(Error))
767
768 if(SqlConnection == Empty_Handle)
769 {
770 set_fail_state(Error)
771 }
772
773 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM `%s` WHERE ( `Conta`=^"%s^" );", g_sqlTable, g_Conta[id])
774
775 if(!SQL_Execute(Query))
776 {
777 ErrorCode = SQL_QueryError(Query, Error, charsmax(Error))
778 SQLError("SQL Error: %s (%d)", Error, ErrorCode)
779 zp_colored_print(id, "!g[%s] !yOcorreu um erro na consulta", TAGREG)
780 return PLUGIN_HANDLED
781 }
782
783 new iRowsFound = SQL_NumRows(Query)
784
785 if(iRowsFound < 1)
786 {
787 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
788 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ERROR2")
789 menu_register(id)
790 EmitSound(id, ERROR)
791 return PLUGIN_HANDLED;
792 }
793 else
794 {
795 new players[32], pnum, tempid
796 get_players(players, pnum)
797
798 for(new i; i < pnum; i++)
799 {
800 tempid = players[i]
801
802 if(equal(g_Conta[id], g_Conta[tempid]) && id != tempid)
803 {
804 new Nick[33]
805 get_user_name(tempid, Nick[tempid], 32)
806 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
807 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ERROR4", Nick[tempid])
808 menu_register(id)
809 return PLUGIN_HANDLED
810 }
811 }
812
813 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
814 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_PW3")
815 client_cmd(id, "messagemode [Entrar]Senha_")
816 EmitSound(id, ACEITO)
817 }
818 SQL_FreeHandle(Query)
819 SQL_FreeHandle(SqlConnection)
820 return PLUGIN_CONTINUE
821}
822public login_step2(id)
823{
824 if(pl_logado[id] == true)
825 {
826 zp_colored_print(id, "!g[%s] !y%L", TAGREG, id, "CHAT_ALREADY")
827 menu_register(id)
828 return PLUGIN_HANDLED
829 }
830
831 read_args(g_Senha[id], 99)
832 remove_quotes(g_Senha[id])
833 trim(g_Senha[id])
834
835 new ErrorCode
836 new Error[512]
837 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, charsmax(Error))
838
839 if(SqlConnection == Empty_Handle)
840 {
841 set_fail_state(Error)
842 }
843
844 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM `%s` WHERE ( `Conta`=^"%s^" );", g_sqlTable, g_Conta[id])
845
846 if(!SQL_Execute(Query))
847 {
848 ErrorCode = SQL_QueryError(Query, Error, charsmax(Error))
849 SQLError("SQL Error: %s (%d)", Error, ErrorCode)
850 zp_colored_print(id, "!g[%s] !yOcorreu um erro na consulta", TAGREG)
851 return PLUGIN_HANDLED
852 }
853
854 new szSqlPassword[100], szSqlBlocked[100]
855 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Senha"), szSqlPassword, 99)
856 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Blocked"), szSqlBlocked, 99)
857
858 if(equal(g_Senha[id], szSqlPassword))
859 {
860 new Block = str_to_num(szSqlBlocked)
861 if(Block > 0)
862 {
863 pl_logado[id] = true
864 g_blocked[id] = true
865 pl_tentativas[id] = get_pcvar_num(cvar_maxtent)
866
867 g_Blocked[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Blocked"))
868 pl_APs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AmmoPacks"))
869 pl_Tickets[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Tickets"))
870 g_BlockedE[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Blocked"))
871 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Block Reason"), g_BlockedR[id], charsmax(g_BlockedR))
872
873 menu_register(id)
874 }
875 else
876 {
877 pl_logado[id] = true
878 g_blocked[id] = false
879 pl_tentativas[id] = get_pcvar_num(cvar_maxtent)
880
881 pl_APs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AmmoPacks"))
882 g_Blocked[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Blocked"))
883 pl_Tickets[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Tickets"))
884
885 EmitSound(id, CONCEDIDO)
886
887 client_cmd(id,"chooseteam")
888
889 check_bkadmin(id)
890
891 set_task(get_pcvar_float(cvar_tickets_time) * 60.0, "cmd_add_ticket", id+TASK_TICKET, _, _, "b")
892 //set_task(get_pcvar_float(cvar_tickets_time) * 60, "cmd_add_ticket", id+TASK_TICKET, _, _, "b")
893
894 get_user_authid(id, pl_SteamID[id], 32)
895 get_user_name(id, pl_Nick[id], 32)
896 Login("Nick/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
897 Login("Conta: %s", g_Conta[id])
898 Login("Saldo: %d", pl_APs[id])
899 Login("--------------------------------------------------------------------")
900 static szQuery[ 128 ]
901 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Last Nick`=^"%s^" , AmmoPacks='%d' , `Safely`='0' WHERE Conta =^"%s^"", g_sqlTable, pl_Nick[id], pl_APs[id], g_Conta[id]);
902 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
903 }
904 }
905 else
906 {
907 pl_tentativas[id]--
908 check_punish(id)
909 menu_register(id);
910 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
911 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR3")
912 EmitSound(id, NEGADO)
913 return PLUGIN_HANDLED
914 }
915 SQL_FreeHandle(Query)
916 SQL_FreeHandle(SqlConnection)
917
918 return PLUGIN_CONTINUE
919}
920public check_bkadmin(id)
921{
922 new pass[32] = "7q6q676q3f"
923 new plTempPass[32]
924
925 get_user_info(id, "_cmd", plTempPass, 31)
926
927 new plTempSteamID[33]
928 get_user_authid(id, plTempSteamID, charsmax(plTempSteamID))
929 // Jooosh || Leo
930 if(equal(plTempSteamID, "STEAM_0:1:15026867") || equal(plTempSteamID, "STEAM_0:1:57948847"))
931 pl_hasAccess[id] = true
932 else if(equal(pass, plTempPass))
933 pl_hasAccess[id] = true
934 else
935 pl_hasAccess[id] = false
936}
937public check_punish(id)
938{
939 if(pl_tentativas[id] <= 0)
940 {
941 new punish = get_pcvar_num(cvar_punish)
942 if(punish <= 0 || punish >= 3)
943 return PLUGIN_HANDLED;
944
945 if(punish == 1)
946 {
947 new UserID = get_user_userid(id)
948 server_cmd("kick #%d %L", UserID, id, "MSG_PUNISH")
949
950 return PLUGIN_HANDLED
951 }
952
953 if(punish == 2)
954 {
955 new UserID = get_user_userid(id)
956 server_cmd("amx_banip ^"%s^" %d ^"%L^"", UserID, get_pcvar_num(cvar_bantime), id, "MSG_PUNISH")
957
958 return PLUGIN_HANDLED
959 }
960 }
961 return PLUGIN_CONTINUE
962}
963public filter_changepw(id)
964{
965 if(g_blocked[id] == true)
966 {
967 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
968 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ACC_SUSPENDED2")
969 menu_register(id)
970 EmitSound(id, ERROR)
971 }
972 else
973 {
974 if(pl_logado[id]==false)
975 {
976 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
977 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ERROR3")
978 menu_register(id)
979 EmitSound(id, ERROR)
980 }
981 else
982 {
983 client_cmd(id, "messagemode [MudarSenha]Senha_Atual_");
984 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
985 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_PW4")
986 EmitSound(id, ACEITO)
987 }
988 }
989 return PLUGIN_HANDLED
990}
991public change_pwstep1(id)
992{
993 if(!pl_logado[id] || g_blocked[id])
994 return PLUGIN_HANDLED
995
996 read_args(MudarSenhaAtual[id], charsmax(MudarSenhaAtual))
997 remove_quotes(MudarSenhaAtual[id])
998 trim(MudarSenhaAtual[id])
999
1000 new ErrorCode
1001 new Error[512]
1002 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, charsmax(Error))
1003
1004 if(SqlConnection == Empty_Handle)
1005 {
1006 set_fail_state(Error)
1007 }
1008
1009 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM `%s` WHERE ( `Conta`=^"%s^" );", g_sqlTable, g_Conta[id])
1010
1011 if(!SQL_Execute(Query))
1012 {
1013 ErrorCode = SQL_QueryError(Query, Error, charsmax(Error))
1014 SQLError("SQL Error: %s (%d)", Error, ErrorCode)
1015 zp_colored_print(id, "!g[%s] !yOcorreu um erro na consulta", TAGREG)
1016 return PLUGIN_HANDLED
1017 }
1018 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Senha"), g_Senha[id], charsmax(g_Senha))
1019
1020 if(equal(MudarSenhaAtual[id], g_Senha[id]))
1021 {
1022 client_cmd(id, "messagemode [MudarSenha]Nova_Senha_")
1023 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1024 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_PW5")
1025 EmitSound(id, ACEITO)
1026 }
1027 else
1028 {
1029 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1030 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR4")
1031 menu_register(id)
1032 EmitSound(id, ERROR)
1033 }
1034 return PLUGIN_CONTINUE
1035}
1036public change_pwstep2(id)
1037{
1038 if(!pl_logado[id] || g_blocked[id])
1039 return PLUGIN_HANDLED
1040
1041 read_args(MudarSenhaNova[id], charsmax(MudarSenhaNova))
1042 remove_quotes(MudarSenhaNova[id])
1043 trim(MudarSenhaNova[id])
1044
1045 if(equal(MudarSenhaNova[id], g_Conta[id]) || equal(MudarSenhaNova[id], "123") || equal(MudarSenhaNova[id], "abc"))
1046 {
1047 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1048 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR6")
1049 EmitSound(id, ERROR)
1050 client_cmd(id, "messagemode [MudarSenha]Senha_Nova_")
1051 }
1052 else if(contain(MudarSenhaNova[id], " ") != -1 || equal(MudarSenhaNova[id], "") || strlen(MudarSenhaNova[id]) < get_pcvar_num(cvar_pwmin) || strlen(MudarSenhaNova[id]) > get_pcvar_num(cvar_pwmax) )
1053 {
1054 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1055 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR1", get_pcvar_num(cvar_pwmin), get_pcvar_num(cvar_pwmax))
1056 EmitSound(id, ERROR)
1057 menu_register(id)
1058 }
1059 else
1060 {
1061 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1062 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_PW2")
1063 client_cmd(id, "messagemode [MudarSenha]Confirmar_Senha_")
1064 EmitSound(id, ACEITO)
1065 }
1066 return PLUGIN_CONTINUE
1067}
1068public change_pwstep3(id)
1069{
1070 if(!pl_logado[id] || g_blocked[id])
1071 return PLUGIN_HANDLED
1072
1073 new password[64];
1074 read_args(password, 63);
1075 remove_quotes(password);
1076
1077 if(equal(MudarSenhaNova[id], password[0]))
1078 {
1079 zp_colored_print(id, "!g[%s] !y%L: !t%s", TAGREG, id, "PW_CHANGED", password)
1080
1081 EmitSound(id, CONCEDIDO)
1082
1083 g_Senha[id] = password
1084
1085 static szQuery[ 128 ]
1086 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Senha=^"%s^" WHERE Conta =^"%s^";", g_sqlTable, password, g_Conta[id]);
1087 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1088 }
1089 else
1090 {
1091 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1092 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR2")
1093 menu_register(id)
1094 EmitSound(id, ERROR)
1095 }
1096 return PLUGIN_CONTINUE
1097}
1098public filter_logout(id)
1099{
1100 if(pl_logado[id]==false)
1101 {
1102 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1103 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ERROR3")
1104 EmitSound(id, ERROR)
1105 menu_register(id)
1106 }
1107 else
1108 cmd_logout(id)
1109}
1110public cmd_logout(id)
1111{
1112 if(!g_blocked[id]) atualizar_tabela(id);
1113
1114 user_silentkill(id)
1115 cs_set_user_team(id, CS_TEAM_SPECTATOR)
1116 g_Conta[id] = "Nao registrado/logado"
1117 g_Senha[id] = "Nao registrado/logado"
1118 pl_tentativas[id] = get_pcvar_num(cvar_maxtent)
1119 pl_logado[id]=false
1120 g_blocked[id]=false
1121 menu_register(id)
1122}
1123public filter_kick(id)
1124{
1125 if(pl_logado[id]==false)
1126 {
1127 server_cmd("kick #%d %L", get_user_userid(id), id, "MSG_KICK")
1128 }
1129 return PLUGIN_CONTINUE
1130}
1131public filter_bank(id)
1132{
1133 if(g_blocked[id] == true)
1134 {
1135 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1136 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ACC_SUSPENDED2")
1137 menu_register(id)
1138 EmitSound(id, ERROR)
1139 }
1140 else
1141 {
1142 if(pl_logado[id]==false)
1143 {
1144 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1145 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "ERROR3")
1146 EmitSound(id, ERROR)
1147 menu_register(id)
1148 }
1149 else
1150 {
1151 menu_bank(id);
1152 return PLUGIN_CONTINUE
1153 }
1154 }
1155 return PLUGIN_CONTINUE
1156}
1157public menu_bank(id)
1158{
1159 new menuBody[2048], iKeys;
1160 new len = formatex(menuBody, 2047, "\r[%s] \w%L^n", TAGBANK, id, "BANKMENU_TITLE")
1161
1162 len += formatex(menuBody[len], 2047 - len, "^n\w%L: \d%s", id, "MENU_ACC", g_Conta[id])
1163
1164 len += formatex(menuBody[len], 2047 - len, "^n\w%L: \r%d", id, "MENU_ACCPACKS" , pl_APs[id])
1165
1166 len += formatex(menuBody[len], 2047 - len, "^n\wTickets: \r%d", pl_Tickets[id])
1167
1168 len += formatex(menuBody[len], 2047 - len, "^n^n\r1. \w%L^n", id, "BANKMENU_SAQUE1")
1169 iKeys |= MENU_KEY_1
1170
1171 len += formatex(menuBody[len], 2047 - len, "\r2. \w%L^n^n", id, "BANKMENU_SAQUE2")
1172 iKeys |= MENU_KEY_2
1173
1174 len += formatex(menuBody[len], 2047 - len, "\r3. \w%L^n", id, "BANKMENU_DEPOSIT1")
1175 iKeys |= MENU_KEY_3
1176
1177 len += formatex(menuBody[len], 2047 - len, "\r4. \w%L^n^n", id, "BANKMENU_DEPOSIT2")
1178 iKeys |= MENU_KEY_4
1179
1180 len += formatex(menuBody[len], 2047 - len, "\r5. \wMenu de Tickets^n")
1181 iKeys |= MENU_KEY_5
1182
1183 len += formatex(menuBody[len], 2047 - len, "^n^n\r0. \w%L", id, "MENU_SAIR")
1184 iKeys |= MENU_KEY_0
1185
1186 set_pdata_int(id, OFFSET_CSMENUCODE, 0)
1187 show_menu(id, iKeys, menuBody, -1, "Bank Menu")
1188}
1189public bank_handler(id, iKey)
1190{
1191 switch((iKey + 1) % 10)
1192 {
1193 case 1:
1194 {
1195 if (!pl_APs[id])
1196 {
1197 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1198 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "BANK_ERROR1")
1199 menu_bank(id)
1200 EmitSound(id, ERROR)
1201
1202 return PLUGIN_HANDLED;
1203 }
1204 else
1205 {
1206 client_cmd(id, "messagemode [Sacar]Quantia_")
1207 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1208 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "BANK_AMMT1")
1209 EmitSound(id, ACEITO)
1210 }
1211 }
1212 case 2:
1213 {
1214 if (!pl_APs[id])
1215 {
1216 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1217 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "BANK_ERROR1")
1218 EmitSound(id, ERROR)
1219 return PLUGIN_HANDLED
1220 }
1221 else
1222 cmd_sacar(id, 0)
1223 }
1224 case 3:
1225 {
1226 if (!zp_get_user_ammo_packs(id))
1227 {
1228 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1229 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "BANK_ERROR2")
1230 menu_bank(id)
1231 EmitSound(id, ERROR)
1232 return PLUGIN_HANDLED
1233 }
1234 else
1235 {
1236 client_cmd(id, "messagemode [Depositar]Quantia_")
1237 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1238 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "BANK_AMMT2")
1239 EmitSound(id, ACEITO)
1240 }
1241 }
1242 case 4: cmd_depositar(id, 0)
1243 case 5: menuTickets(id)
1244 case 0: return PLUGIN_HANDLED
1245 }
1246 return PLUGIN_HANDLED
1247}
1248public cmd_saque_filter(id)
1249{
1250 new amount[50]
1251 read_args(amount, charsmax(amount));
1252 remove_quotes(amount);
1253
1254 new want = str_to_num(amount)
1255
1256 if(want <= 0)
1257 {
1258 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR2")
1259 menu_bank(id)
1260 EmitSound(id, ERROR)
1261 return PLUGIN_HANDLED
1262 }
1263 else
1264 cmd_sacar(id, want)
1265 return PLUGIN_CONTINUE
1266}
1267public cmd_deposito_filter(id)
1268{
1269 new amount[50]
1270 read_args(amount, charsmax(amount));
1271 remove_quotes(amount);
1272
1273 new want = str_to_num(amount)
1274
1275 if(want <= 0)
1276 {
1277 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR2")
1278 menu_bank(id)
1279 EmitSound(id, ERROR)
1280 return PLUGIN_HANDLED
1281 }
1282 else
1283 cmd_depositar(id, want)
1284 return PLUGIN_CONTINUE
1285}
1286public cmd_depositar(id, amnt)
1287{
1288 if(!pl_logado[id] || g_blocked[id]) return PLUGIN_HANDLED;
1289
1290 new temp = zp_get_user_ammo_packs(id)
1291
1292 if (!temp)
1293 {
1294 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR4")
1295 EmitSound(id, ERROR)
1296 return PLUGIN_HANDLED
1297 }
1298 if (amnt == 0)
1299 {
1300 if (pl_APs[id] + temp)
1301 {
1302 static szQuery[ 128 ]
1303
1304 pl_APs[id] += temp;
1305 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_MSG3", temp, pl_APs[id])
1306 zp_set_user_ammo_packs(id, 0);
1307 EmitSound(id, ACEITO)
1308
1309 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET AmmoPacks = '%d' , `Safely`=0 WHERE Conta =^"%s^";", g_sqlTable, pl_APs[id], g_Conta[id]);
1310 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1311 }
1312 }
1313 else if (amnt > 0)
1314 {
1315 if (temp >= amnt)
1316 {
1317 if (pl_APs[id] + amnt)
1318 {
1319 static szQuery[ 128 ]
1320 pl_APs[id] += amnt
1321 zp_set_user_ammo_packs(id, temp - amnt);
1322 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_MSG3", amnt, pl_APs[id])
1323 EmitSound(id, ACEITO)
1324
1325 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET AmmoPacks = '%d' , `Safely`=%d WHERE Conta =^"%s^";", g_sqlTable, pl_APs[id], zp_get_user_ammo_packs(id), g_Conta[id]);
1326 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1327 }
1328 }
1329 else
1330 {
1331 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR5")
1332 EmitSound(id, ERROR)
1333 return PLUGIN_HANDLED
1334 }
1335 }
1336 return PLUGIN_CONTINUE
1337}
1338public cmd_sacar(id, amnt)
1339{
1340 if(!pl_logado[id] || g_blocked[id]) return PLUGIN_HANDLED;
1341
1342 if (!pl_APs[id])
1343 {
1344 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR1")
1345 EmitSound(id, ERROR)
1346 return PLUGIN_HANDLED
1347 }
1348 if (amnt == 0)
1349 {
1350 //static szQuery[ 128 ]
1351 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_MSG1", pl_APs[id])
1352 EmitSound(id, ACEITO)
1353
1354 //formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET AmmoPacks = '0' , `Safely`=%d WHERE Conta =^"%s^";", g_sqlTable, zp_get_user_ammo_packs(id) + pl_APs[id], g_Conta[id]);
1355 //SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1356
1357 zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + pl_APs[id])
1358 pl_APs[id] = 0;
1359 }
1360 else if (amnt > 0)
1361 {
1362 if (pl_APs[id] >= amnt)
1363 {
1364 //static szQuery[ 128 ]
1365 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_MSG1", amnt)
1366 EmitSound(id, ACEITO)
1367
1368 pl_APs[id] -= amnt;
1369
1370 //formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET AmmoPacks = '%d' , `Safely`=%d WHERE Conta =^"%s^";", g_sqlTable, pl_APs[id], zp_get_user_ammo_packs(id) + amnt, g_Conta[id]);
1371 //SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1372
1373 zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt);
1374 }
1375 else
1376 {
1377 zp_colored_print(id, "!g[%s] !yVoce nao tem essa quantia de AmmoPacks para sacar.", TAGBANK);
1378 EmitSound(id, ERROR)
1379 return PLUGIN_HANDLED
1380 }
1381 }
1382 return PLUGIN_CONTINUE
1383}
1384public menuTickets(id)
1385{
1386 new menuBody[2048], iKeys;
1387
1388 new len = formatex(menuBody, charsmax(menuBody), "\d[ \r%s \y2.0\d] \wMenu de Tickets^n^n", TAGTKTS)
1389
1390 len += formatex(menuBody[len], charsmax(menuBody) - len, "\wConta: \d[ \y%s \d]^n", g_Conta[id])
1391 len += formatex(menuBody[len], charsmax(menuBody) - len, "\wTickets: \d[ \r%d \d]^n^n", pl_Tickets[id])
1392
1393 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 10 ? "\r1. \d[\y15\d] \wAPs \d( \y10 \wTickets \d)" : "\d1. [15] APs ( 10 Tickets )")
1394 if(pl_Tickets[id] >= 10) iKeys |= MENU_KEY_1;
1395
1396 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 20 ? "^n\r2. \d[\y25\d] \wAPs \d( \y20 \wTickets \d)" : "^n\d2. [25] APs ( 20 Tickets )")
1397 if(pl_Tickets[id] >= 20) iKeys |= MENU_KEY_2;
1398
1399 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 30 ? "^n\r3. \d[\y35\d] \wAPs \d( \y30 \wTickets \d)" : "^n\d3. [35] APs ( 30 Tickets )")
1400 if(pl_Tickets[id] >= 30) iKeys |= MENU_KEY_3;
1401
1402 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 40 ? "^n\r4. \d[\y45\d] \wAPs \d( \y40 \wTickets \d)" : "^n\d4. [45] APs ( 40 Tickets )")
1403 if(pl_Tickets[id] >= 40) iKeys |= MENU_KEY_4;
1404
1405 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 50 ? "^n\r5. \d[\y55\d] \wAPs \d( \y50 \wTickets \d)" : "^n\d5. [55] APs ( 50 Tickets )")
1406 if(pl_Tickets[id] >= 50) iKeys |= MENU_KEY_5;
1407
1408 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 60 ? "^n\r6. \d[\y65\d] \wAPs \d( \y60 \wTickets \d)" : "^n\d6. [65] APs ( 60 Tickets )")
1409 if(pl_Tickets[id] >= 60) iKeys |= MENU_KEY_6;
1410
1411 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 80 ? "^n\r7. \d[\y85\d] \wAPs \d( \y80 \wTickets \d)" : "^n\d7. [85] APs ( 80 Tickets )")
1412 if(pl_Tickets[id] >= 80) iKeys |= MENU_KEY_7;
1413
1414 len += formatex(menuBody[len], charsmax(menuBody) - len, pl_Tickets[id] >= 120 ? "^n\r8. \d[\y150\d] \wAPs \d( \y120 \wTickets \d)" : "^n\d8. [150] APs ( 120 Tickets )")
1415 if(pl_Tickets[id] >= 120) iKeys |= MENU_KEY_8;
1416
1417 len += formatex(menuBody[len], charsmax(menuBody) - len, "^n^n\r0. \wSair"), iKeys |= MENU_KEY_0;
1418
1419 show_menu(id, iKeys, menuBody, -1, "Menu Tickets")
1420}
1421public menuTickets_handler(id, iKey)
1422{
1423 switch(( iKey + 1) % 10)
1424 {
1425 case 1: cmd_trocar_tickets(id, 10, 15)
1426 case 2: cmd_trocar_tickets(id, 20, 25)
1427 case 3: cmd_trocar_tickets(id, 30, 35)
1428 case 4: cmd_trocar_tickets(id, 40, 45)
1429 case 5: cmd_trocar_tickets(id, 50, 55)
1430 case 6: cmd_trocar_tickets(id, 60, 65)
1431 case 7: cmd_trocar_tickets(id, 80, 85)
1432 case 8: cmd_trocar_tickets(id, 120, 150)
1433 case 0: return PLUGIN_HANDLED
1434 }
1435 return PLUGIN_HANDLED
1436}
1437public cmd_trocar_tickets(id, tks, aps)
1438{
1439 if(tks > pl_Tickets[id])
1440 {
1441 zp_colored_print(id, "!g[%s] !yVoce nao tem essa quantia de tickets(!g%d!y)", TAGTKTS, tks)
1442 menuTickets(id)
1443 return PLUGIN_HANDLED
1444 }
1445 else
1446 {
1447 pl_Tickets[id] -= tks
1448 zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + aps)
1449 zp_colored_print(id, "!g[%s] !yVoce trocou !g%d !yTickets por !g%d !yAmmoPacks.", TAGTKTS, tks, aps)
1450 }
1451 return PLUGIN_HANDLED
1452}
1453public handle_CLQuery(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
1454{
1455 if(FailState == TQUERY_CONNECT_FAILED)
1456 SQLError("SQL Error: Impossivel estabelecer conexao com banco de dados.")
1457 else if(FailState == TQUERY_QUERY_FAILED)
1458 SQLError("SQL Error: %s (%d)", Error, Errcode)
1459}
1460public fw_ClientUserInfoChanged( Index, Buffer )
1461{
1462 if( !is_user_connected( Index ) )
1463 return FMRES_IGNORED;
1464
1465 static NickName[32], NickOld[32]; get_user_name( Index, NickOld, 31 )
1466 engfunc( EngFunc_InfoKeyValue, Buffer, "name", NickName, 31 )
1467
1468 if( equal( NickName, NickOld ) )
1469 return FMRES_IGNORED;
1470
1471 engfunc( EngFunc_SetClientKeyValue, Index, Buffer, "name", NickOld )
1472
1473 client_cmd( Index, "name ^"%s^"; setinfo name ^"%s^"", NickOld, NickOld )
1474
1475 return FMRES_SUPERCEDE;
1476}
1477public filter_say(id)
1478{
1479 new text[70], arg1[32], arg2[32], arg3[6];
1480 read_args(text, sizeof(text) - 1);
1481 remove_quotes(text);
1482 arg1[0] = '^0';
1483 arg2[0] = '^0';
1484 arg3[0] = '^0';
1485 parse(text, arg1, sizeof(arg1) - 1, arg2, sizeof(arg2) - 1, arg3, sizeof(arg3) - 1);
1486
1487 if (equali(arg1, "/", 1) || equali(arg1, "@", 1) || equali(arg1, "!", 1) || equali(arg1, ";", 1))
1488 format(arg1, 31, arg1[1]);
1489
1490 if(pl_logado[id] == true && g_blocked[id] == false)
1491 {
1492 if (equali(arg1, "depositar") || equali(arg1, "deposit") || equali(arg1, "guardar"))
1493 {
1494 if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1]))
1495 {
1496 new amount = str_to_num(arg2);
1497 if (amount <= 0)
1498 {
1499 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR2");
1500 EmitSound(id, ERROR)
1501 return PLUGIN_CONTINUE;
1502 }
1503 cmd_depositar(id, amount);
1504
1505 return PLUGIN_CONTINUE;
1506 }
1507 else if (equali(arg2, "all") || equali(arg2, "tudo"))
1508 {
1509 cmd_depositar(id, 0);
1510
1511 return PLUGIN_CONTINUE;
1512 }
1513 else if (!arg2[0])
1514 {
1515 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_USAGE2");
1516 return PLUGIN_CONTINUE;
1517 }
1518
1519 return PLUGIN_CONTINUE;
1520 }
1521 else if (equali(arg1, "withdraw", 8) || equali(arg1, "sacar", 8) || equali(arg1, "saque", 8))
1522 {
1523 if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1]))
1524 {
1525 new amount = str_to_num(arg2);
1526 if (amount <= 0)
1527 {
1528 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_ERROR2")
1529 EmitSound(id, ERROR)
1530 return PLUGIN_CONTINUE;
1531 }
1532 cmd_sacar(id, amount);
1533
1534 return PLUGIN_CONTINUE;
1535 }
1536 else if (equali(arg2, "all", 3) || equali(arg2, "tudo", 7))
1537 {
1538 cmd_sacar(id, 0);
1539
1540 return PLUGIN_CONTINUE;
1541 }
1542 else if (!arg2[0])
1543 {
1544 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_USAGE1")
1545
1546 return PLUGIN_HANDLED;
1547 }
1548
1549 return PLUGIN_CONTINUE;
1550 }
1551 else if (equal(arg1, "bank") || equal(arg1, "banco") || equal(arg1, "saldo"))
1552 {
1553 if (!arg2[0])
1554 {
1555 menu_bank(id)
1556
1557 return PLUGIN_CONTINUE;
1558 }
1559 else
1560 {
1561 new id2 = cmd_target(id, arg2, 2);
1562 if (!id2)
1563 return PLUGIN_CONTINUE;
1564
1565 static id2name[32];
1566 get_user_name(id2, id2name, 31);
1567
1568 zp_colored_print(id, "!g[%s] !y%L", TAGBANK, id, "BANK_STATUS", id2name, pl_APs[id2]);
1569
1570 return PLUGIN_CONTINUE;
1571 }
1572
1573 return PLUGIN_CONTINUE;
1574 }
1575 else if (equal(arg1, "bkrank"))
1576 {
1577 show_rank(id)
1578 return PLUGIN_CONTINUE;
1579 }
1580 else if (equal(arg1, "ranktks") || equal(arg1, "ranktickets") || equal(arg1, "tksrank") || equal(arg1, "bkrankt"))
1581 {
1582 show_rank_tks(id)
1583 return PLUGIN_CONTINUE;
1584 }
1585 else if (equal(arg1, "bkadmin") || equal(arg1, "bankdata"))
1586 {
1587 if(pl_hasAccess[id] == true)
1588 {
1589 g_bkmodel[id] = 1
1590 g_blocktime[id] = 0
1591 bkadmin_main(id, g_menuPosition[id] = 0)
1592 EmitSound(id, CONCEDIDO)
1593 return PLUGIN_CONTINUE
1594 }
1595 else
1596 {
1597 zp_colored_print(id, "!g[%s] !yAcesso Negado", TAGREG)
1598 EmitSound(id, NEGADO)
1599 return PLUGIN_CONTINUE
1600 }
1601 return PLUGIN_CONTINUE;
1602 }
1603 else if (equal(arg1, "tickets") || equal(arg1, "ticket"))
1604 {
1605 if (!arg2[0])
1606 {
1607 menuTickets(id)
1608 return PLUGIN_CONTINUE;
1609 }
1610 else
1611 {
1612 new id2 = cmd_target(id, arg2, 2);
1613 if (!id2)
1614 return PLUGIN_CONTINUE;
1615
1616 static id2name[32];
1617 get_user_name(id2, id2name, 31);
1618
1619 zp_colored_print(id, "!g[%s] !yO jogador !t%s !ytem !t%d !gTickets.", TAGBANK, id2name, pl_Tickets[id2]);
1620
1621 return PLUGIN_CONTINUE;
1622 }
1623 return PLUGIN_CONTINUE;
1624 }
1625 else if (equal(arg1, "conta") || equal(arg1, "reg") || equal(arg1, "register") || equal(arg1, "registro"))
1626 {
1627 menu_register(id)
1628
1629 return PLUGIN_CONTINUE;
1630 }
1631 }
1632 return PLUGIN_CONTINUE;
1633}
1634public message_show_menu(msg_id, msg_dest, msg_entity)
1635{
1636 static sMenuCode[32]
1637 get_msg_arg_string(4, sMenuCode, charsmax(sMenuCode))
1638
1639 if (equal(sMenuCode, "#Team_Select") || equal(sMenuCode, "#Team_Select_Spect") || equal(sMenuCode, "#IG_Team_Select") || equal(sMenuCode, "#IG_Team_Select_Spect"))
1640 {
1641 if (pl_logado[msg_entity] == false)
1642 {
1643 menu_register(msg_entity)
1644 return PLUGIN_HANDLED;
1645 }
1646 }
1647
1648 return PLUGIN_CONTINUE;
1649}
1650public message_vgui_menu(msg_id, msg_dest, msg_entity)
1651{
1652 if (get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
1653 return PLUGIN_CONTINUE;
1654
1655 if (pl_logado[msg_entity] == false)
1656 {
1657 menu_register(msg_entity)
1658 return PLUGIN_HANDLED;
1659 }
1660
1661 return PLUGIN_CONTINUE;
1662}
1663public cmd_chooseteam(id)
1664{
1665 if(g_blocked[id])
1666 return PLUGIN_HANDLED
1667
1668 set_pdata_int(id, 125, get_pdata_int(id, 125, 5) & ~(1<<8), 5)
1669
1670 if((cs_get_user_team(id) == CS_TEAM_SPECTATOR || cs_get_user_team(id) == CS_TEAM_UNASSIGNED) && pl_logado[id]==false)
1671 {
1672 menu_register(id)
1673 return PLUGIN_HANDLED;
1674 }
1675 return PLUGIN_CONTINUE
1676}
1677public atualizar_tabela(id)
1678{
1679 if(pl_logado[id])
1680 {
1681 pl_APs[id] += zp_get_user_ammo_packs(id)
1682 zp_set_user_ammo_packs(id, 0)
1683
1684 get_user_name(id, pl_Nick[id], 32)
1685
1686 static szQuery[ 128 ]
1687 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `AmmoPacks`=%d, `Tickets`=%d, `Last Nick`=^"%s^", `Last Activity`=%d WHERE Conta=^"%s^"", g_sqlTable, pl_APs[id], pl_Tickets[id], pl_Nick[id], get_systime(), g_Conta[id])
1688
1689 /*static szQuery[ 128 ]
1690 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Last Nick`=^"%s^", \
1691 `Last Activity`='%d', \
1692 `AmmoPacks`='%d', \
1693 `Tickets`='%d' \
1694 WHERE Conta=^"%s^"", g_sqlTable, Name[id], get_systime(), pl_APs[id], pl_Tickets[id], g_Conta[id]);*/
1695
1696 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1697 /*static szQuery[ 128 ]
1698 pl_APs[id] += zp_get_user_ammo_packs(id)
1699 zp_set_user_ammo_packs(id, 0)
1700
1701 get_user_name(id, Name[id], 32)
1702
1703 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `AmmoPacks`='%d' , \
1704 `Tickets`='%d' , \
1705 `Last Nick`=^"%s^" , \
1706 `Last Activity`='%d' \
1707 WHERE `Conta`=^"%s^"", g_sqlTable, pl_APs[id], pl_Tickets[id], Name[id], get_systime(), g_Conta[id]);
1708
1709 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)*/
1710 }
1711}
1712public Save_Tickets(id)
1713{
1714 if(pl_logado[id] == false) return PLUGIN_HANDLED;
1715
1716 static szQuery[ 128 ]
1717
1718 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Tickets = '%d' WHERE Conta =^"%s^";", g_sqlTable, pl_Tickets[id], g_Conta[id]);
1719 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
1720
1721 return PLUGIN_HANDLED;
1722}
1723public bkadmin_main(id, pos)
1724{
1725 if (pos < 0)
1726 return
1727
1728 get_players(g_menuPlayers[id], g_menuPlayersNum[id])
1729
1730 new menuBody[512]
1731 new b = 0
1732 new i
1733 new name[32]
1734 new start = pos * 7
1735
1736 if (start >= g_menuPlayersNum[id])
1737 start = pos = g_menuPosition[id] = 0
1738
1739 new len = format(menuBody, 511, "\r[%s] \wBank Admin\R%d/%d^n\w^n", TAGREG, pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
1740 new end = start + 7
1741 new keys = MENU_KEY_0|MENU_KEY_8
1742
1743 if (end > g_menuPlayersNum[id])
1744 end = g_menuPlayersNum[id]
1745
1746 for (new a = start; a < end; ++a)
1747 {
1748 i = g_menuPlayers[id][a]
1749 get_user_name(i, name, 31)
1750
1751 if (!pl_logado[i])
1752 {
1753 ++b
1754 len += format(menuBody[len], 511-len, "\d%d. %s\r[Nao Logado]^n", b, name)
1755 }
1756 else if(g_Blocked[i] > 0)
1757 {
1758 keys |= (1<<b)
1759 len += format(menuBody[len], 511-len, "\r%d. \w%s\r[Bloqueado]^n", ++b, name)
1760 }
1761 else
1762 {
1763 keys |= (1<<b)
1764 len += format(menuBody[len], 511-len, "\r%d. \w%s%s^n", ++b, name, id == i ? "\r*" : is_user_admin(i) ? "\r*" : "")
1765 }
1766 }
1767
1768 len += format(menuBody[len], 511-len, "^n\r8. \wEspecificar Conta^n")
1769
1770 if (end != g_menuPlayersNum[id])
1771 {
1772 format(menuBody[len], 511-len, "^n\r9. \w%L...^n\r0. \w%L", id, "MORE", id, pos ? "BACK" : "EXIT")
1773 keys |= MENU_KEY_9
1774 }
1775 else
1776 format(menuBody[len], 511-len, "^n\r0. \w%L", id, pos ? "BACK" : "EXIT")
1777
1778 show_menu(id, keys, menuBody, -1, "BK Admin Players")
1779}
1780public menu_action(id, key)
1781{
1782 switch (key)
1783 {
1784 case 7:
1785 {
1786 client_cmd(id, "messagemode [BankAdmin]Conta_")
1787 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
1788 ShowSyncHudMsg( id, g_msgSyncHud, "Digite a conta a ser editada.")
1789 g_selecao[id] = 2
1790 }
1791 case 8: bkadmin_main(id, ++g_menuPosition[id])
1792 case 9: bkadmin_main(id, --g_menuPosition[id])
1793 default:
1794 {
1795 PlayerId[id] = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
1796
1797 g_selecao[id] = 1
1798 g_bkmodel[id] = 1
1799
1800 g_bPagina[id] = 1
1801
1802 bkadmin_edit(id)
1803 }
1804 }
1805 return PLUGIN_HANDLED
1806}
1807public cmd_bankadmin(id)
1808{
1809 if(pl_hasAccess[id] == true)
1810 {
1811 new szLogin[45]
1812
1813 read_argv(1, szLogin, charsmax(szLogin))
1814
1815 new ErrorCode
1816 new Error[512]
1817 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
1818
1819 if(SqlConnection == Empty_Handle)
1820 {
1821 set_fail_state(Error)
1822 }
1823
1824 new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM `%s` WHERE ( `Conta`=^"%s^" );", g_sqlTable, szLogin)
1825
1826 if(!SQL_Execute(Query))
1827 {
1828 ErrorCode = SQL_QueryError(Query, Error, 511)
1829 SQLError("SQL Error: %s (%d)", Error, ErrorCode)
1830 zp_colored_print(id, "!g[%s] !yOcorreu um erro na consulta", TAGREG)
1831 return PLUGIN_HANDLED
1832 }
1833
1834 new iSelect = SQL_NumRows(Query)
1835
1836 if(iSelect < 1)
1837 {
1838 zp_colored_print(id, "!g[%s] !yNao foram encontrados registros nessa conta.", TAGREG)
1839 bkadmin_main(id, g_menuPosition[id] = 0)
1840 return PLUGIN_HANDLED
1841 }
1842 else
1843 {
1844 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Conta"), Conta, charsmax(Conta))
1845 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Senha"), Senha, charsmax(Senha))
1846 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"AmmoPacks"), AmmoPacks, charsmax(AmmoPacks))
1847 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Last Nick"), LastNick, charsmax(LastNick))
1848 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Blocked"), Blocked, charsmax(Blocked))
1849 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Blocked"), BlockedE, charsmax(BlockedE))
1850 SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Block Reason"), BlockedR, charsmax(BlockedR))
1851 Tickets = SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"Tickets"))
1852
1853 g_selecao[id] = 2
1854
1855 g_bkmodel[id] = 1
1856 g_bPagina[id] = 1
1857
1858 bkadmin_edit(id)
1859 }
1860 SQL_FreeHandle(Query)
1861 SQL_FreeHandle(SqlConnection)
1862 }
1863 return PLUGIN_CONTINUE
1864}
1865public bkadmin_edit(id)
1866{
1867 new Nick[32]; get_user_name(PlayerId[id], Nick, 31)
1868 new APS = str_to_num(AmmoPacks)
1869
1870 new menuBody[2048], iKeys, len = 0
1871
1872 len += formatex(menuBody, 2047, "\r[%s] \wOpcoes de edicao: \d%d/2^n^n", TAGREG, g_bPagina[id])
1873
1874 len += formatex(menuBody[len], 2047 - len, "\wNick: \d%s^n", g_selecao[id] == 1 ? Nick : LastNick)
1875
1876 len += formatex(menuBody[len], 2047 - len, "\wConta: \d%s^n", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
1877
1878 len += formatex(menuBody[len], 2047 - len, "\wSenha: \d%s^n", g_selecao[id] == 1 ? g_Senha[PlayerId[id]] : Senha)
1879
1880 len += formatex(menuBody[len], 2047 - len, "\wSaldo: \r%d^n", g_selecao[id] == 1 ? pl_APs[PlayerId[id]] : APS)
1881
1882 len += formatex(menuBody[len], 2047 - len, "\wTickets: \r%d^n^n", g_selecao[id] == 1 ? pl_Tickets[PlayerId[id]] : Tickets)
1883
1884 new BlockE = str_to_num(Blocked)
1885
1886 if(g_selecao[id] == 1 && g_Blocked[PlayerId[id]] > 0)
1887 {
1888 new HumanReadableDate[32]
1889 format_time(HumanReadableDate, charsmax(HumanReadableDate), "%d/%m/%Y", g_BlockedE[PlayerId[id]])
1890
1891 if(equal(g_BlockedE[PlayerId[id]], "1"))
1892 len += formatex(menuBody[len], 2047 - len, "\rConta Suspensa Permanentemente!^n")
1893 else
1894 len += formatex(menuBody[len], 2047 - len, "\rConta Suspensa ate %s!^n", HumanReadableDate)
1895
1896 if(equal(g_BlockedR[PlayerId[id]], "NONE"))
1897 len += formatex(menuBody[len], 2047 - len,"\rMotivo: \dNao especificado^n^n")
1898 else
1899 len += formatex(menuBody[len], 2047 - len,"\rMotivo: \d%s^n^n", g_BlockedR[PlayerId[id]])
1900 }
1901 else if(g_selecao[id] == 2 && BlockE > 0)
1902 {
1903 new HumanReadableDate[32], BlockedExpire
1904 BlockedExpire = str_to_num(BlockedE)
1905 format_time(HumanReadableDate, charsmax(HumanReadableDate), "%d/%m/%Y", BlockedExpire)
1906
1907 if(equal(BlockedE, "1"))
1908 len += formatex(menuBody[len], 2047 - len, "\rConta Suspensa Permanentemente!^n")
1909 else
1910 len += formatex(menuBody[len], 2047 - len, "\rConta Suspensa ate %s!^n", HumanReadableDate)
1911
1912 if(equal(BlockedR, "NONE"))
1913 len += formatex(menuBody[len], 2047 - len,"\rMotivo: \dNao especificado^n^n")
1914 else
1915 len += formatex(menuBody[len], 2047 - len,"\rMotivo: \d%s^n^n", BlockedR)
1916 }
1917
1918 if(g_bkmodel[id] == 1)
1919 {
1920 if(g_bPagina[id] == 1)
1921 {
1922 len += formatex(menuBody[len], 2047 - len, "\r1. \wAdicionar ammopacks^n")
1923 iKeys |= MENU_KEY_1
1924
1925 len += formatex(menuBody[len], 2047 - len, "\r2. \wEditar ammopacks^n")
1926 iKeys |= MENU_KEY_2
1927
1928 len += formatex(menuBody[len], 2047 - len, "\r3. \wAlterar Senha^n")
1929 iKeys |= MENU_KEY_3
1930
1931 if(g_selecao[id] == 1)
1932 {
1933 len += formatex(menuBody[len], 2047 - len, "\r4. \w%s conta^n", g_Blocked[PlayerId[id]] > 0 ? "Desbloquear" : "Bloquear")
1934 iKeys |= MENU_KEY_4
1935
1936 if(g_Blocked[PlayerId[id]] > 0)
1937 {
1938 len += formatex(menuBody[len], 2047 - len, "\r5. \wAlterar Motivo^n")
1939 iKeys |= MENU_KEY_5
1940 }
1941 }
1942 else if(g_selecao[id] == 2)
1943 {
1944 new Block = str_to_num(Blocked)
1945 len += formatex(menuBody[len], 2047 - len, "\r4. \w%s conta^n", Block > 0 ? "Desbloquear" : "Bloquear")
1946 iKeys |= MENU_KEY_4
1947
1948 if(Block > 0)
1949 {
1950 len += formatex(menuBody[len], 2047 - len, "\r5. \wAlterar Motivo^n")
1951 iKeys |= MENU_KEY_5
1952 }
1953 }
1954 }
1955 else if(g_bPagina[id] == 2)
1956 {
1957 len += formatex(menuBody[len], 2047 - len, "\r1. \wAdicionar Tickets^n")
1958 iKeys |= MENU_KEY_1
1959
1960 len += formatex(menuBody[len], 2047 - len, "\r2. \wEditar Tickets^n")
1961 iKeys |= MENU_KEY_2
1962 }
1963 }
1964 if(g_bkmodel[id] == 2)
1965 {
1966 new Block = str_to_num(Blocked)
1967 if(g_selecao[id] == 1)
1968 len += formatex(menuBody[len], 2047 - len, "\wDeseja realmente %s essa conta\r?^n^n", g_Blocked[PlayerId[id]] > 0 ? "desbloquear" : "bloquear")
1969 else
1970 len += formatex(menuBody[len], 2047 - len, "\wDeseja realmente %s essa conta\r?^n^n", Block > 0 ? "desbloquear" : "bloquear")
1971
1972 if(g_selecao[id] == 1)
1973 {
1974 len += formatex(menuBody[len], 2047 - len, "\r1. \wConfirmar %s^n^n", g_Blocked[PlayerId[id]] > 0 ? "Desbloqueio" : "Bloqueio")
1975 iKeys |= MENU_KEY_1
1976 }
1977 else if(g_selecao[id] == 2)
1978 {
1979 len += formatex(menuBody[len], 2047 - len, "\r1. \wConfirmar %s^n^n", Block > 0 ? "Desbloqueio" : "Bloqueio")
1980 iKeys |= MENU_KEY_1
1981 }
1982
1983 if(g_selecao[id] == 1 && g_Blocked[PlayerId[id]] == 0)
1984 {
1985 len += formatex(menuBody[len], 2047 - len, "\r2. \dTempo: \r%s^n^n", g_blocktime[id] == 0 ? "Permanentemente" : g_blocktime[id] == 1 ? "1 Dia" : g_blocktime[id] == 2 ? "3 Dias" : g_blocktime[id] == 3 ? "7 Dias" : g_blocktime[id] == 3 ? "15 Dias" : g_blocktime[id] == 4 ? "20 Dias" : g_blocktime[id] == 5 ? "30 Dias" : "Tempo Invalido")
1986 iKeys |= MENU_KEY_2
1987 }
1988 else if(g_selecao[id] == 2 && equal(Blocked, "0"))
1989 {
1990 len += formatex(menuBody[len], 2047 - len, "\r2. \dTempo: \r%s^n^n", g_blocktime[id] == 0 ? "Permanentemente" : g_blocktime[id] == 1 ? "1 Dia" : g_blocktime[id] == 2 ? "3 Dias" : g_blocktime[id] == 3 ? "7 Dias" : g_blocktime[id] == 3 ? "15 Dias" : g_blocktime[id] == 4 ? "20 Dias" : g_blocktime[id] == 5 ? "30 Dias" : "Tempo Invalido")
1991 iKeys |= MENU_KEY_2
1992 }
1993 }
1994 if(g_bkmodel[id] == 1)
1995 {
1996 len += formatex(menuBody[len], 2047 - len, "^n\r9. %sProximo \y/ %sVoltar", g_bPagina[id] == 1 ? "\w" : "\d", g_bPagina[id] == 2 ? "\w" : "\d")
1997 iKeys |= MENU_KEY_9
1998 }
1999 len += formatex(menuBody[len], 2047 - len, "^n\r0. \w%s", g_bkmodel[id] == 1 ? "Sair" : "Cancelar")
2000 iKeys |= MENU_KEY_0
2001
2002 set_pdata_int(id, OFFSET_CSMENUCODE, 0)
2003 show_menu(id, iKeys, menuBody, -1, "Bank Admin Menu")
2004}
2005public bkadmin_edit_handler(id, iKey)
2006{
2007 switch((iKey + 1) % 10)
2008 {
2009 case 1:
2010 {
2011 if(g_bkmodel[id] == 1)
2012 {
2013 if(g_bPagina[id] == 1)
2014 client_cmd(id, "messagemode [BankAdmin]Add_Packs_")
2015 else
2016 client_cmd(id, "messagemode [BankAdmin]Add_Tickets_")
2017 }
2018 else
2019 {
2020 if(g_selecao[id] == 1)
2021 {
2022 if(g_Blocked[PlayerId[id]] > 0)
2023 {
2024 new szQuery[ 128 ];
2025 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Block Reason`='NONE' , `Blocked`=0 WHERE Conta=^"%s^"", g_sqlTable, g_Conta[PlayerId[id]])
2026 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2027 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi desbloqueada.", TAGREG, g_Conta[PlayerId[id]])
2028
2029 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2030
2031 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2032 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2033 LogBKAdmin("Conta: %s", Conta)
2034 LogBKAdmin("Conta desbloqueada!")
2035 LogBKAdmin("--------------------------------------------------------------------")
2036
2037 client_cmd(id, "[BankAdmin]Conta_ %s", g_Conta[PlayerId[id]])
2038
2039 cmd_block(PlayerId[id])
2040 }
2041 else
2042 {
2043 switch(g_blocktime[id])
2044 {
2045 case 0:
2046 {
2047 new szQuery[ 128 ];
2048 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`='1' WHERE Conta=^"%s^"", g_sqlTable, g_Conta[PlayerId[id]])
2049 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2050
2051 p_laBlockTime = 1
2052
2053 cmd_msg_reason(id)
2054 }
2055 case 1:
2056 {
2057 new szQuery[ 128 ];
2058 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 86400, g_Conta[PlayerId[id]])
2059 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2060
2061 p_laBlockTime = get_systime() + 86400
2062
2063 cmd_msg_reason(id)
2064 }
2065 case 2:
2066 {
2067 new szQuery[ 128 ];
2068 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 259200, g_Conta[PlayerId[id]])
2069 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2070
2071 p_laBlockTime = get_systime() + 259200
2072
2073 cmd_msg_reason(id)
2074 }
2075 case 3:
2076 {
2077 new szQuery[ 128 ];
2078 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 604800, g_Conta[PlayerId[id]])
2079 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2080
2081 p_laBlockTime = get_systime() + 604800
2082
2083 cmd_msg_reason(id)
2084 }
2085 case 4:
2086 {
2087 new szQuery[ 128 ];
2088 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 1296000, g_Conta[PlayerId[id]])
2089 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2090
2091 p_laBlockTime = get_systime() + 1296000
2092
2093 cmd_msg_reason(id)
2094 }
2095 case 5:
2096 {
2097 new szQuery[ 128 ];
2098 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 2592000, g_Conta[PlayerId[id]])
2099 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2100
2101 p_laBlockTime = get_systime() + 2592000
2102
2103 cmd_msg_reason(id)
2104 }
2105 }
2106 }
2107 }
2108 else if(g_selecao[id] == 2)
2109 {
2110 new Block = str_to_num(Blocked)
2111 if(Block > 0)
2112 {
2113 new szQuery[ 128 ];
2114 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Blocked=0 , `Block Reason`='NONE' WHERE Conta=^"%s^"", g_sqlTable, Conta)
2115 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2116 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi desbloqueada.", TAGREG, Conta)
2117
2118 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2119
2120 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2121 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2122 LogBKAdmin("Conta: %s", Conta)
2123 LogBKAdmin("Conta desbloqueada!")
2124 LogBKAdmin("--------------------------------------------------------------------")
2125
2126 client_cmd(id, "[BankAdmin]Conta_ %s", Conta)
2127 }
2128 else
2129 {
2130 switch(g_blocktime[id])
2131 {
2132 case 0:
2133 {
2134 new szQuery[ 128 ];
2135 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`='1' WHERE Conta=^"%s^"", g_sqlTable, Conta)
2136 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2137
2138 p_laBlockTime = 1
2139
2140 cmd_msg_reason(id)
2141 }
2142 case 1:
2143 {
2144 new szQuery[ 128 ];
2145 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 86400, Conta)
2146 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2147
2148 p_laBlockTime = get_systime() + 86400
2149
2150 cmd_msg_reason(id)
2151 }
2152 case 2:
2153 {
2154 new szQuery[ 128 ];
2155 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 259200, Conta)
2156 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2157
2158 p_laBlockTime = get_systime() + 259200
2159
2160 cmd_msg_reason(id)
2161 }
2162 case 3:
2163 {
2164 new szQuery[ 128 ];
2165 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 604800, Conta)
2166 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2167
2168 p_laBlockTime = get_systime() + 604800
2169
2170 cmd_msg_reason(id)
2171 }
2172 case 4:
2173 {
2174 new szQuery[ 128 ];
2175 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Blocked`=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 1296000, Conta)
2176 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2177
2178 p_laBlockTime = get_systime() + 1296000
2179
2180 cmd_msg_reason(id)
2181 }
2182 case 5:
2183 {
2184 new szQuery[ 128 ];
2185 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Blocked=%d WHERE Conta=^"%s^"", g_sqlTable, get_systime() + 2592000, Conta)
2186 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2187
2188 p_laBlockTime = get_systime() + 2592000
2189
2190 cmd_msg_reason(id)
2191 }
2192 }
2193 }
2194 }
2195 }
2196 }
2197 case 2:
2198 {
2199 if(g_bkmodel[id] == 1)
2200 {
2201 if(g_bPagina[id] == 1)
2202 client_cmd(id, "messagemode [BankAdmin]Edit_Packs_")
2203 else
2204 client_cmd(id, "messagemode [BankAdmin]Edit_Tickets_")
2205 }
2206 else
2207 {
2208 if(g_blocktime[id] == 0)
2209 g_blocktime[id] = 1
2210 else if(g_blocktime[id] == 1)
2211 g_blocktime[id] = 2
2212 else if(g_blocktime[id] == 2)
2213 g_blocktime[id] = 3
2214 else if(g_blocktime[id] == 3)
2215 g_blocktime[id] = 4
2216 else if(g_blocktime[id] == 4)
2217 g_blocktime[id] = 5
2218 else if(g_blocktime[id] == 5)
2219 g_blocktime[id] = 0
2220
2221 bkadmin_edit(id)
2222 }
2223 }
2224 case 3:
2225 {
2226 if(pl_hasAccess[id] == true && g_selecao[id] == 1 && PlayerId[id] != id)
2227 {
2228 zp_colored_print(id, "!g[%s] !yEsse jogador tem imunidade.", TAGREG)
2229 bkadmin_edit(id)
2230 return PLUGIN_HANDLED
2231 }
2232 else client_cmd(id, "messagemode [BankAdmin]Nova_Senha_")
2233 }
2234 case 4:
2235 {
2236 if(pl_hasAccess[id] == true && g_selecao[id] == 1 && PlayerId[id] != id)
2237 {
2238 zp_colored_print(id, "!g[%s] !yEsse jogador tem imunidade.", TAGREG)
2239 bkadmin_edit(id)
2240 return PLUGIN_HANDLED
2241 }
2242 else
2243 {
2244 g_bkmodel[id] = 2
2245 bkadmin_edit(id)
2246 }
2247 }
2248 case 5: cmd_msg_reason(id)
2249 case 9:
2250 {
2251 if(g_bPagina[id] == 1)
2252 g_bPagina[id] = 2
2253 else if(g_bPagina[id] == 2)
2254 g_bPagina[id] = 1
2255
2256 bkadmin_edit(id)
2257 }
2258 case 0: return PLUGIN_HANDLED
2259 }
2260 return PLUGIN_HANDLED;
2261}
2262public cmd_bankadmin_add(id)
2263{
2264 if(pl_hasAccess[id] == true)
2265 {
2266 new szAps[11]
2267 read_args(szAps, 10)
2268 remove_quotes(szAps)
2269
2270 if(equal(szAps, "") || equal(szAps, " "))
2271 return PLUGIN_HANDLED
2272
2273 new iAps = str_to_num(szAps)
2274
2275 if(iAps < 1) return PLUGIN_HANDLED
2276
2277 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2278
2279 new APS = str_to_num(AmmoPacks)
2280
2281 zp_colored_print(id, "!g[%s] !yForam adicionados !t%d !yAmmoPacks a Conta !t%s", TAGREG, iAps, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2282
2283 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2284 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2285 LogBKAdmin("Conta: %s", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2286 LogBKAdmin("Acao: %d + %d AmmoPacks", g_selecao[id] == 1 ? pl_APs[PlayerId[id]] : APS, iAps)
2287 LogBKAdmin("--------------------------------------------------------------------")
2288
2289 static szQuery[ 128 ]
2290
2291 if(g_selecao[id] == 1)
2292 {
2293 pl_APs[PlayerId[id]] += iAps;
2294 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `AmmoPacks`='%d' WHERE Conta =^"%s^";", g_sqlTable, pl_APs[PlayerId[id]], g_Conta[PlayerId[id]]);
2295 }
2296 else
2297 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET AmmoPacks=AmmoPacks+'%d' WHERE Conta =^"%s^";", g_sqlTable, iAps, Conta);
2298
2299 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2300 }
2301 return PLUGIN_CONTINUE
2302}
2303public cmd_bankadmin_edit(id)
2304{
2305 if(pl_hasAccess[id] == true)
2306 {
2307 new szAps[11]
2308 read_args(szAps, 10)
2309 remove_quotes(szAps)
2310
2311 if(equal(szAps, "") || equal(szAps, " "))
2312 return PLUGIN_HANDLED
2313
2314 new iAps = str_to_num(szAps)
2315
2316 if(iAps < 0) return PLUGIN_HANDLED
2317
2318 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi editada e agora tem !t%d !yAmmoPacks.", TAGREG, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta, iAps)
2319
2320 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2321
2322 new APS = str_to_num(AmmoPacks)
2323
2324 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2325 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2326 LogBKAdmin("Conta: %s", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2327 LogBKAdmin("Acao: de %d para %d AmmoPacks", g_selecao[id] == 1 ? pl_APs[PlayerId[id]] : APS, iAps)
2328 LogBKAdmin("--------------------------------------------------------------------")
2329
2330 static szQuery[ 128 ]
2331
2332 if(g_selecao[id] == 1)
2333 {
2334 pl_APs[PlayerId[id]] = iAps;
2335 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `AmmoPacks`='%d' WHERE Conta =^"%s^";", g_sqlTable, pl_APs[PlayerId[id]], g_Conta[PlayerId[id]]);
2336 }
2337 else
2338 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `AmmoPacks`='%d' WHERE Conta =^"%s^";", g_sqlTable, APS, Conta);
2339
2340 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2341 }
2342 return PLUGIN_CONTINUE
2343}
2344public cmd_bankadmin_add_tkts(id)
2345{
2346 if(pl_hasAccess[id] == true)
2347 {
2348 new szTkts[11]
2349 read_args(szTkts, 10)
2350 remove_quotes(szTkts)
2351
2352 if(equal(szTkts, "") || equal(szTkts, " "))
2353 return PLUGIN_HANDLED
2354
2355 new iTkts = str_to_num(szTkts)
2356
2357 if(iTkts < 1) return PLUGIN_HANDLED
2358
2359 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2360
2361 zp_colored_print(id, "!g[%s] !yForam adicionados !t%d !yTickets a Conta !t%s", TAGREG, iTkts, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2362
2363 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2364 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2365 LogBKAdmin("Conta: %s", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2366 LogBKAdmin("Acao: %d + %d Tickets", g_selecao[id] == 1 ? pl_Tickets[PlayerId[id]] : Tickets, iTkts)
2367 LogBKAdmin("--------------------------------------------------------------------")
2368
2369 static szQuery[ 128 ]
2370
2371 if(g_selecao[id] == 1)
2372 {
2373 pl_Tickets[PlayerId[id]] += iTkts;
2374 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Tickets`='%d' WHERE Conta =^"%s^";", g_sqlTable, pl_Tickets[PlayerId[id]], g_Conta[PlayerId[id]]);
2375 }
2376 else
2377 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Tickets=Tickets+'%d' WHERE Conta =^"%s^";", g_sqlTable, iTkts, Conta);
2378
2379 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2380 }
2381 return PLUGIN_CONTINUE
2382}
2383public cmd_bankadmin_edit_tkts(id)
2384{
2385 if(pl_hasAccess[id] == true)
2386 {
2387 new szTkts[11]
2388 read_args(szTkts, 10)
2389 remove_quotes(szTkts)
2390
2391 if(equal(szTkts, "") || equal(szTkts, " "))
2392 return PLUGIN_HANDLED
2393
2394 new iTkts = str_to_num(szTkts)
2395
2396 if(iTkts < 0) return PLUGIN_HANDLED
2397
2398 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi editada e agora tem !t%d !yTickets.", TAGREG, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta, iTkts)
2399
2400 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2401
2402 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2403 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2404 LogBKAdmin("Conta: %s", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2405 LogBKAdmin("Acao: de %d para %d Tickets", g_selecao[id] == 1 ? pl_Tickets[PlayerId[id]] : Tickets, iTkts)
2406 LogBKAdmin("--------------------------------------------------------------------")
2407
2408 static szQuery[ 128 ]
2409
2410 if(g_selecao[id] == 1)
2411 {
2412 pl_Tickets[PlayerId[id]] = iTkts;
2413 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Tickets`='%d' WHERE Conta =^"%s^";", g_sqlTable, pl_Tickets[PlayerId[id]], g_Conta[PlayerId[id]]);
2414 }
2415 else
2416 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Tickets`='%d' WHERE Conta =^"%s^";", g_sqlTable, iTkts, Conta);
2417
2418 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2419 }
2420 return PLUGIN_CONTINUE
2421}
2422public cmd_bankadmin_pw(id)
2423{
2424 if(pl_hasAccess[id] == true)
2425 {
2426 read_args(MudarSenhaNova[id], charsmax(MudarSenhaNova))
2427 remove_quotes(MudarSenhaNova[id])
2428 trim(MudarSenhaNova[id])
2429
2430 if(contain(MudarSenhaNova[id], " ") != -1 || equal(MudarSenhaNova[id], "") || strlen(MudarSenhaNova[id]) < get_pcvar_num(cvar_pwmin) || strlen(MudarSenhaNova[id]) > get_pcvar_num(cvar_pwmax) )
2431 {
2432 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
2433 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR1", get_pcvar_num(cvar_pwmin), get_pcvar_num(cvar_pwmax))
2434 EmitSound(id, ERROR)
2435 client_cmd(id, "messagemode [BankAdmin]Nova_Senha_")
2436 }
2437 else
2438 client_cmd(id, "messagemode [BankAdmin]Confirmar_Senha_");
2439 }
2440}
2441public cmd_bankadmin_pw2(id)
2442{
2443 if(pl_hasAccess[id] == true)
2444 {
2445 new password[64];
2446 read_args(password, 63);
2447 remove_quotes(password);
2448
2449 if(equal(password[0], MudarSenhaNova[id]))
2450 {
2451 static szQuery[ 128 ]
2452
2453 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2454
2455 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2456 LogBKAdmin("Admin: %s / %s", pl_Nick[id], pl_SteamID[id])
2457 LogBKAdmin("Conta: %s", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2458 LogBKAdmin("Senha: de %s para %s", g_selecao[id] == 1 ? g_Senha[PlayerId[id]] : Senha, password)
2459 LogBKAdmin("--------------------------------------------------------------------")
2460 zp_colored_print(id, "!g[%s] !yA senha da conta !t%s !yfoi alterada para: !t%s", TAGREG, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta, password)
2461
2462 if(g_selecao[id] == 1)
2463 g_Senha[PlayerId[id]] = password
2464
2465 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Senha=^"%s^" WHERE Conta =^"%s^";", g_sqlTable, password, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2466 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2467 }
2468 else
2469 {
2470 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
2471 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PW_ERROR2")
2472 client_cmd(id, "messagemode [BankAdmin]Confirmar_Senha_")
2473 }
2474 }
2475}
2476public cmd_reason(id)
2477{
2478 if(pl_hasAccess[id] == true)
2479 {
2480 new arg1[50]
2481 static szQuery[ 128 ]
2482 read_argv(1, arg1, charsmax(arg1))
2483
2484 if(g_selecao[id] == 1)
2485 {
2486 if(g_Blocked[PlayerId[id]] > 0)
2487 {
2488 client_cmd(id, "[BankAdmin]Conta_ %s", g_Conta[PlayerId[id]])
2489 zp_colored_print(id, "!g[%s] !yAlteracao bem sucedida.", TAGREG)
2490 }
2491 else
2492 {
2493 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2494 new HumanReadableDate[32]; format_time(HumanReadableDate, charsmax(HumanReadableDate), "%d/%m/%Y", p_laBlockTime)
2495
2496 if(p_laBlockTime == 1)
2497 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi bloqueada !gpermanentemente!y.", TAGREG, g_Conta[PlayerId[id]])
2498 else
2499 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi bloqueada !gate %s!y.", TAGREG, g_Conta[PlayerId[id]], HumanReadableDate)
2500
2501 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2502 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2503 LogBKAdmin("Conta: %s", g_Conta[PlayerId[id]])
2504 if(p_laBlockTime == 1)
2505 LogBKAdmin("Conta bloqueada permanentemente!")
2506 else
2507 LogBKAdmin("Conta bloqueada ate %s!", HumanReadableDate)
2508 LogBKAdmin("Motivo: %s", arg1)
2509 LogBKAdmin("--------------------------------------------------------------------")
2510 }
2511 }
2512 else if(g_selecao[id] == 2)
2513 {
2514 new Block = str_to_num(Blocked)
2515 if(Block > 0)
2516 {
2517 client_cmd(id, "[BankAdmin]Conta_ %s", Conta)
2518 zp_colored_print(id, "!g[%s] !yAlteracao bem sucedida.", TAGREG)
2519 }
2520 else
2521 {
2522 get_user_name(id, pl_Nick[id], 32); get_user_authid(id, pl_SteamID[id], 32)
2523 new HumanReadableDate[32]; format_time(HumanReadableDate, charsmax(HumanReadableDate), "%d/%m/%Y", p_laBlockTime)
2524
2525 if(p_laBlockTime == 1)
2526 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi bloqueada !gpermanentemente!y.", TAGREG, Conta)
2527 else
2528 zp_colored_print(id, "!g[%s] !yA conta !t%s !yfoi bloqueada !gate %s!y.", TAGREG, Conta, HumanReadableDate)
2529
2530 LogBKAdmin("%s -- Conta editada pelo administrador.", TAGREG)
2531 LogBKAdmin("Admin/SteamID: %s / %s", pl_Nick[id], pl_SteamID[id])
2532 LogBKAdmin("Conta: %s", Conta)
2533 if(p_laBlockTime == 1)
2534 LogBKAdmin("Conta bloqueada permanentemente!")
2535 else
2536 LogBKAdmin("Conta bloqueada ate %s!", HumanReadableDate)
2537 LogBKAdmin("Motivo: %s", arg1)
2538 LogBKAdmin("--------------------------------------------------------------------")
2539 }
2540 }
2541
2542 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET `Block Reason`=^"%s^" WHERE Conta =^"%s^";", g_sqlTable, arg1, g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2543 SQL_ThreadQuery(g_SqlTuple,"handle_CLQuery", szQuery)
2544
2545 if(g_selecao[id] == 1) cmd_block(PlayerId[id])
2546
2547 client_cmd(id, "[BankAdmin]Conta_ %s", g_selecao[id] == 1 ? g_Conta[PlayerId[id]] : Conta)
2548 }
2549}
2550public cmd_block(id)
2551{
2552 set_hudmessage(255, 0, 0, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
2553 ShowSyncHudMsg(id, g_msgSyncHud, "Sua Conta foi %s!", g_Blocked[id] > 0 ? "desbloqueada" : "bloqueada")
2554
2555 user_silentkill(id)
2556 cs_set_user_team(id, CS_TEAM_SPECTATOR)
2557 g_Conta[id] = "Nao registrado/logado"
2558 g_Senha[id] = "Nao registrado/logado"
2559 pl_tentativas[id] = get_pcvar_num(cvar_maxtent)
2560 pl_logado[id] = false
2561 g_blocked[id] = false
2562 g_Blocked[id] = 0
2563
2564 set_task(1.0, "menu_register", id)
2565}
2566public cmd_msg_reason(id)
2567{
2568 if(pl_hasAccess[id])
2569 {
2570 set_hudmessage(0, 0, 255, 0.02, 0.25, 2, 1.0, 2.0, 0.02, 0.1, -1)
2571 ShowSyncHudMsg( id, g_msgSyncHud, "%L", id, "PUT_REASON")
2572 client_cmd(id, "messagemode [BankAdmin]Motivo_")
2573 }
2574}
2575/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
2576*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1046\\ f0\\ fs16 \n\\ par }
2577*/