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