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