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