SHARE
TWEET

Untitled

a guest Feb 19th, 2020 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <engine>
  5. #include <fakemeta>
  6. #include <hamsandwich>
  7. #include <nvault>
  8. #include <fun>
  9. #include <csgo_remake>
  10.  
  11. #define PLUGIN "EFFx's VIP"
  12. #define VERSION "2.0"
  13. #define AUTHOR "EFFx"
  14.  
  15. #define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1) // Thx OciXCrom
  16. #define LOGFILE "vip_log.log"
  17.  
  18. new const szCfgFile[] = "VIP_Config.cfg"
  19.  
  20. enum(+= 1000)
  21. {
  22.     TASK_HPREGEN,
  23.     TASK_SHOWEXPERIENCE,
  24.     TASK_SHOWVMONEY,
  25.     TASK_GODMOD
  26. }
  27.  
  28. static timer[33]
  29.  
  30. enum _:Weapons
  31. {
  32.     WeapName[200],
  33.     WeaponID[32],
  34.     BpAmmo
  35. }
  36. new const VipWeapons[][Weapons] =
  37. {
  38.     { "AK47 \d+ \wDeagle \d+ \wAll Grenades", "weapon_ak47",250 },
  39.     { "M4A1 \d+ \wDeagle \d+ \wAll Grenades","weapon_m4a1",250 },
  40.     { "AWP \d+ \wDeagle \d+ \wAll Grenades", "weapon_awp",250 }
  41. }
  42.  
  43. new bool:WeaponSelected[33]
  44.  
  45. native get_user_vip(user_id)
  46. native set_user_vip(user_id,vip_mode)
  47.  
  48. new CVAR_color_Kill[3]
  49.  
  50. new g_iJumpCount[ 33 ]
  51.  
  52. new PcvarVIPMoneyKillBonus, PcvarVIPMoneyGive,
  53. PcvarMaxRegenHP,PcvarHpRegenAdd,PcvarShowVMoney,
  54. PcvarMaxExperience,PcvarPrefixChat
  55.  
  56. new VIP[33],VIPMoney[33],Experience[33]
  57.  
  58. new VIPMj[33],VIPBh[33],VIPRegen[33],VIPNoDmg[33],VIPImm[33]
  59. new bool:g_bActived_Mj[33],bool:g_bActived_Bhop[33],bool:g_bActived_Imm[33],
  60. bool:g_bActived_Regen[33],bool:g_bActived_NoDmg[33]
  61.  
  62. new HudsSync[6]
  63.  
  64. new maxplayers
  65.  
  66. new g_nVault
  67.  
  68. public plugin_init()  
  69. {
  70.     register_plugin(PLUGIN, VERSION, AUTHOR)
  71.    
  72.     PcvarPrefixChat = register_cvar("vip_prefixchat","[VIP System]")
  73.     PcvarShowVMoney = register_cvar("vip_showmoney","1")
  74.     PcvarVIPMoneyKillBonus = register_cvar("vip_vipmoneybonus","15")
  75.     PcvarVIPMoneyGive = register_cvar("vip_vipmoneygive","30000")
  76.     PcvarMaxRegenHP = register_cvar("vip_hpregenmax","100")
  77.     PcvarHpRegenAdd = register_cvar("vip_hpregenadd","2")
  78.     PcvarMaxExperience= register_cvar("vip_maxexperience","1000000")
  79.    
  80.     maxplayers = get_maxplayers()
  81.        
  82.     for(new i;i < sizeof HudsSync;i++)
  83.         HudsSync[i] = CreateHudSyncObj()
  84.    
  85.     register_forward( FM_CmdStart, "CmdStart" )
  86.    
  87.     register_clcmd("say /vips","ShowVIPs")
  88.     register_clcmd("say /vmenu","ShowVIPMenu")
  89.    
  90.     register_concmd("amx_give_vmoney", "give_points", ADMIN_IMMUNITY, "<nume> <puncte>");
  91.     register_concmd("amx_resetdata","cmdReset",ADMIN_BAN,"- Reset all vip data")
  92.     register_concmd("amx_vip", "cmdVIP", ADMIN_KICK, "<name or @ALL> [1|0]")
  93.    
  94.     RegisterHam(Ham_TakeDamage, "player", "ham_Player_TakeDamage_Post", 0)
  95.     RegisterHam(Ham_Player_PostThink, "player", "ham_Player_PostThink_Post", 1 )
  96.     RegisterHam(Ham_Killed,"player","fw_Ham_Player_Killed",1)
  97.     RegisterHam(Ham_Spawn,"player","fwSpawn",1)
  98.    
  99.     LoadCfg()
  100. }
  101. LoadCfg()
  102. {
  103.     new text[128], fp
  104.     formatex(text,charsmax(text),"addons/amxmodx/configs/VIPCfgs/%s",szCfgFile)
  105.     fp = fopen(text,"rt")
  106.     if(!fp)
  107.     {
  108.         formatex(text,charsmax(text),"Archive ^"addons/amxmodx/configs/VIPCfgs/%s^" not found",szCfgFile)
  109.         log_to_file(LOGFILE,text)
  110.         set_fail_state(text)
  111.     }
  112.     new szDir[32];
  113.     get_localinfo("amxx_configsdir",szDir,charsmax(szDir));
  114.  
  115.     server_cmd("exec %s/VIPCfgs/%s",szDir,szCfgFile)
  116. }
  117. public plugin_natives()
  118. {
  119.     register_native("get_user_vip","_get_user_vip")
  120.     register_native("set_user_vip","_set_user_vip")
  121. }
  122. public _get_user_vip(user_id)
  123. {
  124.     new id = get_param(1)
  125.     if(!is_user_connected(id) || !id)
  126.         return 0
  127.        
  128.     return VIP[id]
  129. }
  130.    
  131. public _set_user_vip(user_id,vip_mode)
  132. {
  133.     new id = get_param(1)
  134.     new MODE = get_param(2)
  135.    
  136.     if(!is_user_connected(id) || !id)
  137.         return 0
  138.        
  139.     VIP[id] = MODE
  140.     return 1
  141. }
  142.  
  143. public cmdReset(id,level,cid)
  144. {
  145.     if (!cmd_access(id, level, cid, 1))
  146.         return PLUGIN_HANDLED
  147.        
  148.     new name[32]
  149.     get_user_name(id, name, 31)
  150.    
  151.     new Buffer[85]
  152.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  153.    
  154.     color_chat(0,"!g%s!y: ADMIN!t %s!y has reseted all vip data from this server!,",equal(Buffer,"0" ) ? "" : Buffer,name)
  155.    
  156.     new players[32],inum
  157.     get_players(players,inum)
  158.     for(new i = 0 ;i < inum; i++)
  159.     {
  160.         if(get_user_vip(players[i]) == 1)
  161.         {
  162.             VIPMoney[players[i]] = 0
  163.            
  164.             VIPBh[players[i]] = 0
  165.             VIPMj[players[i]] = 0
  166.             VIPImm[players[i]] = 0
  167.             VIPNoDmg[players[i]] = 0
  168.             VIPRegen[players[i]] = 0
  169.            
  170.             g_bActived_Bhop[players[i]] = false
  171.             g_bActived_Imm[players[i]] = false
  172.             g_bActived_Mj[players[i]] = false
  173.             g_bActived_Regen[players[i]] = false
  174.             g_bActived_NoDmg[players[i]] = false
  175.         }
  176.     }
  177.    
  178.     return PLUGIN_HANDLED
  179. }
  180.  
  181. public give_points(id, PointsNum)
  182. {
  183.     new arg[32];
  184.     read_argv(1, arg, 31);
  185.    
  186.     new player = cmd_target(id, arg, 31);
  187.    
  188.     if(is_user_connected(player))
  189.     {
  190.         if(get_user_flags(id) & ADMIN_IMMUNITY)
  191.         {
  192.             VIPMoney[player] += get_pcvar_num(PcvarVIPMoneyGive);
  193.         }
  194.         else
  195.         {
  196.             console_print(id, "Nu ai acces la aceasta comanda");
  197.         }
  198.     }
  199.     return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmdVIP(id, level, cid)
  203. {
  204.     if (!cmd_access(id, level, cid, 2))
  205.         return PLUGIN_HANDLED
  206.  
  207.     new arg[32]
  208.     read_argv(1, arg, 31)
  209.  
  210.     new arg2[7]
  211.     read_argv(2, arg2, 6)
  212.  
  213.     new Buffer[85]
  214.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  215.        
  216.     new name2[32], name[32]
  217.     get_user_name(id, name, 31)
  218.    
  219.     if(equal(arg,"@ALL"))
  220.     {
  221.         if(arg2[0] == '0')
  222.         {
  223.             new players[32],inum
  224.             get_players(players,inum)
  225.             for(new i = 0;i<inum;i++)
  226.             {
  227.                 if(get_user_vip(players[i]) == 1)
  228.                 {  
  229.                     if(task_exists(players[i]+TASK_HPREGEN))
  230.                         remove_task(players[i]+TASK_HPREGEN)
  231.                            
  232.                     if(task_exists(players[i]+TASK_SHOWVMONEY))
  233.                         remove_task(players[i]+TASK_SHOWVMONEY)
  234.                            
  235.                     if(task_exists(players[i]+TASK_GODMOD))
  236.                         remove_task(players[i]+TASK_GODMOD)
  237.                    
  238.                     if(is_user_alive(players[i]))
  239.                         set_task(1.0,"ShowExperience",players[i]+TASK_SHOWEXPERIENCE,_,_,"b")
  240.                    
  241.                     VIPBh[players[i]] = 0
  242.                     VIPMj[players[i]] = 0
  243.                     VIPImm[players[i]] = 0
  244.                     VIPNoDmg[players[i]] = 0
  245.                     VIPRegen[players[i]] = 0
  246.                    
  247.                     g_bActived_Bhop[players[i]] = false
  248.                     g_bActived_Imm[players[i]] = false
  249.                     g_bActived_Mj[players[i]] = false
  250.                     g_bActived_Regen[players[i]] = false
  251.                     g_bActived_NoDmg[players[i]] = false
  252.                        
  253.                     set_user_vip(players[i],0)
  254.                     VIPMoney[players[i]] = 0
  255.                 }
  256.             }
  257.             color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
  258.         }
  259.         else if(arg2[0] == '1')
  260.         {
  261.             new players[32],inum
  262.             get_players(players,inum)
  263.             for(new i = 0;i<inum;i++)
  264.             {
  265.                 if(get_user_vip(players[i]) == 0)
  266.                 {
  267.                     if(get_pcvar_num(PcvarShowVMoney) == 1)
  268.                         if(is_user_alive(players[i]))
  269.                             set_task(1.0,"ShowVIPMoney",players[i]+TASK_SHOWVMONEY,_,_,"b")
  270.                        
  271.                     if(task_exists(players[i]+TASK_SHOWEXPERIENCE))
  272.                         remove_task(players[i]+TASK_SHOWEXPERIENCE)
  273.                    
  274.                     set_user_vip(players[i],1)
  275.                     Experience[players[i]] = 0
  276.                 }
  277.             }
  278.             color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
  279.         }
  280.         else
  281.         {
  282.             console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
  283.             return PLUGIN_HANDLED
  284.         }
  285.     }
  286.     else
  287.     {
  288.         new player = cmd_target(id, arg, CMDTARGET_NO_BOTS)
  289.        
  290.         if (!player)
  291.             return PLUGIN_HANDLED
  292.            
  293.         get_user_name(player, name2, 31)
  294.        
  295.         if(arg2[0] == '0')
  296.         {
  297.             if(get_user_vip(player) == 1)
  298.             {
  299.                 color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
  300.                    
  301.                 if(task_exists(player+TASK_HPREGEN))
  302.                     remove_task(player+TASK_HPREGEN)
  303.                        
  304.                 if(task_exists(player+TASK_SHOWVMONEY))
  305.                     remove_task(player+TASK_SHOWVMONEY)
  306.                        
  307.                 if(task_exists(player+TASK_GODMOD))
  308.                     remove_task(player+TASK_GODMOD)
  309.                    
  310.                 if(is_user_alive(player))
  311.                     set_task(1.0,"ShowExperience",player+TASK_SHOWEXPERIENCE,_,_,"b")
  312.                
  313.                 if(get_user_team(player) == 1)
  314.                     cs_set_user_model(player,"guerilla")
  315.                        
  316.                 if(get_user_team(player) == 2)
  317.                     cs_set_user_model(player,"gign")
  318.                
  319.                 VIPBh[player] = 0
  320.                 VIPMj[player] = 0
  321.                 VIPImm[player] = 0
  322.                 VIPNoDmg[player] = 0
  323.                 VIPRegen[player] = 0
  324.                
  325.                 g_bActived_Bhop[player] = false
  326.                 g_bActived_Imm[player] = false
  327.                 g_bActived_Mj[player] = false
  328.                 g_bActived_Regen[player] = false
  329.                 g_bActived_NoDmg[player] = false
  330.                    
  331.                 set_user_vip(player,0)
  332.                 VIPMoney[player] = 0
  333.             }
  334.             else
  335.                 console_print(id,"[AMXX]: This player already have not VIP!")
  336.         }
  337.         else if(arg2[0] == '1')
  338.         {
  339.             if(get_user_vip(player) == 0)
  340.             {
  341.                 color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
  342.                
  343.                 if(get_pcvar_num(PcvarShowVMoney) == 1)
  344.                     if(is_user_alive(player))
  345.                         set_task(1.0,"ShowVIPMoney",player+TASK_SHOWVMONEY,_,_,"b")
  346.                    
  347.                 if(task_exists(player+TASK_SHOWEXPERIENCE))
  348.                     remove_task(player+TASK_SHOWEXPERIENCE)
  349.                
  350.                 set_user_vip(player,1)
  351.                 Experience[player] = 0
  352.             }
  353.             else
  354.                 console_print(id,"[AMXX]: This player already have VIP!")
  355.         }
  356.         else
  357.         {
  358.             console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
  359.             return PLUGIN_HANDLED
  360.         }
  361.     }
  362.     return PLUGIN_HANDLED
  363. }
  364. public client_putinserver(id)
  365. {
  366.     if(is_user_bot(id))
  367.         return
  368.        
  369.     set_task( 0.2 , "HUD" , id + 672 );
  370.        
  371.     LoadVIP(id)
  372.     if(get_user_vip(id) == 1)
  373.     {
  374.         if(get_pcvar_num(PcvarShowVMoney) == 1)
  375.             set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
  376.            
  377.         set_task(3.0,"HelloVIP",id+200210)
  378.     }
  379. }
  380. public HelloVIP(id)
  381. {
  382.     id -= 200210
  383.    
  384.     new szName[32]
  385.     get_user_name(id,szName,31)
  386.     set_hudmessage(0,100,255,0.15,0.35,2,1.0,5.0)
  387.     ShowSyncHudMsg(id,HudsSync[4],"Hello %s, how are you today?^nType /vmenu for show your menu!",szName)
  388.  
  389.     client_cmd(id,"spk ^"scientist/hellothere letsgo^"")
  390. }
  391. public client_disconnect(id)
  392. {
  393.     SaveVIP(id)
  394. }
  395.  
  396. public ShowVIPs(user)
  397. {
  398.     new adminnames[33][32]
  399.     new message[256]
  400.     new id, count, x, len
  401.    
  402.     for(id = 1 ; id <= maxplayers ; id++)
  403.         if(is_user_connected(id))
  404.             if(get_user_vip(id) == 1)
  405.                 get_user_name(id, adminnames[count++], 31)
  406.  
  407.     len = format(message, 255, "^x04---------------------------")
  408.     len = format(message, 255, "^x04 VIP's ONLINE:^x01 ")
  409.     if(count > 0)
  410.     {
  411.         for(x = 0 ; x < count ; x++)
  412.         {
  413.             len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ",":"")
  414.             if(len > 96 )
  415.             {
  416.                 color_chat(user, message)
  417.             }
  418.         }
  419.     }
  420.     else
  421.     {
  422.         len += format(message[len], 255-len, "NO VIP's")
  423.         color_chat(user, message)
  424.     }
  425.     len = format(message, 255, "^x04---------------------------")
  426. }
  427. public ShowVIPMoney(id)
  428. {
  429.     id -= TASK_SHOWVMONEY
  430.    
  431.     if(is_user_alive(id))
  432.     {
  433.         set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
  434.         ShowSyncHudMsg(id,HudsSync[0],"VIPMoney: %d",VIPMoney[id])
  435.     }
  436.     else
  437.         remove_task(id+TASK_SHOWVMONEY)
  438. }
  439. public ShowExperience(id)
  440. {
  441.     id -= TASK_SHOWEXPERIENCE
  442.    
  443.     if(is_user_alive(id))
  444.     {
  445.         set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
  446.         ShowSyncHudMsg(id,HudsSync[2],"Experience: %d",Experience[id])
  447.     }
  448.     else
  449.         remove_task(id+TASK_SHOWVMONEY)
  450. }
  451. public ShowVIPMenu(id)
  452. {
  453.     new Buffer[85]
  454.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  455.    
  456.     if(get_user_vip(id) == 1)
  457.     {
  458.         new szMenu = menu_create("VIP Menu^n\d- Choose what you want do!","vip_menu_handler")
  459.         menu_additem(szMenu,"Weapons^n\d- Your first weapons!")
  460.         menu_additem(szMenu,"\rSpecial Items^n\d- Amazing powers for VIP!")
  461.         menu_additem(szMenu,"\rSpecial Market^n\d- Amazing market for VIP!")
  462.        
  463.         menu_display(id,szMenu)
  464.     }
  465.     else
  466.     {
  467.         color_chat(id,"!g%s!y: You cant access this menu!",equal(Buffer,"0" ) ? "" : Buffer)
  468.     }
  469.     return PLUGIN_HANDLED
  470. }
  471. public vip_menu_handler(id,menu,item)
  472. {
  473.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  474.     {
  475.         menu_destroy(menu)
  476.         return PLUGIN_HANDLED
  477.     }
  478.     new Buffer[85]
  479.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  480.     switch(item)
  481.     {
  482.         case 0:
  483.         {
  484.             if(!WeaponSelected[id])
  485.             {
  486.                 VipWeaponsMenu(id)
  487.             }
  488.             else
  489.             {
  490.                 color_chat(id,"!g%s!y: You already have selected your equipament!",equal(Buffer,"0" ) ? "" : Buffer)
  491.                 ShowVIPMenu(id)
  492.             }
  493.         }
  494.         case 1:
  495.         {
  496.             VipItemsMenu(id)
  497.         }
  498.         case 2:
  499.         {
  500.             VipMarketMenu(id)
  501.         }
  502.     }
  503.     return PLUGIN_HANDLED
  504. }
  505. public VipMarketMenu(id)
  506. {
  507.     new szMenuM = menu_create("Special Market", "vip_market_handler")
  508.    
  509.     menu_additem(szMenuM,"Case Market^n\d- A special Case Market!")
  510.     menu_additem(szMenuM,"Key Market^n\d- A special Key Market!")
  511.     menu_additem(szMenuM,"Scraps Market^n\d- A special Scraps Market!")
  512.    
  513.     menu_display(id, szMenuM)
  514. }
  515. public vip_market_handler(id, menu, item)
  516. {
  517.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  518.     {
  519.         menu_destroy(menu)
  520.         return PLUGIN_HANDLED
  521.     }
  522.     switch(item)
  523.     {
  524.         case 0:
  525.         {
  526.             ShowCaseMarket(id);
  527.         }
  528.         case 1:
  529.         {
  530.             ShowKeysMarket(id);
  531.         }
  532.         case 2:
  533.         {
  534.             ShowScrapsMarket(id);
  535.         }
  536.     }
  537.     return PLUGIN_HANDLED;
  538. }
  539.  
  540. public ShowCaseMarket(id)
  541. {
  542.     new szMenuPP = menu_create("Case Market", "case_market_handler")
  543.    
  544.     menu_additem(szMenuPP,"1 Case^n\d- Costs 30 VIPMoney!")
  545.     menu_additem(szMenuPP,"5 Cases^n\d- Cost 150 VIPMoney!")
  546.     menu_additem(szMenuPP,"10 Cases^n\d- Cost 300 VIPMoney!")
  547.    
  548.     menu_display(id, szMenuPP)
  549. }
  550. public case_market_handler(id, menu, item)
  551. {
  552.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  553.     {
  554.         menu_destroy(menu)
  555.         return PLUGIN_HANDLED
  556.     }
  557.     new Buffer[85]
  558.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  559.     switch(item)
  560.     {
  561.         case 0:
  562.         {
  563.             if(VIPMoney[id] >= 30)
  564.             {
  565.                 VIPMoney[id] -= 30
  566.                 csgor_set_user_cases( id, csgor_get_user_cases( id ) + 1);
  567.                 color_chat(id,"!g%s!y: You've buyed 1 case!",equal(Buffer,"0" ) ? "" : Buffer)
  568.                 ShowCaseMarket(id);
  569.             }
  570.             else
  571.             {
  572.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,30 - VIPMoney[id])
  573.             }
  574.         }
  575.         case 1:
  576.         {
  577.             if(VIPMoney[id] >= 150)
  578.             {
  579.                 VIPMoney[id] -= 150
  580.                 csgor_set_user_cases( id, csgor_get_user_cases( id ) + 5);
  581.                 color_chat(id,"!g%s!y: You've buyed 5 cases!",equal(Buffer,"0" ) ? "" : Buffer)
  582.                 ShowCaseMarket(id);
  583.             }
  584.             else
  585.             {
  586.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,150 - VIPMoney[id])
  587.             }
  588.         }
  589.         case 2:
  590.         {
  591.             if(VIPMoney[id] >= 300)
  592.             {
  593.                 VIPMoney[id] -= 300
  594.                 csgor_set_user_cases( id, csgor_get_user_cases( id ) + 10);
  595.                 color_chat(id,"!g%s!y: You've buyed 10 cases!",equal(Buffer,"0" ) ? "" : Buffer)
  596.                 ShowCaseMarket(id);
  597.             }
  598.             else
  599.             {
  600.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,300 - VIPMoney[id])
  601.             }
  602.         }
  603.     }
  604.     return PLUGIN_HANDLED;
  605. }
  606.  
  607. public ShowKeysMarket(id)
  608. {
  609.     new szMenuPP2 = menu_create("Key Market", "key_market_handler")
  610.    
  611.     menu_additem(szMenuPP2,"1 Key^n\d- Costs 30 VIPMoney!")
  612.     menu_additem(szMenuPP2,"5 Keys^n\d- Cost 150 VIPMoney!")
  613.     menu_additem(szMenuPP2,"10 Keys^n\d- Cost 300 VIPMoney!")
  614.    
  615.     menu_display(id, szMenuPP2)
  616. }
  617. public key_market_handler(id, menu, item)
  618. {
  619.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  620.     {
  621.         menu_destroy(menu)
  622.         return PLUGIN_HANDLED
  623.     }
  624.     new Buffer[85]
  625.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  626.     switch(item)
  627.     {
  628.         case 0:
  629.         {
  630.             if(VIPMoney[id] >= 30)
  631.             {
  632.                 VIPMoney[id] -= 30
  633.                 csgor_set_user_keys( id, csgor_get_user_keys( id ) + 1);
  634.                 color_chat(id,"!g%s!y: You've buyed 1 key!",equal(Buffer,"0" ) ? "" : Buffer)
  635.                 ShowKeysMarket(id);
  636.             }
  637.             else
  638.             {
  639.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,30 - VIPMoney[id])
  640.             }
  641.         }
  642.         case 1:
  643.         {
  644.             if(VIPMoney[id] >= 150)
  645.             {
  646.                 VIPMoney[id] -= 150
  647.                 csgor_set_user_keys( id, csgor_get_user_keys( id ) + 5);
  648.                 color_chat(id,"!g%s!y: You've buyed 5 keys!",equal(Buffer,"0" ) ? "" : Buffer)
  649.                 ShowKeysMarket(id);
  650.             }
  651.             else
  652.             {
  653.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,150 - VIPMoney[id])
  654.             }
  655.         }
  656.         case 2:
  657.         {
  658.             if(VIPMoney[id] >= 300)
  659.             {
  660.                 VIPMoney[id] -= 300
  661.                 csgor_set_user_keys( id, csgor_get_user_keys( id ) + 10);
  662.                 color_chat(id,"!g%s!y: You've buyed 10 keys!",equal(Buffer,"0" ) ? "" : Buffer)
  663.                 ShowKeysMarket(id);
  664.             }
  665.             else
  666.             {
  667.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,300 - VIPMoney[id])
  668.             }
  669.         }
  670.     }
  671.     return PLUGIN_HANDLED;
  672. }                          
  673.  
  674. public ShowScrapsMarket(id)
  675. {
  676.     new szMenuPP23 = menu_create("Key Market", "scrap_market_handler")
  677.    
  678.     menu_additem(szMenuPP23,"1 Scrap^n\d- Costs 30 VIPMoney!")
  679.     menu_additem(szMenuPP23,"5 Scraps^n\d- Cost 150 VIPMoney!")
  680.     menu_additem(szMenuPP23,"10 Scraps^n\d- Cost 300 VIPMoney!")
  681.    
  682.     menu_display(id, szMenuPP23)
  683. }
  684. public scrap_market_handler(id, menu, item)
  685. {
  686.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  687.     {
  688.         menu_destroy(menu)
  689.         return PLUGIN_HANDLED
  690.     }
  691.     new Buffer[85]
  692.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  693.     switch(item)
  694.     {
  695.         case 0:
  696.         {
  697.             if(VIPMoney[id] >= 30)
  698.             {
  699.                 VIPMoney[id] -= 30
  700.                 csgor_set_user_dusts( id, csgor_get_user_dusts( id ) + 1);
  701.                 color_chat(id,"!g%s!y: You've buyed 1 scrap!",equal(Buffer,"0" ) ? "" : Buffer)
  702.                 ShowScrapsMarket(id);
  703.             }
  704.             else
  705.             {
  706.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,30 - VIPMoney[id])
  707.             }
  708.         }
  709.         case 1:
  710.         {
  711.             if(VIPMoney[id] >= 150)
  712.             {
  713.                 VIPMoney[id] -= 150
  714.                 csgor_set_user_dusts( id, csgor_get_user_dusts( id ) + 5);
  715.                 color_chat(id,"!g%s!y: You've buyed 5 scraps!",equal(Buffer,"0" ) ? "" : Buffer)
  716.                 ShowScrapsMarket(id);
  717.             }
  718.             else
  719.             {
  720.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,150 - VIPMoney[id])
  721.             }
  722.         }
  723.         case 2:
  724.         {
  725.             if(VIPMoney[id] >= 300)
  726.             {
  727.                 VIPMoney[id] -= 300
  728.                 csgor_set_user_dusts( id, csgor_get_user_dusts( id ) + 10);
  729.                 color_chat(id,"!g%s!y: You've buyed 10 scraps!",equal(Buffer,"0" ) ? "" : Buffer)
  730.                 ShowScrapsMarket(id);
  731.             }
  732.             else
  733.             {
  734.                 color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,300 - VIPMoney[id])
  735.             }
  736.         }
  737.     }
  738.     return PLUGIN_HANDLED;
  739. }
  740.    
  741. public VipWeaponsMenu(id)
  742. {
  743.     new szMenuW = menu_create("Choose your weapon:","vip_weapons_handler")
  744.    
  745.     for ( new i; i < sizeof VipWeapons; i++ )
  746.         menu_additem( szMenuW, VipWeapons[ i ][ WeapName ] )
  747.        
  748.     menu_display(id,szMenuW)
  749. }
  750. public vip_weapons_handler(id,menu,item)
  751. {
  752.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  753.     {
  754.         menu_destroy(menu)
  755.         return PLUGIN_HANDLED
  756.     }
  757.    
  758.     strip_user_weapons(id)
  759.        
  760.     give_item(id,"weapon_knife")
  761.        
  762.     give_item(id,"weapon_hegrenade")
  763.     give_item(id,"weapon_flashbang")
  764.        
  765.     cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
  766.        
  767.     WeaponSelected[id] = true
  768.        
  769.     give_item( id, VipWeapons[ item ][ WeaponID ] )
  770.     cs_set_user_bpammo( id, get_weaponid( VipWeapons[ item ][ WeaponID ] ), VipWeapons[ item ][ BpAmmo ] )
  771.        
  772.     give_item(id,"weapon_deagle")
  773.     cs_set_user_bpammo(id,CSW_DEAGLE,250)
  774.    
  775.     ShowVIPMenu(id)
  776.     return PLUGIN_HANDLED
  777. }
  778. public VipItemsMenu(id)
  779. {
  780.     new szTittle = menu_create("VIP Items Menu^n\d- Your items will be permenently.","vip_items_handler")
  781.        
  782.     if(VIPMj[id] == 0)
  783.         menu_additem(szTittle,"Multi-Jump \r1000VM^n\d- Add for you 2 more jumps!")
  784.            
  785.     else
  786.         menu_additem(szTittle,!g_bActived_Mj[id] ? "Multi-Jump \r[OFF]^n\d- Add for you 2 more jumps!"
  787.         : "Multi-Jump \y[ON]^n\d- Add for you 2 more jumps!")
  788.            
  789.     if(VIPRegen[id] == 0)
  790.         menu_additem(szTittle,"HP Regenerate \r1500VM^n\d- Add 2HP per second.")
  791.            
  792.     else
  793.         menu_additem(szTittle,!g_bActived_Regen[id] ? "HP Regenerate \r[OFF]^n\d- Add 2HP per second." :
  794.         "HP Regenerate \y[ON]^n\d- Add 2HP per second.")
  795.            
  796.     if(VIPImm[id] == 0)
  797.         menu_additem(szTittle,"Freeze \r2500VM^n\d- Chance for immobilize with a shot!")
  798.            
  799.     else
  800.         menu_additem(szTittle,!g_bActived_Imm[id] ? "Freeze \r[OFF]^n\d- Chance for immobilize with a shot!" :
  801.         "Immobilize \y[ON]^n\d- Chance for immobilize with a shot!")
  802.            
  803.     if(VIPBh[id] == 0)
  804.         menu_additem(szTittle,"BunnyHop \r5000VM^n\d- Add for you automatic bhop!")
  805.            
  806.     else
  807.         menu_additem(szTittle,!g_bActived_Bhop[id] ? "BunnyHop \r[OFF]^n\d- Add for you automatic bhop!" :
  808.         "BunnyHop \y[ON]^n\d- Add for you automatic bhop!")
  809.            
  810.     if(VIPNoDmg[id] == 0)
  811.         menu_additem(szTittle,"GodMode \r10000VM^n\d- You dont lose hp per 3 seconds!")
  812.            
  813.     else
  814.         menu_additem(szTittle,!g_bActived_NoDmg[id] ? "GodMode \r[OFF]^n\d- You dont lose hp per 3 seconds!" :
  815.         "No Damage \y[ON]^n\d- You dont lose hp per 3 seconds!")
  816.        
  817.     menu_additem(szTittle,"Back")
  818.            
  819.     menu_display(id,szTittle)
  820.            
  821. }
  822. public vip_items_handler(id,menu,item)
  823. {
  824.     if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  825.     {
  826.         menu_destroy(menu)
  827.         return PLUGIN_HANDLED
  828.     }
  829.     new Buffer[85]
  830.     get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  831.     switch(item)
  832.     {
  833.         case 0:
  834.         {
  835.             if(VIPMj[id] == 0)
  836.             {
  837.                 if(VIPMoney[id] >= 1000)
  838.                 {
  839.                     VIPMj[id] = 1
  840.                     VIPMoney[id] -= 1000
  841.                     color_chat(id,"!g%s!y: You've buyed !gMulti Jump!",equal(Buffer,"0" ) ? "" : Buffer)
  842.                    
  843.                     client_cmd(id,"spk items/gunpickup2.wav")
  844.                    
  845.                     VipItemsMenu(id)
  846.                 }
  847.                 else
  848.                 {
  849.                     color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1000 - VIPMoney[id])
  850.                     VipItemsMenu(id)
  851.                 }
  852.             }
  853.             else
  854.             {
  855.                 if(!g_bActived_NoDmg[id])
  856.                 {
  857.                     if(!g_bActived_Mj[id])
  858.                     {
  859.                         g_bActived_Mj[id] = true
  860.                        
  861.                         if(task_exists(id+TASK_GODMOD))
  862.                             remove_task(id+TASK_GODMOD)
  863.                            
  864.                         if(task_exists(id+TASK_HPREGEN))
  865.                             remove_task(id+TASK_HPREGEN)
  866.                        
  867.                         g_bActived_Bhop[id] = false
  868.                         g_bActived_Imm[id] = false
  869.                         g_bActived_Regen[id] = false
  870.                         VipItemsMenu(id)
  871.                     }
  872.                     else
  873.                     {
  874.                         g_bActived_Mj[id] = false
  875.                         VipItemsMenu(id)
  876.                     }
  877.                 }
  878.                 else
  879.                 {
  880.                     color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
  881.                     VipItemsMenu(id)
  882.                 }
  883.             }
  884.         }
  885.         case 1:
  886.         {
  887.             if(VIPRegen[id] == 0)
  888.             {
  889.                 if(VIPMoney[id] >= 1500)
  890.                 {
  891.                     VIPRegen[id] = 1
  892.                     VIPMoney[id] -= 1500
  893.                    
  894.                     client_cmd(id,"spk items/gunpickup2.wav")
  895.                    
  896.                     color_chat(id,"!g%s!y: You've buyed !gHP Regenerate!",equal(Buffer,"0" ) ? "" : Buffer)
  897.                     VipItemsMenu(id)
  898.                 }
  899.                 else
  900.                 {
  901.                     color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1500 - VIPMoney[id])
  902.                     VipItemsMenu(id)
  903.                 }
  904.             }
  905.             else
  906.             {
  907.                 if(!g_bActived_NoDmg[id])
  908.                 {
  909.                     if(!g_bActived_Regen[id])
  910.                     {
  911.                         g_bActived_Regen[id] = true
  912.                        
  913.                         g_bActived_Bhop[id] = false
  914.                         g_bActived_Imm[id] = false
  915.                         g_bActived_Mj[id] = false
  916.                        
  917.                         if(task_exists(id+TASK_GODMOD))
  918.                             remove_task(id+TASK_GODMOD)
  919.                        
  920.                         set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
  921.                         VipItemsMenu(id)
  922.                     }
  923.                     else
  924.                     {
  925.                         g_bActived_Regen[id] = false
  926.                         VipItemsMenu(id)
  927.                     }
  928.                 }
  929.                 else
  930.                 {
  931.                     color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
  932.                     VipItemsMenu(id)
  933.                 }
  934.             }
  935.         }
  936.         case 2:
  937.         {
  938.             if(VIPImm[id] == 0)
  939.             {
  940.                 if(VIPMoney[id] >= 2500)
  941.                 {
  942.                     VIPImm[id] = 1
  943.                     VIPMoney[id] -= 2500
  944.                    
  945.                     client_cmd(id,"spk items/gunpickup2.wav")
  946.                    
  947.                     color_chat(id,"!g%s!y: You've buyed !gFreeze!",equal(Buffer,"0" ) ? "" : Buffer)
  948.                     VipItemsMenu(id)
  949.                 }
  950.                 else
  951.                 {
  952.                     color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,2500 - VIPMoney[id])
  953.                     VipItemsMenu(id)
  954.                 }
  955.             }
  956.             else
  957.             {
  958.                 if(!g_bActived_NoDmg[id])
  959.                 {
  960.                     if(!g_bActived_Imm[id])
  961.                     {
  962.                         g_bActived_Imm[id] = true
  963.                        
  964.                         if(task_exists(id+TASK_GODMOD))
  965.                             remove_task(id+TASK_GODMOD)
  966.                            
  967.                         if(task_exists(id+TASK_HPREGEN))
  968.                             remove_task(id+TASK_HPREGEN)
  969.                        
  970.                         g_bActived_Bhop[id] = false
  971.                         g_bActived_Mj[id] = false
  972.                         g_bActived_Regen[id] = false
  973.    
  974.                         VipItemsMenu(id)
  975.                     }
  976.                     else
  977.                     {
  978.                         g_bActived_Imm[id] = false
  979.                         VipItemsMenu(id)
  980.                     }
  981.                 }
  982.                 else
  983.                 {
  984.                     color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
  985.                     VipItemsMenu(id)
  986.                 }
  987.             }
  988.         }
  989.         case 3:
  990.         {
  991.             if(VIPBh[id] == 0)
  992.             {
  993.                 if(VIPMoney[id] >= 5000)
  994.                 {
  995.                     VIPBh[id] = 1
  996.                     VIPMoney[id] -= 5000
  997.                     color_chat(id,"!g%s!y: You've buyed !gBunnyHop!",equal(Buffer,"0" ) ? "" : Buffer)
  998.                    
  999.                     client_cmd(id,"spk items/gunpickup2.wav")
  1000.                    
  1001.                     VipItemsMenu(id)
  1002.                 }
  1003.                 else
  1004.                 {
  1005.                     color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,5000 - VIPMoney[id])
  1006.                     VipItemsMenu(id)
  1007.                 }
  1008.             }
  1009.             else
  1010.             {
  1011.                 if(!g_bActived_NoDmg[id])
  1012.                 {
  1013.                     if(!g_bActived_Bhop[id])
  1014.                     {
  1015.                         g_bActived_Bhop[id] = true
  1016.                        
  1017.                         if(task_exists(id+TASK_GODMOD))
  1018.                             remove_task(id+TASK_GODMOD)
  1019.                            
  1020.                         if(task_exists(id+TASK_HPREGEN))
  1021.                             remove_task(id+TASK_HPREGEN)
  1022.                        
  1023.                         g_bActived_Imm[id] = false
  1024.                         g_bActived_Mj[id] = false
  1025.                         g_bActived_Regen[id] = false
  1026.                         VipItemsMenu(id)
  1027.                     }
  1028.                     else
  1029.                     {
  1030.                         g_bActived_Bhop[id] = false
  1031.                         VipItemsMenu(id)
  1032.                     }
  1033.                 }
  1034.                 else
  1035.                 {
  1036.                     color_chat(id,"!g%s!y: You cant use this item now. Wait your GodMode finish!",equal(Buffer,"0" ) ? "" : Buffer)
  1037.                     VipItemsMenu(id)
  1038.                 }
  1039.             }
  1040.         }
  1041.         case 4:
  1042.         {
  1043.             if(VIPNoDmg[id] == 0)
  1044.             {
  1045.                 if(VIPMoney[id] >= 10000)
  1046.                 {
  1047.                     VIPNoDmg[id] = 1
  1048.                     VIPMoney[id] -= 10000
  1049.                     color_chat(id,"!g%s!y: You've buyed !gGodMode!",equal(Buffer,"0" ) ? "" : Buffer)
  1050.                    
  1051.                     client_cmd(id,"spk items/gunpickup2.wav")
  1052.                    
  1053.                     set_pev(id,pev_takedamage,DAMAGE_NO)
  1054.                     set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
  1055.                    
  1056.                     VipItemsMenu(id)
  1057.                 }
  1058.                 else
  1059.                 {
  1060.                     color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,10000 - VIPMoney[id])
  1061.                     VipItemsMenu(id)
  1062.                 }
  1063.             }
  1064.             else
  1065.             {
  1066.                 if(!g_bActived_NoDmg[id])
  1067.                 {
  1068.                     g_bActived_NoDmg[id] = true
  1069.                    
  1070.                     if(task_exists(id+TASK_GODMOD))
  1071.                         remove_task(id+TASK_GODMOD)
  1072.                        
  1073.                     if(task_exists(id+TASK_HPREGEN))
  1074.                         remove_task(id+TASK_HPREGEN)
  1075.                    
  1076.                     g_bActived_Bhop[id] = false
  1077.                     g_bActived_Imm[id] = false
  1078.                     g_bActived_Mj[id] = false
  1079.                     g_bActived_Regen[id] = false
  1080.                    
  1081.                     set_pev(id,pev_takedamage,DAMAGE_NO)
  1082.                     set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
  1083.                    
  1084.                     VipItemsMenu(id)
  1085.                 }
  1086.                 else
  1087.                 {
  1088.                     color_chat(id,"!g%s!y: You cant use this item right now! Wait the round restart!",equal(Buffer,"0" ) ? "" : Buffer)
  1089.                     VipItemsMenu(id)
  1090.                 }
  1091.             }
  1092.         }
  1093.         case 5: ShowVIPMenu(id)
  1094.     }
  1095.     return PLUGIN_HANDLED
  1096. }
  1097. public fwSpawn(id)
  1098. {
  1099.     if(!is_user_alive(id))
  1100.         return HAM_IGNORED
  1101.    
  1102.     if(get_user_vip(id) == 1)
  1103.     {
  1104.         WeaponSelected[id] = false
  1105.        
  1106.         g_bActived_NoDmg[id] = false
  1107.        
  1108.         ShowVIPMenu(id)
  1109.        
  1110.         set_pev(id,pev_takedamage,DAMAGE_AIM)
  1111.        
  1112.         timer[id] = 3
  1113.        
  1114.         if(get_pcvar_num(PcvarShowVMoney) == 1)
  1115.             if(!task_exists(id+TASK_SHOWVMONEY))
  1116.                 set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
  1117.            
  1118.         if(g_bActived_Regen[id])
  1119.             set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
  1120.            
  1121.         if(task_exists(id+TASK_GODMOD))
  1122.             remove_task(id+TASK_GODMOD)
  1123.  
  1124.         cs_set_user_armor(id,100,CsArmorType:2)
  1125.            
  1126.         if(get_user_team(id) == 2)
  1127.             give_item(id, "item_thighpack")
  1128.     }
  1129.     else
  1130.     {
  1131.         if(!task_exists(id+TASK_SHOWEXPERIENCE))
  1132.             set_task(1.0,"ShowExperience",id+TASK_SHOWEXPERIENCE,_,_,"b")
  1133.     }
  1134.     return HAM_IGNORED
  1135. }
  1136. public fw_Ham_Player_Killed(iVictim,iAttacker)
  1137. {
  1138.     if(!iVictim || !iAttacker && !is_user_alive(iVictim) || !is_user_alive(iAttacker))
  1139.         return HAM_IGNORED
  1140.        
  1141.     if(task_exists(iVictim+TASK_HPREGEN))
  1142.         remove_task(iVictim+TASK_HPREGEN)
  1143.        
  1144.     if(task_exists(iVictim+TASK_SHOWVMONEY))
  1145.         remove_task(iVictim+TASK_SHOWVMONEY)
  1146.        
  1147.     if(task_exists(iVictim+TASK_SHOWEXPERIENCE))
  1148.         remove_task(iVictim+TASK_SHOWEXPERIENCE)
  1149.        
  1150.     if(task_exists(iVictim+TASK_GODMOD))
  1151.         remove_task(iVictim+TASK_GODMOD)
  1152.        
  1153.     if(get_user_vip(iAttacker) == 1)
  1154.     {
  1155.            
  1156.         VIPMoney[iAttacker] += get_pcvar_num(PcvarVIPMoneyKillBonus)
  1157.        
  1158.         static color[12],parts[3][4];
  1159.            
  1160.         switch( CsTeams:cs_get_user_team( iAttacker ) )
  1161.         {
  1162.             case CS_TEAM_CT:
  1163.             {  
  1164.                 CVAR_color_Kill[0] = 000;
  1165.                 CVAR_color_Kill[1] = 100;
  1166.                 CVAR_color_Kill[2] = 200;
  1167.                        
  1168.                 message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
  1169.                 write_short(400 * 14);
  1170.                 write_short(0);
  1171.                 write_short(0);
  1172.                 write_byte(CVAR_color_Kill[0]);
  1173.                 write_byte(CVAR_color_Kill[1]);
  1174.                 write_byte(CVAR_color_Kill[2]);
  1175.                 write_byte(75) ;
  1176.                 message_end();
  1177.                        
  1178.                 parse(color,parts[0],3,parts[1],3,parts[2],3);
  1179.                 CVAR_color_Kill[0] = str_to_num(parts[0]);
  1180.                 CVAR_color_Kill[1] = str_to_num(parts[1]);
  1181.                 CVAR_color_Kill[2] = str_to_num(parts[2]);
  1182.             }
  1183.             case CS_TEAM_T:
  1184.             {      
  1185.                 CVAR_color_Kill[0] = 200;
  1186.                 CVAR_color_Kill[1] = 000;
  1187.                 CVAR_color_Kill[2] = 000;
  1188.                        
  1189.                 message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
  1190.                 write_short(400 * 14);
  1191.                 write_short(0);
  1192.                 write_short(0);
  1193.                 write_byte(CVAR_color_Kill[0]);
  1194.                 write_byte(CVAR_color_Kill[1]);
  1195.                 write_byte(CVAR_color_Kill[2]);
  1196.                 write_byte(75) ;
  1197.                 message_end();
  1198.                        
  1199.                 parse(color,parts[0],3,parts[1],3,parts[2],3);
  1200.                 CVAR_color_Kill[0] = str_to_num(parts[0]);
  1201.                 CVAR_color_Kill[1] = str_to_num(parts[1]);
  1202.                 CVAR_color_Kill[2] = str_to_num(parts[2]);
  1203.             }
  1204.         }
  1205.     }
  1206.     else
  1207.     {
  1208.         Experience[iAttacker] += random_num(25,80)
  1209.         if(Experience[iAttacker] >= get_pcvar_num(PcvarMaxExperience))
  1210.         {
  1211.             set_user_vip(iAttacker,1)
  1212.             if(get_pcvar_num(PcvarShowVMoney) == 1)
  1213.                 set_task(1.0,"ShowVIPMoney",iAttacker+TASK_SHOWVMONEY,_,_,"b")
  1214.                
  1215.             set_hudmessage(0,255,0,-1.0,0.25,1,1.0,5.0)
  1216.             ShowSyncHudMsg(iAttacker,HudsSync[3],"CONGRATULATIONS!^nYou got VIP!")
  1217.            
  1218.             remove_task(iAttacker+TASK_SHOWEXPERIENCE)
  1219.            
  1220.             new Buffer[85]
  1221.             get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  1222.                
  1223.             new Name[32]
  1224.             get_user_name(iAttacker,Name,31)
  1225.             color_chat(0,"!g%s!y: Player!t %s!y got vip with!g %d!y of !g%d!y experience!",equal(Buffer,"0" ) ? "" : Buffer,Name,Experience[iAttacker],get_pcvar_num(PcvarMaxExperience))
  1226.            
  1227.             client_cmd(0,"spk buttons/bell1")
  1228.         }
  1229.     }
  1230.     return HAM_IGNORED
  1231. }
  1232. public GodMod_CountDown(id)
  1233. {
  1234.     id -= TASK_GODMOD
  1235.    
  1236.     if(task_exists(id+TASK_GODMOD))
  1237.     {
  1238.         set_hudmessage(255,255,255,-1.0,0.70,0,1.0,1.0)
  1239.         ShowSyncHudMsg(id,HudsSync[1],"GodMode will be off in %d second%s",timer[id],( timer[id] >= 2 ) ? "s" : "")
  1240.        
  1241.         timer[id]--
  1242.        
  1243.         if(timer[id] == 0)
  1244.         {
  1245.             remove_task(id+TASK_GODMOD)
  1246.            
  1247.             new Buffer[85]
  1248.             get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  1249.            
  1250.             set_pev(id,pev_takedamage,DAMAGE_AIM)
  1251.  
  1252.             color_chat(id,"!g%s!y: !yGodMode deactived!",equal(Buffer,"0" ) ? "" : Buffer)
  1253.             ShowVIPMenu(id)
  1254.            
  1255.             timer[id] = 3
  1256.         }
  1257.     }
  1258. }
  1259. public HPRegen(id)
  1260. {
  1261.     id -= TASK_HPREGEN
  1262.    
  1263.     if(get_user_health(id) >= get_pcvar_num(PcvarMaxRegenHP))
  1264.     {
  1265.         set_user_health(id,get_pcvar_num(PcvarMaxRegenHP))
  1266.         return PLUGIN_HANDLED
  1267.     }
  1268.    
  1269.     else
  1270.     {
  1271.         set_user_health(id,get_user_health(id) + get_pcvar_num(PcvarHpRegenAdd))
  1272.     }
  1273.     return PLUGIN_CONTINUE
  1274. }
  1275. public ham_Player_TakeDamage_Post( iVictim, iInfictor, iAttacker, Float:fDamage, iDmgBits )
  1276. {
  1277.     if( !is_user_connected( iVictim ) || !is_user_connected( iAttacker ) || iVictim == iAttacker )
  1278.         return HAM_IGNORED
  1279.        
  1280.     if( g_bActived_Imm[iAttacker] )
  1281.     {
  1282.         if(cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))
  1283.         {
  1284.             if( iDmgBits & DMG_BULLET || iDmgBits & (1<<24) || iDmgBits & DMG_SLASH )
  1285.             {
  1286.                 new random = random_num( 1,4 )
  1287.                 if( random == 2 )
  1288.                 {
  1289.                     set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) | FL_FROZEN )
  1290.                     if( !task_exists( iVictim ) )
  1291.                         set_task( 2.0, "remove_frozen", iVictim )
  1292.                 }
  1293.             }
  1294.         }
  1295.     }
  1296.     return HAM_IGNORED
  1297. }
  1298.  
  1299. public remove_frozen( iVictim )
  1300.     set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) & ~FL_FROZEN )
  1301.  
  1302. SaveVIP( id )
  1303. {
  1304.     new szAuthid[ 32 ]
  1305.     get_user_authid( id, szAuthid, charsmax( szAuthid ) )
  1306.    
  1307.     new szVaultKey[ 128 ], szVaultData[ 512 ]
  1308.    
  1309.     formatex( szVaultKey, 127, "VIP_%s", szAuthid )
  1310.     formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id])
  1311.     nvault_set( g_nVault, szVaultKey, szVaultData )
  1312. }
  1313.  
  1314. LoadVIP( id )
  1315. {
  1316.     new szAuthid[ 32 ]
  1317.     get_user_authid( id, szAuthid, charsmax( szAuthid ) )
  1318.  
  1319.     new szVaultKey[ 128 ], szVaultData[ 512 ]
  1320.  
  1321.     formatex( szVaultKey, 127, "VIP_%s", szAuthid )
  1322.     formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id])
  1323.  
  1324.     nvault_get( g_nVault, szVaultKey, szVaultData, 511 )
  1325.  
  1326.     new vp[32],vpm[32],vpmj[32],vpbhop[32],vpnodmg[32],vpregen[32],vpimm[32],exp[32]
  1327.  
  1328.     parse( szVaultData, vp, 31,vpm, 31,vpmj, 31, vpbhop, 31, vpnodmg, 31, vpregen, 31 ,vpimm, 31, exp, 31)
  1329.  
  1330.     VIP[ id ] = str_to_num( vp )
  1331.     VIPMoney[ id ] = str_to_num( vpm )
  1332.     VIPBh[id] = str_to_num( vpbhop )
  1333.     VIPMj[id] = str_to_num( vpmj )
  1334.     VIPNoDmg[id] = str_to_num( vpnodmg )
  1335.     VIPRegen[id] = str_to_num( vpregen )
  1336.     VIPImm[id] = str_to_num( vpimm )
  1337.     Experience[id] = str_to_num( exp )
  1338.    
  1339. }
  1340. public HUD( id )
  1341. {    
  1342.     id -= 672;
  1343.    
  1344.     set_task( 0.2, "HUD", id+672 );    
  1345.     if(!is_user_alive( id ) )
  1346.     {
  1347.         new szHud[64];
  1348.            
  1349.         new target = entity_get_int( id, EV_INT_iuser2 );
  1350.         if( target == 0 )
  1351.             return PLUGIN_HANDLED
  1352.            
  1353.         if(get_user_vip(target) == 1)
  1354.         {
  1355.             if(g_bActived_Bhop[target])
  1356.                 formatex(szHud,63,"[VIPMoney: %d | VIP Item: BunnyHop]", VIPMoney[target])
  1357.                
  1358.             else if(g_bActived_Imm[target])
  1359.                 formatex(szHud,63,"[VIPMoney: %d | VIP Item: Immobilize]", VIPMoney[target])
  1360.                
  1361.             else if(g_bActived_Mj[target])
  1362.                 formatex(szHud,63,"[VIPMoney: %d | VIP Item: MultiJump]", VIPMoney[target])
  1363.            
  1364.             else if(g_bActived_NoDmg[target])
  1365.                 formatex(szHud,63,"[VIPMoney: %d | VIP Item: No Damage]", VIPMoney[target])
  1366.                
  1367.             else if(g_bActived_Regen[target])
  1368.                 formatex(szHud,63,"[VIPMoney: %d | VIP Item: HP Regenerate]", VIPMoney[target])
  1369.                
  1370.             else
  1371.                 formatex(szHud,63,"[VIPMoney: %d | VIP Item: None]", VIPMoney[target])
  1372.         }
  1373.                
  1374.         else
  1375.             formatex(szHud,63,"[Experience: %d]", Experience[target])
  1376.            
  1377.         set_hudmessage(150, 50, 35, -1.0, 0.95, 0, 1.0, 0.1);
  1378.         ShowSyncHudMsg(id,HudsSync[5],szHud);
  1379.     }
  1380.     return PLUGIN_CONTINUE;
  1381. }
  1382. public plugin_end( )
  1383. {
  1384.     nvault_close( g_nVault )
  1385.     return PLUGIN_CONTINUE
  1386. }
  1387.  
  1388. public plugin_cfg( )
  1389. {
  1390.     g_nVault = nvault_open( "VIP_Player" )
  1391.  
  1392.     if( g_nVault == INVALID_HANDLE )
  1393.         set_fail_state( "Error opening VIP nVault, file does not exist!" )
  1394. }  
  1395. public CmdStart( id, uc_handle )
  1396. {
  1397.     if( !is_user_alive( id ))
  1398.         return FMRES_IGNORED
  1399.        
  1400.     new flags = pev( id, pev_flags )
  1401.    
  1402.     if( ( get_uc( uc_handle, UC_Buttons ) & IN_JUMP ) && !( flags & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) && g_iJumpCount[ id ] )
  1403.     {
  1404.         g_iJumpCount[ id ]--
  1405.         new Float:velocity[ 3 ]
  1406.         pev( id, pev_velocity, velocity )
  1407.         velocity[ 2 ] = random_float( 265.0,285.0 )
  1408.         set_pev( id, pev_velocity, velocity )
  1409.     }
  1410.     else if( flags & FL_ONGROUND )
  1411.     {
  1412.         g_iJumpCount[ id ] = g_bActived_Mj[id] ? 2 : 0
  1413.     }
  1414.     return FMRES_IGNORED
  1415. }
  1416. public ham_Player_PostThink_Post( id )
  1417. {
  1418.     if( !is_user_alive( id ) )
  1419.         return HAM_IGNORED
  1420.        
  1421.     if( g_bActived_Bhop[id])
  1422.     {
  1423.         if( pev( id, pev_button) & IN_JUMP )
  1424.         {
  1425.             new flags = pev( id, pev_flags )
  1426.            
  1427.             if( flags & FL_WATERJUMP )
  1428.                 return HAM_IGNORED
  1429.                
  1430.             if( pev( id, pev_waterlevel ) >= 2 )
  1431.                 return HAM_IGNORED
  1432.                
  1433.             if( !( flags & FL_ONGROUND ) )
  1434.                 return HAM_IGNORED
  1435.                
  1436.             static Float:velocity[ 3 ]
  1437.             pev( id, pev_velocity, velocity )
  1438.             velocity[ 2 ] += 250.0
  1439.             set_pev( id, pev_velocity, velocity )
  1440.            
  1441.             set_pev( id, pev_gaitsequence, 6 )
  1442.         }
  1443.     }
  1444.     return HAM_IGNORED
  1445. }
  1446. stock color_chat( id, const szStr[], any:... )
  1447. {
  1448.     new szMsg[ 191 ], iPlayers[ 32 ], iCount = 1
  1449.    
  1450.     vformat( szMsg, sizeof szMsg - 1, szStr, 3 )
  1451.    
  1452.     replace_all( szMsg, 190, "!g", "^4" )
  1453.     replace_all( szMsg, 190, "!y", "^1" )
  1454.     replace_all( szMsg, 190, "!t", "^3" )
  1455.    
  1456.     if( id )
  1457.         iPlayers[ 0 ] = id
  1458.  
  1459.     else
  1460.         get_players( iPlayers, iCount, "ch" )
  1461.    
  1462.     for( new i = 0 ; i < iCount ; i++ )
  1463.     {
  1464.         if(is_user_connected( iPlayers[ i ] ) )
  1465.         {
  1466.             message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[ i ] )
  1467.             write_byte( iPlayers[ i ] )
  1468.             write_string( szMsg )
  1469.             message_end( )
  1470.         }
  1471.     }
  1472. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top