· 6 years ago · Mar 14, 2019, 04:30 PM
1#include <sourcemod>
2#include <sdkhooks>
3#include <sdktools>
4#include <regex>
5#include <cstrike>
6#include <fpvm_interface>
7#include <clientprefs>
8#include <multicolors>
9#include <sourcecomms>
10
11#pragma newdecls required
12#pragma semicolon 1
13
14char logFile[256];
15
16ConVar GoModHUD;
17
18#define LoopValidClients(%1) for(int %1 = 1; %1 < MaxClients; %1++) if(GoodClient(%1))
19
20#define WEAPON "weapon_knife"
21#define MODEL1 "models/weaponf/v_knife_tridagger_v2.mdl"
22#define MODEL2 "models/weaponf/v_knife_tridagger_steel.mdl"
23#define MODEL3 "models/weaponf/v_knife_reaper.mdl"
24#define MODEL4 "models/weaponf/v_knife_kabar_v2.mdl"
25#define MODEL5 "models/weaponf/crashz.mdl"
26#define MODEL6 "models/weaponf/v_knife_ultimate.mdl"
27#define MODEL7 "models/weapons/caleon1/screwdriver/v_knife_screwdriver.mdl"
28
29#define FLAG_LETTERS_SIZE 26
30#define MAX_PLAYERS 32
31#define MIN_GRACZY 6
32
33
34AdminFlag g_FlagLetters[FLAG_LETTERS_SIZE];
35Handle g_hSql = null, g_hCiasteczkoVIP;
36bool g_bGOMOD[MAXPLAYERS+1];
37
38int g_MinimalnaIloscGraczy;
39int g_iKeys[MAXPLAYERS + 1];
40int g_iCases[MAXPLAYERS + 1];
41int g_iAk[MAXPLAYERS + 1];
42int g_iKosa1[MAXPLAYERS + 1];
43int g_iKosa2[MAXPLAYERS + 1];
44int g_iKosa3[MAXPLAYERS + 1];
45int g_iKosa4[MAXPLAYERS + 1];
46int g_iKosa5[MAXPLAYERS + 1];
47int g_iKosa6[MAXPLAYERS + 1];
48int g_iKosa7[MAXPLAYERS + 1];
49
50int g_iK1[MAXPLAYERS + 1], g_iK2[MAXPLAYERS + 1], g_iK3[MAXPLAYERS + 1], g_iK4[MAXPLAYERS + 1], g_iK5[MAXPLAYERS + 1], g_iK6[MAXPLAYERS + 1], g_iK7[MAXPLAYERS + 1], g_iK8[MAXPLAYERS + 1], g_iK9[MAXPLAYERS + 1], g_iK10[MAXPLAYERS + 1], g_iK11[MAXPLAYERS + 1], g_iK12[MAXPLAYERS + 1], g_iK13[MAXPLAYERS + 1];
51int g_iP1[MAXPLAYERS + 1], g_iP2[MAXPLAYERS + 1], g_iP3[MAXPLAYERS + 1], g_iP4[MAXPLAYERS + 1], g_iP5[MAXPLAYERS + 1], g_iP6[MAXPLAYERS + 1], g_iP7[MAXPLAYERS + 1], g_iP8[MAXPLAYERS + 1], g_iP9[MAXPLAYERS + 1], g_iP10[MAXPLAYERS + 1], g_iP11[MAXPLAYERS + 1], g_iP12[MAXPLAYERS + 1], g_iP13[MAXPLAYERS + 1];
52int g_iAKolor[MAXPLAYERS + 1] = {-1, ...}, g_iAPrefiks[64] = {-1, ...};
53
54int g_Model1, g_Model2, g_Model3, g_Model4, g_Model5, g_Model6, g_Model7;
55
56char g_sPrefiksNames[][] =
57{
58 "",
59 "{green}[Boski]",
60 "{blue}[Furiat]",
61 "{olive}[LaluÅ›]",
62 "{lime}[Magiczny]",
63 "{purple}[Cheater]",
64 "{grey}[Bogobojny]",
65 "{yellow}[Kot]",
66 "{gold}[Zjawiskowy]",
67 "{bluegrey}[Bandzior]",
68 "{lightgreen}[Nałogowiec]",
69 "{lightblue}[Strażnik]",
70 "{darkblue}[Sknera]",
71 "{orchid}[Melepeta]"
72};
73
74char g_sColors[][] =
75{
76 "",
77 "{green}",
78 "{blue}",
79 "{olive}",
80 "{lime}",
81 "{purple}",
82 "{grey}",
83 "{yellow}",
84 "{gold}",
85 "{bluegrey}",
86 "{lightgreen}",
87 "{lightblue}",
88 "{darkblue}",
89 "{orchid}"
90};
91
92public void OnPluginStart()
93{
94 CreateTimer(0.5, Timer_UpdateHHH, INVALID_HANDLE, TIMER_REPEAT);
95
96 RegConsoleCmd("sm_hudgo", CMD_GOMOD);
97 RegConsoleCmd("sm_open", OtwieranieSkrzynek);
98 RegConsoleCmd("sm_wybierz", MenuKos);
99 RegConsoleCmd("sm_prefiks", Prefiksy);
100 RegConsoleCmd("sm_kolory", Kolory);
101 RegConsoleCmd("sm_sprawdzenie", sprawdzenie);
102 RegConsoleCmd("sm_csgo", MenuCsgo);
103 RegConsoleCmd("say", Say);
104 RegConsoleCmd("say_team", SayTeam);
105
106 HookEvent("round_start", RoundStart);
107 HookEvent("round_end", RoundEnd);
108 HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post);
109 g_hCiasteczkoVIP = RegClientCookie("WK_VIP", "Weak_VIP", CookieAccess_Private);
110
111 GoModHUD = CreateConVar("sm_gomod", "1", "Hud włączony?");
112
113 AutoExecConfig(true, "gomod_cfg");
114
115 g_FlagLetters = CreateFlagLetters();
116
117 BuildPath(Path_SM, logFile, sizeof(logFile), "logs/Uslugi/GOVIP.txt");
118
119 DB_Connect();
120}
121
122public void OnClientPutInServer(int client)
123{
124 if (GoModHUD.BoolValue)
125 {
126 g_bGOMOD[client] = true;
127 }
128 else
129 {
130 g_bGOMOD[client] = false;
131 }
132
133 g_iKeys[client] = 0;
134 g_iCases[client] = 0;
135 g_iAk[client] = 0;
136 g_iKosa1[client] = 0;
137 g_iKosa2[client] = 0;
138 g_iKosa3[client] = 0;
139 g_iKosa4[client] = 0;
140 g_iKosa5[client] = 0;
141 g_iKosa6[client] = 0;
142 g_iKosa7[client] = 0;
143
144 g_iK1[client] = 0;
145 g_iK2[client] = 0;
146 g_iK3[client] = 0;
147 g_iK4[client] = 0;
148 g_iK5[client] = 0;
149 g_iK6[client] = 0;
150 g_iK7[client] = 0;
151 g_iK8[client] = 0;
152 g_iK9[client] = 0;
153 g_iK10[client] = 0;
154 g_iK11[client] = 0;
155 g_iK12[client] = 0;
156 g_iK13[client] = 0;
157 g_iAKolor[client] = 0;
158 g_iP1[client] = 0;
159 g_iP2[client] = 0;
160 g_iP3[client] = 0;
161 g_iP4[client] = 0;
162 g_iP5[client] = 0;
163 g_iP6[client] = 0;
164 g_iP7[client] = 0;
165 g_iP8[client] = 0;
166 g_iP9[client] = 0;
167 g_iP10[client] = 0;
168 g_iP11[client] = 0;
169 g_iP12[client] = 0;
170 g_iP13[client] = 0;
171 g_iAPrefiks[client] = 0;
172
173 DB_Load(client);
174}
175
176public void OnClientDisconnect(int client)
177{
178 DB_Save(client);
179 ChatSave(client);
180}
181
182public void OnConfigsExecuted() {
183 g_MinimalnaIloscGraczy = MIN_GRACZY;
184}
185
186public void OnMapStart()
187{
188 g_Model1 = PrecacheModel(MODEL1);
189 g_Model2 = PrecacheModel(MODEL2);
190 g_Model3 = PrecacheModel(MODEL3);
191 g_Model4 = PrecacheModel(MODEL4);
192 g_Model5 = PrecacheModel(MODEL5);
193 g_Model6 = PrecacheModel(MODEL6);
194 g_Model7 = PrecacheModel(MODEL7);
195
196 AddFileToDownloadsTable("models/weaponf/v_knife_tridagger_v2.dx90.vtx");
197 AddFileToDownloadsTable("models/weaponf/v_knife_tridagger_v2.mdl");
198 AddFileToDownloadsTable("models/weaponf/v_knife_tridagger_v2.vvd");
199 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/tridagger.vmt");
200 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/tridagger.vtf");
201 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/tridagger_exp.vtf");
202 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/tridagger_normal.vtf");
203 AddFileToDownloadsTable("models/weaponf/v_knife_tridagger_steel.dx90.vtx");
204 AddFileToDownloadsTable("models/weaponf/v_knife_tridagger_steel.mdl");
205 AddFileToDownloadsTable("models/weaponf/v_knife_tridagger_steel.vvd");
206 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/steel/tridagger.vmt");
207 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/steel/tridagger_elite.vtf");
208 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/steel/tridagger_exp.vtf");
209 AddFileToDownloadsTable("materials/models/weaponf/v_models/tridagger/steel/tridagger_elite_normal.vtf");
210 AddFileToDownloadsTable("models/weaponf/v_knife_reaper.dx90.vtx");
211 AddFileToDownloadsTable("models/weaponf/v_knife_reaper.mdl");
212 AddFileToDownloadsTable("models/weaponf/v_knife_reaper.vvd");
213 AddFileToDownloadsTable("materials/models/weaponf/v_models/dtb_dagger/dtb.vmt");
214 AddFileToDownloadsTable("materials/models/weaponf/v_models/dtb_dagger/dtb.vtf");
215 AddFileToDownloadsTable("materials/models/weaponf/v_models/dtb_dagger/dtb_exp.vtf");
216 AddFileToDownloadsTable("materials/models/weaponf/v_models/dtb_dagger/dtb_normal.vtf");
217 AddFileToDownloadsTable("models/weaponf/v_knife_kabar_v2.dx90.vtx");
218 AddFileToDownloadsTable("models/weaponf/v_knife_kabar_v2.mdl");
219 AddFileToDownloadsTable("models/weaponf/v_knife_kabar_v2.vvd");
220 AddFileToDownloadsTable("materials/models/weaponf/kabar/KABAR.vmt");
221 AddFileToDownloadsTable("materials/models/weaponf/kabar/kabar.vtf");
222 AddFileToDownloadsTable("materials/models/weaponf/kabar/kabar_G.vtf");
223 AddFileToDownloadsTable("materials/models/weaponf/kabar/kabar_n.vtf");
224 AddFileToDownloadsTable("materials/models/weaponf/v_models/knife_ct/bowieknife.vmt");
225 AddFileToDownloadsTable("materials/models/weaponf/v_models/knife_ct/knife.vtf");
226 AddFileToDownloadsTable("materials/models/weaponf/v_models/knife_ct/knife_env.vtf");
227 AddFileToDownloadsTable("materials/models/weaponf/v_models/knife_ct/knife_normal.vtf");
228 AddFileToDownloadsTable("models/weaponf/crashz.dx80.vtx");
229 AddFileToDownloadsTable("models/weaponf/crashz.dx90.vtx");
230 AddFileToDownloadsTable("models/weaponf/crashz.mdl");
231 AddFileToDownloadsTable("models/weaponf/crashz.sw.vtx");
232 AddFileToDownloadsTable("models/weaponf/crashz.vvd");
233 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_1.vmt");
234 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_1.vtf");
235 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_2.vmt");
236 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_2.vtf");
237 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_3.vmt");
238 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_3.vtf");
239 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_4.vmt");
240 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_4.vtf");
241 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_5.vmt");
242 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_5.vtf");
243 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_6.vmt");
244 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_6.vtf");
245 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_7.vmt");
246 AddFileToDownloadsTable("materials/models/weaponf/ultimate/texture_7.vtf");
247 AddFileToDownloadsTable("models/weaponf/v_knife_ultimate.dx90.vtx");
248 AddFileToDownloadsTable("models/weaponf/v_knife_ultimate.mdl");
249 AddFileToDownloadsTable("models/weaponf/v_knife_ultimate.vvd");
250 AddFileToDownloadsTable("models/weapons/caleon1/screwdriver/v_knife_screwdriver.dx90.vtx");
251 AddFileToDownloadsTable("models/weapons/caleon1/screwdriver/v_knife_screwdriver.mdl");
252 AddFileToDownloadsTable("models/weapons/caleon1/screwdriver/v_knife_screwdriver.vvd");
253 AddFileToDownloadsTable("materials/models/weapons/caleon1/screwdriver/yellow.vtf");
254 AddFileToDownloadsTable("materials/models/weapons/caleon1/screwdriver/black.vmt");
255 AddFileToDownloadsTable("materials/models/weapons/caleon1/screwdriver/black.vtf");
256 AddFileToDownloadsTable("materials/models/weapons/caleon1/screwdriver/metal.vmt");
257 AddFileToDownloadsTable("materials/models/weapons/caleon1/screwdriver/metal.vtf");
258 AddFileToDownloadsTable("materials/models/weapons/caleon1/screwdriver/yellow.vmt");
259
260}
261
262public void OnClientPostAdminCheck(int client)
263{
264 CheckKnife(client);
265
266 if(AreClientCookiesCached(client))
267 OnClientCookiesCached(client);
268}
269
270public void OnClientCookiesCached(int client)
271{
272 char temp[64];
273 GetClientCookie(client, g_hCiasteczkoVIP, temp, sizeof(temp));
274 int czas = StringToInt(temp);
275 if(czas > GetTime()){
276 SetUserFlagBits(client, (ADMFLAG_CUSTOM1));
277 }
278}
279
280public void NadajVIP(int client, int dni)
281{
282 char temp[64];
283 char SteamID[32];
284 int czas = dni * 3600;
285 IntToString(GetTime()+czas, temp, sizeof(temp));
286 SetClientCookie(client, g_hCiasteczkoVIP, temp);
287 SetUserFlagBits(client, (ADMFLAG_CUSTOM1));
288 GetClientAuthId(client, AuthId_Steam2, SteamID, 32, true);
289 LogToFile(logFile, "Gracz %N (%s) wylosował VIPa na %i dni!", client, SteamID, dni);
290 CPrintToChatAll("★ {lightred}[VIP] {lightgreen}Gracz %N wylosował VIPa na {lightred}%i {lightgreen}dni!", client, dni);
291}
292
293public void OnMapEnd()
294{
295 for (int i = 1; i <= MaxClients; i++)
296 {
297 if (IsClientInGame(i))
298 {
299 DB_Save(i);
300 ChatSave(i);
301 }
302 }
303}
304
305public Action RoundEnd(Event event, const char[] name, bool dontBroadcast)
306{
307 if (GetCurrentPlayers() < g_MinimalnaIloscGraczy)
308 return;
309
310 int random = GetRandomInt(1, 19);
311
312 for(int i=1; i <= MaxClients; i++)
313 {
314 if(IsClientInGame(i))
315 {
316 if(random == 1)
317 {
318 g_iCases[i]++;
319 CPrintToChat(i, "★ {lightred}[Skrzynka] {lightgreen}Udało Ci się, {green}zdobyłeś skrzynkę{lightgreen}!");
320 }
321
322 DB_Save(i);
323 ChatSave(i); // Test
324 }
325 }
326
327}
328
329public Action Event_PlayerDeath(Event event, char[] name, bool DontBroadcast)
330{
331 if (GetCurrentPlayers() < g_MinimalnaIloscGraczy)
332 return;
333
334 int userid = GetEventInt(event, "userid");
335 int client = GetClientOfUserId(userid);
336 int attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
337
338 if(GoodClient(client))
339 {
340 if(GetRandomInt(1, 20) == 1)
341 {
342 CPrintToChat(attacker, "★ {lightred}[Klucze] {lightgreen}Udało Ci się, {green}zdobyłeś klucz{lightgreen}!");
343 g_iKeys[attacker]++;
344 }
345 }
346
347}
348
349public Action RoundStart(Event event, char[] name, bool DontBroadcast)
350{
351 if (GetCurrentPlayers() < g_MinimalnaIloscGraczy)
352 {
353 CPrintToChatAll("★ {lightred}[Skrzynki]{yellow} Na serwerze jest {darkred}zbyt mało{yellow} graczy, by system skrzynek był włączony, potrzeba minimum {lightred}%i{yellow} graczy.", MIN_GRACZY);
354 }
355}
356
357public void gomodInfo(int client)
358{
359 if(GoodClient(client))
360 {
361 if(g_bGOMOD[client])
362 {
363 char sHintText[512];
364 SetHudTextParams(-1.0, 0.96, 1.1, 255, 255, 255, 255, 1, 1.0, 0.0, 0.0);
365
366 Format(sHintText, sizeof(sHintText), "Skrzynki: [ %d ] / Klucze: [ %d ]", g_iCases[client], g_iKeys[client]);
367 ShowHudText(client, -1, sHintText);
368 }
369 }
370}
371
372public Action Timer_UpdateHHH(Handle Timer)
373{
374 LoopValidClients(i)
375 {
376 if (IsClientInGame(i))
377 {
378 gomodInfo(i);
379 }
380 }
381 return Plugin_Continue;
382}
383
384public Action MenuCsgo(int client, int args)
385{
386 Menu menu = new Menu(menuCsgoH);
387 menu.SetTitle("Szybki dostęp:");
388 menu.AddItem("1", "Otwórz skrzynkę");
389 menu.AddItem("2", "Wybierz nóż");
390 menu.AddItem("3", "Ustaw prefiks");
391 menu.AddItem("4", "Ustaw kolor");
392 menu.AddItem("5", "Włącz/Wyłącz HUD");
393 menu.ExitButton = true;
394 menu.Display(client, 15);
395}
396
397public int menuCsgoH(Menu menu, MenuAction action, int client, int pos)
398{
399 switch(action)
400 {
401 case MenuAction_Select:
402 {
403 char arg[4];
404 menu.GetItem(pos, arg, sizeof(arg));
405 int numArg = StringToInt(arg);
406 switch(numArg)
407 {
408 case 1:
409 {
410 OtwieranieSkrzynek(client, 0);
411 }
412 case 2:
413 {
414 ClientCommand(client, "sm_wybierz");
415 }
416 case 3:
417 {
418 ClientCommand(client, "sm_prefiks");
419 }
420 case 4:
421 {
422 ClientCommand(client, "sm_kolory");
423 }
424 case 5:
425 {
426 ClientCommand(client, "sm_hudgo");
427 }
428 }
429
430 MenuCsgo(client, 0);
431 }
432 }
433}
434
435
436public Action Kolory(int client, int args)
437{
438 Menu menu = new Menu(KoloryH);
439 menu.SetTitle("Jakiego koloru chatu chcesz używać?");
440 menu.AddItem("0", "Domyślny");
441 if(g_iK1[client] == 0) menu.AddItem("1", "Zielony", ITEMDRAW_DISABLED);
442 else menu.AddItem("1", "Zielony");
443 if(g_iK2[client] == 0) menu.AddItem("2", "Niebieski", ITEMDRAW_DISABLED);
444 else menu.AddItem("2", "Niebieski");
445 if(g_iK3[client] == 0) menu.AddItem("3", "Oliwkowy", ITEMDRAW_DISABLED);
446 else menu.AddItem("3", "Oliwkowy");
447 if(g_iK4[client] == 0) menu.AddItem("4", "Limonkowy", ITEMDRAW_DISABLED);
448 else menu.AddItem("4", "Limonkowy");
449 if(g_iK5[client] == 0) menu.AddItem("5", "Fioletowy", ITEMDRAW_DISABLED);
450 else menu.AddItem("5", "Fioletowy");
451 if(g_iK6[client] == 0) menu.AddItem("6", "Szary", ITEMDRAW_DISABLED);
452 else menu.AddItem("6", "Szary");
453 if(g_iK7[client] == 0) menu.AddItem("7", "Zółty", ITEMDRAW_DISABLED);
454 else menu.AddItem("7", "Zółty");
455 if(g_iK8[client] == 0) menu.AddItem("8", "Złoty", ITEMDRAW_DISABLED);
456 else menu.AddItem("8", "Złoty");
457 if(g_iK9[client] == 0) menu.AddItem("9", "Niebieskoszary", ITEMDRAW_DISABLED);
458 else menu.AddItem("9", "Niebieskoszary");
459 if(g_iK10[client] == 0) menu.AddItem("10", "Jasnozielony", ITEMDRAW_DISABLED);
460 else menu.AddItem("10", "Jasnozielony");
461 if(g_iK11[client] == 0) menu.AddItem("11", "Jasnoniebieski", ITEMDRAW_DISABLED);
462 else menu.AddItem("11", "Jasnoniebieski");
463 if(g_iK12[client] == 0) menu.AddItem("12", "Ciemnoniebieski", ITEMDRAW_DISABLED);
464 else menu.AddItem("12", "Ciemnoniebieski");
465 if(g_iK13[client] == 0) menu.AddItem("13", "Orchid", ITEMDRAW_DISABLED);
466 else menu.AddItem("13", "Orchid");
467 menu.ExitButton = true;
468 menu.Display(client, 15);
469}
470
471public int KoloryH(Menu menu, MenuAction action, int client, int pos)
472{
473 switch(action)
474 {
475 case MenuAction_Select:
476 {
477 char arg[4];
478 menu.GetItem(pos, arg, sizeof(arg));
479 int numArg = StringToInt(arg);
480 switch(numArg)
481 {
482 case 0:
483 {
484 g_iAKolor[client] = 0;
485 }
486 case 1:
487 {
488 g_iAKolor[client] = 1;
489 }
490 case 2:
491 {
492 g_iAKolor[client] = 2;
493 }
494 case 3:
495 {
496 g_iAKolor[client] = 3;
497 }
498 case 4:
499 {
500 g_iAKolor[client] = 4;
501 }
502 case 5:
503 {
504 g_iAKolor[client] = 5;
505 }
506 case 6:
507 {
508 g_iAKolor[client] = 6;
509 }
510 case 7:
511 {
512 g_iAKolor[client] = 7;
513 }
514 case 8:
515 {
516 g_iAKolor[client] = 8;
517 }
518 case 9:
519 {
520 g_iAKolor[client] = 9;
521 }
522 case 10:
523 {
524 g_iAKolor[client] = 10;
525 }
526 case 11:
527 {
528 g_iAKolor[client] = 11;
529 }
530 case 12:
531 {
532 g_iAKolor[client] = 12;
533 }
534 case 13:
535 {
536 g_iAKolor[client] = 13;
537 }
538 case 14:
539 {
540 g_iAKolor[client] = 14;
541 }
542 }
543
544 ChatSave(client);
545 }
546 }
547}
548
549public Action Prefiksy(int client, int args)
550{
551 Menu menu = new Menu(PrefiksyH);
552 menu.SetTitle("Jakiego prefiksu chcesz używać?");
553 menu.AddItem("0", "Domyślny");
554 if(g_iP1[client] == 0) menu.AddItem("1", "Boski", ITEMDRAW_DISABLED);
555 else menu.AddItem("1", "Boski");
556 if(g_iP2[client] == 0) menu.AddItem("2", "Furiat", ITEMDRAW_DISABLED);
557 else menu.AddItem("2", "Furiat");
558 if(g_iP3[client] == 0) menu.AddItem("3", "LaluÅ›", ITEMDRAW_DISABLED);
559 else menu.AddItem("3", "LaluÅ›");
560 if(g_iP4[client] == 0) menu.AddItem("4", "Magiczny", ITEMDRAW_DISABLED);
561 else menu.AddItem("4", "Magiczny");
562 if(g_iP5[client] == 0) menu.AddItem("5", "Cheater", ITEMDRAW_DISABLED);
563 else menu.AddItem("5", "Cheater");
564 if(g_iP6[client] == 0) menu.AddItem("6", "Bogobojny", ITEMDRAW_DISABLED);
565 else menu.AddItem("6", "Bogobojny");
566 if(g_iP7[client] == 0) menu.AddItem("7", "Kot", ITEMDRAW_DISABLED);
567 else menu.AddItem("7", "Kot");
568 if(g_iP8[client] == 0) menu.AddItem("8", "Zjawiskowy", ITEMDRAW_DISABLED);
569 else menu.AddItem("8", "Zjawiskowy");
570 if(g_iP9[client] == 0) menu.AddItem("9", "Bandzior", ITEMDRAW_DISABLED);
571 else menu.AddItem("9", "Bandzior");
572 if(g_iP10[client] == 0) menu.AddItem("10", "Nałogowiec", ITEMDRAW_DISABLED);
573 else menu.AddItem("10", "Nałogowiec");
574 if(g_iP11[client] == 0) menu.AddItem("11", "Strażnik", ITEMDRAW_DISABLED);
575 else menu.AddItem("11", "Strażnik");
576 if(g_iP12[client] == 0) menu.AddItem("12", "Sknera", ITEMDRAW_DISABLED);
577 else menu.AddItem("12", "Sknera");
578 if(g_iP13[client] == 0) menu.AddItem("13", "Melepeta", ITEMDRAW_DISABLED);
579 else menu.AddItem("13", "Melepeta");
580 menu.ExitButton = true;
581 menu.Display(client, 15);
582}
583
584public int PrefiksyH(Menu menu, MenuAction action, int client, int pos)
585{
586 switch(action)
587 {
588 case MenuAction_Select:
589 {
590 char arg[4];
591 menu.GetItem(pos, arg, sizeof(arg));
592 int numArg = StringToInt(arg);
593 switch(numArg)
594 {
595 case 0:
596 {
597 g_iAPrefiks[client] = 0;
598 }
599 case 1:
600 {
601 g_iAPrefiks[client] = 1;
602 }
603 case 2:
604 {
605 g_iAPrefiks[client] = 2;
606 }
607 case 3:
608 {
609 g_iAPrefiks[client] = 3;
610 }
611 case 4:
612 {
613 g_iAPrefiks[client] = 4;
614 }
615 case 5:
616 {
617 g_iAPrefiks[client] = 5;
618 }
619 case 6:
620 {
621 g_iAPrefiks[client] = 6;
622 }
623 case 7:
624 {
625 g_iAPrefiks[client] = 7;
626 }
627 case 8:
628 {
629 g_iAPrefiks[client] = 8;
630 }
631 case 9:
632 {
633 g_iAPrefiks[client] = 9;
634 }
635 case 10:
636 {
637 g_iAPrefiks[client] = 10;
638 }
639 case 11:
640 {
641 g_iAPrefiks[client] = 11;
642 }
643 case 12:
644 {
645 g_iAPrefiks[client] = 12;
646 }
647 case 13:
648 {
649 g_iAPrefiks[client] = 13;
650 }
651 case 14:
652 {
653 g_iAPrefiks[client] = 14;
654 }
655
656 }
657
658 ChatSave(client);
659 }
660 }
661}
662
663public Action MenuKos(int client, int args)
664{
665 Menu menu = new Menu(MenuH);
666 menu.SetTitle("Wybierz jakiego chcesz używać noża!");
667 if(g_iAk[client] == 0) menu.AddItem("0", "Nóż domyślny", ITEMDRAW_DISABLED);
668 else menu.AddItem("0", "Nóż domyślny");
669 if(g_iKosa1[client] == 1) menu.AddItem("1", "Spiralka");
670 else menu.AddItem("1", "Spiralka", ITEMDRAW_DISABLED);
671 if(g_iKosa2[client] == 1) menu.AddItem("2", "Biała Spiralka");
672 else menu.AddItem("2", "Biała Spiralka", ITEMDRAW_DISABLED);
673 if(g_iKosa3[client] == 1) menu.AddItem("3", "Rozpruwacz");
674 else menu.AddItem("3", "Rozpruwacz", ITEMDRAW_DISABLED);
675 if(g_iKosa4[client] == 1) menu.AddItem("4", "Stalowy Prosty");
676 else menu.AddItem("4", "Stalowy Prosty", ITEMDRAW_DISABLED);
677 if(g_iKosa5[client] == 1) menu.AddItem("5", "Nóż Polowy");
678 else menu.AddItem("5", "Nóż Polowy", ITEMDRAW_DISABLED);
679 if(g_iKosa6[client] == 1) menu.AddItem("6", "Asiimov");
680 else menu.AddItem("6", "Asiimov", ITEMDRAW_DISABLED);
681 if(g_iKosa7[client] == 1) menu.AddItem("7", "Wkrętak");
682 else menu.AddItem("7", "Wkrętak", ITEMDRAW_DISABLED);
683 menu.ExitButton = true;
684 menu.Display(client, 25);
685}
686
687public int MenuH(Menu menu, MenuAction action, int client, int pos)
688{
689 switch(action)
690 {
691 case MenuAction_Select:
692 {
693 char arg[4];
694 menu.GetItem(pos, arg, sizeof(arg));
695 int numArg = StringToInt(arg);
696 switch(numArg)
697 {
698 case 0:
699 {
700 g_iAk[client] = 0;
701 }
702 case 1:
703 {
704 g_iAk[client] = 1;
705 }
706 case 2:
707 {
708 g_iAk[client] = 2;
709 }
710 case 3:
711 {
712 g_iAk[client] = 3;
713 }
714 case 4:
715 {
716 g_iAk[client] = 4;
717 }
718 case 5:
719 {
720 g_iAk[client] = 5;
721 }
722 case 6:
723 {
724 g_iAk[client] = 6;
725 }
726 case 7:
727 {
728 g_iAk[client] = 7;
729 }
730 }
731
732 CheckKnife(client);
733 }
734 }
735}
736
737public Action OtwieranieSkrzynek(int client, int args)
738{
739 /*if(g_iKosa1[client] == 1 && g_iKosa2[client] == 1 && g_iKosa3[client] == 1 && g_iKosa4[client] == 1 && g_iKosa5[client] == 1 && g_iKosa6[client] == 1 && g_iKosa7[client] == 1)
740 {
741 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Masz już wszystkie noże, poczekaj na aktualizację!");
742 return Plugin_Handled;
743 }*/
744
745 if(g_iCases[client] >= 1 && g_iKeys[client] >= 1)
746 {
747 g_iCases[client]--;
748 g_iKeys[client]--;
749
750 if(IsPlayerVip(client))
751 {
752 if(GetRandomInt(1, 15) == 1)
753 {
754 WygranaClienta(client);
755 }
756 else
757 {
758 PrzegranaClienta(client);
759 }
760 }
761 else
762 {
763 if(GetRandomInt(1, 10) == 1)
764 {
765 WygranaClienta(client);
766 }
767 else
768 {
769 PrzegranaClienta(client);
770 }
771 }
772 }
773 else
774 {
775 if(g_iCases[client] < 1 && g_iKeys[client] >= 1)
776 {
777 CPrintToChat(client, "★ {lightred}[Klucze] {lightgreen}Nie masz wystarczająco skrzynek!");
778 return Plugin_Handled;
779 }
780 else if(g_iKeys[client] < 1 && g_iCases[client] >= 1)
781 {
782 CPrintToChat(client, "★ {lightred}[Klucze] {lightgreen}Nie masz wystarczająco kluczy!");
783 return Plugin_Handled;
784 }
785 else
786 {
787 CPrintToChat(client, "★ {lightred}[Klucze] {lightgreen}Zdobądź {green}klucz {lightgreen}i {green}skrzynkę{lightgreen}!");
788 return Plugin_Handled;
789 }
790 }
791
792 return Plugin_Handled;
793}
794void WygranaClienta(int client)
795{
796 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trwa otwieranie skrzynki...");
797 CreateTimer(5.0, TimerWin, client);
798}
799
800void PrzegranaClienta(int client)
801{
802 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trwa otwieranie skrzynki...");
803 CreateTimer(5.0, TimerLose, client);
804}
805
806public Action TimerWin(Handle timer, any client)
807{
808 int random = GetRandomInt(1, 14);
809 //int random = 15;
810
811 switch(random)
812 {
813 case 1:
814 {
815 if(g_iKosa1[client] == 1)
816 {
817 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
818 WygranaClienta(client);
819 }
820 else
821 {
822 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}Spiralkę{lightgreen}!");
823 g_iKosa1[client] = 1;
824 CPrintToChatAll("★ {lightred}Gratulacje! {green}%N {lightgreen}otworzył skrzynkę z {green}nożem Spiralnym{lightgreen}!", client);
825 }
826 }
827 case 2:
828 {
829 if(g_iKosa2[client] == 1)
830 {
831 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
832 WygranaClienta(client);
833 }
834 else
835 {
836 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}białą Spiralkę{lightgreen}!");
837 g_iKosa2[client] = 1;
838 CPrintToChatAll("★ {lightred}Gratulacje! {green}%N {lightgreen}otworzył skrzynkę z {green} białym nożem Spiralnym{lightgreen}!", client);
839 }
840 }
841 case 3:
842 {
843 if(g_iKosa3[client] == 1)
844 {
845 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
846 WygranaClienta(client);
847 }
848 else
849 {
850 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}Rozpruwacza{lightgreen}!");
851 g_iKosa3[client] = 1;
852 CPrintToChatAll("★ {lightred}Gratulacje! {green}%N {lightgreen}otworzył skrzynkę z {green}Rozpruwaczem{lightgreen}!", client);
853 }
854 }
855 case 4:
856 {
857 if(g_iKosa4[client] == 1)
858 {
859 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
860 WygranaClienta(client);
861 }
862 else
863 {
864 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}nóż Stalowy Prosty{lightgreen}!");
865 g_iKosa4[client] = 1;
866 CPrintToChatAll("★ {lightred}Gratulacje! {green}%N {lightgreen}otworzył skrzynkę z {green}nożem Stalowym Prostym{lightgreen}!", client);
867 }
868 }
869 case 5:
870 {
871 if(g_iKosa5[client] == 1)
872 {
873 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
874 WygranaClienta(client);
875 }
876 else
877 {
878 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}nóż Polowy{lightgreen}!");
879 g_iKosa5[client] = 1;
880 CPrintToChatAll("★ {lightred}Gratulacje! {green}%N {lightgreen}otworzył skrzynkę z {green}nożem Polowym{lightgreen}!", client);
881 }
882 }
883 case 6:
884 {
885 if(g_iKosa6[client] == 1)
886 {
887 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
888 WygranaClienta(client);
889 }
890 else
891 {
892 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}Asiimov{lightgreen}!");
893 g_iKosa6[client] = 1;
894 CPrintToChatAll("★ {lightred}Gratulacje! {green}%N {lightgreen}otworzył skrzynkę z {green}nożem Asiimov{lightgreen}!", client);
895 }
896 }
897 case 7:
898 {
899 if(g_iKosa7[client] == 1)
900 {
901 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Trafiłeś nóż, który już posiadasz. Losujemy inną wygraną!");
902 WygranaClienta(client);
903 }
904 else
905 {
906 CPrintToChat(client, "★ {lightred}[Pomyślne otwarcie] {lightgreen}W pojemniku znalazłeś {green}Wkrętaka{lightgreen}!");
907 g_iKosa7[client] = 1;
908 }
909 }
910 case 8:
911 {
912 NadajPrefiks(client);
913 }
914
915 case 9:
916 {
917 NadajKolor(client);
918 }
919 case 10:
920 {
921 if(GetRandomInt(1, 2) == 1)
922 {
923 if(!IsPlayerVip(client))
924 {
925 NadajVIP(client, GetRandomInt(1, 9));
926 }
927 else
928 {
929 CPrintToChat(client, "★ {lightred}[Otwieranie -> VIP] {lightgreen}Posiadasz już konto VIP, losowanie zostanie powtórzone!");
930 WygranaClienta(client);
931 }
932 }
933 else
934 {
935 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Niestety, skrzynka była pusta!");
936 }
937 }
938 }
939
940 DB_Save(client);
941 ChatSave(client);
942}
943
944public Action TimerLose(Handle timer, any client)
945{
946 if(!IsValidClient(client) || IsFakeClient(client))
947 return;
948 CPrintToChat(client, "★ {lightred}[Otwieranie -> Losowanie] {lightgreen}Niestety, skrzynka była pusta!");
949}
950
951public void DB_Connect()
952{
953 if(SQL_CheckConfig("weak_gomod_w"))
954 {
955 char sbuffer[512];
956 g_hSql = SQL_Connect("weak_gomod_w", true, sbuffer, sizeof(sbuffer));
957 if(g_hSql == INVALID_HANDLE)
958 {
959 LogError("[FK] Could not connect: %s", sbuffer);
960 }
961 else
962 {
963 SQL_LockDatabase(g_hSql);
964 SQL_FastQuery(g_hSql, "CREATE TABLE IF NOT EXISTS `weak_gomod` (`auth_data` VARCHAR(64) NOT NULL, `name` VARCHAR(64) NOT NULL, `KeyP` INT NOT NULL, `CaseP` INT NOT NULL, `Kalach` INT NOT NULL, `Kosa1` INT NOT NULL, `Kosa2` INT NOT NULL, `Kosa3` INT NOT NULL, `Kosa4` INT NOT NULL, `Kosa5` INT NOT NULL, `Kosa6` INT NOT NULL, `Kosa7` INT NOT NULL, UNIQUE KEY `auth_data` (`auth_data`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");
965 SQL_FastQuery(g_hSql, "CREATE TABLE IF NOT EXISTS `weak_chat` (`auth_data` VARCHAR(64) NOT NULL, `name` VARCHAR(64) NOT NULL, `K1` INT NOT NULL, `K2` INT NOT NULL, `K3` INT NOT NULL, `K4` INT NOT NULL, `K5` INT NOT NULL, `K6` INT NOT NULL, `K7` INT NOT NULL, `K8` INT NOT NULL, `K9` INT NOT NULL, `K10` INT NOT NULL, `K11` INT NOT NULL, `K12` INT NOT NULL, `K13` INT NOT NULL, `AKolory` INT NOT NULL, UNIQUE KEY `auth_data` (`auth_data`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");
966 SQL_FastQuery(g_hSql, "CREATE TABLE IF NOT EXISTS `weak_prefiksy` (`auth_data` VARCHAR(64) NOT NULL, `name` VARCHAR(64) NOT NULL, `P1` INT NOT NULL, `P2` INT NOT NULL, `P3` INT NOT NULL, `P4` INT NOT NULL, `P5` INT NOT NULL, `P6` INT NOT NULL, `P7` INT NOT NULL, `P8` INT NOT NULL, `P9` INT NOT NULL, `P10` INT NOT NULL, `P11` INT NOT NULL, `P12` INT NOT NULL, `P13` INT NOT NULL, `APrefiks` INT NOT NULL, UNIQUE KEY `auth_data` (`auth_data`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");
967 SQL_UnlockDatabase(g_hSql);
968 }
969 }
970 else
971 {
972 SetFailState("Dopisz konfiguracje weak_gomod do databases.cfg!");
973 }
974}
975
976public void DB_Load(int client)
977{
978 if(g_hSql != INVALID_HANDLE)
979 {
980 char authId[64];
981 GetClientAuthId(client, AuthId_Steam2, authId, 63);
982
983 char sQuery[256];
984 char ssQuery[256];
985 char sqquery[256];
986
987 Format(sQuery, sizeof(sQuery), "SELECT KeyP, CaseP, Kalach, Kosa1, Kosa2, Kosa3, Kosa4, Kosa5, Kosa6, Kosa7 FROM weak_gomod WHERE auth_data = '%s'", authId);
988 Format(sqquery, sizeof(sqquery), "SELECT P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, APrefiks FROM weak_prefiksy WHERE auth_data = '%s'", authId);
989 Format(ssQuery, sizeof(ssQuery), "SELECT K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, AKolory FROM weak_chat WHERE auth_data = '%s'", authId);
990
991 SQL_LockDatabase(g_hSql);
992 Handle hQuery = SQL_Query(g_hSql, sQuery);
993 Handle hhQuery = SQL_Query(g_hSql, ssQuery);
994 Handle hhhQuery = SQL_Query(g_hSql, sqquery);
995
996 if(hQuery == INVALID_HANDLE)
997 {
998 char error[255];
999 SQL_GetError(g_hSql, error, sizeof(error));
1000 LogError("Nie mozna odszukac z tabeli. (blad: %s)", error);
1001 CloseHandle(g_hSql);
1002 }
1003 else
1004 {
1005 if(SQL_FetchRow(hQuery))
1006 {
1007 g_iKeys[client] = SQL_FetchInt(hQuery, 0);
1008 g_iCases[client] = SQL_FetchInt(hQuery, 1);
1009 g_iAk[client] = SQL_FetchInt(hQuery, 2);
1010 g_iKosa1[client] = SQL_FetchInt(hQuery, 3);
1011 g_iKosa2[client] = SQL_FetchInt(hQuery, 4);
1012 g_iKosa3[client] = SQL_FetchInt(hQuery, 5);
1013 g_iKosa4[client] = SQL_FetchInt(hQuery, 6);
1014 g_iKosa5[client] = SQL_FetchInt(hQuery, 7);
1015 g_iKosa6[client] = SQL_FetchInt(hQuery, 8);
1016 g_iKosa7[client] = SQL_FetchInt(hQuery, 9);
1017 }
1018 else
1019 {
1020 g_iKeys[client] = 0;
1021 g_iCases[client] = 0;
1022 g_iAk[client] = 0;
1023 g_iKosa1[client] = 0;
1024 g_iKosa2[client] = 0;
1025 g_iKosa3[client] = 0;
1026 g_iKosa4[client] = 0;
1027 g_iKosa5[client] = 0;
1028 g_iKosa6[client] = 0;
1029 g_iKosa7[client] = 0;
1030 }
1031 }
1032
1033 if(hhQuery == INVALID_HANDLE)
1034 {
1035 char blad[255];
1036 SQL_GetError(g_hSql, blad, sizeof(blad));
1037 LogError("Nie mozna odszukac z tabeli. (blad: %s)", blad);
1038 CloseHandle(g_hSql);
1039 }
1040 else if(SQL_FetchRow(hhQuery))
1041 {
1042 g_iK1[client] = SQL_FetchInt(hhQuery, 0);
1043 g_iK2[client] = SQL_FetchInt(hhQuery, 1);
1044 g_iK3[client] = SQL_FetchInt(hhQuery, 2);
1045 g_iK4[client] = SQL_FetchInt(hhQuery, 3);
1046 g_iK5[client] = SQL_FetchInt(hhQuery, 4);
1047 g_iK6[client] = SQL_FetchInt(hhQuery, 5);
1048 g_iK7[client] = SQL_FetchInt(hhQuery, 6);
1049 g_iK8[client] = SQL_FetchInt(hhQuery, 7);
1050 g_iK9[client] = SQL_FetchInt(hhQuery, 8);
1051 g_iK10[client] = SQL_FetchInt(hhQuery, 9);
1052 g_iK11[client] = SQL_FetchInt(hhQuery, 10);
1053 g_iK12[client] = SQL_FetchInt(hhQuery, 11);
1054 g_iK13[client] = SQL_FetchInt(hhQuery, 12);
1055 g_iAKolor[client] = SQL_FetchInt(hhQuery, 13);
1056 //g_iP1[client] = SQL_FetchInt(hhQuery, 14);
1057 //g_iP2[client] = SQL_FetchInt(hhQuery, 15);
1058 //g_iP3[client] = SQL_FetchInt(hhQuery, 16);
1059 //g_iP4[client] = SQL_FetchInt(hhQuery, 17);
1060 //g_iP5[client] = SQL_FetchInt(hhQuery, 18);
1061 //g_iP6[client] = SQL_FetchInt(hhQuery, 19);
1062 //g_iP7[client] = SQL_FetchInt(hhQuery, 20);
1063 //g_iP8[client] = SQL_FetchInt(hhQuery, 21);
1064 //g_iP9[client] = SQL_FetchInt(hhQuery, 23);
1065 //g_iP10[client] = SQL_FetchInt(hhQuery, 24);
1066 //g_iP11[client] = SQL_FetchInt(hhQuery, 25);
1067 //g_iP12[client] = SQL_FetchInt(hhQuery, 26);
1068 //g_iP13[client] = SQL_FetchInt(hhQuery, 27);
1069 //g_iAPrefiks[client] = SQL_FetchInt(hhQuery, 28);
1070 }
1071 else
1072 {
1073 g_iK1[client] = 0;
1074 g_iK2[client] = 0;
1075 g_iK3[client] = 0;
1076 g_iK4[client] = 0;
1077 g_iK5[client] = 0;
1078 g_iK6[client] = 0;
1079 g_iK7[client] = 0;
1080 g_iK8[client] = 0;
1081 g_iK9[client] = 0;
1082 g_iK10[client] = 0;
1083 g_iK11[client] = 0;
1084 g_iK12[client] = 0;
1085 g_iK13[client] = 0;
1086 g_iAKolor[client] = 0;
1087 //g_iP1[client] = 0;
1088 //g_iP2[client] = 0;
1089 //g_iP3[client] = 0;
1090 //g_iP4[client] = 0;
1091 //g_iP5[client] = 0;
1092 //g_iP6[client] = 0;
1093 //g_iP7[client] = 0;
1094 //g_iP8[client] = 0;
1095 //g_iP9[client] = 0;
1096 //g_iP10[client] = 0;
1097 //g_iP11[client] = 0;
1098 //g_iP12[client] = 0;
1099 //g_iP13[client] = 0;
1100 //g_iAPrefiks[client] = 0;
1101 }
1102
1103 if(hhhQuery == INVALID_HANDLE)
1104 {
1105 char blad[255];
1106 SQL_GetError(g_hSql, blad, sizeof(blad));
1107 LogError("Nie mozna odszukac z tabeli. (blad: %s)", blad);
1108 CloseHandle(g_hSql);
1109 }
1110 else if(SQL_FetchRow(hhhQuery))
1111 {
1112 g_iP1[client] = SQL_FetchInt(hhQuery, 0);
1113 g_iP2[client] = SQL_FetchInt(hhQuery, 1);
1114 g_iP3[client] = SQL_FetchInt(hhQuery, 2);
1115 g_iP4[client] = SQL_FetchInt(hhQuery, 3);
1116 g_iP5[client] = SQL_FetchInt(hhQuery, 4);
1117 g_iP6[client] = SQL_FetchInt(hhQuery, 5);
1118 g_iP7[client] = SQL_FetchInt(hhQuery, 6);
1119 g_iP8[client] = SQL_FetchInt(hhQuery, 7);
1120 g_iP9[client] = SQL_FetchInt(hhQuery, 8);
1121 g_iP10[client] = SQL_FetchInt(hhQuery, 9);
1122 g_iP11[client] = SQL_FetchInt(hhQuery, 10);
1123 g_iP12[client] = SQL_FetchInt(hhQuery, 11);
1124 g_iP13[client] = SQL_FetchInt(hhQuery, 12);
1125 g_iAPrefiks[client] = SQL_FetchInt(hhQuery, 13);
1126 }
1127 else
1128 {
1129 g_iP1[client] = 0;
1130 g_iP2[client] = 0;
1131 g_iP3[client] = 0;
1132 g_iP4[client] = 0;
1133 g_iP5[client] = 0;
1134 g_iP6[client] = 0;
1135 g_iP7[client] = 0;
1136 g_iP8[client] = 0;
1137 g_iP9[client] = 0;
1138 g_iP10[client] = 0;
1139 g_iP11[client] = 0;
1140 g_iP12[client] = 0;
1141 g_iP13[client] = 0;
1142 g_iAPrefiks[client] = 0;
1143 }
1144
1145
1146
1147 CloseHandle(hQuery);
1148 CloseHandle(hhQuery);
1149 CloseHandle(hhhQuery);
1150 SQL_UnlockDatabase(g_hSql);
1151 }
1152}
1153
1154public void DB_Save(int client)
1155{
1156 if(!GoodClient(client) || IsFakeClient(client)) return;
1157
1158 char authid[64];
1159 if(!GetClientAuthId(client, AuthId_Steam2, authid, sizeof(authid))) return;
1160
1161 char nick[64];
1162 char eNick[64];
1163
1164 GetClientName(client, nick, sizeof(nick));
1165 SQL_EscapeString(g_hSql, nick, eNick, sizeof(nick));
1166
1167 char query[512];
1168
1169 Format(query, sizeof(query), "INSERT INTO `weak_gomod` (auth_data, name, KeyP, CaseP, Kalach, Kosa1, Kosa2, Kosa3, Kosa4, Kosa5, Kosa6, Kosa7) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE name=VALUES(name), KeyP=VALUES(KeyP), CaseP=VALUES(CaseP), Kalach=VALUES(Kalach), Kosa1=VALUES(Kosa1), Kosa2=VALUES(Kosa2), Kosa3=VALUES(Kosa3), Kosa4=VALUES(Kosa4), Kosa5=VALUES(Kosa5), Kosa6=VALUES(Kosa6), Kosa7=VALUES(Kosa7)", authid, eNick, g_iKeys[client], g_iCases[client], g_iAk[client], g_iKosa1[client], g_iKosa2[client], g_iKosa3[client], g_iKosa4[client], g_iKosa5[client], g_iKosa6[client], g_iKosa7[client]);
1170 SQL_TQuery(g_hSql, DB_SaveCallb, query);
1171}
1172
1173public void ChatSave(int client)
1174{
1175 if(!GoodClient(client) || IsFakeClient(client)) return;
1176
1177 char authid[64];
1178 if(!GetClientAuthId(client, AuthId_Steam2, authid, sizeof(authid))) return;
1179
1180 char nick[64];
1181 char eNick[64];
1182
1183 GetClientName(client, nick, sizeof(nick));
1184 SQL_EscapeString(g_hSql, nick, eNick, sizeof(nick));
1185
1186 char query[512];
1187 char qquery[512];
1188
1189 Format(query, sizeof(query), "INSERT INTO `weak_chat` (auth_data, name, K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, AKolory) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE name=VALUES(name), K1=VALUES(K1), K2=VALUES(K2), K3=VALUES(K3), K4=VALUES(K4), K5=VALUES(K5), K6=VALUES(K6), K7=VALUES(K7), K8=VALUES(K8), K9=VALUES(K9), K10=VALUES(K10), K11=VALUES(K11), K12=VALUES(K12), K13=VALUES(K13), AKolory=VALUES(AKolory)", authid, eNick, g_iK1[client], g_iK2[client], g_iK3[client], g_iK4[client], g_iK5[client], g_iK6[client], g_iK7[client], g_iK8[client], g_iK9[client], g_iK10[client], g_iK11[client], g_iK12[client], g_iK13[client], g_iAKolor[client]);
1190 Format(qquery, sizeof(qquery), "INSERT INTO `weak_prefiksy` (auth_data, name, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, APrefiks) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE name=VALUES(name), P1=VALUES(P1), P2=VALUES(P2), P3=VALUES(P3), P4=VALUES(P4), P5=VALUES(P5), P6=VALUES(P6), P7=VALUES(P7), P8=VALUES(P8), P9=VALUES(P9), P10=VALUES(P10), P11=VALUES(P11), P12=VALUES(P12), P13=VALUES(P13), APrefiks=VALUES(APrefiks)", authid, eNick, g_iP1[client], g_iP2[client], g_iP3[client], g_iP4[client], g_iP5[client], g_iP6[client], g_iP7[client], g_iP8[client], g_iP9[client], g_iP10[client], g_iP11[client], g_iP12[client], g_iP13[client], g_iAPrefiks[client]);
1191
1192 SQL_TQuery(g_hSql, DB_SaveCallback, query);
1193 SQL_TQuery(g_hSql, DB_SaveCallback, qquery);
1194
1195}
1196
1197public void DB_SaveCallb(Handle owner, Handle query, const char[] error, DataPack info_pack)
1198{
1199 if (query == null)
1200 {
1201 LogError("Failed to save client info (error: %s)", error);
1202 return;
1203 }
1204}
1205
1206public void DB_SaveCallback(Handle owner, Handle query, const char[] error, DataPack info_pack)
1207{
1208 if (query == null)
1209 {
1210 LogError("CHAT | Failed to save client info (error: %s)", error);
1211 return;
1212 }
1213}
1214
1215public void WriteToDatabase_Handler(Handle owner, Handle query, const char[] error, any client)
1216{
1217 if(query == INVALID_HANDLE)
1218 {
1219 LogError("Save error: %s", error);
1220 return;
1221 }
1222}
1223
1224public void WriteToDatabase_Handler2(Handle owner, Handle query, const char[] error, any client)
1225{
1226 if(query == INVALID_HANDLE)
1227 {
1228 LogError("Save error: %s", error);
1229 return;
1230 }
1231}
1232
1233public void WriteToDatabase_Handler3(Handle owner, Handle query, const char[] error, any client)
1234{
1235 if(query == INVALID_HANDLE)
1236 {
1237 LogError("Save error: %s", error);
1238 return;
1239 }
1240}
1241
1242stock bool GoodClient(int client)
1243{
1244 return (1 <= client <= MaxClients && IsClientInGame(client));
1245}
1246
1247void CheckKnife(int client)
1248{
1249 if(GoodClient(client))
1250 {
1251 if(g_iAk[client] == 0)
1252 {
1253 FPVMI_RemoveViewModelToClient(client, WEAPON);
1254 }
1255
1256 if(g_iAk[client] == 1)
1257 {
1258 //FPVMI_RemoveViewModelToClient(client, WEAPON);
1259 FPVMI_AddViewModelToClient(client, WEAPON, g_Model1);
1260 }
1261
1262 if(g_iAk[client] == 1)
1263 {
1264 FPVMI_AddViewModelToClient(client, WEAPON, g_Model1);
1265 }
1266 if(g_iAk[client] == 2)
1267 {
1268 FPVMI_AddViewModelToClient(client, WEAPON, g_Model2);
1269 }
1270 if(g_iAk[client] == 3)
1271 {
1272 FPVMI_AddViewModelToClient(client, WEAPON, g_Model3);
1273 }
1274 if(g_iAk[client] == 4)
1275 {
1276 FPVMI_AddViewModelToClient(client, WEAPON, g_Model4);
1277 }
1278 if(g_iAk[client] == 5)
1279 {
1280 FPVMI_AddViewModelToClient(client, WEAPON, g_Model5);
1281 }
1282 if(g_iAk[client] == 6)
1283 {
1284 FPVMI_AddViewModelToClient(client, WEAPON, g_Model6);
1285 }
1286 if(g_iAk[client] == 7)
1287 {
1288 FPVMI_AddViewModelToClient(client, WEAPON, g_Model7);
1289 }
1290 }
1291}
1292
1293public Action sprawdzenie(int client, int args)
1294{
1295 CPrintToChat(client, "Kolor: %stest", g_sColors[g_iAKolor[client]]);
1296 CPrintToChat(client, "Prefiks: %s", g_sPrefiksNames[g_iAPrefiks[client]]);
1297}
1298
1299void NadajPrefiks(int client)
1300{
1301 int random = GetRandomInt(1, 13);
1302
1303 switch(random)
1304 {
1305 case 1:
1306 {
1307 g_iP1[client] = 1;
1308 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[0]);
1309 }
1310 case 2:
1311 {
1312 g_iP2[client] = 1;
1313 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[1]);
1314 }
1315 case 3:
1316 {
1317 g_iP3[client] = 1;
1318 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[2]);
1319 }
1320 case 4:
1321 {
1322 g_iP4[client] = 1;
1323 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[3]);
1324 }
1325 case 5:
1326 {
1327 g_iP5[client] = 1;
1328 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[4]);
1329 }
1330 case 6:
1331 {
1332 g_iP6[client] = 1;
1333 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[5]);
1334 }
1335 case 7:
1336 {
1337 g_iP7[client] = 1;
1338 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[6]);
1339 }
1340 case 8:
1341 {
1342 g_iP8[client] = 1;
1343 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[7]);
1344 }
1345 case 9:
1346 {
1347 g_iP9[client] = 1;
1348 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[8]);
1349 }
1350 case 10:
1351 {
1352 g_iP10[client] = 1;
1353 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[9]);
1354 }
1355 case 11:
1356 {
1357 g_iP11[client] = 1;
1358 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[10]);
1359 }
1360 case 12:
1361 {
1362 g_iP12[client] = 1;
1363 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[11]);
1364 }
1365 case 13:
1366 {
1367 g_iP13[client] = 1;
1368 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś prefiks %s!", g_sPrefiksNames[12]);
1369 }
1370 }
1371}
1372
1373void NadajKolor(int client)
1374{
1375 int random = GetRandomInt(1, 13);
1376
1377 switch(random)
1378 {
1379 case 1:
1380 {
1381 g_iK1[client] = 1;
1382 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[0]);
1383 }
1384 case 2:
1385 {
1386 g_iK2[client] = 1;
1387 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[1]);
1388 }
1389 case 3:
1390 {
1391 g_iK3[client] = 1;
1392 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[2]);
1393 }
1394 case 4:
1395 {
1396 g_iK4[client] = 1;
1397 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[3]);
1398 }
1399 case 5:
1400 {
1401 g_iK5[client] = 1;
1402 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[4]);
1403 }
1404 case 6:
1405 {
1406 g_iK6[client] = 1;
1407 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[5]);
1408 }
1409 case 7:
1410 {
1411 g_iK7[client] = 1;
1412 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[6]);
1413 }
1414 case 8:
1415 {
1416 g_iK8[client] = 1;
1417 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[7]);
1418 }
1419 case 9:
1420 {
1421 g_iK9[client] = 1;
1422 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[8]);
1423 }
1424 case 10:
1425 {
1426 g_iK10[client] = 1;
1427 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[9]);
1428 }
1429 case 11:
1430 {
1431 g_iK11[client] = 1;
1432 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[10]);
1433 }
1434 case 12:
1435 {
1436 g_iK12[client] = 1;
1437 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[11]);
1438 }
1439 case 13:
1440 {
1441 g_iK13[client] = 1;
1442 CPrintToChat(client, "★{lightred} [Dodatki] {lightgreen}Wylosowałeś %s kolor chatu!", g_sColors[12]);
1443 }
1444 }
1445}
1446
1447public Action Say(int client, int args)
1448{
1449 if(GoodClient(client))
1450 {
1451 char kolor[9];
1452
1453 if(GetClientTeam(client) == 2)
1454 {
1455 kolor = "{yellow}"; // kolor dla TT
1456 }
1457 if(GetClientTeam(client) == 3)
1458 {
1459 kolor = "{bluegrey}"; // kolor dla CT
1460 }
1461
1462 char message[512];
1463 GetCmdArgString(message, 512);
1464 StripQuotes(message);
1465
1466 if(strlen(message) == 0)
1467 {
1468 return Plugin_Handled;
1469 }
1470
1471 if(SourceComms_GetClientGagType(client))
1472 {
1473 CPrintToChat(client, "★{lightred} [Info] {lightgreen}Nie możesz używać chatu, masz gaga!");
1474 return Plugin_Handled;
1475 }
1476
1477 if(!(message[0] == '/' || message[0] == '!' || message[0] == '@' || message[0] == ' ' || message[0] == '$' || message[0] == '%' || message[0] == '*'))
1478 {
1479
1480 char name[32];
1481 GetClientName(client, name, 32);
1482
1483 if(IsPlayerAlive(client))
1484 {
1485 if(GetUserFlagBits(client) & ADMFLAG_ROOT)
1486 Format(message, sizeof(message), " {darkred}[Właściciel] %s %s%s{default}:%s %s", g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1487 else if((GetUserFlagBits(client) & ADMFLAG_CUSTOM1) && !(GetUserFlagBits(client) & ADMFLAG_CUSTOM2))
1488 Format(message, sizeof(message), " {yellow}[★ VIP ★] %s %s%s{default}:%s %s", g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1489 else if(GetUserFlagBits(client) & ADMFLAG_CUSTOM2)
1490 Format(message, sizeof(message), " {darkblue}[Opiekun] %s %s%s{default}:%s %s", g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1491 else
1492 Format(message, sizeof(message), " %s %s%s{default}:%s %s", g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1493
1494 CPrintToChatAll(message);
1495 }
1496 else
1497 {
1498 if(GetUserFlagBits(client) & ADMFLAG_ROOT)
1499 Format(message, sizeof(message), " %s*DEAD* {darkred}[Właściciel] %s %s%s{default}:%s %s", kolor, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1500 else if((GetUserFlagBits(client) & ADMFLAG_CUSTOM1) && !(GetUserFlagBits(client) & ADMFLAG_CUSTOM2))
1501 Format(message, sizeof(message), " %s*DEAD* {yellow}[★ VIP ★] %s %s%s{default}:%s %s", kolor, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1502 else if(GetUserFlagBits(client) & ADMFLAG_CUSTOM2)
1503 Format(message, sizeof(message), " %s*DEAD* {darkblue}[Opiekun] %s %s%s{default}:%s %s", kolor, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1504 else
1505 Format(message, sizeof(message), " %s*DEAD* %s %s%s{default}:%s %s", kolor, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1506
1507 for(int i = 1; i <= MaxClients; i ++)
1508 {
1509 if(!IsClientInGame(i) || IsPlayerAlive(i))
1510 continue;
1511
1512 CPrintToChat(i, message);
1513 }
1514 }
1515 }
1516 }
1517
1518 return Plugin_Handled;
1519}
1520
1521public Action SayTeam(int client, int args)
1522{
1523 if(GoodClient(client))
1524 {
1525 char kolor[9];
1526 char team[5];
1527
1528 if(GetClientTeam(client) == 2)
1529 {
1530 kolor = "{yellow}"; // kolor dla TT
1531 team = "[TT]";
1532
1533 }
1534 if(GetClientTeam(client) == 3)
1535 {
1536 kolor = "{bluegrey}"; // kolor dla CT
1537 team = "[CT]";
1538 }
1539
1540 char message[512];
1541 GetCmdArgString(message, 512);
1542 StripQuotes(message);
1543
1544 if(strlen(message) == 0)
1545 {
1546 return Plugin_Handled;
1547 }
1548
1549 if(SourceComms_GetClientGagType(client))
1550 {
1551 CPrintToChat(client, "★{lightred} [Info] {lightgreen}Nie możesz używać chatu, masz gaga!");
1552 return Plugin_Handled;
1553 }
1554
1555 if(!(message[0] == '/' || message[0] == '!' || message[0] == '@' || message[0] == ' ' || message[0] == '$' || message[0] == '%' || message[0] == '*'))
1556 {
1557
1558 char name[32];
1559 GetClientName(client, name, 32);
1560
1561 if(IsPlayerAlive(client))
1562 {
1563 if(GetUserFlagBits(client) & ADMFLAG_ROOT)
1564 Format(message, sizeof(message), " %s%s {darkred}[Właściciel] %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1565 else if((GetUserFlagBits(client) & ADMFLAG_CUSTOM1) && !(GetUserFlagBits(client) & ADMFLAG_CUSTOM2))
1566 Format(message, sizeof(message), " %s%s {yellow}[★ VIP ★] %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1567 else if(GetUserFlagBits(client) & ADMFLAG_CUSTOM2)
1568 Format(message, sizeof(message), " %s%s {darkblue}[Opiekun] %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1569 else
1570 Format(message, sizeof(message), " %s%s %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1571
1572 for(int i = 1; i <= MaxClients; i ++)
1573 {
1574 if(!IsClientInGame(i) || !IsPlayerAlive(i) || GetClientTeam(client) != GetClientTeam(i))
1575 continue;
1576
1577 CPrintToChat(i, message);
1578 }
1579 }
1580 else
1581 {
1582 if(GetUserFlagBits(client) & ADMFLAG_ROOT)
1583 Format(message, sizeof(message), " %s%s *DEAD* {darkred}[Właściciel] %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1584 else if((GetUserFlagBits(client) & ADMFLAG_CUSTOM1) && !(GetUserFlagBits(client) & ADMFLAG_CUSTOM2))
1585 Format(message, sizeof(message), " %s%s *DEAD* {yellow}[★ VIP ★] %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1586 else if(GetUserFlagBits(client) & ADMFLAG_CUSTOM2)
1587 Format(message, sizeof(message), " %s%s *DEAD* {darkblue}[Opiekun] %s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1588 else
1589 Format(message, sizeof(message), " %s%s *DEAD* {default}%s %s%s{default}:%s %s", kolor, team, g_sPrefiksNames[g_iAPrefiks[client]], kolor, name, g_sColors[g_iAKolor[client]], message);
1590
1591 for(int i = 1; i <= MaxClients; i ++)
1592 {
1593 if(!IsClientInGame(i) || IsPlayerAlive(i) || GetClientTeam(client) != GetClientTeam(i))
1594 continue;
1595
1596 CPrintToChat(i, message);
1597 }
1598 }
1599 }
1600 }
1601
1602 return Plugin_Handled;
1603}
1604
1605public Action CMD_GOMOD(int client, int args)
1606{
1607 if(!IsValidClient(client))
1608 return Plugin_Handled;
1609
1610 g_bGOMOD[client] = !g_bGOMOD[client];
1611 CPrintToChat(client, "★ {lightred}[Skrzynki/Klucze] {yellow}HUD {lightred}%s.", g_bGOMOD[client] ? "Wlaczony" : "Wylaczony");
1612
1613 return Plugin_Handled;
1614}
1615
1616stock AdminFlag CreateFlagLetters()
1617{
1618 AdminFlag FlagLetters[FLAG_LETTERS_SIZE];
1619
1620 FlagLetters['a'-'a'] = Admin_Reservation;
1621 FlagLetters['b'-'a'] = Admin_Generic;
1622 FlagLetters['c'-'a'] = Admin_Kick;
1623 FlagLetters['d'-'a'] = Admin_Ban;
1624 FlagLetters['e'-'a'] = Admin_Unban;
1625 FlagLetters['f'-'a'] = Admin_Slay;
1626 FlagLetters['g'-'a'] = Admin_Changemap;
1627 FlagLetters['h'-'a'] = Admin_Convars;
1628 FlagLetters['i'-'a'] = Admin_Config;
1629 FlagLetters['j'-'a'] = Admin_Chat;
1630 FlagLetters['k'-'a'] = Admin_Vote;
1631 FlagLetters['l'-'a'] = Admin_Password;
1632 FlagLetters['m'-'a'] = Admin_RCON;
1633 FlagLetters['n'-'a'] = Admin_Cheats;
1634 FlagLetters['o'-'a'] = Admin_Custom1;
1635 FlagLetters['p'-'a'] = Admin_Custom2;
1636 FlagLetters['q'-'a'] = Admin_Custom3;
1637 FlagLetters['r'-'a'] = Admin_Custom4;
1638 FlagLetters['s'-'a'] = Admin_Custom5;
1639 FlagLetters['t'-'a'] = Admin_Custom6;
1640 FlagLetters['z'-'a'] = Admin_Root;
1641
1642 return FlagLetters;
1643}
1644
1645stock bool IsPlayerVip(int client)
1646{
1647 if(GetUserFlagBits(client) & ADMFLAG_RESERVATION)
1648 return true;
1649 return false;
1650}
1651
1652stock int GetCurrentPlayers() {
1653 int count;
1654 LoopValidClients(i) {
1655 if (!IsFakeClient(i)) {
1656 count++;
1657 }
1658 }
1659 return count;
1660}
1661
1662bool IsValidClient(int client)
1663{
1664 if (client <= 0 || client > MaxClients) {
1665 return false;
1666 }
1667
1668 if (!IsClientInGame(client)) {
1669 return false;
1670 }
1671
1672 if (IsFakeClient(client)) {
1673 return false;
1674 }
1675
1676 return true;
1677}