· 7 years ago · Feb 08, 2018, 02:20 PM
1#include <amxmodx>
2#include <amxmisc>
3#include <engine>
4#include <cstrike>
5#include <fun>
6#include <fakemeta>
7#include <fakemeta_util>
8#include <hamsandwich>
9//#include <sockets>
10//#include <nvault>
11
12#define PLUGIN "V.I.P CLASSIC"
13#define VERSION "3.0"
14#define AUTHOR "PedoBear"
15
16new vipcmd;
17new bool:gl_not_map
18new g_Round, g_Weapon[33]
19new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk, cvar_tab
20new vip_opened[33]
21new pistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE}
22new bool: g_chosen[33] = false;
23
24//VIP SCOREBOARD
25#define SCOREATTRIB_NONE 0
26#define SCOREATTRIB_DEAD ( 1 << 0 )
27#define SCOREATTRIB_BOMB ( 1 << 1 )
28#define SCOREATTRIB_VIP ( 1 << 2 )
29
30//Adaugare VIP
31new File[120]
32new bool: IsUserVip[33] = false
33new Trie: LoadVip
34new Pass
35
36//Multi Jump
37new jumpnum[33], bool: dojump[33], cvar_addjump_vip, cvar_addjump_player
38
39//Stringuri pentru verificarea hartilor
40#define MAX_NAME_LENGTH 40
41#define MAX_TEXT_LENGTH 200
42
43new const primaryWeapons[][] = {"weapon_shield", "weapon_scout", "weapon_xm1014", "weapon_mac10", "weapon_aug", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90", "weapon_c4"}
44new const secondaryWeapons[][] = {"weapon_p228", "weapon_elite", "weapon_fiveseven", "weapon_usp", "weapon_glock18", "weapon_deagle"}
45
46enum cvars {
47 money_per_damage,
48 money_kill,
49 money_hs,
50 hp_kill,
51 hp_hs,
52 max_hp_kill
53}
54new cvar[cvars];
55
56//Bullet damage
57new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2
58
59//CfgDir
60new bool:g_bCurrentMapIsInList = false;
61new menu_round, menu_open, menu_show, vip_chat_message, menu_pistols, vip_funk, vip_tab, cvar_hp_kill, cvar_money_per_damage, cvar_money_kill, cvar_money_hs, cvar_max_hp_kill, addjump_vip, addjump_player
62
63//BuyZone V.I.P MENU
64//new bool:UserInBuyZone[33];
65new i_Menu, i_Menu_Pistol
66
67//Licenta
68static const ServerLicensedIp[] = "89.40.104.65"; //Ip Oficial STAR: 89.40.104.65
69static 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
70
71public plugin_init()
72{
73 server_print("^n%s v%s, Copyright (C)2017 by %s^n", PLUGIN, VERSION, AUTHOR)
74
75 register_plugin
76 (
77 .plugin_name = PLUGIN,
78 .version = VERSION,
79 .author = AUTHOR
80 );
81
82 new szIp[25];
83 get_user_ip(0, szIp, sizeof (szIp) -1, 1);
84 if(equal(szIp, ServerLicensedIp) || equal(szIp, ServerLicensedIpTESTE))
85 {
86 //RegisterHam(Ham_Item_PreFrame, "player", "player_maxspeed", 1);
87 RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
88
89 register_event("HLTV", "round_start", "a", "1=0", "2=0")
90 register_logevent("LogEvent_RoundStart", 2, "1=Round_Start");
91 register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in", "2=#Game_Commencing");
92 register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib");
93 register_event("DeathMsg", "event_DeathMsg", "a");
94 //register_event("Damage", "Damage", "b");
95 //register_event("StatusIcon", "Event_StatusIcon_Show_buyzone", "be", "1=1", "2=buyzone");
96 //register_event("StatusIcon", "StatusIcon_buyzone_OFF", "be", "1=0", "2=buyzone");
97
98 register_clcmd("say /vipmenu", "arataMeniuVIPs");
99 register_clcmd("say_team /vipmenu", "arataMeniuVIPs");
100 register_clcmd("say /vm", "arataMeniuVIPs");
101 register_clcmd("say_team /vm", "arataMeniuVIPs");
102 register_clcmd("say /vmenu", "arataMeniuVIPs");
103 register_clcmd("say_team /vmenu", "arataMeniuVIPs");
104
105 register_clcmd("say /vip", "vip_info");
106 register_clcmd("say /wantvip", "vip_info");
107 register_clcmd("say /vreauvip", "vip_info");
108
109 //register_clcmd("say /pistoale", "first_menu");
110 //register_clcmd("say_team /pistoale", "first_menu");
111
112 cvar_round = register_cvar("vip_openmenu_round", "3")
113 cvar_open = register_cvar("vip_zaround", "1")
114 cvar_show = register_cvar("vip_showmenu", "1")
115 cvar_chat = register_cvar("vip_showchat", "0")
116 cvar_pistols = register_cvar("vip_auto_fill", "1")
117 cvar_funk = register_cvar("vip_taskmanager", "1")
118 cvar_tab = register_cvar("vip_scoreboard", "1")
119
120 cvar[hp_kill] = register_cvar("vip_receive_hp_kill", "10"); // 0 = dezactivat
121 cvar[hp_hs] = register_cvar("vip_receive_hp_hs", "15"); // 0 = dezactivat
122 cvar[money_per_damage] = register_cvar("vip_money_per_damage", "3") //How many $ VIP will get per 1 damage
123 cvar[money_kill] = register_cvar("vip_receive_money_kill", "250"); // 0 = dezactivat
124 cvar[money_hs] = register_cvar("vip_receive_money_hs", "500"); // 0 = dezactivat
125 cvar[max_hp_kill] = register_cvar("vip_receive_max_hp_kill", "120"); // valoarea maxima de hp pe care o poti obtine facand killuri
126
127 //Multi Jump
128 cvar_addjump_vip = register_cvar("vip_cvar_addjump_vip", "0") // Are 1 salturi in plus
129 cvar_addjump_player = register_cvar("vip_cvar_addjump_player", "0") // Are 0 salt in plus
130
131 register_clcmd("say", "hook_say");
132 register_clcmd("say_team", "hook_say");
133
134 register_clcmd("say /resetscore", "reset_score")
135 register_clcmd("say /restartscore", "reset_score")
136 register_clcmd("say /rs", "reset_score")
137 register_clcmd("say /rz", "reset_score")
138 register_clcmd("say !rs", "reset_score")
139
140 register_clcmd("say_team /resetscore", "reset_score")
141 register_clcmd("say_team /restartscore", "reset_score")
142 register_clcmd("say_team /rs", "reset_score")
143 register_clcmd("say_team /rz", "reset_score")
144 register_clcmd("say_team !rs", "reset_score")
145
146 register_clcmd("say /resetscoredead", "reset_score_dead")
147 register_clcmd("say /restartscoredead", "reset_score_dead")
148 register_clcmd("say /rsd", "reset_score_dead")
149 register_clcmd("say /rzd", "reset_score_dead")
150 register_clcmd("say !rsd", "reset_score_dead")
151
152 register_clcmd("say_team /resetscoredead", "reset_score_dead")
153 register_clcmd("say_team /restartscoredead", "reset_score_dead")
154 register_clcmd("say_team /rsd", "reset_score_dead")
155 register_clcmd("say_team /rzd", "reset_score_dead")
156 register_clcmd("say_team !rsd", "reset_score_dead")
157
158 register_clcmd("vmenu", "main_menu")
159
160 /*register_clcmd("say /vreauvip", "cmdMotd")
161 register_clcmd("say /infovip", "cmdMotd")
162 register_clcmd("say /cumparvip", "cmdMotd")
163 register_clcmd("say /wantvip", "cmdMotd")
164 register_clcmd("say_team /vreauvip", "cmdMotd")
165 register_clcmd("say_team /infovip", "cmdMotd")
166 register_clcmd("say_team /cumparvip", "cmdMotd")
167 register_clcmd("say_team /wantvip", "cmdMotd")
168
169 register_clcmd("say /vip", "cmdMotd");
170 register_clcmd("say_team /vip", "cmdMotd");
171 register_clcmd("say /vips", "cmdMotd");
172 register_clcmd("say_team /vips", "cmdMotd");*/
173
174 //File Manager VIP
175 Pass = get_cvar_pointer("amx_password_field")
176 LoadVip = TrieCreate()
177 get_configsdir(File, charsmax(File))
178 format(File, charsmax(File), "%s/star-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 //bullet damage
199 register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
200 g_type = register_cvar("amx_bulletdamage", "3")
201 g_recieved = register_cvar("amx_bulletdamage_recieved", "1")
202
203 g_hudmsg1 = CreateHudSyncObj()
204 g_hudmsg2 = CreateHudSyncObj()
205
206 set_task(5.0, "_ProtectCheck_", 21412321, _,_, "b")
207 server_print("[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN);
208 server_print("[%s] Pentru mai multe detalii y/m: ravravy@yahoo.com", PLUGIN);
209 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
210 }
211 else
212 {
213 new szPluginName[32];
214 formatex(szPluginName, sizeof(szPluginName) -1, "[IP Nelicentiat] %s", PLUGIN);
215 register_plugin(szPluginName, PLUGIN, "PedoBear");
216
217 server_print("[%s] Nu detii o licenta valabila! Plugin-ul nu va functiona corespunzator!", PLUGIN);
218 server_print("[%s] Pentru mai multe detalii Y!M: ravravy@yahoo.com", PLUGIN);
219 server_print("[%s] Ip-ul Licentiat: [%s] || Ip-ul Serverului: [%s]", PLUGIN, szIp, ServerLicensedIp);
220
221 pause("ade");
222 }
223}
224
225public plugin_cfg()
226{
227 menu_round = get_pcvar_num(cvar_round)
228 menu_open = get_pcvar_num(cvar_open)
229 menu_show = get_pcvar_num(cvar_show)
230 vip_chat_message = get_pcvar_num(cvar_chat)
231 menu_pistols = get_pcvar_num(cvar_pistols)
232 vip_funk = get_pcvar_num(cvar_funk)
233 vip_tab = get_pcvar_num(cvar_tab)
234
235 cvar_hp_kill = get_pcvar_num(cvar[hp_kill])
236 cvar_money_per_damage = get_pcvar_num(cvar[money_per_damage])
237 cvar_money_kill = get_pcvar_num(cvar[money_kill])
238 cvar_money_hs = get_pcvar_num(cvar[money_hs])
239 cvar_max_hp_kill = get_pcvar_num(cvar[max_hp_kill])
240
241 addjump_vip = get_pcvar_num(cvar_addjump_vip)
242 addjump_player = get_pcvar_num(cvar_addjump_player)
243
244 if(get_pcvar_num(g_recieved))
245 g_showrecieved = true; //Checks of g_received is 1 and if so, sets g_showrecieved to true
246
247 new szmapnames[128], szData[32], szCurrentMap[32];
248 format(szmapnames, 128, "addons/amxmodx/configs/star-playarena-vip/disabled_maps.ini") //Sets the path of disabled_maps.ini and saves it to szmapnames
249 if(!file_exists(szmapnames)) //Checks if szmapnames file doesn't exist
250 {
251 server_print("[VIP] File %s is missing!", szmapnames); //Prints a missing message
252 server_print("[VIP] File %s is created!", szmapnames); //Prints a create message
253 write_file(szmapnames, "awp_") //Writes awp_ to szmapnames file
254 write_file(szmapnames, "cs_deagle") //Writes cs_deagle to szmapnames file
255 write_file(szmapnames, "knf_") //Writes knf_ to szmapnames file
256 write_file(szmapnames, "1hp_") //Writes 1hp_ to szmapnames file
257 write_file(szmapnames, "aim") //Writes aim to szmapnames file
258 write_file(szmapnames, "fy_") //Writes aim to szmapnames file
259 }
260
261 if(file_exists(szmapnames)) //Checks if szmapnames file does exist
262 {
263 get_configsdir(szmapnames, charsmax(szmapnames)); //Get the AMX Mod X configs directory(folder).
264 add(szmapnames, charsmax(szmapnames), "/focsani-playarena-vip/disabled_maps.ini"); //Add your filename to the filepath.
265 get_mapname(szCurrentMap, charsmax(szCurrentMap)); //Get the current map.
266
267 new f = fopen(szmapnames, "rt"); //Open the file.
268 while(!feof(f)) //Loop until it finds the End Of the File(aka EOF).
269 {
270 fgets(f, szData, charsmax(szData)); //Get all text from current line.
271 trim(szData); //Trim off the new line and carriage return characters.
272 if(containi(szCurrentMap, szData) != -1) //Check if the current map is equal to the map listed on this line.
273 {
274 g_bCurrentMapIsInList = true; //Set boolean to true so that you know if the map was in the file.
275 break; //Stop looping(reading the file) because you found what you came for.
276 }
277 }
278 fclose(f); //Close the file.
279 }
280
281 /*new CfgDir[32], CfgFile[192];
282 get_configsdir(CfgDir, charsmax(CfgDir));
283 formatex(CfgFile, charsmax(CfgFile), "%s/vip_cvars.cfg", CfgDir);
284
285 if(!file_exists(CfgFile))
286 {
287 server_print("[VIP] File %s is missing!", CfgDir) //Prints a missing message
288 server_print("[VIP] CVAR's are loaded from the plugin!", CfgDir) //Prints a load message
289 }
290 else
291 {
292 server_print("[VIP] CVAR's are loaded from %s!", CfgDir); //Prints a load message
293 server_cmd("exec %s", CfgFile); //Loads CVARs from vip_cvars.cfg
294 }*/
295}
296
297public vip_info(id)
298 show_motd(id, "/addons/amxmodx/configs/vip_info.html");
299
300public reset_score(id)
301{
302 static name[32]
303 get_user_name(id, name, 31)
304
305 new frags = get_user_frags(id);
306 new deaths = get_user_deaths(id);
307
308 if(frags == 0 && deaths == 0)
309 {
310 chat_color(id, "!g[STAR|RS]!t Ai scorul deja !y0 !g- !y0 !t!")
311 return PLUGIN_HANDLED
312 }
313 else
314 {
315 if(is_vip(id))
316 {
317 for(new i = 0; i < 2; i++)
318 {
319 cs_set_user_deaths(id, 0);
320 set_user_frags(id, 0);
321 }
322
323 chat_color(id, "!g[STAR|RS]!t Scorul tau a fost resetat! Bafta la fraguri !y[!gVIP!y] !g%s!t Have fun!", name)
324 }
325 else
326 {
327 for(new i = 0; i < 2; i++)
328 {
329 cs_set_user_deaths(id, 0);
330 set_user_frags(id, 0);
331 }
332
333 chat_color(id, "!g[STAR|RS]!t Scorul tau a fost resetat! Bafta la fraguri !g%s!t Have fun!", name)
334 }
335 }
336
337 return PLUGIN_HANDLED
338}
339
340public reset_score_dead(id)
341{
342 static name[32]
343 get_user_name(id, name, 31)
344
345 new deaths = get_user_deaths(id);
346
347 if(deaths == 0)
348 {
349 chat_color(id, "!g[STAR|RS]!t Ai !gdeath-urile !tdeja !y0 !g- !y0 !t!")
350 return PLUGIN_HANDLED
351 }
352 else
353 {
354 for(new i = 0; i < 2; i++)
355 cs_set_user_deaths(id, 0);
356
357 if(is_vip(id))
358 chat_color(id, "!g[STAR|RS - VIP]!t Dead-urile tale au fost resetate! Bafta la fraguri !y[!gVIP!y] !g%s!t Have fun!", name)
359 }
360
361 return PLUGIN_HANDLED
362}
363
364/*public plugin_precache()
365{
366 if(check_map())
367 {
368 gl_not_map = true
369 return;
370 }
371}*/
372
373public bool:_get_vip(iPlugin, iParams)
374{
375 new id = get_param(1);
376 if(IsUserVip[id] || has_flag(id, "x")) return true;
377
378 return false;
379}
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))
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))
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, "_pw", 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 nume este rezervat!^"", 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 jumpnum[id] = 0
470 dojump[id] = false
471
472 //set_task(0.9, "vip_menu", id);
473
474 if(is_vip(id))
475 {
476 new name[33];
477 get_user_name(id, name, charsmax(name));
478 chat_color(0, "!g[STAR-VIP]!t VIP-ul [!g%s!t] se conecteaza pe server...", name);
479 }
480
481 return PLUGIN_CONTINUE;
482}
483
484public plugin_natives()
485{
486 set_native_filter("native_filter")
487 register_native("get_vip", "_get_vip", 0)
488 register_native("get_map_disabled", "map_disabled", 0)
489}
490
491public map_disabled() return g_bCurrentMapIsInList
492
493public native_filter(const name[], index, trap)
494{
495 if (!trap)
496 return PLUGIN_HANDLED
497
498 return PLUGIN_CONTINUE
499}
500
501public client_disconnect(id)
502{
503 jumpnum[id] = 0
504 dojump[id] = false
505
506 remove_task(id)
507 g_Weapon[id] = 0;
508 g_chosen[id] = false;
509 IsUserVip[id] = false
510}
511
512public client_PreThink(id)
513{
514 if(!is_user_alive(id))
515 return
516
517 new BUTON = get_user_button(id)
518 new OLDBUTON = get_user_oldbutton(id)
519 new JUMP_VIP = addjump_vip
520 new JUMP_PLAYER = addjump_player
521
522 if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
523 {
524 if(((is_vip(id)) && (jumpnum[id] < JUMP_VIP)) || (!(is_vip(id)) && (jumpnum[id] < JUMP_PLAYER)))
525 {
526 dojump[id] = true
527 jumpnum[id]++
528 }
529 }
530
531 if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
532 jumpnum[id] = 0
533}
534
535public client_PostThink(id)
536{
537 if(!is_user_alive(id)) return PLUGIN_CONTINUE
538
539 if(dojump[id] == true)
540 {
541 new Float: velocity[3]
542 entity_get_vector(id, EV_VEC_velocity, velocity)
543 velocity[2] = random_float(265.0, 285.0)
544 entity_set_vector(id, EV_VEC_velocity, velocity)
545 dojump[id] = false
546 }
547
548 return PLUGIN_CONTINUE
549}
550
551public round_start()
552{
553 /*if(!gl_not_map)
554 {
555 g_Round++
556 vipcmd = 1;
557 }
558 */
559
560 if(!g_bCurrentMapIsInList) //Checks if map is not the one written in disabled_maps.ini, if user is alive and if e has flag H
561 {
562 g_Round++
563 vipcmd = 1;
564 }
565
566 //bullet damage
567 g_enabled = get_pcvar_num(g_type)
568 if(get_pcvar_num(g_recieved)) g_showrecieved = true
569}
570
571public LogEvent_RoundStart(id)
572{
573}
574
575public round_restart()
576{
577 if(!g_bCurrentMapIsInList)
578 g_Round = 0
579}
580
581/*public player_maxspeed(id)
582{
583 if(is_vip(id) && is_user_alive(id) && is_user_connected(id))
584 set_user_maxspeed(id, 450.0);
585
586 return PLUGIN_HANDLED
587}*/
588
589public player_spawn(Player)
590{
591 vip_opened[Player] = 0;
592 if((is_vip(Player) || has_flag(Player, "t")) && is_user_alive(Player) && is_user_connected(Player) && !g_bCurrentMapIsInList)
593 {
594 if(g_Weapon[Player] == 0)
595 first_menu(Player)
596
597 if(vip_funk == 1)
598 task_funk(Player);
599
600 if(menu_show == 1 && g_Round >= menu_round)
601 main_menu(Player);
602 }
603}
604
605public arataMeniuVIPs(id)
606{
607 if(is_vip(id) || has_flag(id, "t"))
608 {
609 if(is_user_alive(id) && is_user_connected(id))
610 {
611 if(vipcmd == 0)
612 {
613 main_menu(id)
614 chat_color(id, "!g[VIP MENU]!t Aceasta comanda o poti folosi doar odata pe runda. Scuzele noastre! !g:)!t")
615 }
616 else
617 {
618 vipcmd = 0
619 }
620 }
621 else
622 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi folosita doar daca esti in viata!")
623 }
624 else
625 chat_color(id, "!g[VIP MENU]!t Aceasta comanda poate fi utilizata doar de catre VIP")
626}
627
628public task_funk(id)
629{
630 give_item(id, "weapon_knife")
631 give_item(id, "item_thighpack")
632 give_item(id, "weapon_hegrenade")
633 give_item(id, "weapon_flashbang")
634 give_item(id, "weapon_flashbang")
635 give_item(id, "item_assaultsuit")
636
637 if(menu_pistols)
638 {
639 for(new i = 0;i <6;i++)
640 fm_strip_user_gun(id, pistols[i])
641
642 switch(g_Weapon[id])
643 {
644 case 1:
645 {
646 give_item(id, "weapon_deagle");
647 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
648 }
649 case 2:
650 {
651 give_item(id, "weapon_usp");
652 cs_set_user_bpammo(id, CSW_USP, 100)
653 }
654 case 3:
655 {
656 give_item(id, "weapon_glock18");
657 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
658 }
659 }
660 }
661}
662
663/* Meniurile cu arme fmm */
664public main_menu(id)
665{
666 if(is_vip(id) || has_flag(id, "t"))
667 {
668 if(is_user_alive(id))
669 {
670 if(vip_opened[id] < menu_open || menu_open == 0)
671 {
672 if(g_Round >= menu_round)
673 {
674 new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64]
675 get_user_name(id, s_Name, charsmax(s_Name))
676 switch(g_Weapon[id])
677 {
678 case 0: s_Pistol = "Fara Pistol!";
679 case 1: s_Pistol = "Deagle";
680 case 2: s_Pistol = "Usp";
681 case 3: s_Pistol = "Glock";
682 }
683
684 formatex(s_Title, charsmax(s_Title), "\yVIP \rSystem \y[\rSTAR\y]", s_Name)
685 i_Menu = menu_create(s_Title, "main_handler", 1);
686
687 formatex(szMenuMulti, charsmax(szMenuMulti), "\rM4A1 \y+ \r%s \y+ \dGrenade", s_Pistol)
688 menu_additem(i_Menu, szMenuMulti, "1", 0)
689
690 formatex(szMenuMulti, charsmax(szMenuMulti), "\rAK47 \y+ \r%s \y+ \dGrenade", s_Pistol)
691 menu_additem(i_Menu, szMenuMulti, "2", 0)
692
693 formatex(szMenuMulti, charsmax(szMenuMulti), "\rAWP \y+ \r%s \y+ \dGrenade", s_Pistol)
694 menu_additem(i_Menu, szMenuMulti, "3", 0)
695
696 /*formatex(szMenuMulti, charsmax(szMenuMulti), "\rFAMAS \y+ \r%s \y+ \dGrenade", s_Pistol)
697 menu_additem(i_Menu, szMenuMulti, "4", 0)
698
699 formatex(szMenuMulti, charsmax(szMenuMulti), "%\r%s \y+ \dGrenade + \rG3SG1 (Terorist)", s_Pistol)
700 menu_additem(i_Menu, szMenuMulti, "5", 0)
701
702 formatex(szMenuMulti, charsmax(szMenuMulti), "%\r%s \y+ \dGrenade + \rSG550 (Counter-Terrorist)", s_Pistol)
703 menu_additem(i_Menu, szMenuMulti, "6", 0)*/
704
705 formatex(szMenuMulti, charsmax(szMenuMulti), "\y<<< \rPrimul Meniu \y(\wPistoale\y)")
706 menu_additem(i_Menu, szMenuMulti, "7", 0)
707
708 menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);
709 menu_display(id, i_Menu, 0)
710 }
711 else
712 {
713 if(menu_round == 2)
714 {
715 chat_color(id, "!g[STAR-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", menu_round)
716 return PLUGIN_HANDLED;
717 }
718 else
719 {
720 chat_color(id, "!g[STAR-VIP]!t Meniul se deschide doar dupa !g%d!t runde!", menu_round)
721 return PLUGIN_HANDLED;
722 }
723 }
724 }
725 else
726 chat_color(id, "!g[STAR-VIP]!t Sincer... ceva nu merge bine. Contacteaza-ne pe !gwww.play-arena.ro/forum")
727 }
728 else
729 chat_color(id, "!g[STAR-VIP]!t Esti mort... nu poti folosi meniul!")
730 }
731 else
732 chat_color(id, "!g[STAR-VIP]!t Nu esti !gVIP!t. Foloseste comanda !g/help!t pentru afisare detalii")
733
734 return PLUGIN_HANDLED;
735}
736
737public main_handler(id, menu, item)
738{
739 if(item == MENU_EXIT)
740 {
741 menu_destroy(menu)
742 return PLUGIN_HANDLED;
743 }
744
745 if(!is_user_alive(id) && !is_user_connected(id))
746 return PLUGIN_HANDLED;
747
748 new s_Data[6], s_Name[60], i_Access, i_Callback
749 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
750 new i_Key = str_to_num(s_Data)
751 new name[32]
752 get_user_name(id, name, charsmax(name))
753
754 switch(i_Key)
755 {
756 case 1:
757 {
758 vip_opened[id]++
759 if(user_has_weapon(id, CSW_C4))
760 engclient_cmd(id, "drop", "weapon_c4")
761
762 task_funk(id)
763
764 switch(g_Weapon[id])
765 {
766 case 0: first_menu(id);
767 case 1:
768 {
769 for(new i = 0;i < sizeof secondaryWeapons;i++)
770 engclient_cmd(id, "drop", secondaryWeapons[i])
771
772 give_item(id, "weapon_deagle")
773 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
774 }
775 case 2:
776 {
777 for(new i = 0;i < sizeof secondaryWeapons;i++)
778 engclient_cmd(id, "drop", secondaryWeapons[i])
779
780 give_item(id, "weapon_usp")
781 cs_set_user_bpammo(id, CSW_USP, 100)
782 }
783 case 3:
784 {
785 for(new i = 0;i < sizeof secondaryWeapons;i++)
786 engclient_cmd(id, "drop", secondaryWeapons[i])
787
788 give_item(id, "weapon_glock18")
789 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
790 }
791 }
792
793 for(new i = 0;i < sizeof primaryWeapons;i++)
794 engclient_cmd(id, "drop", primaryWeapons[i])
795
796 give_item(id, "weapon_m4a1")
797 cs_set_user_bpammo(id, CSW_M4A1, 90)
798 if(vip_chat_message == 1)
799 chat_color(0, "!g[STAR-VIP]!t VIP-ul !g%s!t a primit M4A1 gratuit + !gGrenade", name)
800 }
801 case 2:
802 {
803 vip_opened[id]++
804 if(user_has_weapon(id, CSW_C4))
805 engclient_cmd(id, "drop", "weapon_c4")
806
807 strip_user_weapons(id)
808 task_funk(id)
809
810 switch(g_Weapon[id])
811 {
812 case 0:
813 {
814 first_menu(id);
815 menu_destroy(menu);
816 }
817 case 1:
818 {
819 for(new i = 0;i < sizeof secondaryWeapons;i++)
820 engclient_cmd(id, "drop", secondaryWeapons[i])
821
822 give_item(id, "weapon_deagle")
823 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
824 }
825 case 2:
826 {
827 for(new i = 0;i < sizeof secondaryWeapons;i++)
828 engclient_cmd(id, "drop", secondaryWeapons[i])
829
830 give_item(id, "weapon_usp")
831 cs_set_user_bpammo(id, CSW_USP, 100)
832 }
833 case 3:
834 {
835 for(new i = 0;i < sizeof secondaryWeapons;i++)
836 engclient_cmd(id, "drop", secondaryWeapons[i])
837
838 give_item(id, "weapon_glock18")
839 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
840 }
841 }
842
843 for(new i = 0;i < sizeof primaryWeapons;i++)
844 engclient_cmd(id, "drop", primaryWeapons[i])
845
846 give_item(id, "weapon_ak47")
847 cs_set_user_bpammo(id, CSW_AK47, 90)
848
849 if(vip_chat_message == 1)
850 chat_color(0, "!g[STAR-VIP]!t VIP-ul !g%s!t a primit Ak47 gratuit + !gGrenade", name)
851 }
852 case 3:
853 {
854 vip_opened[id]++
855 if(user_has_weapon(id, CSW_C4))
856 engclient_cmd(id, "drop", "weapon_c4")
857
858 strip_user_weapons(id)
859 task_funk(id)
860
861 switch(g_Weapon[id])
862 {
863 case 0:
864 {
865 first_menu(id);
866 menu_destroy(menu);
867 }
868 case 1:
869 {
870 for(new i = 0;i < sizeof secondaryWeapons;i++)
871 engclient_cmd(id, "drop", secondaryWeapons[i])
872
873 give_item(id, "weapon_deagle")
874 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
875 }
876 case 2:
877 {
878 for(new i = 0;i < sizeof secondaryWeapons;i++)
879 engclient_cmd(id, "drop", secondaryWeapons[i])
880
881 give_item(id, "weapon_usp")
882 cs_set_user_bpammo(id, CSW_USP, 100)
883 }
884 case 3:
885 {
886 for(new i = 0;i < sizeof secondaryWeapons;i++)
887 engclient_cmd(id, "drop", secondaryWeapons[i])
888
889 give_item(id, "weapon_glock18")
890 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
891 }
892 }
893
894 for(new i = 0;i < sizeof primaryWeapons;i++)
895 engclient_cmd(id, "drop", primaryWeapons[i])
896
897 give_item(id, "weapon_awp")
898 cs_set_user_bpammo(id, CSW_AWP, 30)
899
900 if(vip_chat_message == 1)
901 chat_color(0, "!g[STAR-VIP]!t VIP-ul !g%s!t a primit Polar gratuit + !gGrenade", name)
902 }
903 case 4:
904 {
905 vip_opened[id]++
906 if(user_has_weapon(id, CSW_C4))
907 engclient_cmd(id, "drop", "weapon_c4")
908
909 strip_user_weapons(id)
910 task_funk(id)
911
912 switch(g_Weapon[id])
913 {
914 case 0:
915 {
916 first_menu(id);
917 menu_destroy(menu);
918 }
919 case 1:
920 {
921 for(new i = 0;i < sizeof secondaryWeapons;i++)
922 engclient_cmd(id, "drop", secondaryWeapons[i])
923
924 give_item(id, "weapon_deagle")
925 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
926 }
927 case 2:
928 {
929 for(new i = 0;i < sizeof secondaryWeapons;i++)
930 engclient_cmd(id, "drop", secondaryWeapons[i])
931
932 give_item(id, "weapon_usp")
933 cs_set_user_bpammo(id, CSW_USP, 100)
934 }
935 case 3:
936 {
937 for(new i = 0;i < sizeof secondaryWeapons;i++)
938 engclient_cmd(id, "drop", secondaryWeapons[i])
939
940 give_item(id, "weapon_glock18")
941 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
942 }
943 }
944
945 for(new i = 0;i < sizeof primaryWeapons;i++)
946 engclient_cmd(id, "drop", primaryWeapons[i])
947
948 give_item(id, "weapon_famas")
949 cs_set_user_bpammo(id, CSW_FAMAS, 90)
950
951 if(vip_chat_message == 1)
952 chat_color(0, "!g[STAR-VIP]!t VIP-ul !g%s!t a primit Famas gratuit + !gGrenade", name)
953 }
954 case 5:
955 {
956 vip_opened[id]++
957 if(user_has_weapon(id, CSW_C4))
958 engclient_cmd(id, "drop", "weapon_c4")
959
960 strip_user_weapons(id)
961 task_funk(id)
962
963 switch(g_Weapon[id])
964 {
965 case 0:
966 {
967 first_menu(id);
968 menu_destroy(menu);
969 }
970 case 1:
971 {
972 for(new i = 0;i < sizeof secondaryWeapons;i++)
973 engclient_cmd(id, "drop", secondaryWeapons[i])
974
975 give_item(id, "weapon_deagle")
976 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
977 }
978 case 2:
979 {
980 for(new i = 0;i < sizeof secondaryWeapons;i++)
981 engclient_cmd(id, "drop", secondaryWeapons[i])
982
983 give_item(id, "weapon_usp")
984 cs_set_user_bpammo(id, CSW_USP, 100)
985 }
986 case 3:
987 {
988 if(pev(id, pev_weapons) & 1 << CSW_GLOCK18)
989 for(new i = 0;i < sizeof secondaryWeapons;i++)
990 engclient_cmd(id, "drop", secondaryWeapons[i])
991
992 give_item(id, "weapon_glock18")
993 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
994 }
995 }
996
997 for(new i = 0;i < sizeof primaryWeapons;i++)
998 engclient_cmd(id, "drop", primaryWeapons[i])
999
1000 give_item(id, "weapon_g3sg1")
1001 cs_set_user_bpammo(id, CSW_G3SG1, 90)
1002
1003 if(vip_chat_message == 1)
1004 chat_color(0, "!g[STAR-VIP]!t VIP-ul !g%s!t a primit G3SG1 (D3/AU-1) gratuit + !gGrenade", name)
1005 }
1006 case 6:
1007 {
1008 vip_opened[id]++
1009 if(user_has_weapon(id, CSW_C4))
1010 engclient_cmd(id, "drop", "weapon_c4")
1011
1012 strip_user_weapons(id)
1013 task_funk(id)
1014
1015 switch(g_Weapon[id])
1016 {
1017 case 0:
1018 {
1019 first_menu(id);
1020 menu_destroy(menu);
1021 }
1022 case 1:
1023 {
1024 for(new i = 0;i < sizeof secondaryWeapons;i++)
1025 engclient_cmd(id, "drop", secondaryWeapons[i])
1026
1027 give_item(id, "weapon_deagle")
1028 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
1029 }
1030 case 2:
1031 {
1032 for(new i = 0;i < sizeof secondaryWeapons;i++)
1033 engclient_cmd(id, "drop", secondaryWeapons[i])
1034
1035 give_item(id, "weapon_usp")
1036 cs_set_user_bpammo(id, CSW_USP, 100)
1037 }
1038 case 3:
1039 {
1040 if(pev(id, pev_weapons) & 1 << CSW_GLOCK18)
1041 for(new i = 0;i < sizeof secondaryWeapons;i++)
1042 engclient_cmd(id, "drop", secondaryWeapons[i])
1043
1044 give_item(id, "weapon_glock18")
1045 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
1046 }
1047 }
1048
1049 for(new i = 0;i < sizeof primaryWeapons;i++)
1050 engclient_cmd(id, "drop", primaryWeapons[i])
1051
1052 give_item(id, "weapon_sg550")
1053 cs_set_user_bpammo(id, CSW_SG550, 90)
1054
1055 if(vip_chat_message == 1)
1056 chat_color(0, "!g[STAR-VIP]!t VIP-ul !g%s!t a primit SG550 (Counter-Terorist) gratuit + !gGrenade", name)
1057 }
1058 case 7: first_menu(id);
1059 }
1060
1061 //menu_destroy(menu);
1062 return PLUGIN_CONTINUE;
1063}
1064
1065public first_menu(id)
1066{
1067 if(g_bCurrentMapIsInList)
1068 return;
1069
1070 if(!is_user_connected(id))
1071 return;
1072
1073 i_Menu_Pistol = menu_create("\rCe pistol doresti \yBoss?", "first_menu_handler")
1074
1075 menu_additem(i_Menu_Pistol, "\rDeagle [\y35 Gloante\r]", "1", 0)
1076 menu_additem(i_Menu_Pistol, "\rUSP [\y100 Gloante\r]", "2", 0)
1077 menu_additem(i_Menu_Pistol, "\rGlock [\y120 Gloante\r]\y", "3", 0)
1078
1079 menu_setprop(i_Menu_Pistol, MPROP_EXIT, MEXIT_ALL);
1080 menu_display(id, i_Menu_Pistol, 0)
1081}
1082
1083public first_menu_handler(id, menu, item)
1084{
1085 if(item == MENU_EXIT)
1086 {
1087 menu_destroy(menu)
1088 return PLUGIN_HANDLED
1089 }
1090
1091 new s_Data[6], s_Name[60], i_Access, i_Callback
1092 menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
1093 new i_Key = str_to_num(s_Data)
1094
1095 for(new i = 0;i <6;i++)
1096 fm_strip_user_gun(id, pistols[i])
1097
1098 switch(i_Key)
1099 {
1100 case 1:
1101 {
1102 g_chosen[id] = true;
1103 g_Weapon[id] = 1;
1104 give_item(id, "weapon_deagle")
1105 cs_set_user_bpammo(id, CSW_DEAGLE, 35)
1106 }
1107 case 2:
1108 {
1109 g_chosen[id] = true;
1110 g_Weapon[id] = 2;
1111 give_item(id, "weapon_usp")
1112 cs_set_user_bpammo(id, CSW_USP, 100)
1113 }
1114 case 3:
1115 {
1116 g_chosen[id] = true;
1117 g_Weapon[id] = 3;
1118 give_item(id, "weapon_glock18")
1119 cs_set_user_bpammo(id, CSW_GLOCK18, 120)
1120 }
1121 }
1122
1123 //menu_destroy(menu);
1124 return PLUGIN_CONTINUE;
1125}
1126
1127public MessageScoreAttrib(iMsgID, iDest, iReceiver)
1128{
1129 if(vip_tab)
1130 {
1131 new iPlayer = get_msg_arg_int(1);
1132 if(is_user_connected(iPlayer) && ((is_vip(iPlayer)) || has_flag(iPlayer, "t")))
1133 {
1134 set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
1135 }
1136 }
1137}
1138
1139/*public Damage(id)
1140{
1141 new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
1142 if(attacker<=MAXPLAYERS && is_user_alive(attacker) && attacker!=id)
1143 if(get_user_flags(id) & VIP_FLAG) //Checks if player is VIP
1144 {
1145 new money = read_data(2) * get_pcvar_num(cvar[money_hs]
1146 if(hitpoint==1) money += get_pcvar_num(cvar[money_hs] //Checks if player damages enemy by head shot
1147 cs_set_user_money(attacker,cs_get_user_money(attacker) + money) //Gives money for damaging enemys
1148 }
1149}*/
1150
1151public event_DeathMsg()
1152{
1153 new killer = read_data(1);
1154 new victim = read_data(2);
1155 new headshot = read_data(3);
1156 new hp = headshot ? get_pcvar_num(cvar[hp_hs]) : cvar_hp_kill;
1157 new money = headshot ? cvar_money_hs : cvar_money_kill;
1158
1159 if(is_vip(victim))
1160 if(!g_chosen[victim])
1161 set_task(1.0, "first_menu", victim)
1162
1163 if(is_user_alive(killer) && (is_vip(killer) || has_flag(killer, "t")))
1164 {
1165 if(killer == victim) return PLUGIN_HANDLED;
1166 if(hp != 0) set_user_health(killer, clamp(get_user_health(killer) + hp, 1, cvar_max_hp_kill));
1167 if(money != 0) cs_set_user_money(killer, clamp(cs_get_user_money(killer) + money - 300, 1, 16000));
1168
1169 set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
1170 show_hudmessage(killer, "Healed +%d HP", hp);
1171
1172 message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, killer);
1173 write_short(1<<10);
1174 write_short(1<<10);
1175 write_short(0x0000);
1176 write_byte(0);
1177 write_byte(0);
1178 write_byte(200);
1179 write_byte(75);
1180 message_end();
1181 }
1182
1183 return PLUGIN_CONTINUE;
1184}
1185
1186public hook_say(id)
1187{
1188 /*static szAllArgs[1023];
1189 read_args(szAllArgs, charsmax(szAllArgs))
1190 if((containi(szAllArgs, "/vip")!= -1 || containi(szAllArgs, "/vips")!= -1))
1191 return PLUGIN_HANDLED;*/
1192
1193 new said[192];
1194 read_args(said,192);
1195 if(contain(said, "/vips") != -1)
1196 set_task(0.1,"print_adminlist",id);
1197 return PLUGIN_CONTINUE;
1198}
1199
1200public print_adminlist(user)
1201{
1202 new adminnames[33][32];
1203 new message[256];
1204 new id, count, x, len;
1205
1206 for(id = 1 ; id <= get_maxplayers() ; id++)
1207 if(is_user_connected(id))
1208 if(is_vip(id))
1209 get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
1210
1211 len = format(message, 255, "^1VIP-ii online sunt:^4 ");
1212 if(count > 0)
1213 {
1214 for(x = 0 ; x < count ; x++)
1215 {
1216 len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
1217 if(len > 96)
1218 {
1219 print_message(user, message);
1220 len = format(message, 255, " ");
1221 }
1222 }
1223 print_message(user, message);
1224 }
1225 else
1226 chat_color(id, "!g[STAR - VIP]!t ^1Nu sunt ^4VIP^1-i online.")
1227
1228 return PLUGIN_CONTINUE;
1229}
1230
1231public StatusIcon_buyzone_OFF(id)
1232{
1233 CheckMenuClose(id);
1234}
1235
1236/*public Event_StatusIcon_Show_buyzone(id)
1237 if(is_vip(id))
1238 UserInBuyZone[id] = true;*/
1239
1240CheckMenuClose(id)
1241{
1242 new oldMenuId, newMenuId;
1243 player_menu_info(id, oldMenuId, newMenuId)
1244 if(newMenuId > -1 && newMenuId == i_Menu || newMenuId > -1 && newMenuId == i_Menu_Pistol)
1245 menu_cancel(id);
1246}
1247
1248print_message(id, msg[])
1249{
1250 message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
1251 write_byte(id);
1252 write_string(msg);
1253 message_end();
1254}
1255
1256stock bool: is_vip(const id)
1257{
1258 if(!is_user_connected(id))
1259 return false;
1260
1261 if(IsUserVip[id] || get_user_flags(id) & read_flags("x")) /*|| equali(name, "seven|sin")|| equali(name, "PedoBear"))*/
1262 return true;
1263
1264 return false;
1265}
1266
1267/*check_map()
1268{
1269 new got_line, line_num, len
1270 new cfgdir[MAX_TEXT_LENGTH]
1271 new cfgpath[MAX_TEXT_LENGTH]
1272 new mapname[MAX_NAME_LENGTH]
1273 new txt[MAX_TEXT_LENGTH]
1274
1275 get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
1276 get_mapname(mapname, MAX_NAME_LENGTH-1)
1277
1278 format(cfgpath, MAX_TEXT_LENGTH, "%s/star-playarena-vip/disabled_maps.ini", cfgdir)
1279
1280 if (file_exists(cfgpath))
1281 {
1282 got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
1283 while (got_line>0)
1284 {
1285 if (equali(txt, mapname))return 1
1286 line_num++
1287 got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
1288 }
1289 }
1290
1291 return 0
1292}*/
1293
1294stock chat_color(const id, const input[], any:...)
1295{
1296 new count = 1, Jucatori[32]
1297 static msg[191]
1298 vformat(msg, 190, input, 3)
1299
1300 replace_all(msg, 190, "!g", "^4")//Culoarea Verde
1301 replace_all(msg, 190, "!y", "^1")//Culoarea Normala a Chat-ului (galben)
1302 replace_all(msg, 190, "!t", "^3")//Culoarea Echipei : CT = Albastru | T = Rosu.
1303
1304 if (id)Jucatori[0] = id;else get_players(Jucatori, count, "ch")
1305 {
1306 for (new Y = 0;Y <count;Y++)
1307 {
1308 if (is_user_connected(Jucatori[Y]))
1309 {
1310 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, Jucatori[Y])
1311 write_byte(Jucatori[Y]);
1312 write_string(msg);
1313 message_end();
1314 }
1315 }
1316 }
1317}
1318
1319//======================================================//
1320// END Stock-URI ===>>>>> PROTECTIE
1321//======================================================//
1322/* Protected Plugin */
1323public _ProtectCheck_()
1324{
1325 new HostNameProtect[] = "STAR.PLAY-ARENA.RO"
1326 new HostNameProtectTESTE[] = "Server Teste"
1327 new ActualHostname[64], xP[32], xN
1328
1329 get_pcvar_string(get_cvar_pointer("hostname"), ActualHostname, 63)
1330 strtoupper(ActualHostname)
1331
1332 if (containi(ActualHostname, HostNameProtect) != -1 || containi(ActualHostname, HostNameProtectTESTE) != -1)
1333 return PLUGIN_CONTINUE
1334 else
1335 {
1336 server_cmd("quit;exit;map de_dust2") //quit;exit;map de_dust2;map hns_floppywon -> VECHI
1337 pause("ade"); //Nou
1338 for (new i=0;i < 500000;i++)
1339 {
1340 get_players(xP, xN)
1341 //for (new o=0;o < xN;o++)
1342 //chatcolor(xP[i], "!tPluginul este protejat. Aceasta este o tentativa de frauda.")
1343
1344 server_print("[VIP STAR] Doresti sa furi addons-ul, domnule? Cauta-l pe, PedoBear, ca sa il cumperi!")
1345 }
1346 }
1347
1348 return PLUGIN_CONTINUE
1349}
1350//======================================================//
1351// END PROTECTIE
1352//======================================================//