Page 1 of 1

Knife Menu With Lvl

Posted: 26 Nov 2020, 14:43
by Luxurious
Any one can make this knife level in menu not auto ??
  1. #include <zombie_escape>
  2. #include <ze_levels>
  3.  
  4. // Models
  5. new const g_szKnife1[][] =
  6. {
  7.     "models/dg/v_knife_griff.mdl",
  8.     "models/dg/p_knife_griff1.mdl"
  9. }
  10.  
  11. new const g_szKnife2[][] =
  12. {
  13.     "models/dg/v_flip_t.mdl",
  14.     "models/dg/p_flip_t.mdl"
  15. }
  16. new const g_szKnife3[][] =
  17. {
  18.     "models/dg/v_butterfly_knife.mdl",
  19.     "models/dg/p_butterfly_knife.mdl"
  20. }
  21. new const g_szKnife4[][] =
  22. {
  23.     "models/dg/v_bayonet.mdl",
  24.     "models/dg/p_bayonet.mdl"
  25. }
  26. new const g_szKnife5[][] =
  27. {
  28.     "models/dg/v_knife_karambit.mdl",
  29.     "models/dg/p_knife_karambit.mdl"
  30. }
  31. new const g_szKnife6[][] =
  32. {
  33.     "models/dg/v_knife_karambit.mdl",
  34.     "models/dg/p_knife_karambit.mdl"
  35. }
  36. new const g_szKnife7[][] =
  37. {
  38.     "models/dg/v_knifew.mdl",
  39.     "models/dg/p_knifew.mdl"
  40. }
  41. new const g_szKnife8[][] =
  42. {
  43.     "models/dg/v_knifew.mdl",
  44.     "models/dg/p_knifew.mdl"
  45. }
  46.  
  47. // Sounds
  48. new const g_szKnife1Sounds[][] =
  49. {
  50.     "weapons/knife_deploy1.wav",
  51.     "weapons/knife_hit1.wav",
  52.     "weapons/knife_hit2.wav",
  53.     "weapons/knife_hit3.wav",
  54.     "weapons/knife_hit4.wav",
  55.     "weapons/knife_hitwall1.wav",
  56.     "weapons/knife_slash1.wav",
  57.     "weapons/knife_slash2.wav",
  58.     "weapons/knife_stab.wav"
  59. }
  60.  
  61. new const g_szKnife2Sounds[][] =
  62. {
  63.     "weapons/knife_deploy1.wav",
  64.     "weapons/knife_hit1.wav",
  65.     "weapons/knife_hit2.wav",
  66.     "weapons/knife_hit3.wav",
  67.     "weapons/knife_hit4.wav",
  68.     "weapons/knife_hitwall1.wav",
  69.     "weapons/knife_slash1.wav",
  70.     "weapons/knife_slash2.wav",
  71.     "weapons/knife_stab.wav"
  72. }
  73.  
  74. new const g_szKnife3Sounds[][] =
  75. {
  76.     "weapons/knife_deploy1.wav",
  77.     "weapons/knife_hit1.wav",
  78.     "weapons/knife_hit2.wav",
  79.     "weapons/knife_hit3.wav",
  80.     "weapons/knife_hit4.wav",
  81.     "weapons/knife_hitwall1.wav",
  82.     "weapons/knife_slash1.wav",
  83.     "weapons/knife_slash2.wav",
  84.     "weapons/knife_stab.wav"
  85. }
  86.  
  87. new const g_szKnife4Sounds[][] =
  88. {
  89.     "weapons/knife_deploy1.wav",
  90.     "weapons/knife_hit1.wav",
  91.     "weapons/knife_hit2.wav",
  92.     "weapons/knife_hit3.wav",
  93.     "weapons/knife_hit4.wav",
  94.     "weapons/knife_hitwall1.wav",
  95.     "weapons/knife_slash1.wav",
  96.     "weapons/knife_slash2.wav",
  97.     "weapons/knife_stab.wav"
  98. }
  99.  
  100. new const g_szKnife5Sounds[][] =
  101. {
  102.     "weapons/knife_deploy1.wav",
  103.     "weapons/knife_hit1.wav",
  104.     "weapons/knife_hit2.wav",
  105.     "weapons/knife_hit3.wav",
  106.     "weapons/knife_hit4.wav",
  107.     "weapons/knife_hitwall1.wav",
  108.     "weapons/knife_slash1.wav",
  109.     "weapons/knife_slash2.wav",
  110.     "weapons/knife_stab.wav"
  111. }
  112.  
  113. new const g_szKnife6Sounds[][] =
  114. {
  115.     "weapons/knife_deploy1.wav",
  116.     "weapons/knife_hit1.wav",
  117.     "weapons/knife_hit2.wav",
  118.     "weapons/knife_hit3.wav",
  119.     "weapons/knife_hit4.wav",
  120.     "weapons/knife_hitwall1.wav",
  121.     "weapons/knife_slash1.wav",
  122.     "weapons/knife_slash2.wav",
  123.     "weapons/knife_stab.wav"
  124. }
  125.  
  126. new const g_szKnife7Sounds[][] =
  127. {
  128.     "weapons/knife_deploy1.wav",
  129.     "weapons/knife_hit1.wav",
  130.     "weapons/knife_hit2.wav",
  131.     "weapons/knife_hit3.wav",
  132.     "weapons/knife_hit4.wav",
  133.     "weapons/knife_hitwall1.wav",
  134.     "weapons/knife_slash1.wav",
  135.     "weapons/knife_slash2.wav",
  136.     "weapons/knife_stab.wav"
  137. }
  138.  
  139. new const g_szKnife8Sounds[][] =
  140. {
  141.     "weapons/knife_deploy1.wav",
  142.     "weapons/knife_hit1.wav",
  143.     "weapons/knife_hit2.wav",
  144.     "weapons/knife_hit3.wav",
  145.     "weapons/knife_hit4.wav",
  146.     "weapons/knife_hitwall1.wav",
  147.     "weapons/knife_slash1.wav",
  148.     "weapons/knife_slash2.wav",
  149.     "weapons/knife_stab.wav"
  150. }
  151.  
  152. new const g_szDefaultSounds[][] =
  153. {
  154.     "weapons/knife_deploy1.wav",
  155.     "weapons/knife_hit1.wav",
  156.     "weapons/knife_hit2.wav",
  157.     "weapons/knife_hit3.wav",
  158.     "weapons/knife_hit4.wav",
  159.     "weapons/knife_hitwall1.wav",
  160.     "weapons/knife_slash1.wav",
  161.     "weapons/knife_slash2.wav",
  162.     "weapons/knife_stab.wav"
  163. }
  164.  
  165. // Models indexes
  166. enum
  167. {
  168.     V_Model = 0,
  169.     P_Model
  170. }
  171.  
  172. public plugin_init()
  173. {
  174.     register_plugin("Knife Levels", "1.0", "lux")
  175.    
  176.     // Fakemeta
  177.     register_forward(FM_EmitSound, "Fw_EmitSound")
  178. }
  179.  
  180. public plugin_precache()
  181. {
  182.     new iIndex;
  183.    
  184.     // Prechace models
  185.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1); iIndex++)
  186.         precache_model(g_szKnife1[iIndex])
  187.    
  188.     for(iIndex = 0; iIndex <= charsmax(g_szKnife2); iIndex++)
  189.         precache_model(g_szKnife2[iIndex])
  190.  
  191.     for(iIndex = 0; iIndex <= charsmax(g_szKnife3); iIndex++)
  192.         precache_model(g_szKnife3[iIndex])
  193.  
  194.     for(iIndex = 0; iIndex <= charsmax(g_szKnife4); iIndex++)
  195.         precache_model(g_szKnife4[iIndex])
  196.  
  197.     for(iIndex = 0; iIndex <= charsmax(g_szKnife5); iIndex++)
  198.         precache_model(g_szKnife5[iIndex])
  199.  
  200.     for(iIndex = 0; iIndex <= charsmax(g_szKnife6); iIndex++)
  201.         precache_model(g_szKnife6[iIndex])
  202.  
  203.     for(iIndex = 0; iIndex <= charsmax(g_szKnife7); iIndex++)
  204.         precache_model(g_szKnife7[iIndex])
  205.  
  206.     for(iIndex = 0; iIndex <= charsmax(g_szKnife8); iIndex++)
  207.         precache_model(g_szKnife8[iIndex])
  208.    
  209.     // Prechace sounds
  210.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  211.         precache_sound(g_szKnife1Sounds[iIndex])
  212.  
  213.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  214.         precache_sound(g_szKnife1Sounds[iIndex])
  215. }
  216.  
  217. public ze_user_humanized(id)
  218. {
  219.     if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 4)
  220.     {
  221.         // Player level from 1 to 5 set him this knife
  222.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife1[V_Model])
  223.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife1[P_Model])
  224.        
  225.         ResetKnife(id)
  226.     }
  227.     else if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  228.     {
  229.         // Player level from 5 to 8 set him this knife
  230.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife2[V_Model])
  231.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife2[P_Model])
  232.        
  233.         ResetKnife(id)
  234.     }
  235.     else if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  236.     {
  237.         // Player level from 5 to 8 set him this knife
  238.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife3[V_Model])
  239.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife3[P_Model])
  240.        
  241.         ResetKnife(id)
  242.     }
  243.     else if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 19)
  244.     {
  245.         // Player level from 5 to 8 set him this knife
  246.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife4[V_Model])
  247.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife4[P_Model])
  248.        
  249.         ResetKnife(id)
  250.     }
  251.     else if (ze_get_user_level(id) >= 20 && ze_get_user_level(id) < 24)
  252.     {
  253.         // Player level from 26 to 30 set him this knife
  254.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife5[V_Model])
  255.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife5[P_Model])
  256.        
  257.         ResetKnife(id)
  258.     }
  259.     else if (ze_get_user_level(id) >= 25 && ze_get_user_level(id) < 29)
  260.     {
  261.         // Player level from 26 to 30 set him this knife
  262.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife6[V_Model])
  263.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife6[P_Model])
  264.        
  265.         ResetKnife(id)
  266.     }
  267.     else if (ze_get_user_level(id) >= 30 && ze_get_user_level(id) < 50)
  268.     {
  269.         // Player level from 26 to 30 set him this knife
  270.         cs_set_player_view_model(id, CSW_KNIFE, g_szKnife7[V_Model])
  271.         cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife7[P_Model])
  272.        
  273.         ResetKnife(id)
  274.     }
  275.  
  276. }
  277.  
  278. public ResetKnife(id)
  279. {
  280.     rg_remove_item(id, "weapon_knife")
  281.     rg_give_item(id, "weapon_knife", GT_APPEND)
  282.     engclient_cmd(id, "weapon_knife")
  283.     emit_sound(id, CHAN_BODY, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  284. }
  285.  
  286. public Fw_EmitSound(id, iChannel, const szSound[])
  287. {
  288.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  289.         return FMRES_IGNORED
  290.    
  291.     if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 0)
  292.     {
  293.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  294.         {
  295.             if (equal(g_szDefaultSounds[iIndex], szSound))
  296.             {
  297.                 emit_sound(id, iChannel, g_szKnife1Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  298.                 return FMRES_SUPERCEDE
  299.             }
  300.         }
  301.     }
  302.     else if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 5)
  303.     {
  304.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  305.         {
  306.             if (equal(g_szDefaultSounds[iIndex], szSound))
  307.             {
  308.                 emit_sound(id, iChannel, g_szKnife2Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  309.                 return FMRES_SUPERCEDE
  310.             }
  311.         }
  312.     }
  313.     else if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  314.     {
  315.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  316.         {
  317.             if (equal(g_szDefaultSounds[iIndex], szSound))
  318.             {
  319.                 emit_sound(id, iChannel, g_szKnife3Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  320.                 return FMRES_SUPERCEDE
  321.             }
  322.         }
  323.     }
  324.     else if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  325.     {
  326.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  327.         {
  328.             if (equal(g_szDefaultSounds[iIndex], szSound))
  329.             {
  330.                 emit_sound(id, iChannel, g_szKnife4Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  331.                 return FMRES_SUPERCEDE
  332.             }
  333.         }
  334.     }
  335.     else if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 20)
  336.     {
  337.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  338.         {
  339.             if (equal(g_szDefaultSounds[iIndex], szSound))
  340.             {
  341.                 emit_sound(id, iChannel, g_szKnife5Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  342.                 return FMRES_SUPERCEDE
  343.             }
  344.         }
  345.     }
  346.     else if (ze_get_user_level(id) >= 21 && ze_get_user_level(id) < 30)
  347.     {
  348.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  349.         {
  350.             if (equal(g_szDefaultSounds[iIndex], szSound))
  351.             {
  352.                 emit_sound(id, iChannel, g_szKnife6Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  353.                 return FMRES_SUPERCEDE
  354.             }
  355.         }
  356.     }
  357.     else if (ze_get_user_level(id) >= 31 && ze_get_user_level(id) < 40)
  358.     {
  359.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  360.         {
  361.             if (equal(g_szDefaultSounds[iIndex], szSound))
  362.             {
  363.                 emit_sound(id, iChannel, g_szKnife7Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  364.                 return FMRES_SUPERCEDE
  365.             }
  366.         }
  367.     }
  368.     else if (ze_get_user_level(id) >= 49 && ze_get_user_level(id) < 50)
  369.     {
  370.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  371.         {
  372.             if (equal(g_szDefaultSounds[iIndex], szSound))
  373.             {
  374.                 emit_sound(id, iChannel, g_szKnife8Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  375.                 return FMRES_SUPERCEDE
  376.             }
  377.         }
  378.     }
  379.    
  380.     return FMRES_IGNORED
  381. }

Re: Knife Menu With Lvl

Posted: 27 Nov 2020, 22:14
by Raheem
  1. #include <zombie_escape>
  2. #include <ze_levels>
  3.  
  4. // Models
  5. new const g_szKnife1[][] =
  6. {
  7.     "models/dg/v_knife_griff.mdl",
  8.     "models/dg/p_knife_griff1.mdl"
  9. }
  10.  
  11. new const g_szKnife2[][] =
  12. {
  13.     "models/dg/v_flip_t.mdl",
  14.     "models/dg/p_flip_t.mdl"
  15. }
  16. new const g_szKnife3[][] =
  17. {
  18.     "models/dg/v_butterfly_knife.mdl",
  19.     "models/dg/p_butterfly_knife.mdl"
  20. }
  21. new const g_szKnife4[][] =
  22. {
  23.     "models/dg/v_bayonet.mdl",
  24.     "models/dg/p_bayonet.mdl"
  25. }
  26. new const g_szKnife5[][] =
  27. {
  28.     "models/dg/v_knife_karambit.mdl",
  29.     "models/dg/p_knife_karambit.mdl"
  30. }
  31. new const g_szKnife6[][] =
  32. {
  33.     "models/dg/v_knife_karambit.mdl",
  34.     "models/dg/p_knife_karambit.mdl"
  35. }
  36. new const g_szKnife7[][] =
  37. {
  38.     "models/dg/v_knifew.mdl",
  39.     "models/dg/p_knifew.mdl"
  40. }
  41. new const g_szKnife8[][] =
  42. {
  43.     "models/dg/v_knifew.mdl",
  44.     "models/dg/p_knifew.mdl"
  45. }
  46.  
  47. // Sounds
  48. new const g_szKnife1Sounds[][] =
  49. {
  50.     "weapons/knife_deploy1.wav",
  51.     "weapons/knife_hit1.wav",
  52.     "weapons/knife_hit2.wav",
  53.     "weapons/knife_hit3.wav",
  54.     "weapons/knife_hit4.wav",
  55.     "weapons/knife_hitwall1.wav",
  56.     "weapons/knife_slash1.wav",
  57.     "weapons/knife_slash2.wav",
  58.     "weapons/knife_stab.wav"
  59. }
  60.  
  61. new const g_szKnife2Sounds[][] =
  62. {
  63.     "weapons/knife_deploy1.wav",
  64.     "weapons/knife_hit1.wav",
  65.     "weapons/knife_hit2.wav",
  66.     "weapons/knife_hit3.wav",
  67.     "weapons/knife_hit4.wav",
  68.     "weapons/knife_hitwall1.wav",
  69.     "weapons/knife_slash1.wav",
  70.     "weapons/knife_slash2.wav",
  71.     "weapons/knife_stab.wav"
  72. }
  73.  
  74. new const g_szKnife3Sounds[][] =
  75. {
  76.     "weapons/knife_deploy1.wav",
  77.     "weapons/knife_hit1.wav",
  78.     "weapons/knife_hit2.wav",
  79.     "weapons/knife_hit3.wav",
  80.     "weapons/knife_hit4.wav",
  81.     "weapons/knife_hitwall1.wav",
  82.     "weapons/knife_slash1.wav",
  83.     "weapons/knife_slash2.wav",
  84.     "weapons/knife_stab.wav"
  85. }
  86.  
  87. new const g_szKnife4Sounds[][] =
  88. {
  89.     "weapons/knife_deploy1.wav",
  90.     "weapons/knife_hit1.wav",
  91.     "weapons/knife_hit2.wav",
  92.     "weapons/knife_hit3.wav",
  93.     "weapons/knife_hit4.wav",
  94.     "weapons/knife_hitwall1.wav",
  95.     "weapons/knife_slash1.wav",
  96.     "weapons/knife_slash2.wav",
  97.     "weapons/knife_stab.wav"
  98. }
  99.  
  100. new const g_szKnife5Sounds[][] =
  101. {
  102.     "weapons/knife_deploy1.wav",
  103.     "weapons/knife_hit1.wav",
  104.     "weapons/knife_hit2.wav",
  105.     "weapons/knife_hit3.wav",
  106.     "weapons/knife_hit4.wav",
  107.     "weapons/knife_hitwall1.wav",
  108.     "weapons/knife_slash1.wav",
  109.     "weapons/knife_slash2.wav",
  110.     "weapons/knife_stab.wav"
  111. }
  112.  
  113. new const g_szKnife6Sounds[][] =
  114. {
  115.     "weapons/knife_deploy1.wav",
  116.     "weapons/knife_hit1.wav",
  117.     "weapons/knife_hit2.wav",
  118.     "weapons/knife_hit3.wav",
  119.     "weapons/knife_hit4.wav",
  120.     "weapons/knife_hitwall1.wav",
  121.     "weapons/knife_slash1.wav",
  122.     "weapons/knife_slash2.wav",
  123.     "weapons/knife_stab.wav"
  124. }
  125.  
  126. new const g_szKnife7Sounds[][] =
  127. {
  128.     "weapons/knife_deploy1.wav",
  129.     "weapons/knife_hit1.wav",
  130.     "weapons/knife_hit2.wav",
  131.     "weapons/knife_hit3.wav",
  132.     "weapons/knife_hit4.wav",
  133.     "weapons/knife_hitwall1.wav",
  134.     "weapons/knife_slash1.wav",
  135.     "weapons/knife_slash2.wav",
  136.     "weapons/knife_stab.wav"
  137. }
  138.  
  139. new const g_szKnife8Sounds[][] =
  140. {
  141.     "weapons/knife_deploy1.wav",
  142.     "weapons/knife_hit1.wav",
  143.     "weapons/knife_hit2.wav",
  144.     "weapons/knife_hit3.wav",
  145.     "weapons/knife_hit4.wav",
  146.     "weapons/knife_hitwall1.wav",
  147.     "weapons/knife_slash1.wav",
  148.     "weapons/knife_slash2.wav",
  149.     "weapons/knife_stab.wav"
  150. }
  151.  
  152. new const g_szDefaultSounds[][] =
  153. {
  154.     "weapons/knife_deploy1.wav",
  155.     "weapons/knife_hit1.wav",
  156.     "weapons/knife_hit2.wav",
  157.     "weapons/knife_hit3.wav",
  158.     "weapons/knife_hit4.wav",
  159.     "weapons/knife_hitwall1.wav",
  160.     "weapons/knife_slash1.wav",
  161.     "weapons/knife_slash2.wav",
  162.     "weapons/knife_stab.wav"
  163. }
  164.  
  165. // Models indexes
  166. enum
  167. {
  168.     V_Model = 0,
  169.     P_Model
  170. }
  171.  
  172. public plugin_init()
  173. {
  174.     register_plugin("Knife Levels", "1.0", "lux")
  175.    
  176.     // Fakemeta
  177.     register_forward(FM_EmitSound, "Fw_EmitSound")
  178.    
  179.     // Commands
  180.     register_clcmd("say /knife", "KnifeCommandHandler")
  181. }
  182.  
  183. public plugin_precache()
  184. {
  185.     new iIndex;
  186.    
  187.     // Prechace models
  188.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1); iIndex++)
  189.         precache_model(g_szKnife1[iIndex])
  190.    
  191.     for(iIndex = 0; iIndex <= charsmax(g_szKnife2); iIndex++)
  192.         precache_model(g_szKnife2[iIndex])
  193.  
  194.     for(iIndex = 0; iIndex <= charsmax(g_szKnife3); iIndex++)
  195.         precache_model(g_szKnife3[iIndex])
  196.  
  197.     for(iIndex = 0; iIndex <= charsmax(g_szKnife4); iIndex++)
  198.         precache_model(g_szKnife4[iIndex])
  199.  
  200.     for(iIndex = 0; iIndex <= charsmax(g_szKnife5); iIndex++)
  201.         precache_model(g_szKnife5[iIndex])
  202.  
  203.     for(iIndex = 0; iIndex <= charsmax(g_szKnife6); iIndex++)
  204.         precache_model(g_szKnife6[iIndex])
  205.  
  206.     for(iIndex = 0; iIndex <= charsmax(g_szKnife7); iIndex++)
  207.         precache_model(g_szKnife7[iIndex])
  208.  
  209.     for(iIndex = 0; iIndex <= charsmax(g_szKnife8); iIndex++)
  210.         precache_model(g_szKnife8[iIndex])
  211.    
  212.     // Prechace sounds
  213.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  214.         precache_sound(g_szKnife1Sounds[iIndex])
  215.  
  216.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  217.         precache_sound(g_szKnife1Sounds[iIndex])
  218. }
  219.  
  220. public KnifeCommandHandler(id)
  221. {
  222.     new iMenu = menu_create("Knives Menu:", "KnifeMenuHandler")
  223.    
  224.     menu_additem(iMenu, "\rKnife 1", "", 0)
  225.     menu_additem(iMenu, "\rKnife 2", "", 0)
  226.     menu_additem(iMenu, "\rKnife 3", "", 0)
  227.     menu_additem(iMenu, "\rKnife 4", "", 0)
  228.     menu_additem(iMenu, "\rKnife 5", "", 0)
  229.     menu_additem(iMenu, "\rKnife 6", "", 0)
  230.     menu_additem(iMenu, "\rKnife 7", "", 0)
  231.    
  232.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  233.     menu_display(id, iMenu, 0)
  234.    
  235.     // No more replies needed from the server...
  236.     return PLUGIN_HANDLED
  237. }
  238.  
  239. public KnifeMenuHandler(id, iMenu, iItem)
  240. {
  241.     switch (iMenu)
  242.     {
  243.         case 0:
  244.         {
  245.             if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 4)
  246.             {
  247.                 // Player level from 1 to 5 set him this knife
  248.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife1[V_Model])
  249.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife1[P_Model])
  250.                
  251.                 ResetKnife(id)
  252.             }
  253.         }
  254.         case 1:
  255.         {
  256.             if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  257.             {
  258.                 // Player level from 5 to 8 set him this knife
  259.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife2[V_Model])
  260.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife2[P_Model])
  261.                
  262.                 ResetKnife(id)
  263.             }
  264.         }
  265.         case 2:
  266.         {
  267.             if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  268.             {
  269.                 // Player level from 5 to 8 set him this knife
  270.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife3[V_Model])
  271.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife3[P_Model])
  272.                
  273.                 ResetKnife(id)
  274.             }
  275.         }
  276.         case 3:
  277.         {
  278.             if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 19)
  279.             {
  280.                 // Player level from 5 to 8 set him this knife
  281.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife4[V_Model])
  282.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife4[P_Model])
  283.                
  284.                 ResetKnife(id)
  285.             }
  286.         }
  287.         case 4:
  288.         {
  289.             if (ze_get_user_level(id) >= 20 && ze_get_user_level(id) < 24)
  290.             {
  291.                 // Player level from 26 to 30 set him this knife
  292.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife5[V_Model])
  293.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife5[P_Model])
  294.                
  295.                 ResetKnife(id)
  296.             }
  297.         }
  298.         case 5:
  299.         {
  300.             if (ze_get_user_level(id) >= 25 && ze_get_user_level(id) < 29)
  301.             {
  302.                 // Player level from 26 to 30 set him this knife
  303.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife6[V_Model])
  304.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife6[P_Model])
  305.                
  306.                 ResetKnife(id)
  307.             }
  308.         }
  309.         case 6:
  310.         {
  311.             if (ze_get_user_level(id) >= 30 && ze_get_user_level(id) < 50)
  312.             {
  313.                 // Player level from 26 to 30 set him this knife
  314.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife7[V_Model])
  315.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife7[P_Model])
  316.                
  317.                 ResetKnife(id)
  318.             }
  319.         }
  320.     }
  321.    
  322.     return PLUGIN_HANDLED
  323. }
  324.  
  325. public ResetKnife(id)
  326. {
  327.     rg_remove_item(id, "weapon_knife")
  328.     rg_give_item(id, "weapon_knife", GT_APPEND)
  329.     engclient_cmd(id, "weapon_knife")
  330.     emit_sound(id, CHAN_BODY, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  331. }
  332.  
  333. public Fw_EmitSound(id, iChannel, const szSound[])
  334. {
  335.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  336.         return FMRES_IGNORED
  337.    
  338.     if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 0)
  339.     {
  340.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  341.         {
  342.             if (equal(g_szDefaultSounds[iIndex], szSound))
  343.             {
  344.                 emit_sound(id, iChannel, g_szKnife1Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  345.                 return FMRES_SUPERCEDE
  346.             }
  347.         }
  348.     }
  349.     else if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 5)
  350.     {
  351.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  352.         {
  353.             if (equal(g_szDefaultSounds[iIndex], szSound))
  354.             {
  355.                 emit_sound(id, iChannel, g_szKnife2Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  356.                 return FMRES_SUPERCEDE
  357.             }
  358.         }
  359.     }
  360.     else if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  361.     {
  362.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  363.         {
  364.             if (equal(g_szDefaultSounds[iIndex], szSound))
  365.             {
  366.                 emit_sound(id, iChannel, g_szKnife3Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  367.                 return FMRES_SUPERCEDE
  368.             }
  369.         }
  370.     }
  371.     else if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  372.     {
  373.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  374.         {
  375.             if (equal(g_szDefaultSounds[iIndex], szSound))
  376.             {
  377.                 emit_sound(id, iChannel, g_szKnife4Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  378.                 return FMRES_SUPERCEDE
  379.             }
  380.         }
  381.     }
  382.     else if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 20)
  383.     {
  384.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  385.         {
  386.             if (equal(g_szDefaultSounds[iIndex], szSound))
  387.             {
  388.                 emit_sound(id, iChannel, g_szKnife5Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  389.                 return FMRES_SUPERCEDE
  390.             }
  391.         }
  392.     }
  393.     else if (ze_get_user_level(id) >= 21 && ze_get_user_level(id) < 30)
  394.     {
  395.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  396.         {
  397.             if (equal(g_szDefaultSounds[iIndex], szSound))
  398.             {
  399.                 emit_sound(id, iChannel, g_szKnife6Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  400.                 return FMRES_SUPERCEDE
  401.             }
  402.         }
  403.     }
  404.     else if (ze_get_user_level(id) >= 31 && ze_get_user_level(id) < 40)
  405.     {
  406.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  407.         {
  408.             if (equal(g_szDefaultSounds[iIndex], szSound))
  409.             {
  410.                 emit_sound(id, iChannel, g_szKnife7Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  411.                 return FMRES_SUPERCEDE
  412.             }
  413.         }
  414.     }
  415.     else if (ze_get_user_level(id) >= 49 && ze_get_user_level(id) < 50)
  416.     {
  417.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  418.         {
  419.             if (equal(g_szDefaultSounds[iIndex], szSound))
  420.             {
  421.                 emit_sound(id, iChannel, g_szKnife8Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  422.                 return FMRES_SUPERCEDE
  423.             }
  424.         }
  425.     }
  426.    
  427.     return FMRES_IGNORED
  428. }

Re: Knife Menu With Lvl

Posted: 28 Nov 2020, 18:23
by Luxurious
No Knife vip in menu ?

Re: Knife Menu With Lvl

Posted: 29 Nov 2020, 08:34
by Raheem
What you mean?

Re: Knife Menu With Lvl

Posted: 29 Nov 2020, 23:05
by Luxurious
i mean to add knife [VIP] in menu

and the menu is working but when i choose some knife from menu i don`t get the knife

Re: Knife Menu With Lvl

Posted: 30 Nov 2020, 03:36
by Raheem
Still not understand what you mean VIP knife.
If your level between some of these you should get the knife.

Re: Knife Menu With Lvl

Posted: 30 Nov 2020, 14:09
by Luxurious
i gave my self level 50 and i tried to choose the knifes but it not work

i mean 1 knife with access

Re: Knife Menu With Lvl

Posted: 01 Dec 2020, 01:45
by Raheem
Problem in the main code itself:
  1. #include <zombie_escape>
  2. #include <ze_levels>
  3.  
  4. // Models
  5. new const g_szKnife1[][] =
  6. {
  7.     "models/dg/v_knife_griff.mdl",
  8.     "models/dg/p_knife_griff1.mdl"
  9. }
  10.  
  11. new const g_szKnife2[][] =
  12. {
  13.     "models/dg/v_flip_t.mdl",
  14.     "models/dg/p_flip_t.mdl"
  15. }
  16. new const g_szKnife3[][] =
  17. {
  18.     "models/dg/v_butterfly_knife.mdl",
  19.     "models/dg/p_butterfly_knife.mdl"
  20. }
  21. new const g_szKnife4[][] =
  22. {
  23.     "models/dg/v_bayonet.mdl",
  24.     "models/dg/p_bayonet.mdl"
  25. }
  26. new const g_szKnife5[][] =
  27. {
  28.     "models/dg/v_knife_karambit.mdl",
  29.     "models/dg/p_knife_karambit.mdl"
  30. }
  31. new const g_szKnife6[][] =
  32. {
  33.     "models/dg/v_knife_karambit.mdl",
  34.     "models/dg/p_knife_karambit.mdl"
  35. }
  36. new const g_szKnife7[][] =
  37. {
  38.     "models/dg/v_knifew.mdl",
  39.     "models/dg/p_knifew.mdl"
  40. }
  41. new const g_szKnife8[][] =
  42. {
  43.     "models/dg/v_knifew.mdl",
  44.     "models/dg/p_knifew.mdl"
  45. }
  46.  
  47. // Sounds
  48. new const g_szKnife1Sounds[][] =
  49. {
  50.     "weapons/knife_deploy1.wav",
  51.     "weapons/knife_hit1.wav",
  52.     "weapons/knife_hit2.wav",
  53.     "weapons/knife_hit3.wav",
  54.     "weapons/knife_hit4.wav",
  55.     "weapons/knife_hitwall1.wav",
  56.     "weapons/knife_slash1.wav",
  57.     "weapons/knife_slash2.wav",
  58.     "weapons/knife_stab.wav"
  59. }
  60.  
  61. new const g_szKnife2Sounds[][] =
  62. {
  63.     "weapons/knife_deploy1.wav",
  64.     "weapons/knife_hit1.wav",
  65.     "weapons/knife_hit2.wav",
  66.     "weapons/knife_hit3.wav",
  67.     "weapons/knife_hit4.wav",
  68.     "weapons/knife_hitwall1.wav",
  69.     "weapons/knife_slash1.wav",
  70.     "weapons/knife_slash2.wav",
  71.     "weapons/knife_stab.wav"
  72. }
  73.  
  74. new const g_szKnife3Sounds[][] =
  75. {
  76.     "weapons/knife_deploy1.wav",
  77.     "weapons/knife_hit1.wav",
  78.     "weapons/knife_hit2.wav",
  79.     "weapons/knife_hit3.wav",
  80.     "weapons/knife_hit4.wav",
  81.     "weapons/knife_hitwall1.wav",
  82.     "weapons/knife_slash1.wav",
  83.     "weapons/knife_slash2.wav",
  84.     "weapons/knife_stab.wav"
  85. }
  86.  
  87. new const g_szKnife4Sounds[][] =
  88. {
  89.     "weapons/knife_deploy1.wav",
  90.     "weapons/knife_hit1.wav",
  91.     "weapons/knife_hit2.wav",
  92.     "weapons/knife_hit3.wav",
  93.     "weapons/knife_hit4.wav",
  94.     "weapons/knife_hitwall1.wav",
  95.     "weapons/knife_slash1.wav",
  96.     "weapons/knife_slash2.wav",
  97.     "weapons/knife_stab.wav"
  98. }
  99.  
  100. new const g_szKnife5Sounds[][] =
  101. {
  102.     "weapons/knife_deploy1.wav",
  103.     "weapons/knife_hit1.wav",
  104.     "weapons/knife_hit2.wav",
  105.     "weapons/knife_hit3.wav",
  106.     "weapons/knife_hit4.wav",
  107.     "weapons/knife_hitwall1.wav",
  108.     "weapons/knife_slash1.wav",
  109.     "weapons/knife_slash2.wav",
  110.     "weapons/knife_stab.wav"
  111. }
  112.  
  113. new const g_szKnife6Sounds[][] =
  114. {
  115.     "weapons/knife_deploy1.wav",
  116.     "weapons/knife_hit1.wav",
  117.     "weapons/knife_hit2.wav",
  118.     "weapons/knife_hit3.wav",
  119.     "weapons/knife_hit4.wav",
  120.     "weapons/knife_hitwall1.wav",
  121.     "weapons/knife_slash1.wav",
  122.     "weapons/knife_slash2.wav",
  123.     "weapons/knife_stab.wav"
  124. }
  125.  
  126. new const g_szKnife7Sounds[][] =
  127. {
  128.     "weapons/knife_deploy1.wav",
  129.     "weapons/knife_hit1.wav",
  130.     "weapons/knife_hit2.wav",
  131.     "weapons/knife_hit3.wav",
  132.     "weapons/knife_hit4.wav",
  133.     "weapons/knife_hitwall1.wav",
  134.     "weapons/knife_slash1.wav",
  135.     "weapons/knife_slash2.wav",
  136.     "weapons/knife_stab.wav"
  137. }
  138.  
  139. new const g_szKnife8Sounds[][] =
  140. {
  141.     "weapons/knife_deploy1.wav",
  142.     "weapons/knife_hit1.wav",
  143.     "weapons/knife_hit2.wav",
  144.     "weapons/knife_hit3.wav",
  145.     "weapons/knife_hit4.wav",
  146.     "weapons/knife_hitwall1.wav",
  147.     "weapons/knife_slash1.wav",
  148.     "weapons/knife_slash2.wav",
  149.     "weapons/knife_stab.wav"
  150. }
  151.  
  152. new const g_szDefaultSounds[][] =
  153. {
  154.     "weapons/knife_deploy1.wav",
  155.     "weapons/knife_hit1.wav",
  156.     "weapons/knife_hit2.wav",
  157.     "weapons/knife_hit3.wav",
  158.     "weapons/knife_hit4.wav",
  159.     "weapons/knife_hitwall1.wav",
  160.     "weapons/knife_slash1.wav",
  161.     "weapons/knife_slash2.wav",
  162.     "weapons/knife_stab.wav"
  163. }
  164.  
  165. // Models indexes
  166. enum
  167. {
  168.     V_Model = 0,
  169.     P_Model
  170. }
  171.  
  172. public plugin_init()
  173. {
  174.     register_plugin("Knife Levels", "1.0", "lux")
  175.    
  176.     // Fakemeta
  177.     register_forward(FM_EmitSound, "Fw_EmitSound")
  178.    
  179.     // Commands
  180.     register_clcmd("say /knife", "KnifeCommandHandler")
  181. }
  182.  
  183. public plugin_precache()
  184. {
  185.     new iIndex;
  186.    
  187.     // Prechace models
  188.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1); iIndex++)
  189.         precache_model(g_szKnife1[iIndex])
  190.    
  191.     for(iIndex = 0; iIndex <= charsmax(g_szKnife2); iIndex++)
  192.         precache_model(g_szKnife2[iIndex])
  193.  
  194.     for(iIndex = 0; iIndex <= charsmax(g_szKnife3); iIndex++)
  195.         precache_model(g_szKnife3[iIndex])
  196.  
  197.     for(iIndex = 0; iIndex <= charsmax(g_szKnife4); iIndex++)
  198.         precache_model(g_szKnife4[iIndex])
  199.  
  200.     for(iIndex = 0; iIndex <= charsmax(g_szKnife5); iIndex++)
  201.         precache_model(g_szKnife5[iIndex])
  202.  
  203.     for(iIndex = 0; iIndex <= charsmax(g_szKnife6); iIndex++)
  204.         precache_model(g_szKnife6[iIndex])
  205.  
  206.     for(iIndex = 0; iIndex <= charsmax(g_szKnife7); iIndex++)
  207.         precache_model(g_szKnife7[iIndex])
  208.  
  209.     for(iIndex = 0; iIndex <= charsmax(g_szKnife8); iIndex++)
  210.         precache_model(g_szKnife8[iIndex])
  211.    
  212.     // Prechace sounds
  213.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  214.         precache_sound(g_szKnife1Sounds[iIndex])
  215.  
  216.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  217.         precache_sound(g_szKnife1Sounds[iIndex])
  218. }
  219.  
  220. public KnifeCommandHandler(id)
  221. {
  222.     new iMenu = menu_create("Knives Menu:", "KnifeMenuHandler")
  223.    
  224.     menu_additem(iMenu, "\rKnife 1", "", 0)
  225.     menu_additem(iMenu, "\rKnife 2", "", 0)
  226.     menu_additem(iMenu, "\rKnife 3", "", 0)
  227.     menu_additem(iMenu, "\rKnife 4", "", 0)
  228.     menu_additem(iMenu, "\rKnife 5", "", 0)
  229.     menu_additem(iMenu, "\rKnife 6", "", 0)
  230.     menu_additem(iMenu, "\rKnife 7", "", 0)
  231.    
  232.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  233.     menu_display(id, iMenu, 0)
  234.    
  235.     // No more replies needed from the server...
  236.     return PLUGIN_HANDLED
  237. }
  238.  
  239. public KnifeMenuHandler(id, iMenu, iItem)
  240. {
  241.     switch (iMenu)
  242.     {
  243.         case 0:
  244.         {
  245.             if (ze_get_user_level(id) >= 4)
  246.             {
  247.                 // Player level from 1 to 5 set him this knife
  248.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife1[V_Model])
  249.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife1[P_Model])
  250.                
  251.                 ResetKnife(id)
  252.             }
  253.         }
  254.         case 1:
  255.         {
  256.             if (ze_get_user_level(id) >= 9)
  257.             {
  258.                 // Player level from 5 to 8 set him this knife
  259.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife2[V_Model])
  260.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife2[P_Model])
  261.                
  262.                 ResetKnife(id)
  263.             }
  264.         }
  265.         case 2:
  266.         {
  267.             if (ze_get_user_level(id) >= 14)
  268.             {
  269.                 // Player level from 5 to 8 set him this knife
  270.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife3[V_Model])
  271.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife3[P_Model])
  272.                
  273.                 ResetKnife(id)
  274.             }
  275.         }
  276.         case 3:
  277.         {
  278.             if (ze_get_user_level(id) >= 19)
  279.             {
  280.                 // Player level from 5 to 8 set him this knife
  281.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife4[V_Model])
  282.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife4[P_Model])
  283.                
  284.                 ResetKnife(id)
  285.             }
  286.         }
  287.         case 4:
  288.         {
  289.             if (ze_get_user_level(id) >= 24)
  290.             {
  291.                 // Player level from 26 to 30 set him this knife
  292.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife5[V_Model])
  293.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife5[P_Model])
  294.                
  295.                 ResetKnife(id)
  296.             }
  297.         }
  298.         case 5:
  299.         {
  300.             if (ze_get_user_level(id) >= 29)
  301.             {
  302.                 // Player level from 26 to 30 set him this knife
  303.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife6[V_Model])
  304.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife6[P_Model])
  305.                
  306.                 ResetKnife(id)
  307.             }
  308.         }
  309.         case 6:
  310.         {
  311.             if (ze_get_user_level(id) >= 50)
  312.             {
  313.                 // Player level from 26 to 30 set him this knife
  314.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife7[V_Model])
  315.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife7[P_Model])
  316.                
  317.                 ResetKnife(id)
  318.             }
  319.         }
  320.     }
  321.    
  322.     return PLUGIN_HANDLED
  323. }
  324.  
  325. public ResetKnife(id)
  326. {
  327.     rg_remove_item(id, "weapon_knife")
  328.     rg_give_item(id, "weapon_knife", GT_APPEND)
  329.     engclient_cmd(id, "weapon_knife")
  330.     emit_sound(id, CHAN_BODY, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  331. }
  332.  
  333. public Fw_EmitSound(id, iChannel, const szSound[])
  334. {
  335.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  336.         return FMRES_IGNORED
  337.    
  338.     if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 0)
  339.     {
  340.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  341.         {
  342.             if (equal(g_szDefaultSounds[iIndex], szSound))
  343.             {
  344.                 emit_sound(id, iChannel, g_szKnife1Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  345.                 return FMRES_SUPERCEDE
  346.             }
  347.         }
  348.     }
  349.     else if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 5)
  350.     {
  351.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  352.         {
  353.             if (equal(g_szDefaultSounds[iIndex], szSound))
  354.             {
  355.                 emit_sound(id, iChannel, g_szKnife2Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  356.                 return FMRES_SUPERCEDE
  357.             }
  358.         }
  359.     }
  360.     else if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  361.     {
  362.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  363.         {
  364.             if (equal(g_szDefaultSounds[iIndex], szSound))
  365.             {
  366.                 emit_sound(id, iChannel, g_szKnife3Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  367.                 return FMRES_SUPERCEDE
  368.             }
  369.         }
  370.     }
  371.     else if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  372.     {
  373.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  374.         {
  375.             if (equal(g_szDefaultSounds[iIndex], szSound))
  376.             {
  377.                 emit_sound(id, iChannel, g_szKnife4Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  378.                 return FMRES_SUPERCEDE
  379.             }
  380.         }
  381.     }
  382.     else if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 20)
  383.     {
  384.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  385.         {
  386.             if (equal(g_szDefaultSounds[iIndex], szSound))
  387.             {
  388.                 emit_sound(id, iChannel, g_szKnife5Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  389.                 return FMRES_SUPERCEDE
  390.             }
  391.         }
  392.     }
  393.     else if (ze_get_user_level(id) >= 21 && ze_get_user_level(id) < 30)
  394.     {
  395.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  396.         {
  397.             if (equal(g_szDefaultSounds[iIndex], szSound))
  398.             {
  399.                 emit_sound(id, iChannel, g_szKnife6Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  400.                 return FMRES_SUPERCEDE
  401.             }
  402.         }
  403.     }
  404.     else if (ze_get_user_level(id) >= 31 && ze_get_user_level(id) < 40)
  405.     {
  406.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  407.         {
  408.             if (equal(g_szDefaultSounds[iIndex], szSound))
  409.             {
  410.                 emit_sound(id, iChannel, g_szKnife7Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  411.                 return FMRES_SUPERCEDE
  412.             }
  413.         }
  414.     }
  415.     else if (ze_get_user_level(id) >= 49 && ze_get_user_level(id) < 50)
  416.     {
  417.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  418.         {
  419.             if (equal(g_szDefaultSounds[iIndex], szSound))
  420.             {
  421.                 emit_sound(id, iChannel, g_szKnife8Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  422.                 return FMRES_SUPERCEDE
  423.             }
  424.         }
  425.     }
  426.    
  427.     return FMRES_IGNORED
  428. }

Also edit: To be same as what I did in:

Re: Knife Menu With Lvl

Posted: 05 Dec 2020, 00:18
by Luxurious
@Raheem
I got error

Re: Knife Menu With Lvl

Posted: 05 Dec 2020, 07:50
by Raheem
Post the code you get errors with.

Re: Knife Menu With Lvl

Posted: 05 Dec 2020, 11:35
by Luxurious
Raheem wrote: ↑3 years ago Post the code you get errors with.
  1. #include <zombie_escape>
  2. #include <ze_levels>
  3.  
  4. // Models
  5. new const g_szKnife1[][] =
  6. {
  7.     "models/dg/v_knife_griff.mdl",
  8.     "models/dg/p_knife_griff1.mdl"
  9. }
  10.  
  11. new const g_szKnife2[][] =
  12. {
  13.     "models/dg/v_flip_t.mdl",
  14.     "models/dg/p_flip_t.mdl"
  15. }
  16. new const g_szKnife3[][] =
  17. {
  18.     "models/dg/v_butterfly_knife.mdl",
  19.     "models/dg/p_butterfly_knife.mdl"
  20. }
  21. new const g_szKnife4[][] =
  22. {
  23.     "models/dg/v_bayonet.mdl",
  24.     "models/dg/p_bayonet.mdl"
  25. }
  26. new const g_szKnife5[][] =
  27. {
  28.     "models/dg/v_knife_karambit.mdl",
  29.     "models/dg/p_knife_karambit.mdl"
  30. }
  31. new const g_szKnife6[][] =
  32. {
  33.     "models/dg/v_knife_karambit.mdl",
  34.     "models/dg/p_knife_karambit.mdl"
  35. }
  36. new const g_szKnife7[][] =
  37. {
  38.     "models/dg/v_knifew.mdl",
  39.     "models/dg/p_knifew.mdl"
  40. }
  41. new const g_szKnife8[][] =
  42. {
  43.     "models/dg/v_knifew.mdl",
  44.     "models/dg/p_knifew.mdl"
  45. }
  46.  
  47. // Sounds
  48. new const g_szKnife1Sounds[][] =
  49. {
  50.     "weapons/knife_deploy1.wav",
  51.     "weapons/knife_hit1.wav",
  52.     "weapons/knife_hit2.wav",
  53.     "weapons/knife_hit3.wav",
  54.     "weapons/knife_hit4.wav",
  55.     "weapons/knife_hitwall1.wav",
  56.     "weapons/knife_slash1.wav",
  57.     "weapons/knife_slash2.wav",
  58.     "weapons/knife_stab.wav"
  59. }
  60.  
  61. new const g_szKnife2Sounds[][] =
  62. {
  63.     "weapons/knife_deploy1.wav",
  64.     "weapons/knife_hit1.wav",
  65.     "weapons/knife_hit2.wav",
  66.     "weapons/knife_hit3.wav",
  67.     "weapons/knife_hit4.wav",
  68.     "weapons/knife_hitwall1.wav",
  69.     "weapons/knife_slash1.wav",
  70.     "weapons/knife_slash2.wav",
  71.     "weapons/knife_stab.wav"
  72. }
  73.  
  74. new const g_szKnife3Sounds[][] =
  75. {
  76.     "weapons/knife_deploy1.wav",
  77.     "weapons/knife_hit1.wav",
  78.     "weapons/knife_hit2.wav",
  79.     "weapons/knife_hit3.wav",
  80.     "weapons/knife_hit4.wav",
  81.     "weapons/knife_hitwall1.wav",
  82.     "weapons/knife_slash1.wav",
  83.     "weapons/knife_slash2.wav",
  84.     "weapons/knife_stab.wav"
  85. }
  86.  
  87. new const g_szKnife4Sounds[][] =
  88. {
  89.     "weapons/knife_deploy1.wav",
  90.     "weapons/knife_hit1.wav",
  91.     "weapons/knife_hit2.wav",
  92.     "weapons/knife_hit3.wav",
  93.     "weapons/knife_hit4.wav",
  94.     "weapons/knife_hitwall1.wav",
  95.     "weapons/knife_slash1.wav",
  96.     "weapons/knife_slash2.wav",
  97.     "weapons/knife_stab.wav"
  98. }
  99.  
  100. new const g_szKnife5Sounds[][] =
  101. {
  102.     "weapons/knife_deploy1.wav",
  103.     "weapons/knife_hit1.wav",
  104.     "weapons/knife_hit2.wav",
  105.     "weapons/knife_hit3.wav",
  106.     "weapons/knife_hit4.wav",
  107.     "weapons/knife_hitwall1.wav",
  108.     "weapons/knife_slash1.wav",
  109.     "weapons/knife_slash2.wav",
  110.     "weapons/knife_stab.wav"
  111. }
  112.  
  113. new const g_szKnife6Sounds[][] =
  114. {
  115.     "weapons/knife_deploy1.wav",
  116.     "weapons/knife_hit1.wav",
  117.     "weapons/knife_hit2.wav",
  118.     "weapons/knife_hit3.wav",
  119.     "weapons/knife_hit4.wav",
  120.     "weapons/knife_hitwall1.wav",
  121.     "weapons/knife_slash1.wav",
  122.     "weapons/knife_slash2.wav",
  123.     "weapons/knife_stab.wav"
  124. }
  125.  
  126. new const g_szKnife7Sounds[][] =
  127. {
  128.     "weapons/knife_deploy1.wav",
  129.     "weapons/knife_hit1.wav",
  130.     "weapons/knife_hit2.wav",
  131.     "weapons/knife_hit3.wav",
  132.     "weapons/knife_hit4.wav",
  133.     "weapons/knife_hitwall1.wav",
  134.     "weapons/knife_slash1.wav",
  135.     "weapons/knife_slash2.wav",
  136.     "weapons/knife_stab.wav"
  137. }
  138.  
  139. new const g_szKnife8Sounds[][] =
  140. {
  141.     "weapons/knife_deploy1.wav",
  142.     "weapons/knife_hit1.wav",
  143.     "weapons/knife_hit2.wav",
  144.     "weapons/knife_hit3.wav",
  145.     "weapons/knife_hit4.wav",
  146.     "weapons/knife_hitwall1.wav",
  147.     "weapons/knife_slash1.wav",
  148.     "weapons/knife_slash2.wav",
  149.     "weapons/knife_stab.wav"
  150. }
  151.  
  152. new const g_szDefaultSounds[][] =
  153. {
  154.     "weapons/knife_deploy1.wav",
  155.     "weapons/knife_hit1.wav",
  156.     "weapons/knife_hit2.wav",
  157.     "weapons/knife_hit3.wav",
  158.     "weapons/knife_hit4.wav",
  159.     "weapons/knife_hitwall1.wav",
  160.     "weapons/knife_slash1.wav",
  161.     "weapons/knife_slash2.wav",
  162.     "weapons/knife_stab.wav"
  163. }
  164.  
  165. // Models indexes
  166. enum
  167. {
  168.     V_Model = 0,
  169.     P_Model
  170. }
  171.  
  172. public plugin_init()
  173. {
  174.     register_plugin("Knife Levels", "1.0", "lux")
  175.    
  176.     // Fakemeta
  177.     register_forward(Fw_KnifeMenuHandler, "Fw_KnifeMenuHandler")
  178.    
  179.     // Commands
  180.     register_clcmd("say /knife", "KnifeCommandHandler")
  181. }
  182.  
  183. public plugin_precache()
  184. {
  185.     new iIndex;
  186.    
  187.     // Prechace models
  188.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1); iIndex++)
  189.         precache_model(g_szKnife1[iIndex])
  190.    
  191.     for(iIndex = 0; iIndex <= charsmax(g_szKnife2); iIndex++)
  192.         precache_model(g_szKnife2[iIndex])
  193.  
  194.     for(iIndex = 0; iIndex <= charsmax(g_szKnife3); iIndex++)
  195.         precache_model(g_szKnife3[iIndex])
  196.  
  197.     for(iIndex = 0; iIndex <= charsmax(g_szKnife4); iIndex++)
  198.         precache_model(g_szKnife4[iIndex])
  199.  
  200.     for(iIndex = 0; iIndex <= charsmax(g_szKnife5); iIndex++)
  201.         precache_model(g_szKnife5[iIndex])
  202.  
  203.     for(iIndex = 0; iIndex <= charsmax(g_szKnife6); iIndex++)
  204.         precache_model(g_szKnife6[iIndex])
  205.  
  206.     for(iIndex = 0; iIndex <= charsmax(g_szKnife7); iIndex++)
  207.         precache_model(g_szKnife7[iIndex])
  208.  
  209.     for(iIndex = 0; iIndex <= charsmax(g_szKnife8); iIndex++)
  210.         precache_model(g_szKnife8[iIndex])
  211.    
  212.     // Prechace sounds
  213.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  214.         precache_sound(g_szKnife1Sounds[iIndex])
  215.  
  216.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  217.         precache_sound(g_szKnife1Sounds[iIndex])
  218. }
  219.  
  220. public KnifeCommandHandler(id)
  221. {
  222.     new iMenu = menu_create("Knives Menu:", "KnifeMenuHandler")
  223.    
  224.     menu_additem(iMenu, "\rKnife 1", "", 0)
  225.     menu_additem(iMenu, "\rKnife 2", "", 0)
  226.     menu_additem(iMenu, "\rKnife 3", "", 0)
  227.     menu_additem(iMenu, "\rKnife 4", "", 0)
  228.     menu_additem(iMenu, "\rKnife 5", "", 0)
  229.     menu_additem(iMenu, "\rKnife 6", "", 0)
  230.     menu_additem(iMenu, "\rKnife 7", "", 0)
  231.    
  232.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  233.     menu_display(id, iMenu, 0)
  234.    
  235.     // No more replies needed from the server...
  236.     return PLUGIN_HANDLED
  237. }
  238.  
  239. public KnifeMenuHandler(id, iMenu, iItem)
  240. {
  241.     switch (iMenu)
  242.     {
  243.         case 0:
  244.         {
  245.             if (ze_get_user_level(id) >= 4)
  246.             {
  247.                 // Player level from 1 to 5 set him this knife
  248.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife1[V_Model])
  249.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife1[P_Model])
  250.                
  251.                 ResetKnife(id)
  252.             }
  253.         }
  254.         case 1:
  255.         {
  256.             if (ze_get_user_level(id) >= 9)
  257.             {
  258.                 // Player level from 5 to 8 set him this knife
  259.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife2[V_Model])
  260.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife2[P_Model])
  261.                
  262.                 ResetKnife(id)
  263.             }
  264.         }
  265.         case 2:
  266.         {
  267.             if (ze_get_user_level(id) >= 14)
  268.             {
  269.                 // Player level from 5 to 8 set him this knife
  270.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife3[V_Model])
  271.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife3[P_Model])
  272.                
  273.                 ResetKnife(id)
  274.             }
  275.         }
  276.         case 3:
  277.         {
  278.             if (ze_get_user_level(id) >= 19)
  279.             {
  280.                 // Player level from 5 to 8 set him this knife
  281.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife4[V_Model])
  282.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife4[P_Model])
  283.                
  284.                 ResetKnife(id)
  285.             }
  286.         }
  287.         case 4:
  288.         {
  289.             if (ze_get_user_level(id) >= 24)
  290.             {
  291.                 // Player level from 26 to 30 set him this knife
  292.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife5[V_Model])
  293.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife5[P_Model])
  294.                
  295.                 ResetKnife(id)
  296.             }
  297.         }
  298.         case 5:
  299.         {
  300.             if (ze_get_user_level(id) >= 29)
  301.             {
  302.                 // Player level from 26 to 30 set him this knife
  303.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife6[V_Model])
  304.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife6[P_Model])
  305.                
  306.                 ResetKnife(id)
  307.             }
  308.         }
  309.         case 6:
  310.         {
  311.             if (ze_get_user_level(id) >= 50)
  312.             {
  313.                 // Player level from 26 to 30 set him this knife
  314.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife7[V_Model])
  315.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife7[P_Model])
  316.                
  317.                 ResetKnife(id)
  318.             }
  319.         }
  320.     }
  321.    
  322.     return PLUGIN_HANDLED
  323. }
  324.  
  325. public ResetKnife(id)
  326. {
  327.     rg_remove_item(id, "weapon_knife")
  328.     rg_give_item(id, "weapon_knife", GT_APPEND)
  329.     engclient_cmd(id, "weapon_knife")
  330.     KnifeMenuHandler(id, CHAN_BODY, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  331. }
  332.  
  333. public KnifeMenuHandler(id, iMenu, iItem)
  334. {
  335.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  336.         return FMRES_IGNORED
  337.    
  338.     if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 0)
  339.     {
  340.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  341.         {
  342.             if (equal(g_szDefaultSounds[iIndex], szSound))
  343.             {
  344.                 KnifeMenuHandler(id, iMenu, g_szKnife1Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  345.                 return FMRES_SUPERCEDE
  346.             }
  347.         }
  348.     }
  349.     else if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 5)
  350.     {
  351.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  352.         {
  353.             if (equal(g_szDefaultSounds[iIndex], szSound))
  354.             {
  355.                 KnifeMenuHandler(id, iMenu, g_szKnife2Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  356.                 return FMRES_SUPERCEDE
  357.             }
  358.         }
  359.     }
  360.     else if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  361.     {
  362.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  363.         {
  364.             if (equal(g_szDefaultSounds[iIndex], szSound))
  365.             {
  366.                 KnifeMenuHandler(id, iMenu, g_szKnife3Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  367.                 return FMRES_SUPERCEDE
  368.             }
  369.         }
  370.     }
  371.     else if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  372.     {
  373.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  374.         {
  375.             if (equal(g_szDefaultSounds[iIndex], szSound))
  376.             {
  377.                 KnifeMenuHandler(id, iMenu, g_szKnife4Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  378.                 return FMRES_SUPERCEDE
  379.             }
  380.         }
  381.     }
  382.     else if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 20)
  383.     {
  384.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  385.         {
  386.             if (equal(g_szDefaultSounds[iIndex], szSound))
  387.             {
  388.                 KnifeMenuHandler(id, iMenu, g_szKnife5Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  389.                 return FMRES_SUPERCEDE
  390.             }
  391.         }
  392.     }
  393.     else if (ze_get_user_level(id) >= 21 && ze_get_user_level(id) < 30)
  394.     {
  395.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  396.         {
  397.             if (equal(g_szDefaultSounds[iIndex], szSound))
  398.             {
  399.                 KnifeMenuHandler(id, iMenu, g_szKnife6Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  400.                 return FMRES_SUPERCEDE
  401.             }
  402.         }
  403.     }
  404.     else if (ze_get_user_level(id) >= 31 && ze_get_user_level(id) < 40)
  405.     {
  406.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  407.         {
  408.             if (equal(g_szDefaultSounds[iIndex], szSound))
  409.             {
  410.                 KnifeMenuHandler(id, iMenu, g_szKnife7Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  411.                 return FMRES_SUPERCEDE
  412.             }
  413.         }
  414.     }
  415.     else if (ze_get_user_level(id) >= 49 && ze_get_user_level(id) < 50)
  416.     {
  417.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  418.         {
  419.             if (equal(g_szDefaultSounds[iIndex], szSound))
  420.             {
  421.                 KnifeMenuHandler(id, iMenu, g_szKnife8Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  422.                 return FMRES_SUPERCEDE
  423.             }
  424.         }
  425.     }
  426.    
  427.     return FMRES_IGNORED
  428. }

Re: Knife Menu With Lvl

Posted: 06 Dec 2020, 03:25
by Evillious Energy
Luxurious wrote: ↑3 years ago
Raheem wrote: ↑3 years ago Post the code you get errors with.
  1. #include <zombie_escape>
  2. #include <ze_levels>
  3.  
  4. // Models
  5. new const g_szKnife1[][] =
  6. {
  7.     "models/dg/v_knife_griff.mdl",
  8.     "models/dg/p_knife_griff1.mdl"
  9. }
  10.  
  11. new const g_szKnife2[][] =
  12. {
  13.     "models/dg/v_flip_t.mdl",
  14.     "models/dg/p_flip_t.mdl"
  15. }
  16. new const g_szKnife3[][] =
  17. {
  18.     "models/dg/v_butterfly_knife.mdl",
  19.     "models/dg/p_butterfly_knife.mdl"
  20. }
  21. new const g_szKnife4[][] =
  22. {
  23.     "models/dg/v_bayonet.mdl",
  24.     "models/dg/p_bayonet.mdl"
  25. }
  26. new const g_szKnife5[][] =
  27. {
  28.     "models/dg/v_knife_karambit.mdl",
  29.     "models/dg/p_knife_karambit.mdl"
  30. }
  31. new const g_szKnife6[][] =
  32. {
  33.     "models/dg/v_knife_karambit.mdl",
  34.     "models/dg/p_knife_karambit.mdl"
  35. }
  36. new const g_szKnife7[][] =
  37. {
  38.     "models/dg/v_knifew.mdl",
  39.     "models/dg/p_knifew.mdl"
  40. }
  41. new const g_szKnife8[][] =
  42. {
  43.     "models/dg/v_knifew.mdl",
  44.     "models/dg/p_knifew.mdl"
  45. }
  46.  
  47. // Sounds
  48. new const g_szKnife1Sounds[][] =
  49. {
  50.     "weapons/knife_deploy1.wav",
  51.     "weapons/knife_hit1.wav",
  52.     "weapons/knife_hit2.wav",
  53.     "weapons/knife_hit3.wav",
  54.     "weapons/knife_hit4.wav",
  55.     "weapons/knife_hitwall1.wav",
  56.     "weapons/knife_slash1.wav",
  57.     "weapons/knife_slash2.wav",
  58.     "weapons/knife_stab.wav"
  59. }
  60.  
  61. new const g_szKnife2Sounds[][] =
  62. {
  63.     "weapons/knife_deploy1.wav",
  64.     "weapons/knife_hit1.wav",
  65.     "weapons/knife_hit2.wav",
  66.     "weapons/knife_hit3.wav",
  67.     "weapons/knife_hit4.wav",
  68.     "weapons/knife_hitwall1.wav",
  69.     "weapons/knife_slash1.wav",
  70.     "weapons/knife_slash2.wav",
  71.     "weapons/knife_stab.wav"
  72. }
  73.  
  74. new const g_szKnife3Sounds[][] =
  75. {
  76.     "weapons/knife_deploy1.wav",
  77.     "weapons/knife_hit1.wav",
  78.     "weapons/knife_hit2.wav",
  79.     "weapons/knife_hit3.wav",
  80.     "weapons/knife_hit4.wav",
  81.     "weapons/knife_hitwall1.wav",
  82.     "weapons/knife_slash1.wav",
  83.     "weapons/knife_slash2.wav",
  84.     "weapons/knife_stab.wav"
  85. }
  86.  
  87. new const g_szKnife4Sounds[][] =
  88. {
  89.     "weapons/knife_deploy1.wav",
  90.     "weapons/knife_hit1.wav",
  91.     "weapons/knife_hit2.wav",
  92.     "weapons/knife_hit3.wav",
  93.     "weapons/knife_hit4.wav",
  94.     "weapons/knife_hitwall1.wav",
  95.     "weapons/knife_slash1.wav",
  96.     "weapons/knife_slash2.wav",
  97.     "weapons/knife_stab.wav"
  98. }
  99.  
  100. new const g_szKnife5Sounds[][] =
  101. {
  102.     "weapons/knife_deploy1.wav",
  103.     "weapons/knife_hit1.wav",
  104.     "weapons/knife_hit2.wav",
  105.     "weapons/knife_hit3.wav",
  106.     "weapons/knife_hit4.wav",
  107.     "weapons/knife_hitwall1.wav",
  108.     "weapons/knife_slash1.wav",
  109.     "weapons/knife_slash2.wav",
  110.     "weapons/knife_stab.wav"
  111. }
  112.  
  113. new const g_szKnife6Sounds[][] =
  114. {
  115.     "weapons/knife_deploy1.wav",
  116.     "weapons/knife_hit1.wav",
  117.     "weapons/knife_hit2.wav",
  118.     "weapons/knife_hit3.wav",
  119.     "weapons/knife_hit4.wav",
  120.     "weapons/knife_hitwall1.wav",
  121.     "weapons/knife_slash1.wav",
  122.     "weapons/knife_slash2.wav",
  123.     "weapons/knife_stab.wav"
  124. }
  125.  
  126. new const g_szKnife7Sounds[][] =
  127. {
  128.     "weapons/knife_deploy1.wav",
  129.     "weapons/knife_hit1.wav",
  130.     "weapons/knife_hit2.wav",
  131.     "weapons/knife_hit3.wav",
  132.     "weapons/knife_hit4.wav",
  133.     "weapons/knife_hitwall1.wav",
  134.     "weapons/knife_slash1.wav",
  135.     "weapons/knife_slash2.wav",
  136.     "weapons/knife_stab.wav"
  137. }
  138.  
  139. new const g_szKnife8Sounds[][] =
  140. {
  141.     "weapons/knife_deploy1.wav",
  142.     "weapons/knife_hit1.wav",
  143.     "weapons/knife_hit2.wav",
  144.     "weapons/knife_hit3.wav",
  145.     "weapons/knife_hit4.wav",
  146.     "weapons/knife_hitwall1.wav",
  147.     "weapons/knife_slash1.wav",
  148.     "weapons/knife_slash2.wav",
  149.     "weapons/knife_stab.wav"
  150. }
  151.  
  152. new const g_szDefaultSounds[][] =
  153. {
  154.     "weapons/knife_deploy1.wav",
  155.     "weapons/knife_hit1.wav",
  156.     "weapons/knife_hit2.wav",
  157.     "weapons/knife_hit3.wav",
  158.     "weapons/knife_hit4.wav",
  159.     "weapons/knife_hitwall1.wav",
  160.     "weapons/knife_slash1.wav",
  161.     "weapons/knife_slash2.wav",
  162.     "weapons/knife_stab.wav"
  163. }
  164.  
  165. // Models indexes
  166. enum
  167. {
  168.     V_Model = 0,
  169.     P_Model
  170. }
  171.  
  172. public plugin_init()
  173. {
  174.     register_plugin("Knife Levels", "1.0", "lux")
  175.    
  176.     // Fakemeta
  177.     register_forward(Fw_KnifeMenuHandler, "Fw_KnifeMenuHandler")
  178.    
  179.     // Commands
  180.     register_clcmd("say /knife", "KnifeCommandHandler")
  181. }
  182.  
  183. public plugin_precache()
  184. {
  185.     new iIndex;
  186.    
  187.     // Prechace models
  188.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1); iIndex++)
  189.         precache_model(g_szKnife1[iIndex])
  190.    
  191.     for(iIndex = 0; iIndex <= charsmax(g_szKnife2); iIndex++)
  192.         precache_model(g_szKnife2[iIndex])
  193.  
  194.     for(iIndex = 0; iIndex <= charsmax(g_szKnife3); iIndex++)
  195.         precache_model(g_szKnife3[iIndex])
  196.  
  197.     for(iIndex = 0; iIndex <= charsmax(g_szKnife4); iIndex++)
  198.         precache_model(g_szKnife4[iIndex])
  199.  
  200.     for(iIndex = 0; iIndex <= charsmax(g_szKnife5); iIndex++)
  201.         precache_model(g_szKnife5[iIndex])
  202.  
  203.     for(iIndex = 0; iIndex <= charsmax(g_szKnife6); iIndex++)
  204.         precache_model(g_szKnife6[iIndex])
  205.  
  206.     for(iIndex = 0; iIndex <= charsmax(g_szKnife7); iIndex++)
  207.         precache_model(g_szKnife7[iIndex])
  208.  
  209.     for(iIndex = 0; iIndex <= charsmax(g_szKnife8); iIndex++)
  210.         precache_model(g_szKnife8[iIndex])
  211.    
  212.     // Prechace sounds
  213.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  214.         precache_sound(g_szKnife1Sounds[iIndex])
  215.  
  216.     for(iIndex = 0; iIndex <= charsmax(g_szKnife1Sounds); iIndex++)
  217.         precache_sound(g_szKnife1Sounds[iIndex])
  218. }
  219.  
  220. public KnifeCommandHandler(id)
  221. {
  222.     new iMenu = menu_create("Knives Menu:", "KnifeMenuHandler")
  223.    
  224.     menu_additem(iMenu, "\rKnife 1", "", 0)
  225.     menu_additem(iMenu, "\rKnife 2", "", 0)
  226.     menu_additem(iMenu, "\rKnife 3", "", 0)
  227.     menu_additem(iMenu, "\rKnife 4", "", 0)
  228.     menu_additem(iMenu, "\rKnife 5", "", 0)
  229.     menu_additem(iMenu, "\rKnife 6", "", 0)
  230.     menu_additem(iMenu, "\rKnife 7", "", 0)
  231.    
  232.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  233.     menu_display(id, iMenu, 0)
  234.    
  235.     // No more replies needed from the server...
  236.     return PLUGIN_HANDLED
  237. }
  238.  
  239. public KnifeMenuHandler(id, iMenu, iItem)
  240. {
  241.     switch (iMenu)
  242.     {
  243.         case 0:
  244.         {
  245.             if (ze_get_user_level(id) >= 4)
  246.             {
  247.                 // Player level from 1 to 5 set him this knife
  248.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife1[V_Model])
  249.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife1[P_Model])
  250.                
  251.                 ResetKnife(id)
  252.             }
  253.         }
  254.         case 1:
  255.         {
  256.             if (ze_get_user_level(id) >= 9)
  257.             {
  258.                 // Player level from 5 to 8 set him this knife
  259.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife2[V_Model])
  260.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife2[P_Model])
  261.                
  262.                 ResetKnife(id)
  263.             }
  264.         }
  265.         case 2:
  266.         {
  267.             if (ze_get_user_level(id) >= 14)
  268.             {
  269.                 // Player level from 5 to 8 set him this knife
  270.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife3[V_Model])
  271.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife3[P_Model])
  272.                
  273.                 ResetKnife(id)
  274.             }
  275.         }
  276.         case 3:
  277.         {
  278.             if (ze_get_user_level(id) >= 19)
  279.             {
  280.                 // Player level from 5 to 8 set him this knife
  281.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife4[V_Model])
  282.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife4[P_Model])
  283.                
  284.                 ResetKnife(id)
  285.             }
  286.         }
  287.         case 4:
  288.         {
  289.             if (ze_get_user_level(id) >= 24)
  290.             {
  291.                 // Player level from 26 to 30 set him this knife
  292.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife5[V_Model])
  293.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife5[P_Model])
  294.                
  295.                 ResetKnife(id)
  296.             }
  297.         }
  298.         case 5:
  299.         {
  300.             if (ze_get_user_level(id) >= 29)
  301.             {
  302.                 // Player level from 26 to 30 set him this knife
  303.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife6[V_Model])
  304.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife6[P_Model])
  305.                
  306.                 ResetKnife(id)
  307.             }
  308.         }
  309.         case 6:
  310.         {
  311.             if (ze_get_user_level(id) >= 50)
  312.             {
  313.                 // Player level from 26 to 30 set him this knife
  314.                 cs_set_player_view_model(id, CSW_KNIFE, g_szKnife7[V_Model])
  315.                 cs_set_player_weap_model(id, CSW_KNIFE, g_szKnife7[P_Model])
  316.                
  317.                 ResetKnife(id)
  318.             }
  319.         }
  320.     }
  321.    
  322.     return PLUGIN_HANDLED
  323. }
  324.  
  325. public ResetKnife(id)
  326. {
  327.     rg_remove_item(id, "weapon_knife")
  328.     rg_give_item(id, "weapon_knife", GT_APPEND)
  329.     engclient_cmd(id, "weapon_knife")
  330.     KnifeMenuHandler(id, CHAN_BODY, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  331. }
  332.  
  333. public KnifeMenuHandler(id, iMenu, iItem)
  334. {
  335.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  336.         return FMRES_IGNORED
  337.    
  338.     if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 0)
  339.     {
  340.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  341.         {
  342.             if (equal(g_szDefaultSounds[iIndex], szSound))
  343.             {
  344.                 KnifeMenuHandler(id, iMenu, g_szKnife1Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  345.                 return FMRES_SUPERCEDE
  346.             }
  347.         }
  348.     }
  349.     else if (ze_get_user_level(id) >= 0 && ze_get_user_level(id) < 5)
  350.     {
  351.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  352.         {
  353.             if (equal(g_szDefaultSounds[iIndex], szSound))
  354.             {
  355.                 KnifeMenuHandler(id, iMenu, g_szKnife2Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  356.                 return FMRES_SUPERCEDE
  357.             }
  358.         }
  359.     }
  360.     else if (ze_get_user_level(id) >= 5 && ze_get_user_level(id) < 9)
  361.     {
  362.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  363.         {
  364.             if (equal(g_szDefaultSounds[iIndex], szSound))
  365.             {
  366.                 KnifeMenuHandler(id, iMenu, g_szKnife3Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  367.                 return FMRES_SUPERCEDE
  368.             }
  369.         }
  370.     }
  371.     else if (ze_get_user_level(id) >= 10 && ze_get_user_level(id) < 14)
  372.     {
  373.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  374.         {
  375.             if (equal(g_szDefaultSounds[iIndex], szSound))
  376.             {
  377.                 KnifeMenuHandler(id, iMenu, g_szKnife4Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  378.                 return FMRES_SUPERCEDE
  379.             }
  380.         }
  381.     }
  382.     else if (ze_get_user_level(id) >= 15 && ze_get_user_level(id) < 20)
  383.     {
  384.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  385.         {
  386.             if (equal(g_szDefaultSounds[iIndex], szSound))
  387.             {
  388.                 KnifeMenuHandler(id, iMenu, g_szKnife5Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  389.                 return FMRES_SUPERCEDE
  390.             }
  391.         }
  392.     }
  393.     else if (ze_get_user_level(id) >= 21 && ze_get_user_level(id) < 30)
  394.     {
  395.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  396.         {
  397.             if (equal(g_szDefaultSounds[iIndex], szSound))
  398.             {
  399.                 KnifeMenuHandler(id, iMenu, g_szKnife6Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  400.                 return FMRES_SUPERCEDE
  401.             }
  402.         }
  403.     }
  404.     else if (ze_get_user_level(id) >= 31 && ze_get_user_level(id) < 40)
  405.     {
  406.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  407.         {
  408.             if (equal(g_szDefaultSounds[iIndex], szSound))
  409.             {
  410.                 KnifeMenuHandler(id, iMenu, g_szKnife7Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  411.                 return FMRES_SUPERCEDE
  412.             }
  413.         }
  414.     }
  415.     else if (ze_get_user_level(id) >= 49 && ze_get_user_level(id) < 50)
  416.     {
  417.         for(new iIndex = 0; iIndex <= charsmax(g_szDefaultSounds); iIndex++)
  418.         {
  419.             if (equal(g_szDefaultSounds[iIndex], szSound))
  420.             {
  421.                 KnifeMenuHandler(id, iMenu, g_szKnife8Sounds[iIndex], 1.0, ATTN_NORM, 0, PITCH_NORM)
  422.                 return FMRES_SUPERCEDE
  423.             }
  424.         }
  425.     }
  426.    
  427.     return FMRES_IGNORED
  428. }

Well i have good knife menu that we have converted if any one wants u can pm me :v