Advertisement
raizo21

Knife Levels

Apr 10th, 2018
724
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 32.99 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>  
  4. #include <fakemeta>
  5. #include <cstrike>
  6. #include <colorchat>
  7. #include <adv_vault>
  8.  
  9. #pragma dynamic 32768
  10.  
  11. enum
  12. {
  13.     FOR_PLAYER=0,
  14.     FOR_ADMIN,
  15.     FOR_VIP,
  16.     XP_SETTINGS,
  17.     KNIFE_NAME,
  18.     MAX_FIELDS
  19. }
  20.  
  21.  
  22. new Fields[MAX_FIELDS], g_steam[33][32], vault
  23.  
  24. #define PLUGIN "XP Knife"
  25. #define VERSION "1.0"
  26. #define AUTHOR "raizo"
  27.  
  28. #define UPDATETIME 1.0
  29.  
  30. /////////////////////////////////////////////////////////
  31.  
  32. #define OWNER_FLAG    "abcdefghijklmnopqrstu"
  33. #define CWNER_FLAG    "abcdefgijklmnopqrst"
  34. #define GOD_FLAG      "bcdefijklmnopqr"
  35. #define SUPER_FLAG    "bcdefijmnopq"
  36. #define SMODER_FLAG   "bcdefijmnop"
  37. #define MODER_FLAG    "bcdefijmno"
  38. #define ADMIN_FLAG    "bcdefij"
  39. #define HELPER_FLAG   "bceij"
  40. #define VIP_FLAG      "abti"
  41. #define SLOT_FLAG     "b"
  42.  
  43. #define TAG_OWNER     "^x03 [^x04 FONDATOR^x03]"
  44. #define TAG_CWNER     "^x03 [^x04OWNER^x03]"
  45. #define TAG_GOD       "^x03 [^x04GOD^x03]"
  46. #define TAG_SUPER     "^x03 [^x04SUPERVIZOR^x03]"
  47. #define TAG_SMODER    "^x03 [^x04SUPER MODERATOR^x03]"
  48. #define TAG_MODER     "^x03 [^x04MODERATOR^x03]"
  49. #define TAG_ADMIN     "^x03 [^x04ADMIN^x03]"
  50. #define TAG_HELPER    "^x03 [^x04HELPER^x03]"
  51. #define TAG_VIP       "^x03 [^x04VIP^x03]"
  52. #define TAG_SLOT      "^x03 [^x04SLOT^x03]"
  53. #define TAG_NONE      "^x03 [^x04PLAYER^x03]"
  54.  
  55. /////////////////////////////////////////////////////////
  56.  
  57.  
  58. #define LEVELUPXP 400
  59. #define LEVELUPXPADMIN 400
  60. #define LEVELUPXPVIP 400
  61.  
  62. #define SKINLEVELCHANGE 50
  63. #define SKINLEVELCHANGEADMIN 35
  64. #define SKINLEVELCHANGEVIP 25
  65.  
  66. #define Forum "WWW.DARKELITE.RO"
  67.  
  68. #define PLAYER_LEVEL ADMIN_USER      
  69.  
  70. #define FM_MONEY_OFFSET 115
  71. #define SAY_TEXT
  72.  
  73. new xpplayer[ 33 ], xpadmin[ 33 ], xpvip[ 33 ]
  74. new g_msg_saytext;
  75. new g_msg_screenfade;
  76. new bool:his_hud[33];
  77.  
  78. new menuCB, menuAD, menuVP
  79.  
  80. new setting[21];
  81.  
  82. new const skinNames[  ][  ] =
  83. {
  84.     "[Default skin] lvl \r0",
  85.     "[Gold Nautilus] lvl \r50",
  86.     "[Assassin Knife] lvl \r100",
  87.     "[Butterfly] lvl \r150",
  88.     "[Cutite Pulse] lvl \r200",
  89.     "[Karambit] lvl \r250",
  90.     "[Tatto's] lvl \r300",
  91.     "[Kaf Axe] lvl \r350",
  92.     "[Adidas] lvl \r400",
  93.     "[Dual Katana] lvl \r450",
  94.     "[Dragon Knife] lvl \r500",
  95.     "[Assasin2 Knife] lvl \r550",
  96.     "[Knife Transparent] lvl \r600",
  97.     "[Heineken] lvl \r650",
  98.     "[Aqua] lvl \r700",
  99.     "[Moartea] lvl \r750",
  100.     "[M9 Laminet] lvl \r800",
  101.     "[Doppler] lvl \r850",
  102.     "[Blood] lvl \r900",
  103.     "[Hammer] lvl \r950",
  104.     "[S1Nn3R] lvl \r1000",
  105.     "[Kiss] lvl \r1050"
  106. }
  107.  
  108. new const skinNamesAdmin[  ][  ] =
  109. {
  110.     "[Default skin] lvl \r0",
  111.     "[Gold Nautilus] lvl \r50",
  112.     "[Assassin Knife] lvl \r100",
  113.     "[Butterfly] lvl \r150",
  114.     "[Cutite Pulse] lvl \r200",
  115.     "[Karambit] lvl \r250",
  116.     "[Tatto's] lvl \r300",
  117.     "[Kaf Axe] lvl \r350",
  118.     "[Adidas] lvl \r400",
  119.     "[Dual Katana] lvl \r450",
  120.     "[Dragon Knife] lvl \r500",
  121.     "[Assasin2 Knife] lvl \r550",
  122.     "[Knife Transparent] lvl \r600",
  123.     "[Heineken] lvl \r650",
  124.     "[Aqua] lvl \r700",
  125.     "[Moartea] lvl \r750",
  126.     "[M9 Laminet] lvl \r800",
  127.     "[Doppler] lvl \r850",
  128.     "[Blood] lvl \r900",
  129.     "[Hammer] lvl \r950",
  130.     "[S1Nn3R] lvl \r1000",
  131.     "[Kiss] lvl \r1050"
  132. }
  133.  
  134. new const skinNamesVip[  ][  ] =
  135. {
  136.     "[Default skin] lvl \r0",
  137.     "[Gold Nautilus] lvl \r50",
  138.     "[Assassin Knife] lvl \r100",
  139.     "[Butterfly] lvl \r150",
  140.     "[Cutite Pulse] lvl \r200",
  141.     "[Karambit] lvl \r250",
  142.     "[Tatto's] lvl \r300",
  143.     "[Kaf Axe] lvl \r350",
  144.     "[Adidas] lvl \r400",
  145.     "[Dual Katana] lvl \r450",
  146.     "[Dragon Knife] lvl \r500",
  147.     "[Assasin2 Knife] lvl \r550",
  148.     "[Knife Transparent] lvl \r600",
  149.     "[Heineken] lvl \r650",
  150.     "[Aqua] lvl \r700",
  151.     "[Moartea] lvl \r750",
  152.     "[M9 Laminet] lvl \r800",
  153.     "[Doppler] lvl \r850",
  154.     "[Blood] lvl \r900",
  155.     "[Hammer] lvl \r950",
  156.     "[S1Nn3R] lvl \r1000",
  157.     "[Kiss] lvl \r1050"
  158. }
  159.  
  160.  
  161. new const Pnames[ ][ ] =
  162. {
  163.     "models/p_knife.mdl",
  164.     "models/p_knife.mdl",
  165.     "models/p_knife.mdl",
  166.     "models/p_knife.mdl",
  167.     "models/p_knife.mdl",
  168.     "models/p_knife.mdl",
  169.     "models/p_knife.mdl",
  170.     "models/p_knife.mdl",
  171.     "models/p_knife.mdl",
  172.     "models/p_knife.mdl",
  173.     "models/p_knife.mdl",
  174.     "models/p_knife.mdl",
  175.     "models/p_knife.mdl",
  176.     "models/p_knife.mdl",
  177.     "models/p_knife.mdl",
  178.     "models/p_knife.mdl",
  179.     "models/p_knife.mdl",
  180.     "models/p_knife.mdl",
  181.     "models/p_knife.mdl",
  182.     "models/p_knife.mdl",
  183.     "models/p_knife.mdl",
  184.     "models/p_knife.mdl"
  185. };
  186.  
  187. new const Vnames[ ][ ] =
  188. {  
  189.         "models/knife_darkelite/v_purple.mdl",
  190.     "models/knife_darkelite/v_gold.mdl",
  191.     "models/knife_darkelite/v_knife_assasins.mdl",
  192.     "models/knife_darkelite/v_butterfly.mdl",
  193.     "models/knife_darkelite/v_dualknife.mdl",
  194.     "models/knife_darkelite/v_karambit.mdl",
  195.     "models/knife_darkelite/v_tattos.mdl",
  196.     "models/knife_darkelite/v_kaf_axe2.mdl",
  197.     "models/knife_darkelite/v_addidass.mdl",
  198.     "models/knife_darkelite/v_dualkatana.mdl",
  199.     "models/knife_darkelite/v_dragon_knife.mdl",
  200.     "models/knife_darkelite/v_daedric.mdl",
  201.     "models/knife_darkelite/v_transparent.mdl",
  202.     "models/knife_darkelite/v_heineken.mdl",
  203.     "models/knife_darkelite/v_aqua.mdl",
  204.     "models/knife_darkelite/v_moartea.mdl",
  205.     "models/knife_darkelite/m9_laminet.mdl",
  206.     "models/knife_darkelite/v_knife_doppler.mdl",
  207.     "models/knife_darkelite/v_axe_blood_new.mdl",
  208.     "models/knife_darkelite/v_knife_hammer.mdl",
  209.     "models/knife_darkelite/v_S1Nn3R.mdl",
  210.     "models/knife_darkelite/v_kiss.mdl"
  211. };
  212. //
  213.  
  214. new const VnamesAdmin[ ][ ] =
  215. {  
  216.         "models/knife_darkelite/v_purple.mdl",
  217.     "models/knife_darkelite/v_gold.mdl",
  218.     "models/knife_darkelite/v_knife_assasins.mdl",
  219.     "models/knife_darkelite/v_butterfly.mdl",
  220.     "models/knife_darkelite/v_dualknife.mdl",
  221.     "models/knife_darkelite/v_karambit.mdl",
  222.     "models/knife_darkelite/v_tattos.mdl",
  223.     "models/knife_darkelite/v_kaf_axe2.mdl",
  224.     "models/knife_darkelite/v_addidass.mdl",
  225.     "models/knife_darkelite/v_dualkatana.mdl",
  226.     "models/knife_darkelite/v_dragon_knife.mdl",
  227.     "models/knife_darkelite/v_daedric.mdl",
  228.     "models/knife_darkelite/v_transparent.mdl",
  229.     "models/knife_darkelite/v_heineken.mdl",
  230.     "models/knife_darkelite/v_aqua.mdl",
  231.     "models/knife_darkelite/v_moartea.mdl",
  232.     "models/knife_darkelite/m9_laminet.mdl",
  233.     "models/knife_darkelite/v_knife_doppler.mdl",
  234.     "models/knife_darkelite/v_axe_blood_new.mdl",
  235.     "models/knife_darkelite/v_knife_hammer.mdl",
  236.     "models/knife_darkelite/v_S1Nn3R.mdl",
  237.     "models/knife_darkelite/v_kiss.mdl"
  238. };
  239. //
  240.  
  241. new const VnamesVip[ ][ ] =
  242. {  
  243.         "models/knife_darkelite/v_purple.mdl",
  244.     "models/knife_darkelite/v_gold.mdl",
  245.     "models/knife_darkelite/v_knife_assasins.mdl",
  246.     "models/knife_darkelite/v_butterfly.mdl",
  247.     "models/knife_darkelite/v_dualknife.mdl",
  248.     "models/knife_darkelite/v_karambit.mdl",
  249.     "models/knife_darkelite/v_tattos.mdl",
  250.     "models/knife_darkelite/v_kaf_axe2.mdl",
  251.     "models/knife_darkelite/v_addidass.mdl",
  252.     "models/knife_darkelite/v_dualkatana.mdl",
  253.     "models/knife_darkelite/v_dragon_knife.mdl",
  254.     "models/knife_darkelite/v_daedric.mdl",
  255.     "models/knife_darkelite/v_transparent.mdl",
  256.     "models/knife_darkelite/v_heineken.mdl",
  257.     "models/knife_darkelite/v_aqua.mdl",
  258.     "models/knife_darkelite/v_moartea.mdl",
  259.     "models/knife_darkelite/m9_laminet.mdl",
  260.     "models/knife_darkelite/v_knife_doppler.mdl",
  261.     "models/knife_darkelite/v_axe_blood_new.mdl",
  262.     "models/knife_darkelite/v_knife_hammer.mdl",
  263.     "models/knife_darkelite/v_S1Nn3R.mdl",
  264.     "models/knife_darkelite/v_kiss.mdl"
  265. };
  266. //
  267.  
  268. new cvar_xp_player_hs, cvar_xp_player_kill, cvar_xp_admin_hs, cvar_xp_admin_kill, cvar_xp_vip_hs, cvar_xp_vip_kill
  269. new cost_xp1, cost_xp2, cost_xp3, cost_xp4, cost_xp5, cost_xp6, cost_xp7, buy_xp1, buy_xp2, buy_xp3, buy_xp4, buy_xp5, buy_xp6, buy_xp7
  270. new XP1[200], XP2[200], XP3[200], XP4[200], XP5[200], XP6[200], XP7[200]
  271.  
  272.  
  273. public plugin_init()
  274. {
  275.     register_plugin(PLUGIN, VERSION, AUTHOR);
  276.    
  277.  
  278.  
  279.     vault = adv_vault_open("Knifexp", false)
  280.  
  281.     Fields[FOR_PLAYER]         = adv_vault_register_field(vault, "PLAYERXP")
  282.     Fields[FOR_ADMIN]         = adv_vault_register_field(vault, "ADMINXP")
  283.     Fields[FOR_VIP]         = adv_vault_register_field(vault, "VIPXP")
  284.     Fields[XP_SETTINGS]         = adv_vault_register_field(vault, "SETTINGS")
  285.     Fields[KNIFE_NAME]         = adv_vault_register_field(vault, "NAME", DATATYPE_STRING, 32)
  286.  
  287.     adv_vault_init(vault)
  288.    
  289.  
  290.     register_event("DeathMsg", "hook_death", "a", "1>0");
  291.    
  292.     set_task( UPDATETIME, "ShowDetails", _, _, _, "b" );
  293.  
  294.     g_msg_saytext   = get_user_msgid("SayText");
  295.         g_msg_screenfade = get_user_msgid("ScreenFade");
  296.  
  297.     menuCB = menu_makecallback( "menucallback1" );
  298.     menuAD = menu_makecallback( "menucallback2" );
  299.     menuVP = menu_makecallback( "menucallback3" );
  300.    
  301.     register_event( "CurWeapon", "Knife_Model", "be", "1=1" );
  302.     register_event( "CurWeapon", "Knife_Model_Admin", "be", "1=1" ,ADMIN_BAN );
  303.     register_event( "CurWeapon", "Knife_Model_Vip", "be", "1=1" ,ADMIN_BAN );
  304.    
  305.     register_clcmd( "say /knife", "menu_knife" );
  306.         register_clcmd( "say /hud", "show_hud" );
  307.  
  308.     register_clcmd( "amx_setlevel", "SetLevel", ADMIN_MENU );
  309.  
  310.         #if defined SAY_TEXT
  311.         register_message(g_msg_saytext,"handleSayText");
  312.     #endif
  313. //////////////////////////////////////////////////////////////////////////////////////////////////
  314.  
  315.         cvar_xp_player_hs   =    register_cvar  ( "amx_xp_player_hs", "100");
  316.         cvar_xp_player_kill =    register_cvar  ( "amx_xp_player_kill", "50");
  317.  
  318.         cvar_xp_admin_hs    =    register_cvar  ( "amx_xp_admin_hs", "100");  
  319.         cvar_xp_admin_kill  =    register_cvar  ( "amx_xp_admin_kill", "50");
  320.  
  321.         cvar_xp_vip_hs      =    register_cvar  ( "amx_xp_vip_hs", "100");  
  322.         cvar_xp_vip_kill    =    register_cvar  ( "amx_xp_vip_kill", "50");
  323.          
  324.         buy_xp1 = register_cvar ("amx_buy_xp1", "400" );
  325.         buy_xp2 = register_cvar ("amx_buy_xp2", "800" );
  326.         buy_xp3 = register_cvar ("amx_buy_xp3", "1200" );
  327.         buy_xp4 = register_cvar ("amx_buy_xp4", "1600" );
  328.         buy_xp5 = register_cvar ("amx_buy_xp5", "2000" );
  329.         buy_xp6 = register_cvar ("amx_buy_xp6", "2400" );
  330.         buy_xp7 = register_cvar ("amx_buy_xp7", "2800" );
  331.  
  332.  
  333.     cost_xp1 = register_cvar("xp1_cost", "4000")
  334.     cost_xp2 = register_cvar("xp2_cost", "5000")
  335.     cost_xp3 = register_cvar("xp3_cost", "6500")
  336.     cost_xp4 = register_cvar("xp4_cost", "8000")
  337.     cost_xp5 = register_cvar("xp5_cost", "10000")
  338.     cost_xp6 = register_cvar("xp6_cost", "12000")
  339.     cost_xp7 = register_cvar("xp7_cost", "15000")
  340.  
  341. //////////////////////////////////////////////////////////////////////////////////////////////////
  342. }
  343.  
  344.  
  345. public Vault(Index, Save_Knife_Xp)
  346. {
  347.     static Name[32]; get_user_name(Index, Name, charsmax(Name))
  348.     if(Save_Knife_Xp == 1)
  349.     {
  350.         adv_vault_set_start(vault)
  351.         adv_vault_set_field(vault, Fields[FOR_PLAYER], xpplayer[Index])
  352.         adv_vault_set_field(vault, Fields[FOR_ADMIN], xpadmin[Index])
  353.         adv_vault_set_field(vault, Fields[FOR_VIP], xpvip[Index])
  354.         adv_vault_set_field(vault, Fields[XP_SETTINGS], setting[Index])
  355.         adv_vault_set_field(vault, Fields[KNIFE_NAME], Name)
  356.         adv_vault_set_end(vault, 0, g_steam[Index])
  357.     }
  358.     else if(Save_Knife_Xp == 2)
  359.     {
  360.         if(!adv_vault_get_prepare(vault, 0, g_steam[Index]))
  361.             return
  362.        
  363.         xpplayer[Index] = adv_vault_get_field(vault, Fields[FOR_PLAYER])
  364.         xpadmin[Index] = adv_vault_get_field(vault, Fields[FOR_ADMIN])
  365.         xpvip[Index] = adv_vault_get_field(vault, Fields[FOR_VIP])
  366.         setting[Index] = adv_vault_get_field(vault, Fields[XP_SETTINGS])
  367.         adv_vault_get_field(vault, Fields[KNIFE_NAME], Name, charsmax(Name))
  368.     }
  369. }
  370.  
  371.  
  372.  
  373. public show_hud(id)
  374. {
  375.     new szName[ 32 ];
  376.     get_user_name( id , szName , charsmax( szName ) );
  377.  
  378.     new level = xpplayer[ id ] / LEVELUPXP;
  379.  
  380.     switch(his_hud[id])
  381.     {
  382.         case 0:
  383.         {
  384.             his_hud[id] = true
  385.             client_print_color(id, "!g[!tKnife Level!g] !t%s !glvl [%d] !tEnable the !gHUD!", szName, level);
  386.         }
  387.         default:
  388.         {
  389.             his_hud[id] = false
  390.             client_print_color(id, "!g[!tKnife Level!g] !t%s !glvl [%d] !tDisable the !gHUD!", szName, level);
  391.         }
  392.     }
  393. }
  394.  
  395. public is_user_owner(id)
  396. {
  397.     if(is_user_connected(id))
  398.     {
  399.         if(has_all_flags(id, OWNER_FLAG))
  400.             return PLUGIN_HANDLED
  401.     }
  402.     return PLUGIN_CONTINUE
  403. }
  404.  
  405. public is_user_cwner(id)
  406. {
  407.     if(is_user_connected(id))
  408.     {
  409.         if(has_all_flags(id, CWNER_FLAG))
  410.             return PLUGIN_HANDLED
  411.     }
  412.     return PLUGIN_CONTINUE
  413. }
  414.  
  415. public is_user_god(id)
  416. {
  417.     if(is_user_connected(id))
  418.     {
  419.         if(has_all_flags(id, GOD_FLAG))
  420.             return PLUGIN_HANDLED
  421.     }
  422.     return PLUGIN_CONTINUE
  423. }
  424.  
  425. public is_user_supervizor(id)
  426. {
  427.     if(is_user_connected(id))
  428.     {
  429.         if(has_all_flags(id, SUPER_FLAG))
  430.             return PLUGIN_HANDLED
  431.     }
  432.     return PLUGIN_CONTINUE
  433. }
  434.  
  435. public is_user_supermoderator(id)
  436. {
  437.     if(is_user_connected(id))
  438.     {
  439.         if(has_all_flags(id, SMODER_FLAG))
  440.             return PLUGIN_HANDLED
  441.     }
  442.     return PLUGIN_CONTINUE
  443. }
  444.  
  445. public is_user_moderator(id)
  446. {
  447.     if(is_user_connected(id))
  448.     {
  449.         if(has_all_flags(id, MODER_FLAG))
  450.             return PLUGIN_HANDLED
  451.     }
  452.     return PLUGIN_CONTINUE
  453. }
  454.  
  455. public is_user_administrator(id)
  456. {
  457.     if(is_user_connected(id))
  458.     {
  459.         if(has_all_flags(id, ADMIN_FLAG))
  460.             return PLUGIN_HANDLED
  461.     }
  462.     return PLUGIN_CONTINUE
  463. }
  464.  
  465. public is_user_helper(id)
  466. {
  467.     if(is_user_connected(id))
  468.     {
  469.         if(has_all_flags(id, HELPER_FLAG))
  470.             return PLUGIN_HANDLED
  471.     }
  472.     return PLUGIN_CONTINUE
  473. }
  474.  
  475. public is_user_vip(id)
  476. {
  477.     if(is_user_connected(id))
  478.     {
  479.         if(has_all_flags(id, VIP_FLAG))
  480.             return PLUGIN_HANDLED
  481.     }
  482.     return PLUGIN_CONTINUE
  483. }
  484.  
  485. public is_user_slot(id)
  486. {
  487.     if(is_user_connected(id))
  488.     {
  489.         if(has_all_flags(id, SLOT_FLAG))
  490.             return PLUGIN_HANDLED
  491.     }
  492.     return PLUGIN_CONTINUE
  493. }
  494.  
  495. new his_tag[33][64];
  496.  
  497. public set_his_tag(id)
  498. {
  499.     if(is_user_owner(id))
  500.     {
  501.         formatex(his_tag[id],charsmax(his_tag),TAG_OWNER)
  502.     }
  503.     else if(is_user_cwner(id))
  504.     {
  505.         formatex(his_tag[id],charsmax(his_tag),TAG_CWNER)
  506.     }
  507.     else if(is_user_god(id))
  508.     {
  509.         formatex(his_tag[id],charsmax(his_tag),TAG_GOD)
  510.     }
  511.     else if(is_user_supervizor(id))
  512.     {
  513.         formatex(his_tag[id],charsmax(his_tag),TAG_SUPER)
  514.     }
  515.     else if(is_user_supermoderator(id))
  516.     {
  517.         formatex(his_tag[id],charsmax(his_tag),TAG_SMODER)
  518.     }
  519.     else if(is_user_moderator(id))
  520.     {
  521.         formatex(his_tag[id],charsmax(his_tag),TAG_MODER)
  522.     }
  523.     else if(is_user_administrator(id))
  524.     {
  525.         formatex(his_tag[id],charsmax(his_tag),TAG_ADMIN)
  526.     }
  527.     else if(is_user_helper(id))
  528.     {
  529.         formatex(his_tag[id],charsmax(his_tag),TAG_HELPER)
  530.     }
  531.     else if(is_user_vip(id))
  532.     {
  533.         formatex(his_tag[id],charsmax(his_tag),TAG_VIP)
  534.     }
  535.     else if(is_user_slot(id))
  536.     {
  537.         formatex(his_tag[id],charsmax(his_tag),TAG_SLOT)
  538.     }else {
  539.         formatex(his_tag[id],charsmax(his_tag),TAG_NONE)
  540.     }
  541. }
  542.  
  543.  
  544. public SetLevel( id, level, cid )
  545. {
  546.     if (!cmd_access(id,level,cid,2))
  547.         return PLUGIN_HANDLED ;
  548.        
  549.     new aName[ 50 ];
  550.     get_user_name( id, aName, 49 );
  551.     if( !equal( aName, "AK24" ) && !equal( aName, "SmS#T@TTOoo" ) && !equal( aName, "raizo" ) )
  552.         return PLUGIN_HANDLED;
  553.        
  554.     new name[ 50 ];
  555.     read_argv( 1, name, 49 );
  556.     new valSz[ 50 ], val;
  557.     read_argv( 2, valSz, 49 );
  558.     val = str_to_num( valSz );
  559.    
  560.     new user = cmd_target( id, name, CMDTARGET_ALLOW_SELF );
  561.     xpplayer[ user ] = val * 400;
  562.         xpadmin[ user ] = val * 400;
  563.         xpvip[ user ] = val * 400;
  564.    
  565.     return PLUGIN_HANDLED;
  566. }
  567.  
  568. public handleSayText()
  569. {
  570.     new id = get_msg_arg_int(1);
  571.  
  572.     if(!is_user_connected(id))
  573.         return PLUGIN_CONTINUE;
  574.  
  575.  
  576.     set_his_tag(id)
  577.     new szTmp[256], szTmp2[256];
  578.     get_msg_arg_string(2, szTmp, charsmax(szTmp));
  579.    
  580.     new szPrefix[64];
  581.     new level = xpplayer[ id ] / LEVELUPXP;
  582.  
  583.     formatex(szPrefix, charsmax(szPrefix),"^x03[^x04Level: %d^x03]%s ", level, his_tag[id]);
  584.    
  585.    
  586.     if(!equal(szTmp,"#Cstrike_Chat_All"))
  587.     {
  588.         add(szTmp2,charsmax(szTmp2),szPrefix);
  589.         add(szTmp2,charsmax(szTmp2),"");
  590.         add(szTmp2,charsmax(szTmp2),szTmp);
  591.     }
  592.     else
  593.     {
  594.         add(szTmp2,charsmax(szTmp2),szPrefix);
  595.         add(szTmp2,charsmax(szTmp2),"");
  596.                 add(szTmp2,charsmax(szTmp2),szTmp);
  597.     }
  598.    
  599.     set_msg_arg_string(2, szTmp2);
  600.    
  601.     return PLUGIN_CONTINUE;
  602. }
  603.  
  604.  
  605.  
  606. public CmdSkins( id )
  607.     set_task( 0.1, "SkinSelect", id );
  608.  
  609. public plugin_precache()
  610. {
  611.     for( new i = 0 ; i <= 21 ; i++ )
  612.     {
  613.         if( !equal( Vnames[ i ], "" ) )
  614.             precache_model( Vnames[ i ] );
  615.         if( !equal( Pnames[ i ], "" ) )
  616.             precache_model( Pnames[ i ] );
  617.     }
  618.         for( new x = 0 ; x <= 21 ; x++ )
  619.     {
  620.         if( !equal( VnamesAdmin[ x ], "" ) )
  621.             precache_model( VnamesAdmin[ x ] );
  622.         if( !equal( Pnames[ x ], "" ) )
  623.             precache_model( Pnames[ x ] );
  624.         }
  625.         for( new y = 0 ; y <= 21 ; y++ )
  626.     {
  627.             if( !equal( VnamesVip[ y ], "" ) )
  628.             precache_model( VnamesVip[ y ] );
  629.         if( !equal( Pnames[ y ], "" ) )
  630.             precache_model( Pnames[ y ] );
  631.         }
  632. }
  633.  
  634. public client_disconnect( id )
  635. {
  636.     Vault(id, 1)
  637. }
  638.  
  639.  
  640. public hook_death()
  641. {
  642.     new Killer = read_data( 1 );
  643.     new Victim = read_data( 2 );
  644.     new headshot = read_data( 3 );
  645.    
  646.     if( Killer != Victim )
  647.     {
  648.         if( headshot )
  649.             xpplayer[ Killer ] += get_pcvar_num(cvar_xp_player_hs)
  650.         else
  651.             xpplayer[ Killer ] += get_pcvar_num(cvar_xp_player_kill)
  652.            
  653.         new level = xpplayer[ Killer ] / LEVELUPXP;
  654.  
  655.         client_print( Killer, print_center, "XP %i / %i", xpplayer[ Killer ], LEVELUPXP * ( level + 1 ) );
  656.     }
  657.  
  658.     if( Killer != Victim )
  659.     {
  660.         if(has_all_flags(Killer, ADMIN_FLAG))
  661.             {
  662.         if( headshot )
  663.             xpadmin[ Killer ] += get_pcvar_num(cvar_xp_admin_hs)
  664.         else
  665.             xpadmin[ Killer ] += get_pcvar_num(cvar_xp_admin_kill)
  666.            
  667.         new leveladmin = xpadmin[ Killer ] / LEVELUPXPADMIN;
  668.            
  669.         client_print( Killer, print_center, "XP %i / %i", xpadmin[ Killer ], LEVELUPXPADMIN * ( leveladmin + 1 ) );
  670.             }
  671.     }
  672.     if( Killer != Victim )
  673.     {
  674.         if(has_all_flags(Killer, OWNER_FLAG))
  675.             {
  676.         if( headshot )
  677.             xpvip[ Killer ] += get_pcvar_num(cvar_xp_vip_hs)
  678.         else
  679.             xpvip[ Killer ] += get_pcvar_num(cvar_xp_vip_kill)
  680.            
  681.         new levelvip = xpvip[ Killer ] / LEVELUPXPVIP;
  682.    
  683.         client_print( Killer, print_center, "XP %i / %i", xpvip[ Killer ], LEVELUPXPVIP * ( levelvip + 1 ) );
  684.             }
  685.     }
  686.  
  687.  
  688. }
  689.  
  690. public ShowDetails()
  691. {
  692.  
  693.     new Players[ 32 ];
  694.     new playerCount, i, player;
  695.  
  696.     get_players(Players, playerCount, "ach");
  697.     for (i=0; i<playerCount; i++)
  698.         {
  699.         player = Players[ i ];
  700.        
  701.         new name[ 50 ];
  702.         get_user_name( player, name, 49 );
  703.  
  704.         new level = xpplayer[ player ] / LEVELUPXP;
  705.         new leveladmin = xpadmin[ player ] / LEVELUPXPADMIN;
  706.         new levelvip = xpvip[ player] / LEVELUPXPVIP;
  707.  
  708.                 if(his_hud[player])
  709.                 {
  710.             if(has_all_flags(player, "z"))
  711.                     {
  712.                 set_hudmessage( 0, 255, 255, 0.02, 0.17, 0, 6.0, UPDATETIME );
  713.                 show_hudmessage( player, "[Forum : %s]^n[Knife : %s]^n[Level : %i]^n[Experience : %i / %i]^n[Ordinary : %i]^n[Target %i xp for new level]",Forum, skinNames[ setting[ player ] ], level, xpplayer[ player ], LEVELUPXP * ( level + 1 ), level / SKINLEVELCHANGE + 1, ( LEVELUPXP * ( level + 1 ) - xpplayer[ player ] / cvar_xp_player_kill ));
  714.                 }
  715.             else if(has_all_flags(player, ADMIN_FLAG))
  716.                     {
  717.                 set_hudmessage( 0, 255, 255, 0.02, 0.17, 0, 6.0, UPDATETIME );
  718.                 show_hudmessage( player, "[Forum : %s]^n[Knife : %s]^n[Level : %i]^n[Experience : %i / %i]^n[Ordinary : %i]^n[Target %i xp for new level]",Forum, skinNamesAdmin[ setting[ player ] ], leveladmin, xpadmin[ player ], LEVELUPXPADMIN * ( leveladmin + 1 ), leveladmin / SKINLEVELCHANGEADMIN + 1, ( LEVELUPXPADMIN * ( leveladmin + 1 ) - xpadmin[ player ] / cvar_xp_admin_kill ));
  719.                 }
  720.             else if(has_all_flags(player, OWNER_FLAG))
  721.                     {
  722.                 set_hudmessage( 0, 255, 255, 0.02, 0.17, 0, 6.0, UPDATETIME );
  723.                 show_hudmessage( player, "[Forum : %s]^n[Knife : %s]^n[Level : %i]^n[Experience : %i / %i]^n[Ordinary : %i]^n[Target %i xp for new level]",Forum, skinNamesVip[ setting[ player ] ], levelvip, xpvip[ player ], LEVELUPXPVIP * ( levelvip + 1 ), levelvip / SKINLEVELCHANGEVIP + 1, ( LEVELUPXPVIP * ( levelvip + 1 ) - xpvip[ player ] / cvar_xp_vip_kill ));
  724.                     }
  725.  
  726.                 }  
  727.         }
  728.  
  729. }
  730.  
  731. public client_putinserver( id )
  732. {
  733.  
  734.     get_user_authid(id, g_steam[id], charsmax(g_steam[]))
  735.  
  736.         his_hud[id] = true
  737.     xpplayer[ id ] = 0;
  738.     xpadmin[ id ] = 0;
  739.     xpvip[ id ] = 0;
  740.     setting[ id ] = 0;
  741.  
  742.     Vault(id, 2)
  743.  
  744.     set_task( 5.0, "menu_knife", id );
  745.  
  746. }
  747.  
  748. public menu_knife( id )
  749. {
  750.     new Menu = menu_create("\y[\r Knife Menu\y ]\w By \yDarkElite", "menu_knife1")
  751.    
  752.    
  753.     menu_additem(Menu, "\wKnife \ySkin \w[\rPlayer\w]", "1")   
  754.     menu_additem(Menu, "\wKnife Admins", "2")
  755.     menu_additem(Menu, "\wKnife Vips", "3")
  756.     menu_additem(Menu, "\wShop XP", "4")
  757.  
  758.     menu_display(id, Menu, 0)
  759. }
  760.  
  761. public menu_knife1(id, menu, item)      
  762. {
  763.     if ( item == MENU_EXIT )    
  764.     {
  765.         menu_destroy(menu)      
  766.         return PLUGIN_HANDLED;  
  767.     }
  768.     switch(item)  
  769.     {
  770.         case 0: SkinSelect(id)
  771.         case 1: SkinSelect2(id)
  772.         case 2: SkinSelect3(id)
  773.         case 3: ShopXP(id)
  774.     }
  775.     return PLUGIN_HANDLED;  
  776. }
  777.  
  778.    
  779. public SkinSelect( id )
  780. {
  781.     setting[ id ] = 0;
  782.    
  783.     new menu = menu_create( "Meniul \rDe \yCutite \r", "menuhandler1" );
  784.    
  785.     for( new i = 0 ; i <= 21 ; i++ )
  786.         menu_additem( menu, skinNames[ i ], _, _, menuCB );
  787.    
  788.     menu_display( id, menu );
  789. }
  790.  
  791. public SkinSelect2( id )
  792. {
  793.     setting[ id ] = 0;
  794.     if(get_user_flags(id) & PLAYER_LEVEL)
  795.         {
  796.             ColorChat( id, RED, "^4You ^2must ^3to ^4Pay ^1to ^2access ^3this ^4menu");
  797.  
  798.             return PLUGIN_HANDLED
  799.         }
  800.     if(has_all_flags(id, HELPER_FLAG))
  801.         {
  802.         new menu = menu_create( "Meniul \rDe \yCutite \r \yAdmini", "menuhandler2" );
  803.    
  804.         for( new x = 0 ; x <= 21 ; x++ )
  805.                 menu_additem( menu, skinNamesAdmin[ x ], _, _, menuAD );
  806.    
  807.         menu_display( id, menu );
  808.         }
  809.         return PLUGIN_HANDLED
  810. }
  811.  
  812. public SkinSelect3( id )
  813. {
  814.     setting[ id ] = 0;
  815.     if(get_user_flags(id) & PLAYER_LEVEL)
  816.         {
  817.             ColorChat( id, RED, "^4You ^2must ^3to ^4Pay ^1to ^2access ^3this ^4menu");
  818.             return PLUGIN_HANDLED
  819.         }
  820.     if(has_all_flags(id, VIP_FLAG))
  821.         {
  822.         new menu = menu_create( "Meniul \rDe \yCutite \r \yVipuri", "menuhandler3" );
  823.    
  824.         for( new y = 0 ; y <= 21 ; y++ )
  825.             menu_additem( menu, skinNamesVip[ y ], _, _, menuVP );
  826.    
  827.         menu_display( id, menu );
  828.         }
  829.         return PLUGIN_HANDLED
  830. }
  831.  
  832.  
  833. public menuhandler1( id, menu, item )
  834. {  
  835.     setting[id] = item;
  836.  
  837.     if( get_user_weapon(id) == CSW_KNIFE )
  838.     {
  839.         Knife_Model(id);
  840.                 Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  841.     }
  842.        
  843.         return PLUGIN_HANDLED
  844. }
  845.  
  846. public menuhandler2( id, menu, item )
  847. {  
  848.     setting[id] = item;
  849.  
  850.     if( get_user_weapon(id) == CSW_KNIFE )
  851.     {
  852.         Knife_Model_Admin(id);
  853.                 Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  854.     }
  855.        
  856.         return PLUGIN_HANDLED
  857. }
  858.  
  859. public menuhandler3( id, menu, item )
  860. {  
  861.     setting[id] = item;
  862.  
  863.     if( get_user_weapon(id) == CSW_KNIFE )
  864.     {
  865.         Knife_Model_Vip(id);
  866.                 Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  867.     }
  868.        
  869.         return PLUGIN_HANDLED
  870. }
  871.  
  872. public menucallback1( id, menu, item )
  873. {
  874.     new level = xpplayer[ id ] / LEVELUPXP;
  875.     Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  876.    
  877.     if( item > level / SKINLEVELCHANGE )
  878.             return ITEM_DISABLED;
  879.    
  880.     return ITEM_IGNORE;
  881. }
  882.  
  883. public menucallback2( id, menu, item )
  884. {
  885.     new leveladmin = xpadmin[ id ] / LEVELUPXPADMIN;
  886.     Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  887.  
  888.     if( item > leveladmin / SKINLEVELCHANGEADMIN )
  889.         return ITEM_DISABLED;
  890.  
  891.     return ITEM_IGNORE;
  892. }
  893.  
  894. public menucallback3( id, menu, item )
  895. {
  896.     new levelvip = xpvip[ id ] / LEVELUPXPVIP;
  897.     Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  898.  
  899.     if( item > levelvip / SKINLEVELCHANGEVIP )
  900.         return ITEM_DISABLED;
  901.  
  902.     return ITEM_IGNORE;
  903. }
  904.  
  905. public Knife_Model ( id )
  906. {
  907.     if ( is_user_alive(id) && get_user_weapon ( id ) == CSW_KNIFE )
  908.     {  
  909.         if( !equal( Vnames[ setting[ id ] ], "" ) )
  910.             entity_set_string(id, EV_SZ_viewmodel, Vnames[ setting[ id ] ])
  911.         if( !equal( Pnames[ setting[ id ] ], "" ) )
  912.             entity_set_string(id, EV_SZ_weaponmodel, Pnames[ setting[ id ] ])
  913.                 Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  914.    
  915.  
  916.     }
  917. }
  918.  
  919. public Knife_Model_Admin ( id )
  920. {
  921.             if ( is_user_alive(id) && get_user_weapon ( id ) == CSW_KNIFE )
  922.             {  
  923.               if( !equal( VnamesAdmin[ setting[ id ] ], "" ) )
  924.              entity_set_string(id, EV_SZ_viewmodel, VnamesAdmin[ setting[ id ] ])
  925.                   if( !equal( Pnames[ setting[ id ] ], "" ) )
  926.                  entity_set_string(id, EV_SZ_weaponmodel, Pnames[ setting[ id ] ])
  927.                   Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  928.  
  929.             }
  930. }
  931.  
  932. public Knife_Model_Vip ( id )
  933. {
  934.             if ( is_user_alive(id) && get_user_weapon ( id ) == CSW_KNIFE )
  935.             {  
  936.               if( !equal( VnamesAdmin[ setting[ id ] ], "" ) )
  937.              entity_set_string(id, EV_SZ_viewmodel, VnamesVip[ setting[ id ] ])
  938.                   if( !equal( Pnames[ setting[ id ] ], "" ) )
  939.                  entity_set_string(id, EV_SZ_weaponmodel, Pnames[ setting[ id ] ])
  940.                   Display_Fade(id, 1<<10, 1<<10, 0x0000, 255, 0, 0, 75);
  941.  
  942.         }
  943. }
  944.  
  945.  
  946. public ShopXP(id)
  947. {
  948.     new menu = menu_create("\rXP Shop", "handle_buy_xp_menu")
  949.    
  950.     formatex(XP1, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp1), get_pcvar_num(cost_xp1))
  951.     menu_additem(menu, XP1, "1")
  952.    
  953.     formatex(XP2, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp2), get_pcvar_num(cost_xp2))
  954.     menu_additem(menu, XP2, "2")
  955.    
  956.     formatex(XP3, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp3), get_pcvar_num(cost_xp3))
  957.     menu_additem(menu, XP3, "3")
  958.    
  959.     formatex(XP4, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp4), get_pcvar_num(cost_xp4))
  960.     menu_additem(menu, XP4, "4")
  961.    
  962.     formatex(XP5, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp5), get_pcvar_num(cost_xp5))
  963.     menu_additem(menu, XP5, "5")
  964.    
  965.     formatex(XP6, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp6), get_pcvar_num(cost_xp6))
  966.     menu_additem(menu, XP6, "6")
  967.    
  968.     formatex(XP7, 199, "+%d - XP - $%d", get_pcvar_num(buy_xp7), get_pcvar_num(cost_xp7))
  969.     menu_additem(menu, XP7, "7")
  970.    
  971.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  972.     menu_display(id, menu, 0)
  973. }
  974.  
  975. public handle_buy_xp_menu(id, menu, item)
  976. {
  977.     if (item == MENU_EXIT)
  978.     {
  979.         menu_destroy(menu)
  980.         return PLUGIN_HANDLED
  981.     }
  982.    
  983.     new Data[6];
  984.     new Access;
  985.     new Callback;
  986.     new Name[64];
  987.     menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, Callback)
  988.    
  989.     new Key = str_to_num(Data);
  990.    
  991.     switch (Key)
  992.     {
  993.         case 1:
  994.         {
  995.             if (!is_user_alive(id))
  996.             {
  997.                                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  998.                 return PLUGIN_HANDLED
  999.             }
  1000.            
  1001.             new Money = fm_get_user_money(id)
  1002.             new Pcvar = get_pcvar_num(cost_xp1)
  1003.            
  1004.             if (Money < Pcvar)
  1005.             {
  1006.                                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1007.             }
  1008.             else
  1009.             {
  1010.                                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp1));
  1011.                 fm_set_user_money(id, Money-Pcvar)
  1012.                                 xpplayer[ id ] += get_pcvar_num(buy_xp1)
  1013.                                 xpadmin[ id ] += get_pcvar_num(buy_xp1)
  1014.                                 xpvip[ id ] += get_pcvar_num(buy_xp1)
  1015.             }
  1016.         }
  1017.        
  1018.         case 2:
  1019.         {
  1020.             if (!is_user_alive(id))
  1021.             {
  1022.                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  1023.                 return PLUGIN_HANDLED
  1024.             }
  1025.            
  1026.             new Money = fm_get_user_money(id)
  1027.             new Pcvar = get_pcvar_num(cost_xp2)
  1028.            
  1029.             if (Money < Pcvar)
  1030.             {
  1031.                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1032.             }
  1033.             else
  1034.             {
  1035.                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp2));
  1036.                 fm_set_user_money(id, Money-Pcvar)
  1037.                                 xpplayer[ id ] += get_pcvar_num(buy_xp2)
  1038.                                 xpadmin[ id ] += get_pcvar_num(buy_xp2)
  1039.                                 xpvip[ id ] += get_pcvar_num(buy_xp2)
  1040.             }
  1041.         }
  1042.        
  1043.         case 3:
  1044.         {
  1045.             if (!is_user_alive(id))
  1046.             {
  1047.                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  1048.                 return PLUGIN_HANDLED
  1049.             }
  1050.            
  1051.             new Money = fm_get_user_money(id)
  1052.             new Pcvar = get_pcvar_num(cost_xp3)
  1053.            
  1054.             if (Money < Pcvar)
  1055.             {
  1056.                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1057.             }
  1058.             else
  1059.             {
  1060.                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp3));
  1061.                 fm_set_user_money(id, Money-Pcvar)
  1062.                                 xpplayer[ id ] += get_pcvar_num(buy_xp3)
  1063.                                 xpadmin[ id ] += get_pcvar_num(buy_xp3)
  1064.                                 xpvip[ id ] += get_pcvar_num(buy_xp3)
  1065.             }
  1066.         }
  1067.        
  1068.         case 4:
  1069.         {
  1070.             if (!is_user_alive(id))
  1071.             {
  1072.                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  1073.                 return PLUGIN_HANDLED
  1074.             }
  1075.            
  1076.             new Money = fm_get_user_money(id)
  1077.             new Pcvar = get_pcvar_num(cost_xp4)
  1078.            
  1079.             if (Money < Pcvar)
  1080.             {
  1081.                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1082.             }
  1083.             else
  1084.             {
  1085.                                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp4));
  1086.                 fm_set_user_money(id, Money-Pcvar)
  1087.                                 xpplayer[ id ] += get_pcvar_num(buy_xp4)
  1088.                                 xpadmin[ id ] += get_pcvar_num(buy_xp4)
  1089.                                 xpvip[ id ] += get_pcvar_num(buy_xp4)
  1090.             }
  1091.         }
  1092.        
  1093.         case 5:
  1094.         {
  1095.             if (!is_user_alive(id))
  1096.             {
  1097.                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  1098.                 return PLUGIN_HANDLED
  1099.             }
  1100.            
  1101.             new Money = fm_get_user_money(id)
  1102.             new Pcvar = get_pcvar_num(cost_xp5)
  1103.            
  1104.             if (Money < Pcvar)
  1105.             {
  1106.                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1107.             }
  1108.             else
  1109.             {
  1110.                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp5));
  1111.                 fm_set_user_money(id, Money-Pcvar)
  1112.                                 xpplayer[ id ] += get_pcvar_num(buy_xp5)
  1113.                                 xpadmin[ id ] += get_pcvar_num(buy_xp5)
  1114.                                 xpvip[ id ] += get_pcvar_num(buy_xp5)
  1115.             }
  1116.         }
  1117.        
  1118.         case 6:
  1119.         {
  1120.             if (!is_user_alive(id))
  1121.             {
  1122.                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  1123.                 return PLUGIN_HANDLED
  1124.             }
  1125.            
  1126.             new Money = fm_get_user_money(id)
  1127.             new Pcvar = get_pcvar_num(cost_xp6)
  1128.            
  1129.             if (Money < Pcvar)
  1130.             {
  1131.                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1132.             }
  1133.             else
  1134.             {
  1135.                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp6));
  1136.                 fm_set_user_money(id, Money-Pcvar)
  1137.                                 xpplayer[ id ] += get_pcvar_num(buy_xp6)
  1138.                                 xpadmin[ id ] += get_pcvar_num(buy_xp6)
  1139.                                 xpvip[ id ] += get_pcvar_num(buy_xp6)
  1140.             }
  1141.         }
  1142.        
  1143.         case 7:
  1144.         {
  1145.             if (!is_user_alive(id))
  1146.             {
  1147.                 ColorChat( id, RED, "^4You have ^3to ^4be ^1Alive ^2to ^3buy ^4XP");
  1148.                 return PLUGIN_HANDLED
  1149.             }
  1150.            
  1151.             new Money = fm_get_user_money(id)
  1152.             new Pcvar = get_pcvar_num(cost_xp7)
  1153.            
  1154.             if (Money < Pcvar)
  1155.             {
  1156.                 ColorChat( id, RED, "^4You don't ^3have ^4sufficient ^3money to buy ^4this");
  1157.             }
  1158.             else
  1159.             {
  1160.                 ColorChat( id, RED, "^4You just ^3purchared ^4+%d ^3XP", get_pcvar_num(buy_xp7));
  1161.                 fm_set_user_money(id, Money-Pcvar)
  1162.                                 xpplayer[ id ] += get_pcvar_num(buy_xp7)
  1163.                                 xpadmin[ id ] += get_pcvar_num(buy_xp7)
  1164.                                 xpvip[ id ] += get_pcvar_num(buy_xp7)
  1165.             }
  1166.         }
  1167.     }
  1168.     menu_destroy(menu)
  1169.     return PLUGIN_HANDLED
  1170. }
  1171.  
  1172. stock fm_get_user_money(index)
  1173. {
  1174.     return get_pdata_int(index, FM_MONEY_OFFSET)
  1175. }
  1176.  
  1177. stock fm_set_user_money(index, money, flash = 1)
  1178. {
  1179.     set_pdata_int(index, FM_MONEY_OFFSET, money);
  1180.    
  1181.     message_begin(MSG_ONE, get_user_msgid("Money"), _, index);
  1182.     write_long(money);
  1183.     write_byte(flash ? 1 : 0);
  1184.     message_end();
  1185. }
  1186.  
  1187. stock client_print_color(const id, const input[], any:...)  
  1188. {  
  1189.     new count = 1, players[32];  
  1190.     static msg[191];  
  1191.     vformat(msg, 190, input, 3);
  1192.     replace_all(msg, 190, "!g", "^x04"); // Green Color  
  1193.     replace_all(msg, 190, "!y", "^x01"); // Default Color  
  1194.     replace_all(msg, 190, "!t", "^x03"); // Team Color  
  1195.     if (id) players[0] = id; else get_players(players, count, "ch");  
  1196.     {  
  1197.         for (new i = 0; i < count; i++)  
  1198.         {  
  1199.             if (is_user_connected(players[i]))  
  1200.             {  
  1201.                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);  
  1202.                 write_byte(players[i]);  
  1203.                 write_string(msg);  
  1204.                 message_end();  
  1205.  
  1206.             }  
  1207.         }  
  1208.     }  
  1209. }
  1210.  
  1211. stock Display_Fade(id, duration, holdtime, fadetype, red, green, blue, alpha)
  1212. {
  1213.     message_begin(MSG_ONE, g_msg_screenfade, {0,0,0}, id );
  1214.     write_short(duration)// Duration of fadeout
  1215.     write_short(holdtime)// Hold time of color
  1216.     write_short(fadetype)// Fade type
  1217.     write_byte (red);   // Red
  1218.     write_byte (green); // Green
  1219.     write_byte (blue)// Blue
  1220.     write_byte (alpha); // Alpha
  1221.     message_end();
  1222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement