· 7 years ago · Dec 04, 2017, 10:04 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//#include <sockets>
10//#include <nvault>
11
12#define PLUGIN "V.I.P CLASSIC"
13#define VERSION "3.0"
14#define AUTHOR "PedoBear"
15
16new vipcmd;
17new bool:gl_not_map
18new g_Round, g_Weapon[33]
19new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk, cvar_tab
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//VIP SCOREBOARD
25#define SCOREATTRIB_NONE 0
26#define SCOREATTRIB_DEAD ( 1 << 0 )
27#define SCOREATTRIB_BOMB ( 1 << 1 )
28#define SCOREATTRIB_VIP ( 1 << 2 )
29
30//Adaugare VIP
31new File[120]
32new bool: IsUserVip[33] = false
33new Trie: LoadVip
34new Pass
35
36//Multi Jump
37new jumpnum[33], bool: dojump[33], cvar_addjump_vip, cvar_addjump_player
38
39//Stringuri pentru verificarea hartilor
40#define MAX_NAME_LENGTH 40
41#define MAX_TEXT_LENGTH 200
42
43new 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"}
44new const secondaryWeapons[][] = {"weapon_p228", "weapon_elite", "weapon_fiveseven", "weapon_usp", "weapon_glock18", "weapon_deagle"}
45
46enum cvars {
47 money_kill,
48 money_hs,
49 hp_kill,
50 hp_hs,
51 max_hp_kill
52}
53new cvar[cvars];
54
55//Bullet damage
56new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2
57
58//Licenta
59static const ServerLicensedIp[] = "93.119.26.195"; //Ip Oficial FCSB: 93.119.26.195
60static 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
61
62public plugin_init()
63{
64 server_print("^n%s v%s, Copyright (C)2017 by %s^n", PLUGIN, VERSION, AUTHOR)
65
66 register_plugin
67 (
68 .plugin_name = PLUGIN,
69 .version = VERSION,
70 .author = AUTHOR
71 );
72
73 new szIp[25];
74 get_user_ip(0, szIp, sizeof (szIp) -1, 1);
75 if(equal(szIp, ServerLicensedIp) || equal(szIp, ServerLicensedIpTESTE))
76 {
77 //RegisterHam(Ham_Item_PreFrame, "player", "player_maxspeed", 1);
78 RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
79
80 register_event("HLTV", "round_start", "a", "1=0", "2=0")
81 register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in", "2=#Game_Commencing");
82 register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib");
83 register_event("DeathMsg", "event_DeathMsg", "a");
84
85 register_clcmd("say /vipmenu", "arataMeniuVIPs");
86 register_clcmd("say_team /vipmenu", "arataMeniuVIPs");
87 register_clcmd("say /vm", "arataMeniuVIPs");
88 register_clcmd("say_team /vm", "arataMeniuVIPs");
89 register_clcmd("say /vmenu", "arataMeniuVIPs");
90 register_clcmd("say_team /vmenu", "arataMeniuVIPs");
91
92 register_clcmd("say /vip", "vip_info");
93 register_clcmd("say /wantvip", "vip_info");
94 register_clcmd("say /vreauvip", "vip_info");
95
96 //register_clcmd("say /pistoale", "first_menu");
97 //register_clcmd("say_team /pistoale", "first_menu");
98
99 cvar_round = register_cvar("vip_openmenu_round", "3")
100 cvar_open = register_cvar("vip_zaround", "1")
101 cvar_show = register_cvar("vip_showmenu", "1")
102 cvar_chat = register_cvar("vip_showchat", "1")
103 cvar_pistols = register_cvar("vip_auto_fill", "1")
104 cvar_funk = register_cvar("vip_taskmanager", "1")
105 cvar_tab = register_cvar("vip_scoreboard", "1")
106
107 cvar[hp_kill] = register_cvar("vip_receive_hp_kill", "10"); // 0 = dezactivat
108 cvar[hp_hs] = register_cvar("vip_receive_hp_hs", "15"); // 0 = dezactivat
109 cvar[money_kill] = register_cvar("vip_receive_money_kill", "250"); // 0 = dezactivat
110 cvar[money_hs] = register_cvar("vip_receive_money_hs", "500"); // 0 = dezactivat
111 cvar[max_hp_kill] = register_cvar("vip_receive_max_hp_kill", "120"); // valoarea maxima de hp pe care o poti obtine facand killuri
112
113 //Multi Jump
114 cvar_addjump_vip = register_cvar("vip_cvar_addjump_vip", "0") // Are 1 salturi in plus
115 cvar_addjump_player = register_cvar("vip_cvar_addjump_player", "0") // Are 0 salt in plus
116
117 register_clcmd("say", "hook_say");
118 register_clcmd("say_team", "hook_say");
119
120 register_clcmd("say /resetscore", "reset_score")
121 register_clcmd("say /restartscore", "reset_score")
122 register_clcmd("say /rs", "reset_score")
123 register_clcmd("say /rz", "reset_score")
124 register_clcmd("say !rs", "reset_score")
125
126 register_clcmd("vmenu", "main_menu")
127
128 /*register_clcmd("say /vreauvip", "cmdMotd")
129 register_clcmd("say /infovip", "cmdMotd")
130 register_clcmd("say /cumparvip", "cmdMotd")
131 register_clcmd("say /wantvip", "cmdMotd")
132 register_clcmd("say_team /vreauvip", "cmdMotd")
133 register_clcmd("say_team /infovip", "cmdMotd")
134 register_clcmd("say_team /cumparvip", "cmdMotd")
135 register_clcmd("say_team /wantvip", "cmdMotd")
136
137 register_clcmd("say /vip", "cmdMotd");
138 register_clcmd("say_team /vip", "cmdMotd");
139 register_clcmd("say /vips", "cmdMotd");
140 register_clcmd("say_team /vips", "cmdMotd");*/
141
142 //File Manager VIP
143 Pass = get_cvar_pointer("amx_password_field")
144 LoadVip = TrieCreate()
145 get_configsdir(File, charsmax(File))
146 format(File, charsmax(File), "%s/fcsb-playarena-vip/%s", File, "vip_list.ini")
147 new FilePointer, Key[32], Password[32], FileData[256]
148 if(!file_exists(File))
149 {
150 FilePointer = fopen(File, "w")
151 fclose(FilePointer)
152 }
153
154 FilePointer = fopen(File, "rt")
155 if(FilePointer)
156 {
157 while(!feof(FilePointer))
158 {
159 fgets(FilePointer, FileData, charsmax(FileData))
160 parse(FileData, Key, charsmax(Key), Password, charsmax(Password))
161 TrieSetString(LoadVip, Key, Password)
162 }
163 fclose(FilePointer)
164 }
165
166 //bullet damage
167 register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
168 g_type = register_cvar("amx_bulletdamage", "3")
169 g_recieved = register_cvar("amx_bulletdamage_recieved", "1")
170
171 g_hudmsg1 = CreateHudSyncObj()
172 g_hudmsg2 = CreateHudSyncObj()
173
174 server_print("[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN);
175 server_print("[%s] Pentru mai multe detalii y/m: ravravy@yahoo.com", PLUGIN);
176 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
177 }
178 else
179 {
180 new szPluginName[32];
181 formatex(szPluginName, sizeof(szPluginName) -1, "[IP Nelicentiat] %s", PLUGIN);
182 register_plugin(szPluginName, PLUGIN, "PedoBear");
183
184 server_print("[%s] Nu detii o licenta valabila! Plugin-ul nu va functiona corespunzator!", PLUGIN);
185 server_print("[%s] Pentru mai multe detalii Y!M: ravravy@yahoo.com", PLUGIN);
186 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
187
188 pause("ade");
189 }
190 set_task(5.0, "_ProtectCheck_", 21412321, _,_, "b")
191}
192
193public vip_info(id)
194{
195 show_motd(id, "/addons/amxmodx/configs/vip_info.html");
196}
197
198public reset_score(id)
199{
200 /*if(is_vip(id))
201 {
202 cs_set_user_deaths(id, 0);
203 set_user_frags(id, 0);
204
205 static name[32]
206 get_user_name(id, name, 31)
207 chat_color(id, "!g[FCSB|RS - VIP]!t Dead-urile tale au fost resetate! Bafta la frage !y[!gVIP!y] !g%s!t Have fun!", name)
208 }
209 else if(!is_vip(id) && has_flag(id, "t") || has_flag(id, "t") || !is_vip(id))
210 {*/
211 cs_set_user_deaths(id, 0);
212 set_user_frags(id, 0);
213
214 static name[32]
215 get_user_name(id, name, 31)
216 chat_color(id, "!g[FCSB|RS]!t Scorul tau a fost resetat! Bafta la frage !g%s!t Have fun!", name)
217 //}
218}
219
220public plugin_precache()
221{
222 if(check_map())
223 {
224 gl_not_map = true
225 return;
226 }
227}
228
229public bool:_get_vip(iPlugin, iParams)
230{
231 new id = get_param(1);
232 if(IsUserVip[id] || has_flag(id, "x") || has_flag(id, "t")) return true;
233
234 return false;
235}
236
237public on_damage(id)
238{
239 if(g_enabled)
240 {
241 static attacker; attacker = get_user_attacker(id)
242 static damage; damage = read_data(2)
243
244 if(g_showrecieved && is_vip(id) || is_user_connected(id) && has_flag(id, "t"))
245 {
246 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
247 ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)
248 }
249
250 if(is_user_connected(attacker) && is_vip(attacker) || is_user_connected(attacker) && has_flag(attacker, "t"))
251 {
252 switch(g_enabled)
253 {
254 case 1:
255 {
256 set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
257 ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
258 }
259 case 2:
260 {
261 if(fm_is_ent_visible(attacker,id))
262 {
263 set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
264 ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)
265 }
266 }
267 }
268 }
269 }
270}
271
272public client_authorized(id)
273{
274 g_Weapon[id] = 0;
275
276 new Key[32], Password[32], OldPassword[32]
277 get_user_name(id, Key, charsmax(Key))
278 get_user_info(id, "_pw", Password, charsmax(Password))
279
280 if(TrieKeyExists(LoadVip, Key))
281 {
282 TrieGetString(LoadVip, Key, OldPassword, charsmax(OldPassword))
283 if(equal(Password, OldPassword))
284 IsUserVip[id] = true
285 else
286 {
287 server_cmd("kick #%i ^"Acest nume este rezervat!^"", get_user_userid(id))
288 IsUserVip[id] = false
289 }
290 }
291}
292
293public client_infochanged(id)
294{
295 new oldname[32], newname[32], Password[32], OldPassword[32], PasswordField[5]
296 get_user_name(id, oldname, charsmax(oldname))
297 get_user_info(id, "name", newname, charsmax(newname))
298
299 if(equal(newname, oldname))
300 return
301
302 if(TrieKeyExists(LoadVip, newname))
303 {
304 get_pcvar_string(Pass, PasswordField, charsmax(PasswordField))
305 get_user_info(id, PasswordField, OldPassword, charsmax(OldPassword))
306 TrieGetString(LoadVip, newname, Password, charsmax(Password))
307
308 if(equal(OldPassword, Password))
309 IsUserVip[id] = true
310 else
311 {
312 server_cmd("kick #%i ^"NU esti VIP!^"", get_user_userid(id))
313 IsUserVip[id] = false
314 }
315 }
316 else
317 IsUserVip[id] = false
318}
319
320public plugin_end()
321 TrieDestroy(LoadVip)
322
323public client_putinserver(id)
324{
325 jumpnum[id] = 0
326 dojump[id] = false
327
328 //set_task(0.9, "vip_menu", id);
329
330 if(is_vip(id))
331 {
332 new name[33];
333 get_user_name(id, name, charsmax(name));
334 chat_color(0, "!g[FCSB-VIP]!t VIP-ul [!g%s!t] se conecteaza pe server...", name);
335 }
336
337 return PLUGIN_CONTINUE;
338}
339
340public plugin_natives()
341{
342 set_native_filter("native_filter")
343 register_native("get_vip", "_get_vip", 0)
344}
345
346public native_filter(const name[], index, trap)
347{
348 if (!trap)
349 return PLUGIN_HANDLED
350
351 return PLUGIN_CONTINUE
352}
353
354public client_disconnect(id)
355{
356 jumpnum[id] = 0
357 dojump[id] = false
358
359 remove_task(id)
360 g_Weapon[id] = 0;
361 g_chosen[id] = false;
362 IsUserVip[id] = false
363}
364
365public client_PreThink(id)
366{
367 if(!is_user_alive(id))
368 return
369
370 new BUTON = get_user_button(id)
371 new OLDBUTON = get_user_oldbutton(id)
372 new JUMP_VIP = get_pcvar_num(cvar_addjump_vip)
373 new JUMP_PLAYER = get_pcvar_num(cvar_addjump_player)
374
375 if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
376 {
377 if(((is_vip(id)) && (jumpnum[id] < JUMP_VIP)) || (!(is_vip(id)) && (jumpnum[id] < JUMP_PLAYER)))
378 {
379 dojump[id] = true
380 jumpnum[id]++
381 }
382 }
383
384 if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
385 jumpnum[id] = 0
386}
387
388public client_PostThink(id)
389{
390 if(!is_user_alive(id)) return PLUGIN_CONTINUE
391
392 if(dojump[id] == true)
393 {
394 new Float: velocity[3]
395 entity_get_vector(id, EV_VEC_velocity, velocity)
396 velocity[2] = random_float(265.0, 285.0)
397 entity_set_vector(id, EV_VEC_velocity, velocity)
398 dojump[id] = false
399 }
400
401 return PLUGIN_CONTINUE
402}
403
404public round_start()
405{
406 if(gl_not_map)
407 return;
408
409 g_Round++
410 vipcmd = 1;
411
412 //bullet damage
413 g_enabled = get_pcvar_num(g_type)
414 if(get_pcvar_num(g_recieved)) g_showrecieved = true
415}
416
417public round_restart()
418{
419 if(gl_not_map)
420 return;
421
422 g_Round = 0
423}
424
425/*public player_maxspeed(id)
426{
427 if(is_vip(id) && is_user_alive(id) && is_user_connected(id))
428 set_user_maxspeed(id, 450.0);
429
430 return PLUGIN_HANDLED
431}*/
432
433public player_spawn(Player)
434{
435 if(gl_not_map)
436 return;
437
438 vip_opened[Player] = 0;
439 if((is_vip(Player) || has_flag(Player, "t")) && is_user_alive(Player) && is_user_connected(Player))
440 {
441 if(g_Weapon[Player] == 0)
442 first_menu(Player)
443
444 if(get_pcvar_num(cvar_funk)== 1)
445 task_funk(Player);
446
447 if(get_pcvar_num(cvar_show)== 1 && g_Round >= get_pcvar_num(cvar_round))
448 main_menu(Player);
449 }
450}
451
452public arataMeniuVIPs(id)
453{
454 if(is_vip(id) || has_flag(id, "t"))
455 {
456 if(is_user_alive(id) && is_user_connected(id))
457 {
458 if(vipcmd == 0)
459 {
460 main_menu(id)
461 chat_color(id, "!g[VIP MENU]!t Aceasta comanda o poti folosi doar odata pe runda. Scuzele noastre! !g:)!t")
462 }
463 else
464 {
465 vipcmd = 0
466 }
467 }
468 else
469 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi folosita doar daca esti in viata!")
470 }
471 else
472 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi utilizata doar de catre VIP")
473}
474
475public task_funk(id)
476{
477 give_item(id, "weapon_knife")
478 give_item(id, "item_thighpack")
479 give_item(id, "weapon_hegrenade")
480 give_item(id, "weapon_flashbang")
481 give_item(id, "weapon_flashbang")
482 give_item(id, "item_assaultsuit")
483
484 if(get_pcvar_num(cvar_pistols))
485 {
486 for(new i = 0;i <6;i++)
487 fm_strip_user_gun(id, pistols[i])
488
489 switch(g_Weapon[id])
490 {
491 case 1:
492 {
493 give_item(id, "weapon_deagle");
494 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
495 }
496 case 2:
497 {
498 give_item(id, "weapon_usp");
499 cs_set_user_bpammo(id, CSW_USP, 100)
500 }
501 case 3:
502 {
503 give_item(id, "weapon_glock18");
504 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
505 }
506 }
507 }
508}
509
510/* Meniurile cu arme fmm */
511public main_menu(id)
512{
513 if(is_vip(id) || has_flag(id, "t"))
514 {
515 if(is_user_alive(id))
516 {
517 if(vip_opened[id] <get_pcvar_num(cvar_open)|| get_pcvar_num(cvar_open)== 0)
518 {
519 if(g_Round>= get_pcvar_num(cvar_round))
520 {
521 new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64]
522 get_user_name(id, s_Name, charsmax(s_Name))
523 switch(g_Weapon[id])
524 {
525 case 0: s_Pistol = "Fara Pistol!";
526 case 1: s_Pistol = "Deagle";
527 case 2: s_Pistol = "Usp";
528 case 3: s_Pistol = "Glock";
529 }
530
531 formatex(s_Title, charsmax(s_Title), "\yVIP \rSystem \y[\rFCSB\y]", s_Name)
532 new i_Menu = menu_create(s_Title, "main_handler", 1);
533
534 formatex(szMenuMulti, charsmax(szMenuMulti), "\rM4A1 \y+ \r%s \y+ \dGrenade", s_Pistol)
535 menu_additem(i_Menu, szMenuMulti, "1", 0)
536
537 formatex(szMenuMulti, charsmax(szMenuMulti), "\rAK47 \y+ \r%s \y+ \dGrenade", s_Pistol)
538 menu_additem(i_Menu, szMenuMulti, "2", 0)
539
540 formatex(szMenuMulti, charsmax(szMenuMulti), "\rAWP \y+ \r%s \y+ \dGrenade", s_Pistol)
541 menu_additem(i_Menu, szMenuMulti, "3", 0)
542
543 /*formatex(szMenuMulti, charsmax(szMenuMulti), "\rFAMAS \y+ \r%s \y+ \dGrenade", s_Pistol)
544 menu_additem(i_Menu, szMenuMulti, "4", 0)
545
546 formatex(szMenuMulti, charsmax(szMenuMulti), "%\r%s \y+ \dGrenade + \rG3SG1 (Terorist)", s_Pistol)
547 menu_additem(i_Menu, szMenuMulti, "5", 0)
548
549 formatex(szMenuMulti, charsmax(szMenuMulti), "%\r%s \y+ \dGrenade + \rSG550 (Counter-Terrorist)", s_Pistol)
550 menu_additem(i_Menu, szMenuMulti, "6", 0)*/
551
552 formatex(szMenuMulti, charsmax(szMenuMulti), "\y<<< \rPrimul Meniu \y(\wPistoale\y)")
553 menu_additem(i_Menu, szMenuMulti, "7", 0)
554
555 menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);
556 menu_display(id, i_Menu, 0)
557 }
558 else
559 {
560 if(get_pcvar_num(cvar_round) == 2)
561 {
562 chat_color(id, "!g[FCSB-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", get_pcvar_num(cvar_round))
563 return PLUGIN_HANDLED;
564 }
565 else
566 {
567 chat_color(id, "!g[FCSB-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", get_pcvar_num(cvar_round))
568 return PLUGIN_HANDLED;
569 }
570 }
571 }
572 else
573 chat_color(id, "!g[FCSB-VIP]!t Sincer... ceva nu merge bine. Contacteaza-ne pe !gwww.play-arena.ro/forum")
574 }
575 else
576 chat_color(id, "!g[FCSB-VIP]!t Esti mort... nu poti folosi meniul!")
577 }
578 else
579 chat_color(id, "!g[FCSB-VIP]!t Nu esti !gVIP!t. Foloseste comanda !g/help!t pentru afisare detalii")
580
581 return PLUGIN_HANDLED;
582}
583
584public main_handler(id, menu, item)
585{
586 if(item == MENU_EXIT)
587 {
588 menu_destroy(menu)
589 return PLUGIN_HANDLED;
590 }
591
592 if(!is_user_alive(id) && !is_user_connected(id))
593 return PLUGIN_HANDLED;
594
595 new s_Data[6], s_Name[60], i_Access, i_Callback
596 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
597 new i_Key = str_to_num(s_Data)
598 new name[32]
599 get_user_name(id, name, charsmax(name))
600
601 switch(i_Key)
602 {
603 case 1:
604 {
605 vip_opened[id]++
606 if(user_has_weapon(id, CSW_C4))
607 engclient_cmd(id, "drop", "weapon_c4")
608
609 task_funk(id)
610
611 switch(g_Weapon[id])
612 {
613 case 0: first_menu(id);
614 case 1:
615 {
616 for(new i = 0;i < sizeof secondaryWeapons;i++)
617 engclient_cmd(id, "drop", secondaryWeapons[i])
618
619 give_item(id, "weapon_deagle")
620 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
621 }
622 case 2:
623 {
624 for(new i = 0;i < sizeof secondaryWeapons;i++)
625 engclient_cmd(id, "drop", secondaryWeapons[i])
626
627 give_item(id, "weapon_usp")
628 cs_set_user_bpammo(id, CSW_USP, 100)
629 }
630 case 3:
631 {
632 for(new i = 0;i < sizeof secondaryWeapons;i++)
633 engclient_cmd(id, "drop", secondaryWeapons[i])
634
635 give_item(id, "weapon_glock18")
636 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
637 }
638 }
639
640 for(new i = 0;i < sizeof primaryWeapons;i++)
641 engclient_cmd(id, "drop", primaryWeapons[i])
642
643 give_item(id, "weapon_m4a1")
644 cs_set_user_bpammo(id, CSW_M4A1, 90)
645 if(get_pcvar_num(cvar_chat) == 1)
646 chat_color(0, "!g[FCSB-VIP]!t VIP-ul !g%s!t a primit M4A1 gratuit + !gGrenade", name)
647 }
648 case 2:
649 {
650 vip_opened[id]++
651 if(user_has_weapon(id, CSW_C4))
652 engclient_cmd(id, "drop", "weapon_c4")
653
654 strip_user_weapons(id)
655 task_funk(id)
656
657 switch(g_Weapon[id])
658 {
659 case 0:
660 {
661 first_menu(id);
662 menu_destroy(menu);
663 }
664 case 1:
665 {
666 for(new i = 0;i < sizeof secondaryWeapons;i++)
667 engclient_cmd(id, "drop", secondaryWeapons[i])
668
669 give_item(id, "weapon_deagle")
670 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
671 }
672 case 2:
673 {
674 for(new i = 0;i < sizeof secondaryWeapons;i++)
675 engclient_cmd(id, "drop", secondaryWeapons[i])
676
677 give_item(id, "weapon_usp")
678 cs_set_user_bpammo(id, CSW_USP, 100)
679 }
680 case 3:
681 {
682 for(new i = 0;i < sizeof secondaryWeapons;i++)
683 engclient_cmd(id, "drop", secondaryWeapons[i])
684
685 give_item(id, "weapon_glock18")
686 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
687 }
688 }
689
690 for(new i = 0;i < sizeof primaryWeapons;i++)
691 engclient_cmd(id, "drop", primaryWeapons[i])
692
693 give_item(id, "weapon_ak47")
694 cs_set_user_bpammo(id, CSW_AK47, 90)
695
696 if(get_pcvar_num(cvar_chat) == 1)
697 chat_color(0, "!g[FCSB-VIP]!t VIP-ul !g%s!t a primit Ak47 gratuit + !gGrenade", name)
698 }
699 case 3:
700 {
701 vip_opened[id]++
702 if(user_has_weapon(id, CSW_C4))
703 engclient_cmd(id, "drop", "weapon_c4")
704
705 strip_user_weapons(id)
706 task_funk(id)
707
708 switch(g_Weapon[id])
709 {
710 case 0:
711 {
712 first_menu(id);
713 menu_destroy(menu);
714 }
715 case 1:
716 {
717 for(new i = 0;i < sizeof secondaryWeapons;i++)
718 engclient_cmd(id, "drop", secondaryWeapons[i])
719
720 give_item(id, "weapon_deagle")
721 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
722 }
723 case 2:
724 {
725 for(new i = 0;i < sizeof secondaryWeapons;i++)
726 engclient_cmd(id, "drop", secondaryWeapons[i])
727
728 give_item(id, "weapon_usp")
729 cs_set_user_bpammo(id, CSW_USP, 100)
730 }
731 case 3:
732 {
733 for(new i = 0;i < sizeof secondaryWeapons;i++)
734 engclient_cmd(id, "drop", secondaryWeapons[i])
735
736 give_item(id, "weapon_glock18")
737 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
738 }
739 }
740
741 for(new i = 0;i < sizeof primaryWeapons;i++)
742 engclient_cmd(id, "drop", primaryWeapons[i])
743
744 give_item(id, "weapon_awp")
745 cs_set_user_bpammo(id, CSW_AWP, 30)
746
747 if(get_pcvar_num(cvar_chat) == 1)
748 chat_color(0, "!g[FCSB-VIP]!t VIP-ul !g%s!t a primit Polar gratuit + !gGrenade", name)
749 }
750 case 4:
751 {
752 vip_opened[id]++
753 if(user_has_weapon(id, CSW_C4))
754 engclient_cmd(id, "drop", "weapon_c4")
755
756 strip_user_weapons(id)
757 task_funk(id)
758
759 switch(g_Weapon[id])
760 {
761 case 0:
762 {
763 first_menu(id);
764 menu_destroy(menu);
765 }
766 case 1:
767 {
768 for(new i = 0;i < sizeof secondaryWeapons;i++)
769 engclient_cmd(id, "drop", secondaryWeapons[i])
770
771 give_item(id, "weapon_deagle")
772 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
773 }
774 case 2:
775 {
776 for(new i = 0;i < sizeof secondaryWeapons;i++)
777 engclient_cmd(id, "drop", secondaryWeapons[i])
778
779 give_item(id, "weapon_usp")
780 cs_set_user_bpammo(id, CSW_USP, 100)
781 }
782 case 3:
783 {
784 for(new i = 0;i < sizeof secondaryWeapons;i++)
785 engclient_cmd(id, "drop", secondaryWeapons[i])
786
787 give_item(id, "weapon_glock18")
788 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
789 }
790 }
791
792 for(new i = 0;i < sizeof primaryWeapons;i++)
793 engclient_cmd(id, "drop", primaryWeapons[i])
794
795 give_item(id, "weapon_famas")
796 cs_set_user_bpammo(id, CSW_FAMAS, 90)
797
798 if(get_pcvar_num(cvar_chat) == 1)
799 chat_color(0, "!g[FCSB-VIP]!t VIP-ul !g%s!t a primit Famas gratuit + !gGrenade", name)
800 }
801 case 5:
802 {
803 vip_opened[id]++
804 if(user_has_weapon(id, CSW_C4))
805 engclient_cmd(id, "drop", "weapon_c4")
806
807 strip_user_weapons(id)
808 task_funk(id)
809
810 switch(g_Weapon[id])
811 {
812 case 0:
813 {
814 first_menu(id);
815 menu_destroy(menu);
816 }
817 case 1:
818 {
819 for(new i = 0;i < sizeof secondaryWeapons;i++)
820 engclient_cmd(id, "drop", secondaryWeapons[i])
821
822 give_item(id, "weapon_deagle")
823 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
824 }
825 case 2:
826 {
827 for(new i = 0;i < sizeof secondaryWeapons;i++)
828 engclient_cmd(id, "drop", secondaryWeapons[i])
829
830 give_item(id, "weapon_usp")
831 cs_set_user_bpammo(id, CSW_USP, 100)
832 }
833 case 3:
834 {
835 if(pev(id, pev_weapons) & 1 << CSW_GLOCK18)
836 for(new i = 0;i < sizeof secondaryWeapons;i++)
837 engclient_cmd(id, "drop", secondaryWeapons[i])
838
839 give_item(id, "weapon_glock18")
840 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
841 }
842 }
843
844 for(new i = 0;i < sizeof primaryWeapons;i++)
845 engclient_cmd(id, "drop", primaryWeapons[i])
846
847 give_item(id, "weapon_g3sg1")
848 cs_set_user_bpammo(id, CSW_G3SG1, 90)
849
850 if(get_pcvar_num(cvar_chat) == 1)
851 chat_color(0, "!g[FCSB-VIP]!t VIP-ul !g%s!t a primit G3SG1 (D3/AU-1) gratuit + !gGrenade", name)
852 }
853 case 6:
854 {
855 vip_opened[id]++
856 if(user_has_weapon(id, CSW_C4))
857 engclient_cmd(id, "drop", "weapon_c4")
858
859 strip_user_weapons(id)
860 task_funk(id)
861
862 switch(g_Weapon[id])
863 {
864 case 0:
865 {
866 first_menu(id);
867 menu_destroy(menu);
868 }
869 case 1:
870 {
871 for(new i = 0;i < sizeof secondaryWeapons;i++)
872 engclient_cmd(id, "drop", secondaryWeapons[i])
873
874 give_item(id, "weapon_deagle")
875 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
876 }
877 case 2:
878 {
879 for(new i = 0;i < sizeof secondaryWeapons;i++)
880 engclient_cmd(id, "drop", secondaryWeapons[i])
881
882 give_item(id, "weapon_usp")
883 cs_set_user_bpammo(id, CSW_USP, 100)
884 }
885 case 3:
886 {
887 if(pev(id, pev_weapons) & 1 << CSW_GLOCK18)
888 for(new i = 0;i < sizeof secondaryWeapons;i++)
889 engclient_cmd(id, "drop", secondaryWeapons[i])
890
891 give_item(id, "weapon_glock18")
892 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
893 }
894 }
895
896 for(new i = 0;i < sizeof primaryWeapons;i++)
897 engclient_cmd(id, "drop", primaryWeapons[i])
898
899 give_item(id, "weapon_sg550")
900 cs_set_user_bpammo(id, CSW_SG550, 90)
901
902 if(get_pcvar_num(cvar_chat) == 1)
903 chat_color(0, "!g[FCSB-VIP]!t VIP-ul !g%s!t a primit SG550 (Counter-Terorist) gratuit + !gGrenade", name)
904 }
905 case 7: first_menu(id);
906 }
907
908 //menu_destroy(menu);
909 return PLUGIN_CONTINUE;
910}
911
912public first_menu(id)
913{
914 if(gl_not_map)
915 return;
916
917 if(!is_user_connected(id))
918 return;
919
920 new i_Menu = menu_create("\rCe pistol doresti \yBoss?", "first_menu_handler")
921
922 menu_additem(i_Menu, "\rDeagle [\y35 Gloante\r]", "1", 0)
923 menu_additem(i_Menu, "\rUSP [\y100 Gloante\r]", "2", 0)
924 menu_additem(i_Menu, "\rGlock [\y120 Gloante\r]\y", "3", 0)
925
926 menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);
927 menu_display(id, i_Menu, 0)
928}
929
930public first_menu_handler(id, menu, item)
931{
932 if(item == MENU_EXIT)
933 {
934 menu_destroy(menu)
935 return PLUGIN_HANDLED
936 }
937
938 new s_Data[6], s_Name[60], i_Access, i_Callback
939 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
940 new i_Key = str_to_num(s_Data)
941
942 for(new i = 0;i <6;i++)
943 fm_strip_user_gun(id, pistols[i])
944
945 switch(i_Key)
946 {
947 case 1:
948 {
949 g_chosen[id] = true;
950 g_Weapon[id] = 1;
951 give_item(id, "weapon_deagle")
952 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
953 }
954 case 2:
955 {
956 g_chosen[id] = true;
957 g_Weapon[id] = 2;
958 give_item(id, "weapon_usp")
959 cs_set_user_bpammo(id, CSW_USP, 100)
960 }
961 case 3:
962 {
963 g_chosen[id] = true;
964 g_Weapon[id] = 3;
965 give_item(id, "weapon_glock18")
966 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
967 }
968 }
969
970 //menu_destroy(menu);
971 return PLUGIN_CONTINUE;
972}
973
974public MessageScoreAttrib(iMsgID, iDest, iReceiver)
975{
976 if(get_pcvar_num(cvar_tab))
977 {
978 new iPlayer = get_msg_arg_int(1);
979 if(is_user_connected(iPlayer) && ((is_vip(iPlayer)) || has_flag(iPlayer, "t")))
980 {
981 set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
982 }
983 }
984}
985
986public event_DeathMsg()
987{
988 new killer = read_data(1);
989 new victim = read_data(2);
990 new headshot = read_data(3);
991 new hp = headshot ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
992 new money = headshot ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
993
994 if(is_vip(victim))
995 if(!g_chosen[victim])
996 set_task(1.0, "first_menu", victim)
997
998 if(is_user_alive(killer) && (is_vip(killer) || has_flag(killer, "t")))
999 {
1000 if(killer == victim) return PLUGIN_HANDLED;
1001 if(hp != 0) set_user_health(killer, clamp(get_user_health(killer) + hp, 1, get_pcvar_num(cvar[max_hp_kill])));
1002 if(money != 0) cs_set_user_money(killer, clamp(cs_get_user_money(killer) + money - 300, 1, 16000));
1003
1004 set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
1005 show_hudmessage(killer, "Healed +%d HP", hp);
1006
1007 message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, killer);
1008 write_short(1<<10);
1009 write_short(1<<10);
1010 write_short(0x0000);
1011 write_byte(0);
1012 write_byte(0);
1013 write_byte(200);
1014 write_byte(75);
1015 message_end();
1016 }
1017
1018 return PLUGIN_CONTINUE;
1019}
1020
1021public hook_say(id)
1022{
1023 /*static szAllArgs[1023];
1024 read_args(szAllArgs, charsmax(szAllArgs))
1025 if((containi(szAllArgs, "/vip")!= -1 || containi(szAllArgs, "/vips")!= -1))
1026 return PLUGIN_HANDLED;*/
1027
1028 new said[192];
1029 read_args(said,192);
1030 if(contain(said, "/vips") != -1)
1031 set_task(0.1,"print_adminlist",id);
1032 return PLUGIN_CONTINUE;
1033}
1034
1035public print_adminlist(user)
1036{
1037 new adminnames[33][32];
1038 new message[256];
1039 new id, count, x, len;
1040
1041 for(id = 1 ; id <= get_maxplayers() ; id++)
1042 if(is_user_connected(id))
1043 if(is_vip(id))
1044 get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
1045
1046 len = format(message, 255, "^1VIP-ii online sunt:^4 ");
1047 if(count > 0)
1048 {
1049 for(x = 0 ; x < count ; x++)
1050 {
1051 len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
1052 if(len > 96)
1053 {
1054 print_message(user, message);
1055 len = format(message, 255, " ");
1056 }
1057 }
1058 print_message(user, message);
1059 }
1060 else
1061 chat_color(id, "!g[FCSB - VIP]!t ^1Nu sunt ^4VIP^1-i online.")
1062
1063 return PLUGIN_CONTINUE;
1064}
1065
1066print_message(id, msg[])
1067{
1068 message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
1069 write_byte(id);
1070 write_string(msg);
1071 message_end();
1072}
1073
1074stock bool: is_vip(const id)
1075{
1076 if(!is_user_connected(id))
1077 return false;
1078
1079 if(IsUserVip[id] || get_user_flags(id) & read_flags("x")) /*|| equali(name, "seven|sin")|| equali(name, "PedoBear"))*/
1080 return true;
1081
1082 return false;
1083}
1084
1085check_map()
1086{
1087 new got_line, line_num, len
1088 new cfgdir[MAX_TEXT_LENGTH]
1089 new cfgpath[MAX_TEXT_LENGTH]
1090 new mapname[MAX_NAME_LENGTH]
1091 new txt[MAX_TEXT_LENGTH]
1092
1093 get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
1094 get_mapname(mapname, MAX_NAME_LENGTH-1)
1095
1096 format(cfgpath, MAX_TEXT_LENGTH, "%s/fcsb-playarena-vip/disabled_maps.ini", cfgdir)
1097
1098 if (file_exists(cfgpath))
1099 {
1100 got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
1101 while (got_line>0)
1102 {
1103 if (equali(txt, mapname))return 1
1104 line_num++
1105 got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
1106 }
1107 }
1108
1109 return 0
1110}
1111
1112stock chat_color(const id, const input[], any:...)
1113{
1114 new count = 1, Jucatori[32]
1115 static msg[191]
1116 vformat(msg, 190, input, 3)
1117
1118 replace_all(msg, 190, "!g", "^4")//Culoarea Verde
1119 replace_all(msg, 190, "!y", "^1")//Culoarea Normala a Chat-ului (galben)
1120 replace_all(msg, 190, "!t", "^3")//Culoarea Echipei : CT = Albastru | T = Rosu.
1121
1122 if (id)Jucatori[0] = id;else get_players(Jucatori, count, "ch")
1123 {
1124 for (new Y = 0;Y <count;Y++)
1125 {
1126 if (is_user_connected(Jucatori[Y]))
1127 {
1128 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, Jucatori[Y])
1129 write_byte(Jucatori[Y]);
1130 write_string(msg);
1131 message_end();
1132 }
1133 }
1134 }
1135}
1136
1137//======================================================//
1138// END Stock-URI ===>>>>> PROTECTIE
1139//======================================================//
1140/* Protected Plugin */
1141public _ProtectCheck_()
1142{
1143 new HostNameProtect[] = "FCSB.PLAY-ARENA.RO"
1144 new HostNameProtectTESTE[] = "Server Teste"
1145 new ActualHostname[64], xP[32], xN
1146
1147 get_pcvar_string(get_cvar_pointer("hostname"), ActualHostname, 63)
1148 strtoupper(ActualHostname)
1149
1150 if (containi(ActualHostname, HostNameProtect) != -1 || containi(ActualHostname, HostNameProtectTESTE) != -1)
1151 return PLUGIN_CONTINUE
1152 else
1153 {
1154 server_cmd("quit;exit;map de_dust2") //quit;exit;map de_dust2;map hns_floppywon -> VECHI
1155 pause("ade"); //Nou
1156 for (new i=0;i < 500000;i++)
1157 {
1158 get_players(xP, xN)
1159 //for (new o=0;o < xN;o++)
1160 //chatcolor(xP[i], "!tPluginul este protejat. Aceasta este o tentativa de frauda.")
1161
1162 server_print("[VIP FCSB] Doresti sa furi addons-ul, domnule? Cauta-l pe, PedoBear, ca sa il cumperi!")
1163 }
1164 }
1165
1166 return PLUGIN_CONTINUE
1167}
1168//======================================================//
1169// END PROTECTIE
1170//======================================================//