Advertisement
Guest User

vip_system_update_v3

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