Solved Skin Menu with VIP

Coding Help/Re-API Supported
User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#21

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Will work if placed in zombie infection event.
Raheem

I tryed to add speed for the knifes the only issue im having is on freeze time if they select the knife they can freely move but if they put back the gun they are frozen again how can i fix this?
  1. public fw_PlayerPreThink(id)
  2. {
  3.         if(!is_user_alive(id))
  4.                 return FMRES_IGNORED
  5.  
  6.         new weapon = get_user_weapon(id)
  7.  
  8.         if (weapon == CSW_KNIFE && g_bCompat[id])
  9.         {              
  10.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  11.                 {
  12.                     new flags = pev(id, pev_flags)
  13.                     new waterlvl = pev(id, pev_waterlevel)
  14.                    
  15.                     if (!(flags & FL_ONGROUND))
  16.                             return FMRES_IGNORED
  17.  
  18.                     if (flags & FL_WATERJUMP)
  19.                             return FMRES_IGNORED
  20.  
  21.                     if (waterlvl > 1)
  22.                             return FMRES_IGNORED
  23.  
  24.                     new Float:fVelocity[ 3 ]
  25.                     pev( id , pev_velocity , fVelocity )
  26.    
  27.                     fVelocity[ 2 ] += 325
  28.  
  29.                     set_pev( id , pev_velocity , fVelocity )
  30.  
  31.                     set_pev(id, pev_gaitsequence, 6)
  32.                 }
  33.                 set_user_maxspeed(id,get_pcvar_float(cvar_speed_combat))
  34.         }
  35.        
  36.         if(weapon == CSW_KNIFE && g_bStrong[id])
  37.         {    
  38.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  39.                 {
  40.                     new flags = pev(id, pev_flags)
  41.                     new waterlvl = pev(id, pev_waterlevel)
  42.                    
  43.                     if (!(flags & FL_ONGROUND))
  44.                             return FMRES_IGNORED
  45.  
  46.                     if (flags & FL_WATERJUMP)
  47.                             return FMRES_IGNORED
  48.  
  49.                     if (waterlvl > 1)
  50.                             return FMRES_IGNORED
  51.  
  52.                     new Float:fVelocity[ 3 ]
  53.                     pev( id , pev_velocity , fVelocity )
  54.    
  55.                     fVelocity[ 2 ] += 320
  56.  
  57.                     set_pev( id , pev_velocity , fVelocity )
  58.                    
  59.                     set_pev(id, pev_gaitsequence, 6)
  60.                 }
  61.                 set_user_maxspeed(id,get_pcvar_float(cvar_speed_strong))                                
  62.         }
  63.  
  64.         if(weapon == CSW_KNIFE && g_bKatana[id])  
  65.         {    
  66.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  67.                 {
  68.                     new flags = pev(id, pev_flags)
  69.                     new waterlvl = pev(id, pev_waterlevel)
  70.                    
  71.                     if (!(flags & FL_ONGROUND))
  72.                             return FMRES_IGNORED
  73.  
  74.                     if (flags & FL_WATERJUMP)
  75.                             return FMRES_IGNORED
  76.  
  77.                     if (waterlvl > 1)
  78.                             return FMRES_IGNORED
  79.  
  80.                     new Float:fVelocity[ 3 ]
  81.                     pev( id , pev_velocity , fVelocity )
  82.    
  83.                     fVelocity[ 2 ] += 320
  84.  
  85.                     set_pev( id , pev_velocity , fVelocity )
  86.                    
  87.                     set_pev(id, pev_gaitsequence, 6)
  88.                 }
  89.                
  90.                 set_user_maxspeed(id,get_pcvar_float(cvar_speed_katana))  
  91.         }
  92.         if (weapon == CSW_KNIFE && g_bHammer[id])
  93.         {
  94.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  95.                 {
  96.                     new flags = pev(id, pev_flags)
  97.                     new waterlvl = pev(id, pev_waterlevel)
  98.                    
  99.                     if (!(flags & FL_ONGROUND))
  100.                             return FMRES_IGNORED
  101.  
  102.                     if (flags & FL_WATERJUMP)
  103.                             return FMRES_IGNORED
  104.  
  105.                     if (waterlvl > 1)
  106.                             return FMRES_IGNORED
  107.  
  108.                     new Float:fVelocity[ 3 ]
  109.                     pev( id , pev_velocity , fVelocity )
  110.    
  111.                     fVelocity[ 2 ] += 345
  112.  
  113.                     set_pev( id , pev_velocity , fVelocity )
  114.                    
  115.                     set_pev(id, pev_gaitsequence, 6)
  116.                 }
  117.                
  118.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_hammer))
  119.         }
  120.         if (weapon == CSW_KNIFE && g_bTurbulent9[id])
  121.         {
  122.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  123.                 {
  124.                     new flags = pev(id, pev_flags)
  125.                     new waterlvl = pev(id, pev_waterlevel)
  126.                    
  127.                     if (!(flags & FL_ONGROUND))
  128.                             return FMRES_IGNORED
  129.  
  130.                     if (flags & FL_WATERJUMP)
  131.                             return FMRES_IGNORED
  132.  
  133.                     if (waterlvl > 1)
  134.                             return FMRES_IGNORED
  135.  
  136.                     new Float:fVelocity[ 3 ]
  137.                     pev( id , pev_velocity , fVelocity )
  138.    
  139.                     fVelocity[ 2 ] += 345
  140.  
  141.                     set_pev( id , pev_velocity , fVelocity )
  142.                    
  143.                     set_pev(id, pev_gaitsequence, 6)
  144.                 }
  145.                
  146.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_turb))
  147.         }
  148.         if (weapon == CSW_KNIFE && g_bBio[id])
  149.         {
  150.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  151.                 {
  152.                     new flags = pev(id, pev_flags)
  153.                     new waterlvl = pev(id, pev_waterlevel)
  154.                    
  155.                     if (!(flags & FL_ONGROUND))
  156.                             return FMRES_IGNORED
  157.  
  158.                     if (flags & FL_WATERJUMP)
  159.                             return FMRES_IGNORED
  160.  
  161.                     if (waterlvl > 1)
  162.                             return FMRES_IGNORED
  163.  
  164.                     new Float:fVelocity[ 3 ]
  165.                     pev( id , pev_velocity , fVelocity )
  166.    
  167.                     fVelocity[ 2 ] += 345
  168.  
  169.                     set_pev( id , pev_velocity , fVelocity )
  170.                    
  171.                     set_pev(id, pev_gaitsequence, 6)
  172.                 }
  173.                
  174.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_bio))
  175.         }
  176.         if (weapon == CSW_KNIFE && g_bSabers[id])
  177.         {
  178.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  179.                 {
  180.                     new flags = pev(id, pev_flags)
  181.                     new waterlvl = pev(id, pev_waterlevel)
  182.                    
  183.                     if (!(flags & FL_ONGROUND))
  184.                             return FMRES_IGNORED
  185.  
  186.                     if (flags & FL_WATERJUMP)
  187.                             return FMRES_IGNORED
  188.  
  189.                     if (waterlvl > 1)
  190.                             return FMRES_IGNORED
  191.  
  192.                     new Float:fVelocity[ 3 ]
  193.                     pev( id , pev_velocity , fVelocity )
  194.    
  195.                     fVelocity[ 2 ] += 345
  196.  
  197.                     set_pev( id , pev_velocity , fVelocity )
  198.                    
  199.                     set_pev(id, pev_gaitsequence, 6)
  200.                 }
  201.                
  202.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_sabers))
  203.         }
  204.         if (weapon == CSW_KNIFE && g_bPlasma[id])
  205.         {
  206.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  207.                 {
  208.                     new flags = pev(id, pev_flags)
  209.                     new waterlvl = pev(id, pev_waterlevel)
  210.                    
  211.                     if (!(flags & FL_ONGROUND))
  212.                             return FMRES_IGNORED
  213.  
  214.                     if (flags & FL_WATERJUMP)
  215.                             return FMRES_IGNORED
  216.  
  217.                     if (waterlvl > 1)
  218.                             return FMRES_IGNORED
  219.  
  220.                     new Float:fVelocity[ 3 ]
  221.                     pev( id , pev_velocity , fVelocity )
  222.    
  223.                     fVelocity[ 2 ] += 357
  224.  
  225.                     set_pev( id , pev_velocity , fVelocity )
  226.                    
  227.                     set_pev(id, pev_gaitsequence, 6)
  228.                 }
  229.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_plasma))
  230.         }
  231.         if (weapon == CSW_KNIFE && g_bStorm[id])
  232.         {
  233.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  234.                 {
  235.                     new flags = pev(id, pev_flags)
  236.                     new waterlvl = pev(id, pev_waterlevel)
  237.                    
  238.                     if (!(flags & FL_ONGROUND))
  239.                             return FMRES_IGNORED
  240.  
  241.                     if (flags & FL_WATERJUMP)
  242.                             return FMRES_IGNORED
  243.  
  244.                     if (waterlvl > 1)
  245.                             return FMRES_IGNORED
  246.  
  247.                     new Float:fVelocity[ 3 ]
  248.                     pev( id , pev_velocity , fVelocity )
  249.    
  250.                     fVelocity[ 2 ] += 357
  251.  
  252.                     set_pev( id , pev_velocity , fVelocity )
  253.                    
  254.                     set_pev(id, pev_gaitsequence, 6)
  255.                 }
  256.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_storm))
  257.         }
  258.         if (weapon == CSW_KNIFE && g_bLaevateinn[id])
  259.         {
  260.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  261.                 {
  262.                     new flags = pev(id, pev_flags)
  263.                     new waterlvl = pev(id, pev_waterlevel)
  264.                    
  265.                     if (!(flags & FL_ONGROUND))
  266.                             return FMRES_IGNORED
  267.  
  268.                     if (flags & FL_WATERJUMP)
  269.                             return FMRES_IGNORED
  270.  
  271.                     if (waterlvl > 1)
  272.                             return FMRES_IGNORED
  273.  
  274.                     new Float:fVelocity[ 3 ]
  275.                     pev( id , pev_velocity , fVelocity )
  276.    
  277.                     fVelocity[ 2 ] += 357
  278.  
  279.                     set_pev( id , pev_velocity , fVelocity )
  280.                    
  281.                     set_pev(id, pev_gaitsequence, 6)
  282.                 }
  283.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_laevat))
  284.         }
  285.         if (weapon == CSW_KNIFE && g_bWarHammer_Dark_Knight[id])
  286.         {
  287.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  288.                 {
  289.                     new flags = pev(id, pev_flags)
  290.                     new waterlvl = pev(id, pev_waterlevel)
  291.                    
  292.                     if (!(flags & FL_ONGROUND))
  293.                             return FMRES_IGNORED
  294.  
  295.                     if (flags & FL_WATERJUMP)
  296.                             return FMRES_IGNORED
  297.  
  298.                     if (waterlvl > 1)
  299.                             return FMRES_IGNORED
  300.  
  301.                     new Float:fVelocity[ 3 ]
  302.                     pev( id , pev_velocity , fVelocity )
  303.    
  304.                     fVelocity[ 2 ] += 357
  305.  
  306.                     set_pev( id , pev_velocity , fVelocity )
  307.                    
  308.                     set_pev(id, pev_gaitsequence, 6)
  309.                 }
  310.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_darknight))
  311.         }
  312.         if (weapon == CSW_KNIFE && g_bBalrog_Kosa[id])
  313.         {
  314.                 if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  315.                 {
  316.                     new flags = pev(id, pev_flags)
  317.                     new waterlvl = pev(id, pev_waterlevel)
  318.                    
  319.                     if (!(flags & FL_ONGROUND))
  320.                             return FMRES_IGNORED
  321.  
  322.                     if (flags & FL_WATERJUMP)
  323.                             return FMRES_IGNORED
  324.  
  325.                     if (waterlvl > 1)
  326.                             return FMRES_IGNORED
  327.  
  328.                     new Float:fVelocity[ 3 ]
  329.                     pev( id , pev_velocity , fVelocity )
  330.    
  331.                     fVelocity[ 2 ] += 357
  332.  
  333.                     set_pev( id , pev_velocity , fVelocity )
  334.                    
  335.                     set_pev(id, pev_gaitsequence, 6)
  336.                 }
  337.                 set_user_maxspeed(id, get_pcvar_float(cvar_speed_kosa))
  338.         }
  339.        
  340.     return FMRES_IGNORED
  341. }  

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#22

Post by Raheem » 5 years ago

Using forwards we will block it in specific time, you will add:

  1. new bool:g_bNoSpeed
  2.  
  3. public ze_game_started()
  4. {
  5.     g_bNoSpeed = true
  6. }
  7.  
  8. public ze_zombie_release()
  9. {
  10.     g_bNoSpeed = false
  11. }

Then edit in your code this check: TO:
    1.         if(!is_user_alive(id) || g_bNoSpeed)
    2.                 return FMRES_IGNORED
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#23

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Using forwards we will block it in specific time, you will add:

  1. new bool:g_bNoSpeed
  2.  
  3. public ze_game_started()
  4. {
  5.     g_bNoSpeed = true
  6. }
  7.  
  8. public ze_zombie_release()
  9. {
  10.     g_bNoSpeed = false
  11. }

Then edit in your code this check: TO:
    1.         if(!is_user_alive(id) || g_bNoSpeed)
    2.                 return FMRES_IGNORED
Heres the issue im facing now look in image for different weapons.

When have nade 300 speed
20180908081935_1.jpg
when have knife 300 speed
20180908081929_1.jpg
when have deagle 270 speed
20180908081923_1.jpg
when have primary 250 speed
20180908081912_1.jpg
I understand with primary weapon you run slower by default how can i change the nade to 270
if happens when i switch from knife to nade or knife to deagle speed stays at 300

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#24

Post by Raheem » 5 years ago

EDIT: I misunderstand you, one thing to know is that speed of knife = grenades = pistols.

Optimization for you:

You can better hook the ResetMaxSpeed event via reapi and set their the speed in case of some cases. If user changed weapon, it will back to normal i think.

Here an optimized code example, i used reapi over it's all (Recommended to do in all ur cases):

  1. RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
  2.  
  3. public Fw_RestMaxSpeed_Post(id)
  4. {
  5.     new iWpnId = get_user_weapon(id)
  6.    
  7.     if (iWpnId == CSW_KNIFE && g_bCompat[id])
  8.     {
  9.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  10.         {
  11.             new iFlags = get_entvar(id, var_flags);
  12.             new iWaterlvl = get_entvar(id, var_waterlevel)
  13.            
  14.             if (!(iFlags & FL_ONGROUND))
  15.                 return HAM_IGNORED
  16.  
  17.             if (iFlags & FL_WATERJUMP)
  18.                 return HAM_IGNORED
  19.  
  20.             if (iWaterlvl > 1)
  21.                 return HAM_IGNORED
  22.            
  23.             new Float:flVelocity[3]
  24.             get_entvar(id , var_velocity , flVelocity)
  25.  
  26.             flVelocity[2] += 325
  27.  
  28.             set_entvar(id , var_velocity , flVelocity)
  29.  
  30.             set_entvar(id, var_gaitsequence, 6)
  31.         }
  32.        
  33.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_combat))
  34.     }
  35.    
  36.     return HAM_IGNORED
  37. }
Last edited by Raheem 5 years ago, edited 1 time in total.
Reason: Misunderstanding
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#25

Post by Mark » 5 years ago

let me check
Last edited by Mark 5 years ago, edited 1 time in total.

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#26

Post by Raheem » 5 years ago

If you got the knife, you will get it's speed? And what if you changed to ak47? your speed now?
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#27

Post by Mark » 5 years ago

Raheem wrote: 5 years ago If you got the knife, you will get it's speed? And what if you changed to ak47? your speed now?
20180908124953_1.jpg
20180908125001_1.jpg
20180908125013_1.jpg
20180908125019_1.jpg
  1. #include <zombie_escape>
  2. #include <engine>
  3. #include <fun>
  4. #include <ze_vip>
  5.  
  6. // Models
  7. new const Compat_Models[][] =
  8. {
  9.     "models/zombie_escape/v_combat_knife.mdl",
  10.     "models/zombie_escape/p_combat_knife.mdl"
  11. }
  12.  
  13. new const Strong_Models[][] =
  14. {
  15.     "models/zombie_escape/v_strong_knife.mdl",
  16.     "models/zombie_escape/p_strong_knife.mdl"
  17. }
  18.  
  19. new const Katana_Models[][] =
  20. {
  21.     "models/zombie_escape/v_katana_knife.mdl",
  22.     "models/zombie_escape/p_katana_knife.mdl"
  23. }
  24.  
  25. new const Hammer_Models[][] =
  26. {
  27.     "models/zombie_escape/v_hammer_knife.mdl",
  28.     "models/zombie_escape/p_hammer_knife.mdl"
  29. }
  30.  
  31. new const Turbulent9_Models[][] =
  32. {
  33.     "models/zombie_escape/v_turbulent9_knife.mdl",
  34.     "models/zombie_escape/p_turbulent9_knife.mdl"
  35. }
  36.  
  37. new const Bio_Models[][] =
  38. {
  39.     "models/zombie_escape/v_bio_knife.mdl",
  40.     "models/zombie_escape/p_bio_knife.mdl"
  41. }
  42.  
  43. new const Sabers_Models[][] =
  44. {
  45.     "models/zombie_escape/v_laser_knife.mdl",
  46.     "models/zombie_escape/p_laser_knife.mdl"
  47. }
  48.  
  49. new const Plasma_Models[][] =
  50. {
  51.     "models/zombie_escape/v_plasma_knife.mdl",
  52.     "models/zombie_escape/p_plasma_knife.mdl"
  53. }
  54.  
  55. new const Storm_Models[][] =
  56. {
  57.     "models/zombie_escape/v_storm_sword_knife.mdl",
  58.     "models/zombie_escape/p_storm_sword_knife.mdl"
  59. }
  60.  
  61. new const Laevateinn_Models[][] =
  62. {
  63.     "models/zombie_escape/v_laevateinn_knife.mdl",
  64.     "models/zombie_escape/p_laevateinn_knife.mdl"
  65. }
  66.  
  67. new const WarHammer_Dark_Knight_Models[][] =
  68. {
  69.     "models/zombie_escape/v_WarHammer_dark_knight_knife.mdl",
  70.     "models/zombie_escape/p_WarHammer_dark_knight_knife.mdl"
  71. }
  72.  
  73. new const Balrog_Kosa_Models[][] =
  74. {
  75.     "models/zombie_escape/v_balrog_kosa_knife.mdl",
  76.     "models/zombie_escape/p_balrog_kosa_knife.mdl"
  77. }
  78.  
  79. // Sounds
  80. new const g_sound_knife[] = "items/gunpickup2.wav"
  81.  
  82. new const combat_sounds[][] =
  83. {
  84.     "zombie_escape/knife_menu/combat_deploy.wav",
  85.     "zombie_escape/knife_menu/combat_hit.wav",
  86.     "zombie_escape/knife_menu/combat_hit.wav",
  87.     "zombie_escape/knife_menu/combat_hit.wav",
  88.     "zombie_escape/knife_menu/combat_hit.wav",
  89.     "zombie_escape/knife_menu/combat_hitwall.wav",
  90.     "zombie_escape/knife_menu/combat_slash.wav",
  91.     "zombie_escape/knife_menu/combat_slash.wav",
  92.     "zombie_escape/knife_menu/combat_stab.wav"
  93. }
  94.  
  95. new const strong_sounds[][] =
  96. {
  97.     "zombie_escape/knife_menu/strong_deploy.wav",
  98.     "zombie_escape/knife_menu/strong_hit.wav",
  99.     "zombie_escape/knife_menu/strong_hit.wav",
  100.     "zombie_escape/knife_menu/strong_hit.wav",
  101.     "zombie_escape/knife_menu/strong_hit.wav",
  102.     "zombie_escape/knife_menu/strong_hitwall.wav",
  103.     "zombie_escape/knife_menu/strong_slash.wav",
  104.     "zombie_escape/knife_menu/strong_slash.wav",
  105.     "zombie_escape/knife_menu/strong_stab.wav"
  106. }
  107.  
  108. new const katana_sounds[][] =
  109. {
  110.     "zombie_escape/knife_menu/katana_deploy.wav",
  111.     "zombie_escape/knife_menu/katana_hit.wav",
  112.     "zombie_escape/knife_menu/katana_hit.wav",
  113.     "zombie_escape/knife_menu/katana_hit.wav",
  114.     "zombie_escape/knife_menu/katana_hit.wav",
  115.     "zombie_escape/knife_menu/katana_hitwall.wav",
  116.     "zombie_escape/knife_menu/katana_slash.wav",
  117.     "zombie_escape/knife_menu/katana_slash.wav",
  118.     "zombie_escape/knife_menu/katana_stab.wav"
  119. }
  120.  
  121. new const hammer_sounds[][] =
  122. {
  123.     "zombie_escape/knife_menu/hammer_deploy.wav",
  124.     "zombie_escape/knife_menu/hammer_hit.wav",
  125.     "zombie_escape/knife_menu/hammer_hit.wav",
  126.     "zombie_escape/knife_menu/hammer_hit.wav",
  127.     "zombie_escape/knife_menu/hammer_hit.wav",
  128.     "zombie_escape/knife_menu/hammer_hitwall.wav",
  129.     "zombie_escape/knife_menu/hammer_slash.wav",
  130.     "zombie_escape/knife_menu/hammer_slash.wav",
  131.     "zombie_escape/knife_menu/hammer_stab.wav"
  132. }
  133.  
  134. new const turbulent9_sounds[][] =
  135. {
  136.     "zombie_escape/knife_menu/turbulent9_deploy.wav",
  137.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  138.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  139.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  140.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  141.     "zombie_escape/knife_menu/turbulent9_hitwall.wav",
  142.     "zombie_escape/knife_menu/turbulent9_slash.wav",
  143.     "zombie_escape/knife_menu/turbulent9_slash.wav",
  144.     "zombie_escape/knife_menu/turbulent9_stab.wav"
  145. }
  146.  
  147. new const bio_sounds[][] =
  148. {
  149.     "zombie_escape/knife_menu/bio_deploy.wav",
  150.     "zombie_escape/knife_menu/bio_hit.wav",
  151.     "zombie_escape/knife_menu/bio_hit.wav",
  152.     "zombie_escape/knife_menu/bio_hit.wav",
  153.     "zombie_escape/knife_menu/bio_hit.wav",
  154.     "zombie_escape/knife_menu/bio_hitwall.wav",
  155.     "zombie_escape/knife_menu/bio_slash.wav",
  156.     "zombie_escape/knife_menu/bio_slash.wav",
  157.     "zombie_escape/knife_menu/bio_stab.wav"
  158. }
  159.  
  160. new const sabers_sounds[][] =
  161. {
  162.     "zombie_escape/knife_menu/laser_deploy.wav",
  163.     "zombie_escape/knife_menu/laser_hit.wav",
  164.     "zombie_escape/knife_menu/laser_hit.wav",
  165.     "zombie_escape/knife_menu/laser_hit.wav",
  166.     "zombie_escape/knife_menu/laser_hit.wav",
  167.     "zombie_escape/knife_menu/laser_hitwall.wav",
  168.     "zombie_escape/knife_menu/laser_slash1.wav",
  169.     "zombie_escape/knife_menu/laser_slash2.wav",
  170.     "zombie_escape/knife_menu/laser_stab.wav"
  171. }
  172.  
  173. new const plasma_sounds[][] =
  174. {
  175.     "zombie_escape/knife_menu/plasma_deploy.wav",
  176.     "zombie_escape/knife_menu/plasma_hit.wav",
  177.     "zombie_escape/knife_menu/plasma_hit.wav",
  178.     "zombie_escape/knife_menu/plasma_hit.wav",
  179.     "zombie_escape/knife_menu/plasma_hit.wav",
  180.     "zombie_escape/knife_menu/plasma_hitwall.wav",
  181.     "zombie_escape/knife_menu/plasma_slash.wav",
  182.     "zombie_escape/knife_menu/plasma_slash.wav",
  183.     "zombie_escape/knife_menu/plasma_stab.wav"
  184. }
  185.  
  186. new const storm_sounds[][] =
  187. {
  188.     "zombie_escape/knife_menu/storm_sword_deploy.wav",
  189.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  190.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  191.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  192.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  193.     "zombie_escape/knife_menu/storm_sword_hitwall.wav",
  194.     "zombie_escape/knife_menu/storm_sword_slash.wav",
  195.     "zombie_escape/knife_menu/storm_sword_slash.wav",
  196.     "zombie_escape/knife_menu/storm_sword_stab.wav"
  197. }
  198.  
  199. new const laevateinn_sounds[][] =
  200. {
  201.     "zombie_escape/knife_menu/laevateinn_deploy.wav",
  202.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  203.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  204.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  205.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  206.     "zombie_escape/knife_menu/laevateinn_hitwall.wav",
  207.     "zombie_escape/knife_menu/laevateinn_slash.wav",
  208.     "zombie_escape/knife_menu/laevateinn_slash.wav",
  209.     "zombie_escape/knife_menu/laevateinn_stab.wav"
  210. }
  211.  
  212. new const warhammer_dark_knight_sounds[][] =
  213. {
  214.     "zombie_escape/knife_menu/WarHammer_dark_knight_deploy.wav",
  215.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  216.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  217.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  218.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  219.     "zombie_escape/knife_menu/WarHammer_dark_knight_hitwall.wav",
  220.     "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
  221.     "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
  222.     "zombie_escape/knife_menu/WarHammer_dark_knight_stab.wav"
  223. }
  224.  
  225. new const balrog_kosa_sounds[][] =
  226. {
  227.     "zombie_escape/knife_menu/balrog_kosa_deploy.wav",
  228.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  229.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  230.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  231.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  232.     "zombie_escape/knife_menu/balrog_kosa_hitwall.wav",
  233.     "zombie_escape/knife_menu/balrog_kosa_slash.wav",
  234.     "zombie_escape/knife_menu/balrog_kosa_slash.wav",
  235.     "zombie_escape/knife_menu/balrog_kosa_stab.wav"
  236. }
  237.  
  238. new const oldknife_sounds[][] =
  239. {
  240.     "weapons/knife_deploy1.wav",
  241.     "weapons/knife_hit1.wav",
  242.     "weapons/knife_hit2.wav",
  243.     "weapons/knife_hit3.wav",
  244.     "weapons/knife_hit4.wav",
  245.     "weapons/knife_hitwall1.wav",
  246.     "weapons/knife_slash1.wav",
  247.     "weapons/knife_slash2.wav",
  248.     "weapons/knife_stab.wav"
  249. }
  250.  
  251. new bool:g_bCompat[33], bool:g_bStrong[33], bool:g_bKatana[33], bool:g_bHammer[33], bool:g_bTurbulent9[33], bool:g_bBio[33], bool:g_bSabers[33], bool:g_bPlasma[33],
  252. bool:g_bStorm[33], bool:g_bLaevateinn[33], bool:g_bWarHammer_Dark_Knight[33], bool:g_bBalrog_Kosa[33], bool:g_bNoSpeed, g_iUsedTimes[33], g_pCvarUseTimes
  253.  
  254. new cvar_speed_compat
  255. new cvar_speed_strong
  256. new cvar_speed_katana
  257. new cvar_speed_hammer
  258. new cvar_speed_turb
  259. new cvar_speed_bio
  260. new cvar_speed_sabers
  261. new cvar_speed_plasma
  262. new cvar_speed_storm
  263. new cvar_speed_laevat
  264. new cvar_speed_darknight
  265. new cvar_speed_kosa
  266.  
  267. public plugin_precache()
  268. {
  269.     new i
  270.  
  271.     for (i = 0; i <= charsmax(Compat_Models); i++)
  272.         precache_model(Compat_Models[i])
  273.  
  274.     for (i = 0; i <= charsmax(Hammer_Models); i++)
  275.         precache_model(Hammer_Models[i])
  276.  
  277.     for (i = 0; i <= charsmax(Katana_Models); i++)
  278.         precache_model(Katana_Models[i])
  279.  
  280.     for (i = 0; i <= charsmax(Strong_Models); i++)
  281.         precache_model(Strong_Models[i])
  282.  
  283.     for (i = 0; i <= charsmax(Turbulent9_Models); i++)
  284.         precache_model(Turbulent9_Models[i])
  285.  
  286.     for (i = 0; i <= charsmax(Bio_Models); i++)
  287.         precache_model(Bio_Models[i])
  288.  
  289.     for (i = 0; i <= charsmax(Sabers_Models); i++)
  290.         precache_model(Sabers_Models[i])
  291.  
  292.     for (i = 0; i <= charsmax(Plasma_Models); i++)
  293.         precache_model(Plasma_Models[i])
  294.  
  295.     for (i = 0; i <= charsmax(Storm_Models); i++)
  296.         precache_model(Storm_Models[i])
  297.  
  298.     for (i = 0; i <= charsmax(Laevateinn_Models); i++)
  299.         precache_model(Laevateinn_Models[i])
  300.  
  301.     for (i = 0; i <= charsmax(WarHammer_Dark_Knight_Models); i++)
  302.         precache_model(WarHammer_Dark_Knight_Models[i])
  303.  
  304.     for (i = 0; i <= charsmax(Balrog_Kosa_Models); i++)
  305.         precache_model(Balrog_Kosa_Models[i])
  306.  
  307.     for (i = 0; i <= charsmax(combat_sounds); i++)
  308.         precache_sound(combat_sounds[i])
  309.  
  310.     for (i = 0; i <= charsmax(strong_sounds); i++)
  311.         precache_sound(strong_sounds[i])
  312.  
  313.     for (i = 0; i <= charsmax(katana_sounds); i++)
  314.         precache_sound(katana_sounds[i])
  315.  
  316.     for (i = 0; i <= charsmax(hammer_sounds); i++)
  317.         precache_sound(hammer_sounds[i])
  318.  
  319.     for (i = 0; i <= charsmax(turbulent9_sounds); i++)
  320.         precache_sound(turbulent9_sounds[i])
  321.  
  322.     for (i = 0; i <= charsmax(bio_sounds); i++)
  323.         precache_sound(bio_sounds[i])
  324.  
  325.     for (i = 0; i <= charsmax(sabers_sounds); i++)
  326.         precache_sound(sabers_sounds[i])
  327.  
  328.     for (i = 0; i <= charsmax(plasma_sounds); i++)
  329.         precache_sound(plasma_sounds[i])
  330.  
  331.     for (i = 0; i <= charsmax(storm_sounds); i++)
  332.         precache_sound(storm_sounds[i])
  333.  
  334.     for (i = 0; i <= charsmax(laevateinn_sounds); i++)
  335.         precache_sound(laevateinn_sounds[i])
  336.  
  337.     for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
  338.         precache_sound(warhammer_dark_knight_sounds[i])
  339.  
  340.     for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
  341.         precache_sound(balrog_kosa_sounds[i])
  342.  
  343.     precache_sound(g_sound_knife)
  344. }
  345.  
  346. public plugin_natives()
  347. {
  348.     register_native("ze_open_knife_menu", "native_ze_open_knife_menu", 1)
  349. }
  350.  
  351. public plugin_init()
  352. {
  353.     register_plugin("[ZE] Addon: Knife Menu", "1.2", "Jack GamePlay")
  354.  
  355.     register_forward(FM_EmitSound, "fw_EmitSound")
  356.     register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
  357.  
  358.     register_event("CurWeapon", "CurrentWeapon", "be", "1=1")
  359.     RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
  360.    
  361.     g_pCvarUseTimes = register_cvar("ze_knife_menu_use_times", "1")
  362.  
  363.     register_message(get_user_msgid("DeathMsg"), "DeathMsg")
  364.  
  365.     register_clcmd("say /k", "Show_Knife_Menu")
  366.    
  367.     cvar_speed_compat = register_cvar("ze_compat_speed", "400.0")
  368.     cvar_speed_strong = register_cvar("ze_strong_speed", "270.0")
  369.     cvar_speed_katana = register_cvar("ze_katana_speed", "270.0")
  370.     cvar_speed_hammer = register_cvar("ze_hammer_speed", "270.0")
  371.     cvar_speed_turb = register_cvar("ze_turb_speed", "275.0")    
  372.     cvar_speed_bio = register_cvar("ze_bio_speed", "275.0")
  373.     cvar_speed_sabers = register_cvar("ze_sabers_speed", "275.0")
  374.     cvar_speed_plasma = register_cvar("ze_plasma_speed", "275.0")
  375.     cvar_speed_storm = register_cvar("ze_storm_speed", "280.0")    
  376.     cvar_speed_laevat = register_cvar("ze_laevat_speed", "280.0")  
  377.     cvar_speed_darknight = register_cvar("ze_darknight_speed", "280.0")
  378.     cvar_speed_kosa = register_cvar("ze_kosa_speed", "280.0")
  379. }
  380.  
  381. public ze_user_humanized(id)
  382. {
  383.     g_iUsedTimes[id] = 0
  384. }
  385.  
  386. public ze_user_infected(Victim)
  387. {
  388.     g_bCompat[Victim] = false
  389.     g_bStrong[Victim] = false
  390.     g_bKatana[Victim] = false
  391.     g_bHammer[Victim] = false
  392.     g_bTurbulent9[Victim] = false
  393.     g_bBio[Victim] = false
  394.     g_bSabers[Victim] = false
  395.     g_bPlasma[Victim] = false
  396.     g_bStorm[Victim] = false
  397.     g_bLaevateinn[Victim] = false
  398.     g_bWarHammer_Dark_Knight[Victim] = false
  399.     g_bBalrog_Kosa[Victim] = false
  400.     g_iUsedTimes[Victim] = 0
  401. }
  402.  
  403. public client_putinserver(id)
  404. {
  405.     g_bCompat[id] = false
  406.     g_bStrong[id] = false
  407.     g_bKatana[id] = false
  408.     g_bHammer[id] = false
  409.     g_bTurbulent9[id] = false
  410.     g_bBio[id] = false
  411.     g_bSabers[id] = false
  412.     g_bPlasma[id] = false
  413.     g_bStorm[id] = false
  414.     g_bLaevateinn[id] = false
  415.     g_bWarHammer_Dark_Knight[id] = false
  416.     g_bBalrog_Kosa[id] = false
  417.     g_iUsedTimes[id] = 0
  418. }
  419.  
  420. public client_disconnected(id)
  421. {
  422.     g_bCompat[id] = false
  423.     g_bStrong[id] = false
  424.     g_bKatana[id] = false
  425.     g_bHammer[id] = false
  426.     g_bTurbulent9[id] = false
  427.     g_bBio[id] = false
  428.     g_bSabers[id] = false
  429.     g_bPlasma[id] = false
  430.     g_bStorm[id] = false
  431.     g_bLaevateinn[id] = false
  432.     g_bWarHammer_Dark_Knight[id] = false
  433.     g_bBalrog_Kosa[id] = false
  434.     g_iUsedTimes[id] = 0
  435. }
  436.  
  437. public Show_Knife_Menu(id)
  438. {
  439.     if (!is_user_connected(id))
  440.         return PLUGIN_CONTINUE
  441.  
  442.     if (ze_is_user_zombie(id))
  443.     {
  444.         ze_colored_print(id, "!tZombies can't open knife menu!y.")
  445.         return PLUGIN_HANDLED
  446.     }
  447.  
  448.     if (g_iUsedTimes[id] >= get_pcvar_num(g_pCvarUseTimes))
  449.     {
  450.         ze_colored_print(id, "!tYou can only open knife menu !y[!g%dx!y] per round!", get_pcvar_num(g_pCvarUseTimes))
  451.         return PLUGIN_HANDLED
  452.     }
  453.  
  454.     if (!is_user_alive(id))
  455.     {
  456.         ze_colored_print(id, "!tDead can't open knife menu!y.")
  457.         return PLUGIN_HANDLED
  458.     }
  459.  
  460.     Knife_Menu(id)
  461.     return PLUGIN_CONTINUE
  462. }
  463.  
  464. public Knife_Menu(id)
  465. {
  466.     new iMenu = menu_create("\rChoose Your Knife\w:", "Menu_Handler")
  467.     menu_additem(iMenu, "\yCombat", "", 0)
  468.     menu_additem(iMenu, "\yStrong", "", 0)
  469.     menu_additem(iMenu, "\yKatana", "", 0)
  470.     menu_additem(iMenu, "\yHammer", "", 0)
  471.  
  472.     if (ze_get_vip_flags(id) & VIP_A)
  473.     {
  474.         menu_additem(iMenu, "\yTurbulent9 \r[VIP]", "", 0)
  475.         menu_additem(iMenu, "\yBio Hazard \r[VIP]", "", 0)
  476.     }
  477.    
  478.     if (ze_get_vip_flags(id) & VIP_B)
  479.     {
  480.         menu_additem(iMenu, "\ySabers \r[VIP+]", "", 0)
  481.         menu_additem(iMenu, "\yPlasma \r[VIP+]", "", 0)
  482.     }
  483.  
  484.     if (ze_get_vip_flags(id) & VIP_C)
  485.     {
  486.         menu_additem(iMenu, "\yStorm \r[VIP++]", "", 0)
  487.         menu_additem(iMenu, "\yLaevateinn \r[VIP++]", "", 0)
  488.         menu_additem(iMenu, "\yWarHammer Dark Night \r[VIP++]", "", 0)
  489.         menu_additem(iMenu, "\yBalrog Kosa \r[VIP++]", "", 0)
  490.     }
  491.  
  492.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  493.     menu_display(id, iMenu, 0)
  494. }
  495.  
  496. public Menu_Handler(id, iMenu, iKey)
  497. {
  498.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  499.         return PLUGIN_HANDLED
  500.        
  501.     switch(iKey)
  502.     {
  503.         case 0: // Compat
  504.         {
  505.             g_bCompat[id] = true
  506.             g_bStrong[id] = false
  507.             g_bKatana[id] = false
  508.             g_bHammer[id] = false
  509.             g_bTurbulent9[id] = false
  510.             g_bBio[id] = false
  511.             g_bSabers[id] = false
  512.             g_bPlasma[id] = false
  513.             g_bStorm[id] = false
  514.             g_bLaevateinn[id] = false
  515.             g_bWarHammer_Dark_Knight[id] = false
  516.             g_bBalrog_Kosa[id] = false
  517.             g_iUsedTimes[id]++
  518.             /*rg_remove_item(id, "weapon_knife")
  519.             rg_give_item(id, "weapon_knife", GT_APPEND)
  520.             engclient_cmd(id, "weapon_knife")
  521.             g_iUsedTimes[id]++
  522.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  523.         }
  524.         case 1: // Strong
  525.         {
  526.             g_bCompat[id] = false
  527.             g_bStrong[id] = true
  528.             g_bKatana[id] = false
  529.             g_bHammer[id] = false
  530.             g_bTurbulent9[id] = false
  531.             g_bBio[id] = false
  532.             g_bSabers[id] = false
  533.             g_bPlasma[id] = false
  534.             g_bStorm[id] = false
  535.             g_bLaevateinn[id] = false
  536.             g_bWarHammer_Dark_Knight[id] = false
  537.             g_bBalrog_Kosa[id] = false
  538.             g_iUsedTimes[id]++
  539.             /*rg_remove_item(id, "weapon_knife")
  540.             rg_give_item(id, "weapon_knife", GT_APPEND)
  541.             engclient_cmd(id, "weapon_knife")
  542.             g_iUsedTimes[id]++
  543.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  544.         }
  545.         case 2: // Katana
  546.         {
  547.             g_bCompat[id] = false
  548.             g_bStrong[id] = false
  549.             g_bKatana[id] = true
  550.             g_bHammer[id] = false
  551.             g_bTurbulent9[id] = false
  552.             g_bBio[id] = false
  553.             g_bSabers[id] = false
  554.             g_bPlasma[id] = false
  555.             g_bStorm[id] = false
  556.             g_bLaevateinn[id] = false
  557.             g_bWarHammer_Dark_Knight[id] = false
  558.             g_bBalrog_Kosa[id] = false
  559.             g_iUsedTimes[id]++
  560.             /*rg_remove_item(id, "weapon_knife")
  561.             rg_give_item(id, "weapon_knife", GT_APPEND)
  562.             engclient_cmd(id, "weapon_knife")
  563.             g_iUsedTimes[id]++
  564.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  565.         }
  566.         case 3: // Hammer
  567.         {
  568.             g_bCompat[id] = false
  569.             g_bStrong[id] = false
  570.             g_bKatana[id] = false
  571.             g_bHammer[id] = true
  572.             g_bTurbulent9[id] = false
  573.             g_bBio[id] = false
  574.             g_bSabers[id] = false
  575.             g_bPlasma[id] = false
  576.             g_bStorm[id] = false
  577.             g_bLaevateinn[id] = false
  578.             g_bWarHammer_Dark_Knight[id] = false
  579.             g_bBalrog_Kosa[id] = false
  580.             g_iUsedTimes[id]++
  581.             /*rg_remove_item(id, "weapon_knife")
  582.             rg_give_item(id, "weapon_knife", GT_APPEND)
  583.             engclient_cmd(id, "weapon_knife")
  584.             g_iUsedTimes[id]++
  585.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  586.         }
  587.         case 4: // Turbulent
  588.         {
  589.             if (ze_get_vip_flags(id) & VIP_A)
  590.             {
  591.                 g_bCompat[id] = false
  592.                 g_bStrong[id] = false
  593.                 g_bKatana[id] = false
  594.                 g_bHammer[id] = false
  595.                 g_bTurbulent9[id] = true
  596.                 g_bBio[id] = false
  597.                 g_bSabers[id] = false
  598.                 g_bPlasma[id] = false
  599.                 g_bStorm[id] = false
  600.                 g_bLaevateinn[id] = false
  601.                 g_bWarHammer_Dark_Knight[id] = false
  602.                 g_bBalrog_Kosa[id] = false
  603.                 g_iUsedTimes[id]++
  604.                 /*rg_remove_item(id, "weapon_knife")
  605.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  606.                 engclient_cmd(id, "weapon_knife")
  607.                 g_iUsedTimes[id]++
  608.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  609.             }
  610.         }
  611.         case 5: // Bio
  612.         {
  613.             if (ze_get_vip_flags(id) & VIP_A)
  614.             {
  615.                 g_bCompat[id] = false
  616.                 g_bStrong[id] = false
  617.                 g_bKatana[id] = false
  618.                 g_bHammer[id] = false
  619.                 g_bTurbulent9[id] = false
  620.                 g_bBio[id] = true
  621.                 g_bSabers[id] = false
  622.                 g_bPlasma[id] = false
  623.                 g_bStorm[id] = false
  624.                 g_bLaevateinn[id] = false
  625.                 g_bWarHammer_Dark_Knight[id] = false
  626.                 g_bBalrog_Kosa[id] = false
  627.                 g_iUsedTimes[id]++
  628.                 /*rg_remove_item(id, "weapon_knife")
  629.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  630.                 engclient_cmd(id, "weapon_knife")
  631.                 g_iUsedTimes[id]++
  632.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  633.             }
  634.         }
  635.         case 6: // Sabers
  636.         {
  637.             if (ze_get_vip_flags(id) & VIP_B)
  638.             {
  639.                 g_bCompat[id] = false
  640.                 g_bStrong[id] = false
  641.                 g_bKatana[id] = false
  642.                 g_bHammer[id] = false
  643.                 g_bTurbulent9[id] = false
  644.                 g_bBio[id] = false
  645.                 g_bSabers[id] = true
  646.                 g_bPlasma[id] = false
  647.                 g_bStorm[id] = false
  648.                 g_bLaevateinn[id] = false
  649.                 g_bWarHammer_Dark_Knight[id] = false
  650.                 g_bBalrog_Kosa[id] = false
  651.                 g_iUsedTimes[id]++
  652.                 /*rg_remove_item(id, "weapon_knife")
  653.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  654.                 engclient_cmd(id, "weapon_knife")
  655.                 g_iUsedTimes[id]++
  656.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  657.             }
  658.         }
  659.         case 7: // Plasma
  660.         {
  661.             if (ze_get_vip_flags(id) & VIP_B)
  662.             {
  663.                 g_bCompat[id] = false
  664.                 g_bStrong[id] = false
  665.                 g_bKatana[id] = false
  666.                 g_bHammer[id] = false
  667.                 g_bTurbulent9[id] = false
  668.                 g_bBio[id] = false
  669.                 g_bSabers[id] = false
  670.                 g_bPlasma[id] = true
  671.                 g_bStorm[id] = false
  672.                 g_bLaevateinn[id] = false
  673.                 g_bWarHammer_Dark_Knight[id] = false
  674.                 g_bBalrog_Kosa[id] = false
  675.                 g_iUsedTimes[id]++
  676.                 /*rg_remove_item(id, "weapon_knife")
  677.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  678.                 engclient_cmd(id, "weapon_knife")
  679.                 g_iUsedTimes[id]++
  680.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  681.             }
  682.         }
  683.         case 8: // Storm
  684.         {
  685.             if (ze_get_vip_flags(id) & VIP_C)
  686.             {
  687.                 g_bCompat[id] = false
  688.                 g_bStrong[id] = false
  689.                 g_bKatana[id] = false
  690.                 g_bHammer[id] = false
  691.                 g_bTurbulent9[id] = false
  692.                 g_bBio[id] = false
  693.                 g_bSabers[id] = false
  694.                 g_bPlasma[id] = false
  695.                 g_bStorm[id] = true
  696.                 g_bLaevateinn[id] = false
  697.                 g_bWarHammer_Dark_Knight[id] = false
  698.                 g_bBalrog_Kosa[id] = false
  699.                 g_iUsedTimes[id]++
  700.                 /*rg_remove_item(id, "weapon_knife")
  701.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  702.                 engclient_cmd(id, "weapon_knife")
  703.                 g_iUsedTimes[id]++
  704.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  705.             }
  706.         }
  707.         case 9: // Laevateinn
  708.         {
  709.             if (ze_get_vip_flags(id) & VIP_C)
  710.             {
  711.                 g_bCompat[id] = false
  712.                 g_bStrong[id] = false
  713.                 g_bKatana[id] = false
  714.                 g_bHammer[id] = false
  715.                 g_bTurbulent9[id] = false
  716.                 g_bBio[id] = false
  717.                 g_bSabers[id] = false
  718.                 g_bPlasma[id] = false
  719.                 g_bStorm[id] = false
  720.                 g_bLaevateinn[id] = true
  721.                 g_bWarHammer_Dark_Knight[id] = false
  722.                 g_bBalrog_Kosa[id] = false
  723.                 g_iUsedTimes[id]++
  724.                 /*rg_remove_item(id, "weapon_knife")
  725.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  726.                 engclient_cmd(id, "weapon_knife")
  727.                 g_iUsedTimes[id]++
  728.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  729.             }
  730.         }
  731.         case 10: // Warhammer Dark Night
  732.         {
  733.             if (ze_get_vip_flags(id) & VIP_C)
  734.             {
  735.                 g_bCompat[id] = false
  736.                 g_bStrong[id] = false
  737.                 g_bKatana[id] = false
  738.                 g_bHammer[id] = false
  739.                 g_bTurbulent9[id] = false
  740.                 g_bBio[id] = false
  741.                 g_bSabers[id] = false
  742.                 g_bPlasma[id] = false
  743.                 g_bStorm[id] = false
  744.                 g_bLaevateinn[id] = false
  745.                 g_bWarHammer_Dark_Knight[id] = true
  746.                 g_bBalrog_Kosa[id] = false
  747.                 g_iUsedTimes[id]++
  748.                 /*rg_remove_item(id, "weapon_knife")
  749.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  750.                 engclient_cmd(id, "weapon_knife")
  751.                 g_iUsedTimes[id]++
  752.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  753.             }
  754.         }
  755.         case 11: // Balrog Kosa
  756.         {
  757.             if (ze_get_vip_flags(id) & VIP_C)
  758.             {
  759.                 g_bCompat[id] = false
  760.                 g_bStrong[id] = false
  761.                 g_bKatana[id] = false
  762.                 g_bHammer[id] = false
  763.                 g_bTurbulent9[id] = false
  764.                 g_bBio[id] = false
  765.                 g_bSabers[id] = false
  766.                 g_bPlasma[id] = false
  767.                 g_bStorm[id] = false
  768.                 g_bLaevateinn[id] = false
  769.                 g_bWarHammer_Dark_Knight[id] = false
  770.                 g_bBalrog_Kosa[id] = true
  771.                 g_iUsedTimes[id]++
  772.                 /*rg_remove_item(id, "weapon_knife")
  773.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  774.                 engclient_cmd(id, "weapon_knife")
  775.                 g_iUsedTimes[id]++
  776.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  777.             }
  778.         }
  779.     }
  780.  
  781.     rg_remove_item(id, "weapon_knife")
  782.     rg_give_item(id, "weapon_knife", GT_APPEND)
  783.     engclient_cmd(id, "weapon_knife")
  784.     emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  785.     menu_destroy(iMenu)
  786.     return PLUGIN_HANDLED
  787. }
  788.  
  789. public fw_EmitSound(id, channel, const sound[])
  790. {
  791.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  792.         return FMRES_IGNORED
  793.        
  794.     new i
  795.     for (i = 0; i <= charsmax(combat_sounds); i++)
  796.     for (i = 0; i <= charsmax(strong_sounds); i++)
  797.     for (i = 0; i <= charsmax(katana_sounds); i++)
  798.     for (i = 0; i <= charsmax(hammer_sounds); i++)
  799.     for (i = 0; i <= charsmax(turbulent9_sounds); i++)
  800.     for (i = 0; i <= charsmax(bio_sounds); i++)
  801.     for (i = 0; i <= charsmax(sabers_sounds); i++)
  802.     for (i = 0; i <= charsmax(plasma_sounds); i++)
  803.     for (i = 0; i <= charsmax(storm_sounds); i++)
  804.     for (i = 0; i <= charsmax(laevateinn_sounds); i++)
  805.     for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
  806.     for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
  807.     {
  808.         if(equal(sound, oldknife_sounds[i]))
  809.         {
  810.             if (g_bCompat[id])
  811.             {
  812.                 emit_sound(id, channel, combat_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  813.                 return FMRES_SUPERCEDE
  814.             }
  815.             else if (g_bStrong[id])
  816.             {
  817.                 emit_sound(id, channel, strong_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  818.                 return FMRES_SUPERCEDE
  819.             }
  820.             else if (g_bKatana[id])
  821.             {
  822.                 emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  823.                 return FMRES_SUPERCEDE
  824.             }
  825.             else if (g_bHammer[id])
  826.             {
  827.                 emit_sound(id, channel, hammer_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  828.                 return FMRES_SUPERCEDE
  829.             }
  830.             else if ((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
  831.             {
  832.                 emit_sound(id, channel, turbulent9_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  833.                 return FMRES_SUPERCEDE
  834.             }
  835.             else if ((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
  836.             {
  837.                 emit_sound(id, channel, bio_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  838.                 return FMRES_SUPERCEDE
  839.             }
  840.             else if ((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
  841.             {
  842.                 emit_sound(id, channel, sabers_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  843.                 return FMRES_SUPERCEDE
  844.             }
  845.             else if ((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
  846.             {
  847.                 emit_sound(id, channel, plasma_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  848.                 return FMRES_SUPERCEDE
  849.             }
  850.             else if ((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
  851.             {
  852.                 emit_sound(id, channel, storm_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  853.                 return FMRES_SUPERCEDE
  854.             }
  855.             else if ((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
  856.             {
  857.                 emit_sound(id, channel, laevateinn_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  858.                 return FMRES_SUPERCEDE
  859.             }
  860.             else if ((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
  861.             {
  862.                 emit_sound(id, channel, warhammer_dark_knight_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  863.                 return FMRES_SUPERCEDE
  864.             }
  865.             else if ((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
  866.             {
  867.                 emit_sound(id, channel, balrog_kosa_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  868.                 return FMRES_SUPERCEDE
  869.             }
  870.             else if (!g_bCompat[id] || !g_bStrong[id] || !g_bKatana[id] || !g_bHammer[id] || !g_bTurbulent9[id] || !g_bBio[id] || !g_bSabers[id] || !g_bPlasma[id] || !g_bStorm[id] || !g_bLaevateinn[id] || !g_bWarHammer_Dark_Knight[id] || !g_bBalrog_Kosa[id])
  871.             {
  872.                 emit_sound(id, channel, oldknife_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  873.                 return FMRES_SUPERCEDE
  874.             }
  875.         }
  876.     }
  877.     return FMRES_IGNORED
  878. }
  879.  
  880. public CurrentWeapon(id)
  881. {
  882.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  883.         return
  884.        
  885.     if(get_user_weapon(id) & CSW_KNIFE)
  886.     {
  887.         if(g_bCompat[id])
  888.         {
  889.             cs_set_player_view_model(id, CSW_KNIFE, Compat_Models[0])
  890.             cs_set_player_weap_model(id, CSW_KNIFE, Compat_Models[1])
  891.         }
  892.         else if(g_bStrong[id])
  893.         {
  894.             cs_set_player_view_model(id, CSW_KNIFE, Strong_Models[0])
  895.             cs_set_player_weap_model(id, CSW_KNIFE, Strong_Models[1])
  896.         }
  897.         else if(g_bKatana[id])
  898.         {
  899.             cs_set_player_view_model(id, CSW_KNIFE, Katana_Models[0])
  900.             cs_set_player_weap_model(id, CSW_KNIFE, Katana_Models[1])
  901.         }
  902.         else if(g_bHammer[id])
  903.         {
  904.             cs_set_player_view_model(id, CSW_KNIFE, Hammer_Models[0])
  905.             cs_set_player_weap_model(id, CSW_KNIFE, Hammer_Models[1])
  906.         }
  907.         else if((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
  908.         {
  909.             cs_set_player_view_model(id, CSW_KNIFE, Turbulent9_Models[0])
  910.             cs_set_player_weap_model(id, CSW_KNIFE, Turbulent9_Models[1])
  911.         }
  912.         else if((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
  913.         {
  914.             cs_set_player_view_model(id, CSW_KNIFE, Bio_Models[0])
  915.             cs_set_player_weap_model(id, CSW_KNIFE, Bio_Models[1])
  916.         }
  917.         else if((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
  918.         {
  919.             cs_set_player_view_model(id, CSW_KNIFE, Sabers_Models[0])
  920.             cs_set_player_weap_model(id, CSW_KNIFE, Sabers_Models[1])
  921.         }
  922.         else if((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
  923.         {
  924.             cs_set_player_view_model(id, CSW_KNIFE, Plasma_Models[0])
  925.             cs_set_player_weap_model(id, CSW_KNIFE, Plasma_Models[1])
  926.         }
  927.         else if((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
  928.         {
  929.             cs_set_player_view_model(id, CSW_KNIFE, Storm_Models[0])
  930.             cs_set_player_weap_model(id, CSW_KNIFE, Storm_Models[1])
  931.         }
  932.         else if((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
  933.         {
  934.             cs_set_player_view_model(id, CSW_KNIFE, Laevateinn_Models[0])
  935.             cs_set_player_weap_model(id, CSW_KNIFE, Laevateinn_Models[1])
  936.         }
  937.         else if((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
  938.         {
  939.             cs_set_player_view_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[0])
  940.             cs_set_player_weap_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[1])
  941.         }
  942.         else if((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
  943.         {
  944.             cs_set_player_view_model(id, CSW_KNIFE, Balrog_Kosa_Models[0])
  945.             cs_set_player_weap_model(id, CSW_KNIFE, Balrog_Kosa_Models[1])
  946.         }
  947.         else
  948.         {
  949.             cs_reset_player_view_model(id, CSW_KNIFE)
  950.             cs_reset_player_weap_model(id, CSW_KNIFE)
  951.         }
  952.     }
  953. }
  954.  
  955. public Fw_RestMaxSpeed_Post(id)
  956. {
  957.     new iWpnId = get_user_weapon(id)
  958.    
  959.     if (iWpnId == CSW_KNIFE && g_bCompat[id])
  960.     {
  961.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  962.         {
  963.             new iFlags = get_entvar(id, var_flags);
  964.             new iWaterlvl = get_entvar(id, var_waterlevel)
  965.            
  966.             if (!(iFlags & FL_ONGROUND))
  967.                 return HAM_IGNORED
  968.  
  969.             if (iFlags & FL_WATERJUMP)
  970.                 return HAM_IGNORED
  971.  
  972.             if (iWaterlvl > 1)
  973.                 return HAM_IGNORED
  974.            
  975.             new Float:flVelocity[3]
  976.             get_entvar(id , var_velocity , flVelocity)
  977.  
  978.             flVelocity[2] += 325
  979.  
  980.             set_entvar(id , var_velocity , flVelocity)
  981.  
  982.             set_entvar(id, var_gaitsequence, 6)
  983.         }
  984.        
  985.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
  986.     }
  987.     else if (iWpnId == CSW_KNIFE && g_bStrong[id])
  988.     {
  989.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  990.         {
  991.             new iFlags = get_entvar(id, var_flags);
  992.             new iWaterlvl = get_entvar(id, var_waterlevel)
  993.            
  994.             if (!(iFlags & FL_ONGROUND))
  995.                 return HAM_IGNORED
  996.  
  997.             if (iFlags & FL_WATERJUMP)
  998.                 return HAM_IGNORED
  999.  
  1000.             if (iWaterlvl > 1)
  1001.                 return HAM_IGNORED
  1002.            
  1003.             new Float:flVelocity[3]
  1004.             get_entvar(id , var_velocity , flVelocity)
  1005.  
  1006.             flVelocity[2] += 325
  1007.  
  1008.             set_entvar(id , var_velocity , flVelocity)
  1009.  
  1010.             set_entvar(id, var_gaitsequence, 6)
  1011.         }
  1012.        
  1013.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_strong))
  1014.     }
  1015.     else if (iWpnId == CSW_KNIFE && g_bKatana[id])
  1016.     {
  1017.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1018.         {
  1019.             new iFlags = get_entvar(id, var_flags);
  1020.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1021.            
  1022.             if (!(iFlags & FL_ONGROUND))
  1023.                 return HAM_IGNORED
  1024.  
  1025.             if (iFlags & FL_WATERJUMP)
  1026.                 return HAM_IGNORED
  1027.  
  1028.             if (iWaterlvl > 1)
  1029.                 return HAM_IGNORED
  1030.            
  1031.             new Float:flVelocity[3]
  1032.             get_entvar(id , var_velocity , flVelocity)
  1033.  
  1034.             flVelocity[2] += 325
  1035.  
  1036.             set_entvar(id , var_velocity , flVelocity)
  1037.  
  1038.             set_entvar(id, var_gaitsequence, 6)
  1039.         }
  1040.        
  1041.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_katana))
  1042.     }
  1043.     else if (iWpnId == CSW_KNIFE && g_bHammer[id])
  1044.     {
  1045.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1046.         {
  1047.             new iFlags = get_entvar(id, var_flags);
  1048.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1049.            
  1050.             if (!(iFlags & FL_ONGROUND))
  1051.                 return HAM_IGNORED
  1052.  
  1053.             if (iFlags & FL_WATERJUMP)
  1054.                 return HAM_IGNORED
  1055.  
  1056.             if (iWaterlvl > 1)
  1057.                 return HAM_IGNORED
  1058.            
  1059.             new Float:flVelocity[3]
  1060.             get_entvar(id , var_velocity , flVelocity)
  1061.  
  1062.             flVelocity[2] += 325
  1063.  
  1064.             set_entvar(id , var_velocity , flVelocity)
  1065.  
  1066.             set_entvar(id, var_gaitsequence, 6)
  1067.         }
  1068.        
  1069.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_hammer))
  1070.     }
  1071.     else if (iWpnId == CSW_KNIFE && g_bTurbulent9[id])
  1072.     {
  1073.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1074.         {
  1075.             new iFlags = get_entvar(id, var_flags);
  1076.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1077.            
  1078.             if (!(iFlags & FL_ONGROUND))
  1079.                 return HAM_IGNORED
  1080.  
  1081.             if (iFlags & FL_WATERJUMP)
  1082.                 return HAM_IGNORED
  1083.  
  1084.             if (iWaterlvl > 1)
  1085.                 return HAM_IGNORED
  1086.            
  1087.             new Float:flVelocity[3]
  1088.             get_entvar(id , var_velocity , flVelocity)
  1089.  
  1090.             flVelocity[2] += 325
  1091.  
  1092.             set_entvar(id , var_velocity , flVelocity)
  1093.  
  1094.             set_entvar(id, var_gaitsequence, 6)
  1095.         }
  1096.        
  1097.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_turb))
  1098.     }
  1099.     else if (iWpnId == CSW_KNIFE && g_bBio[id])
  1100.     {
  1101.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1102.         {
  1103.             new iFlags = get_entvar(id, var_flags);
  1104.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1105.            
  1106.             if (!(iFlags & FL_ONGROUND))
  1107.                 return HAM_IGNORED
  1108.  
  1109.             if (iFlags & FL_WATERJUMP)
  1110.                 return HAM_IGNORED
  1111.  
  1112.             if (iWaterlvl > 1)
  1113.                 return HAM_IGNORED
  1114.            
  1115.             new Float:flVelocity[3]
  1116.             get_entvar(id , var_velocity , flVelocity)
  1117.  
  1118.             flVelocity[2] += 325
  1119.  
  1120.             set_entvar(id , var_velocity , flVelocity)
  1121.  
  1122.             set_entvar(id, var_gaitsequence, 6)
  1123.         }
  1124.        
  1125.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_bio))
  1126.     }
  1127.     else if (iWpnId == CSW_KNIFE && g_bSabers[id])
  1128.     {
  1129.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1130.         {
  1131.             new iFlags = get_entvar(id, var_flags);
  1132.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1133.            
  1134.             if (!(iFlags & FL_ONGROUND))
  1135.                 return HAM_IGNORED
  1136.  
  1137.             if (iFlags & FL_WATERJUMP)
  1138.                 return HAM_IGNORED
  1139.  
  1140.             if (iWaterlvl > 1)
  1141.                 return HAM_IGNORED
  1142.            
  1143.             new Float:flVelocity[3]
  1144.             get_entvar(id , var_velocity , flVelocity)
  1145.  
  1146.             flVelocity[2] += 325
  1147.  
  1148.             set_entvar(id , var_velocity , flVelocity)
  1149.  
  1150.             set_entvar(id, var_gaitsequence, 6)
  1151.         }
  1152.        
  1153.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_sabers))
  1154.     }
  1155.     else if (iWpnId == CSW_KNIFE && g_bPlasma[id])
  1156.     {
  1157.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1158.         {
  1159.             new iFlags = get_entvar(id, var_flags);
  1160.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1161.            
  1162.             if (!(iFlags & FL_ONGROUND))
  1163.                 return HAM_IGNORED
  1164.  
  1165.             if (iFlags & FL_WATERJUMP)
  1166.                 return HAM_IGNORED
  1167.  
  1168.             if (iWaterlvl > 1)
  1169.                 return HAM_IGNORED
  1170.            
  1171.             new Float:flVelocity[3]
  1172.             get_entvar(id , var_velocity , flVelocity)
  1173.  
  1174.             flVelocity[2] += 325
  1175.  
  1176.             set_entvar(id , var_velocity , flVelocity)
  1177.  
  1178.             set_entvar(id, var_gaitsequence, 6)
  1179.         }
  1180.        
  1181.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_plasma))
  1182.     }
  1183.     else if (iWpnId == CSW_KNIFE && g_bStorm[id])
  1184.     {
  1185.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1186.         {
  1187.             new iFlags = get_entvar(id, var_flags);
  1188.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1189.            
  1190.             if (!(iFlags & FL_ONGROUND))
  1191.                 return HAM_IGNORED
  1192.  
  1193.             if (iFlags & FL_WATERJUMP)
  1194.                 return HAM_IGNORED
  1195.  
  1196.             if (iWaterlvl > 1)
  1197.                 return HAM_IGNORED
  1198.            
  1199.             new Float:flVelocity[3]
  1200.             get_entvar(id , var_velocity , flVelocity)
  1201.  
  1202.             flVelocity[2] += 325
  1203.  
  1204.             set_entvar(id , var_velocity , flVelocity)
  1205.  
  1206.             set_entvar(id, var_gaitsequence, 6)
  1207.         }
  1208.        
  1209.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_storm))
  1210.     }
  1211.     else if (iWpnId == CSW_KNIFE && g_bLaevateinn[id])
  1212.     {
  1213.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1214.         {
  1215.             new iFlags = get_entvar(id, var_flags);
  1216.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1217.            
  1218.             if (!(iFlags & FL_ONGROUND))
  1219.                 return HAM_IGNORED
  1220.  
  1221.             if (iFlags & FL_WATERJUMP)
  1222.                 return HAM_IGNORED
  1223.  
  1224.             if (iWaterlvl > 1)
  1225.                 return HAM_IGNORED
  1226.            
  1227.             new Float:flVelocity[3]
  1228.             get_entvar(id , var_velocity , flVelocity)
  1229.  
  1230.             flVelocity[2] += 325
  1231.  
  1232.             set_entvar(id , var_velocity , flVelocity)
  1233.  
  1234.             set_entvar(id, var_gaitsequence, 6)
  1235.         }
  1236.        
  1237.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_laevat))
  1238.     }
  1239.     else if (iWpnId == CSW_KNIFE && g_bWarHammer_Dark_Knight[id])
  1240.     {
  1241.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1242.         {
  1243.             new iFlags = get_entvar(id, var_flags);
  1244.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1245.            
  1246.             if (!(iFlags & FL_ONGROUND))
  1247.                 return HAM_IGNORED
  1248.  
  1249.             if (iFlags & FL_WATERJUMP)
  1250.                 return HAM_IGNORED
  1251.  
  1252.             if (iWaterlvl > 1)
  1253.                 return HAM_IGNORED
  1254.            
  1255.             new Float:flVelocity[3]
  1256.             get_entvar(id , var_velocity , flVelocity)
  1257.  
  1258.             flVelocity[2] += 325
  1259.  
  1260.             set_entvar(id , var_velocity , flVelocity)
  1261.  
  1262.             set_entvar(id, var_gaitsequence, 6)
  1263.         }
  1264.        
  1265.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_darknight))
  1266.     }
  1267.     else if (iWpnId == CSW_KNIFE && g_bBalrog_Kosa[id])
  1268.     {
  1269.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1270.         {
  1271.             new iFlags = get_entvar(id, var_flags);
  1272.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1273.            
  1274.             if (!(iFlags & FL_ONGROUND))
  1275.                 return HAM_IGNORED
  1276.  
  1277.             if (iFlags & FL_WATERJUMP)
  1278.                 return HAM_IGNORED
  1279.  
  1280.             if (iWaterlvl > 1)
  1281.                 return HAM_IGNORED
  1282.            
  1283.             new Float:flVelocity[3]
  1284.             get_entvar(id , var_velocity , flVelocity)
  1285.  
  1286.             flVelocity[2] += 325
  1287.  
  1288.             set_entvar(id , var_velocity , flVelocity)
  1289.  
  1290.             set_entvar(id, var_gaitsequence, 6)
  1291.         }
  1292.        
  1293.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_kosa))
  1294.     }
  1295.     return HAM_IGNORED
  1296. }
  1297.  
  1298.  
  1299. public DeathMsg(msg_id, msg_dest, id)
  1300. {
  1301.     static szTruncatedWeapon[33], iAttacker
  1302.     get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  1303.     iAttacker = get_msg_arg_int(1)
  1304.    
  1305.     if(!is_user_alive(iAttacker) || iAttacker == get_msg_arg_int(2) || !is_user_alive(get_msg_arg_int(2))) // get_msg_arg_int(2) = iVictim
  1306.         return
  1307.    
  1308.     if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iAttacker) & CSW_KNIFE)
  1309.     {
  1310.         if(g_bCompat[id])
  1311.         {
  1312.             set_msg_arg_string(4, "Combat knife")
  1313.         }
  1314.         else if(g_bStrong[id])
  1315.         {
  1316.             set_msg_arg_string(4, "Strong knife")
  1317.         }
  1318.         else if(g_bKatana[id])
  1319.         {
  1320.             set_msg_arg_string(4, "Katana knife")
  1321.         }
  1322.         else if(g_bHammer[id])
  1323.         {
  1324.             set_msg_arg_string(4, "Ice knife")
  1325.         }
  1326.         else if(g_bTurbulent9[id])
  1327.         {
  1328.             set_msg_arg_string(4, "Turbulent9 knife")
  1329.         }
  1330.         else if(g_bBio[id])
  1331.         {
  1332.             set_msg_arg_string(4, "Biohazard knife")
  1333.         }
  1334.         else if(g_bSabers[id])
  1335.         {
  1336.             set_msg_arg_string(4, "Sabers knife")
  1337.         }
  1338.         else if(g_bPlasma[id])
  1339.         {
  1340.             set_msg_arg_string(4, "Plasma knife")
  1341.         }
  1342.         else if(g_bStorm[id])
  1343.         {
  1344.             set_msg_arg_string(4, "Storm knife")
  1345.         }
  1346.         else if(g_bLaevateinn[id])
  1347.         {
  1348.             set_msg_arg_string(4, "Laevateinn knife")
  1349.         }
  1350.         else if(g_bWarHammer_Dark_Knight[id])
  1351.         {
  1352.             set_msg_arg_string(4, "WarHammer Dark Knight knife")
  1353.         }
  1354.         else if(g_bBalrog_Kosa[id])
  1355.         {
  1356.             set_msg_arg_string(4, "Balrog Kosa Knife")
  1357.         }
  1358.     }
  1359. }
  1360.  
  1361. stock fm_set_user_maxspeed(index, Float:speed = -1.0)
  1362. {
  1363.         engfunc(EngFunc_SetClientMaxspeed, index, speed);
  1364.         set_pev(index, pev_maxspeed, speed);
  1365.  
  1366.         return 1;
  1367. }  
  1368.  
  1369. public native_ze_open_knife_menu(id)
  1370. {
  1371.     Show_Knife_Menu(id)
  1372. }

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#28

Post by Raheem » 5 years ago

Grenade 290 and knife 270, What should it be?
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#29

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Grenade 290 and knife 270, What should it be?
That Knife should be set to 400 as speak for testing this.

It will be 280 once its working.

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#30

Post by Raheem » 5 years ago

Let me test code myself.
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#31

Post by Mark » 5 years ago

if you want to join my server you can 192.223.26.205:27050 pass is getsome

If i switch to nade speed is set to 400 then if i switch back to knife its set to 270 then if i switch to pistol its 400 again its strange lol

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#32

Post by Raheem » 5 years ago

Delay needed:

  1. #include <zombie_escape>
  2. #include <engine>
  3. #include <fun>
  4. #include <ze_vip>
  5.  
  6. // Models
  7. new const Compat_Models[][] =
  8. {
  9.     "models/zombie_escape/v_combat_knife.mdl",
  10.     "models/zombie_escape/p_combat_knife.mdl"
  11. }
  12.  
  13. new const Strong_Models[][] =
  14. {
  15.     "models/zombie_escape/v_strong_knife.mdl",
  16.     "models/zombie_escape/p_strong_knife.mdl"
  17. }
  18.  
  19. new const Katana_Models[][] =
  20. {
  21.     "models/zombie_escape/v_katana_knife.mdl",
  22.     "models/zombie_escape/p_katana_knife.mdl"
  23. }
  24.  
  25. new const Hammer_Models[][] =
  26. {
  27.     "models/zombie_escape/v_hammer_knife.mdl",
  28.     "models/zombie_escape/p_hammer_knife.mdl"
  29. }
  30.  
  31. new const Turbulent9_Models[][] =
  32. {
  33.     "models/zombie_escape/v_turbulent9_knife.mdl",
  34.     "models/zombie_escape/p_turbulent9_knife.mdl"
  35. }
  36.  
  37. new const Bio_Models[][] =
  38. {
  39.     "models/zombie_escape/v_bio_knife.mdl",
  40.     "models/zombie_escape/p_bio_knife.mdl"
  41. }
  42.  
  43. new const Sabers_Models[][] =
  44. {
  45.     "models/zombie_escape/v_laser_knife.mdl",
  46.     "models/zombie_escape/p_laser_knife.mdl"
  47. }
  48.  
  49. new const Plasma_Models[][] =
  50. {
  51.     "models/zombie_escape/v_plasma_knife.mdl",
  52.     "models/zombie_escape/p_plasma_knife.mdl"
  53. }
  54.  
  55. new const Storm_Models[][] =
  56. {
  57.     "models/zombie_escape/v_storm_sword_knife.mdl",
  58.     "models/zombie_escape/p_storm_sword_knife.mdl"
  59. }
  60.  
  61. new const Laevateinn_Models[][] =
  62. {
  63.     "models/zombie_escape/v_laevateinn_knife.mdl",
  64.     "models/zombie_escape/p_laevateinn_knife.mdl"
  65. }
  66.  
  67. new const WarHammer_Dark_Knight_Models[][] =
  68. {
  69.     "models/zombie_escape/v_WarHammer_dark_knight_knife.mdl",
  70.     "models/zombie_escape/p_WarHammer_dark_knight_knife.mdl"
  71. }
  72.  
  73. new const Balrog_Kosa_Models[][] =
  74. {
  75.     "models/zombie_escape/v_balrog_kosa_knife.mdl",
  76.     "models/zombie_escape/p_balrog_kosa_knife.mdl"
  77. }
  78.  
  79. // Sounds
  80. new const g_sound_knife[] = "items/gunpickup2.wav"
  81.  
  82. new const combat_sounds[][] =
  83. {
  84.     "zombie_escape/knife_menu/combat_deploy.wav",
  85.     "zombie_escape/knife_menu/combat_hit.wav",
  86.     "zombie_escape/knife_menu/combat_hit.wav",
  87.     "zombie_escape/knife_menu/combat_hit.wav",
  88.     "zombie_escape/knife_menu/combat_hit.wav",
  89.     "zombie_escape/knife_menu/combat_hitwall.wav",
  90.     "zombie_escape/knife_menu/combat_slash.wav",
  91.     "zombie_escape/knife_menu/combat_slash.wav",
  92.     "zombie_escape/knife_menu/combat_stab.wav"
  93. }
  94.  
  95. new const strong_sounds[][] =
  96. {
  97.     "zombie_escape/knife_menu/strong_deploy.wav",
  98.     "zombie_escape/knife_menu/strong_hit.wav",
  99.     "zombie_escape/knife_menu/strong_hit.wav",
  100.     "zombie_escape/knife_menu/strong_hit.wav",
  101.     "zombie_escape/knife_menu/strong_hit.wav",
  102.     "zombie_escape/knife_menu/strong_hitwall.wav",
  103.     "zombie_escape/knife_menu/strong_slash.wav",
  104.     "zombie_escape/knife_menu/strong_slash.wav",
  105.     "zombie_escape/knife_menu/strong_stab.wav"
  106. }
  107.  
  108. new const katana_sounds[][] =
  109. {
  110.     "zombie_escape/knife_menu/katana_deploy.wav",
  111.     "zombie_escape/knife_menu/katana_hit.wav",
  112.     "zombie_escape/knife_menu/katana_hit.wav",
  113.     "zombie_escape/knife_menu/katana_hit.wav",
  114.     "zombie_escape/knife_menu/katana_hit.wav",
  115.     "zombie_escape/knife_menu/katana_hitwall.wav",
  116.     "zombie_escape/knife_menu/katana_slash.wav",
  117.     "zombie_escape/knife_menu/katana_slash.wav",
  118.     "zombie_escape/knife_menu/katana_stab.wav"
  119. }
  120.  
  121. new const hammer_sounds[][] =
  122. {
  123.     "zombie_escape/knife_menu/hammer_deploy.wav",
  124.     "zombie_escape/knife_menu/hammer_hit.wav",
  125.     "zombie_escape/knife_menu/hammer_hit.wav",
  126.     "zombie_escape/knife_menu/hammer_hit.wav",
  127.     "zombie_escape/knife_menu/hammer_hit.wav",
  128.     "zombie_escape/knife_menu/hammer_hitwall.wav",
  129.     "zombie_escape/knife_menu/hammer_slash.wav",
  130.     "zombie_escape/knife_menu/hammer_slash.wav",
  131.     "zombie_escape/knife_menu/hammer_stab.wav"
  132. }
  133.  
  134. new const turbulent9_sounds[][] =
  135. {
  136.     "zombie_escape/knife_menu/turbulent9_deploy.wav",
  137.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  138.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  139.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  140.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  141.     "zombie_escape/knife_menu/turbulent9_hitwall.wav",
  142.     "zombie_escape/knife_menu/turbulent9_slash.wav",
  143.     "zombie_escape/knife_menu/turbulent9_slash.wav",
  144.     "zombie_escape/knife_menu/turbulent9_stab.wav"
  145. }
  146.  
  147. new const bio_sounds[][] =
  148. {
  149.     "zombie_escape/knife_menu/bio_deploy.wav",
  150.     "zombie_escape/knife_menu/bio_hit.wav",
  151.     "zombie_escape/knife_menu/bio_hit.wav",
  152.     "zombie_escape/knife_menu/bio_hit.wav",
  153.     "zombie_escape/knife_menu/bio_hit.wav",
  154.     "zombie_escape/knife_menu/bio_hitwall.wav",
  155.     "zombie_escape/knife_menu/bio_slash.wav",
  156.     "zombie_escape/knife_menu/bio_slash.wav",
  157.     "zombie_escape/knife_menu/bio_stab.wav"
  158. }
  159.  
  160. new const sabers_sounds[][] =
  161. {
  162.     "zombie_escape/knife_menu/laser_deploy.wav",
  163.     "zombie_escape/knife_menu/laser_hit.wav",
  164.     "zombie_escape/knife_menu/laser_hit.wav",
  165.     "zombie_escape/knife_menu/laser_hit.wav",
  166.     "zombie_escape/knife_menu/laser_hit.wav",
  167.     "zombie_escape/knife_menu/laser_hitwall.wav",
  168.     "zombie_escape/knife_menu/laser_slash1.wav",
  169.     "zombie_escape/knife_menu/laser_slash2.wav",
  170.     "zombie_escape/knife_menu/laser_stab.wav"
  171. }
  172.  
  173. new const plasma_sounds[][] =
  174. {
  175.     "zombie_escape/knife_menu/plasma_deploy.wav",
  176.     "zombie_escape/knife_menu/plasma_hit.wav",
  177.     "zombie_escape/knife_menu/plasma_hit.wav",
  178.     "zombie_escape/knife_menu/plasma_hit.wav",
  179.     "zombie_escape/knife_menu/plasma_hit.wav",
  180.     "zombie_escape/knife_menu/plasma_hitwall.wav",
  181.     "zombie_escape/knife_menu/plasma_slash.wav",
  182.     "zombie_escape/knife_menu/plasma_slash.wav",
  183.     "zombie_escape/knife_menu/plasma_stab.wav"
  184. }
  185.  
  186. new const storm_sounds[][] =
  187. {
  188.     "zombie_escape/knife_menu/storm_sword_deploy.wav",
  189.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  190.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  191.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  192.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  193.     "zombie_escape/knife_menu/storm_sword_hitwall.wav",
  194.     "zombie_escape/knife_menu/storm_sword_slash.wav",
  195.     "zombie_escape/knife_menu/storm_sword_slash.wav",
  196.     "zombie_escape/knife_menu/storm_sword_stab.wav"
  197. }
  198.  
  199. new const laevateinn_sounds[][] =
  200. {
  201.     "zombie_escape/knife_menu/laevateinn_deploy.wav",
  202.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  203.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  204.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  205.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  206.     "zombie_escape/knife_menu/laevateinn_hitwall.wav",
  207.     "zombie_escape/knife_menu/laevateinn_slash.wav",
  208.     "zombie_escape/knife_menu/laevateinn_slash.wav",
  209.     "zombie_escape/knife_menu/laevateinn_stab.wav"
  210. }
  211.  
  212. new const warhammer_dark_knight_sounds[][] =
  213. {
  214.     "zombie_escape/knife_menu/WarHammer_dark_knight_deploy.wav",
  215.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  216.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  217.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  218.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  219.     "zombie_escape/knife_menu/WarHammer_dark_knight_hitwall.wav",
  220.     "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
  221.     "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
  222.     "zombie_escape/knife_menu/WarHammer_dark_knight_stab.wav"
  223. }
  224.  
  225. new const balrog_kosa_sounds[][] =
  226. {
  227.     "zombie_escape/knife_menu/balrog_kosa_deploy.wav",
  228.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  229.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  230.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  231.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  232.     "zombie_escape/knife_menu/balrog_kosa_hitwall.wav",
  233.     "zombie_escape/knife_menu/balrog_kosa_slash.wav",
  234.     "zombie_escape/knife_menu/balrog_kosa_slash.wav",
  235.     "zombie_escape/knife_menu/balrog_kosa_stab.wav"
  236. }
  237.  
  238. new const oldknife_sounds[][] =
  239. {
  240.     "weapons/knife_deploy1.wav",
  241.     "weapons/knife_hit1.wav",
  242.     "weapons/knife_hit2.wav",
  243.     "weapons/knife_hit3.wav",
  244.     "weapons/knife_hit4.wav",
  245.     "weapons/knife_hitwall1.wav",
  246.     "weapons/knife_slash1.wav",
  247.     "weapons/knife_slash2.wav",
  248.     "weapons/knife_stab.wav"
  249. }
  250.  
  251. new bool:g_bCompat[33], bool:g_bStrong[33], bool:g_bKatana[33], bool:g_bHammer[33], bool:g_bTurbulent9[33], bool:g_bBio[33], bool:g_bSabers[33], bool:g_bPlasma[33],
  252. bool:g_bStorm[33], bool:g_bLaevateinn[33], bool:g_bWarHammer_Dark_Knight[33], bool:g_bBalrog_Kosa[33], bool:g_bNoSpeed, g_iUsedTimes[33], g_pCvarUseTimes
  253.  
  254. new cvar_speed_compat
  255. new cvar_speed_strong
  256. new cvar_speed_katana
  257. new cvar_speed_hammer
  258. new cvar_speed_turb
  259. new cvar_speed_bio
  260. new cvar_speed_sabers
  261. new cvar_speed_plasma
  262. new cvar_speed_storm
  263. new cvar_speed_laevat
  264. new cvar_speed_darknight
  265. new cvar_speed_kosa
  266.  
  267. public plugin_precache()
  268. {
  269.     new i
  270.  
  271.     for (i = 0; i <= charsmax(Compat_Models); i++)
  272.         precache_model(Compat_Models[i])
  273.  
  274.     for (i = 0; i <= charsmax(Hammer_Models); i++)
  275.         precache_model(Hammer_Models[i])
  276.  
  277.     for (i = 0; i <= charsmax(Katana_Models); i++)
  278.         precache_model(Katana_Models[i])
  279.  
  280.     for (i = 0; i <= charsmax(Strong_Models); i++)
  281.         precache_model(Strong_Models[i])
  282.  
  283.     for (i = 0; i <= charsmax(Turbulent9_Models); i++)
  284.         precache_model(Turbulent9_Models[i])
  285.  
  286.     for (i = 0; i <= charsmax(Bio_Models); i++)
  287.         precache_model(Bio_Models[i])
  288.  
  289.     for (i = 0; i <= charsmax(Sabers_Models); i++)
  290.         precache_model(Sabers_Models[i])
  291.  
  292.     for (i = 0; i <= charsmax(Plasma_Models); i++)
  293.         precache_model(Plasma_Models[i])
  294.  
  295.     for (i = 0; i <= charsmax(Storm_Models); i++)
  296.         precache_model(Storm_Models[i])
  297.  
  298.     for (i = 0; i <= charsmax(Laevateinn_Models); i++)
  299.         precache_model(Laevateinn_Models[i])
  300.  
  301.     for (i = 0; i <= charsmax(WarHammer_Dark_Knight_Models); i++)
  302.         precache_model(WarHammer_Dark_Knight_Models[i])
  303.  
  304.     for (i = 0; i <= charsmax(Balrog_Kosa_Models); i++)
  305.         precache_model(Balrog_Kosa_Models[i])
  306.  
  307.     for (i = 0; i <= charsmax(combat_sounds); i++)
  308.         precache_sound(combat_sounds[i])
  309.  
  310.     for (i = 0; i <= charsmax(strong_sounds); i++)
  311.         precache_sound(strong_sounds[i])
  312.  
  313.     for (i = 0; i <= charsmax(katana_sounds); i++)
  314.         precache_sound(katana_sounds[i])
  315.  
  316.     for (i = 0; i <= charsmax(hammer_sounds); i++)
  317.         precache_sound(hammer_sounds[i])
  318.  
  319.     for (i = 0; i <= charsmax(turbulent9_sounds); i++)
  320.         precache_sound(turbulent9_sounds[i])
  321.  
  322.     for (i = 0; i <= charsmax(bio_sounds); i++)
  323.         precache_sound(bio_sounds[i])
  324.  
  325.     for (i = 0; i <= charsmax(sabers_sounds); i++)
  326.         precache_sound(sabers_sounds[i])
  327.  
  328.     for (i = 0; i <= charsmax(plasma_sounds); i++)
  329.         precache_sound(plasma_sounds[i])
  330.  
  331.     for (i = 0; i <= charsmax(storm_sounds); i++)
  332.         precache_sound(storm_sounds[i])
  333.  
  334.     for (i = 0; i <= charsmax(laevateinn_sounds); i++)
  335.         precache_sound(laevateinn_sounds[i])
  336.  
  337.     for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
  338.         precache_sound(warhammer_dark_knight_sounds[i])
  339.  
  340.     for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
  341.         precache_sound(balrog_kosa_sounds[i])
  342.  
  343.     precache_sound(g_sound_knife)
  344. }
  345.  
  346. public plugin_natives()
  347. {
  348.     register_native("ze_open_knife_menu", "native_ze_open_knife_menu", 1)
  349. }
  350.  
  351. public plugin_init()
  352. {
  353.     register_plugin("[ZE] Addon: Knife Menu", "1.2", "Jack GamePlay")
  354.  
  355.     register_forward(FM_EmitSound, "fw_EmitSound")
  356.     register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
  357.  
  358.     register_event("CurWeapon", "CurrentWeapon", "be", "1=1")
  359.     RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
  360.    
  361.     g_pCvarUseTimes = register_cvar("ze_knife_menu_use_times", "1")
  362.  
  363.     register_message(get_user_msgid("DeathMsg"), "DeathMsg")
  364.  
  365.     register_clcmd("say /k", "Show_Knife_Menu")
  366.    
  367.     cvar_speed_compat = register_cvar("ze_compat_speed", "400.0")
  368.     cvar_speed_strong = register_cvar("ze_strong_speed", "270.0")
  369.     cvar_speed_katana = register_cvar("ze_katana_speed", "270.0")
  370.     cvar_speed_hammer = register_cvar("ze_hammer_speed", "270.0")
  371.     cvar_speed_turb = register_cvar("ze_turb_speed", "275.0")    
  372.     cvar_speed_bio = register_cvar("ze_bio_speed", "275.0")
  373.     cvar_speed_sabers = register_cvar("ze_sabers_speed", "275.0")
  374.     cvar_speed_plasma = register_cvar("ze_plasma_speed", "275.0")
  375.     cvar_speed_storm = register_cvar("ze_storm_speed", "280.0")    
  376.     cvar_speed_laevat = register_cvar("ze_laevat_speed", "280.0")  
  377.     cvar_speed_darknight = register_cvar("ze_darknight_speed", "280.0")
  378.     cvar_speed_kosa = register_cvar("ze_kosa_speed", "280.0")
  379. }
  380.  
  381. public ze_user_humanized(id)
  382. {
  383.     g_iUsedTimes[id] = 0
  384. }
  385.  
  386. public ze_user_infected(Victim)
  387. {
  388.     g_bCompat[Victim] = false
  389.     g_bStrong[Victim] = false
  390.     g_bKatana[Victim] = false
  391.     g_bHammer[Victim] = false
  392.     g_bTurbulent9[Victim] = false
  393.     g_bBio[Victim] = false
  394.     g_bSabers[Victim] = false
  395.     g_bPlasma[Victim] = false
  396.     g_bStorm[Victim] = false
  397.     g_bLaevateinn[Victim] = false
  398.     g_bWarHammer_Dark_Knight[Victim] = false
  399.     g_bBalrog_Kosa[Victim] = false
  400.     g_iUsedTimes[Victim] = 0
  401. }
  402.  
  403. public client_putinserver(id)
  404. {
  405.     g_bCompat[id] = false
  406.     g_bStrong[id] = false
  407.     g_bKatana[id] = false
  408.     g_bHammer[id] = false
  409.     g_bTurbulent9[id] = false
  410.     g_bBio[id] = false
  411.     g_bSabers[id] = false
  412.     g_bPlasma[id] = false
  413.     g_bStorm[id] = false
  414.     g_bLaevateinn[id] = false
  415.     g_bWarHammer_Dark_Knight[id] = false
  416.     g_bBalrog_Kosa[id] = false
  417.     g_iUsedTimes[id] = 0
  418. }
  419.  
  420. public client_disconnected(id)
  421. {
  422.     g_bCompat[id] = false
  423.     g_bStrong[id] = false
  424.     g_bKatana[id] = false
  425.     g_bHammer[id] = false
  426.     g_bTurbulent9[id] = false
  427.     g_bBio[id] = false
  428.     g_bSabers[id] = false
  429.     g_bPlasma[id] = false
  430.     g_bStorm[id] = false
  431.     g_bLaevateinn[id] = false
  432.     g_bWarHammer_Dark_Knight[id] = false
  433.     g_bBalrog_Kosa[id] = false
  434.     g_iUsedTimes[id] = 0
  435. }
  436.  
  437. public Show_Knife_Menu(id)
  438. {
  439.     if (!is_user_connected(id))
  440.         return PLUGIN_CONTINUE
  441.  
  442.     if (ze_is_user_zombie(id))
  443.     {
  444.         ze_colored_print(id, "!tZombies can't open knife menu!y.")
  445.         return PLUGIN_HANDLED
  446.     }
  447.  
  448.     if (g_iUsedTimes[id] >= get_pcvar_num(g_pCvarUseTimes))
  449.     {
  450.         ze_colored_print(id, "!tYou can only open knife menu !y[!g%dx!y] per round!", get_pcvar_num(g_pCvarUseTimes))
  451.         return PLUGIN_HANDLED
  452.     }
  453.  
  454.     if (!is_user_alive(id))
  455.     {
  456.         ze_colored_print(id, "!tDead can't open knife menu!y.")
  457.         return PLUGIN_HANDLED
  458.     }
  459.  
  460.     Knife_Menu(id)
  461.     return PLUGIN_CONTINUE
  462. }
  463.  
  464. public Knife_Menu(id)
  465. {
  466.     new iMenu = menu_create("\rChoose Your Knife\w:", "Menu_Handler")
  467.     menu_additem(iMenu, "\yCombat", "", 0)
  468.     menu_additem(iMenu, "\yStrong", "", 0)
  469.     menu_additem(iMenu, "\yKatana", "", 0)
  470.     menu_additem(iMenu, "\yHammer", "", 0)
  471.  
  472.     if (ze_get_vip_flags(id) & VIP_A)
  473.     {
  474.         menu_additem(iMenu, "\yTurbulent9 \r[VIP]", "", 0)
  475.         menu_additem(iMenu, "\yBio Hazard \r[VIP]", "", 0)
  476.     }
  477.    
  478.     if (ze_get_vip_flags(id) & VIP_B)
  479.     {
  480.         menu_additem(iMenu, "\ySabers \r[VIP+]", "", 0)
  481.         menu_additem(iMenu, "\yPlasma \r[VIP+]", "", 0)
  482.     }
  483.  
  484.     if (ze_get_vip_flags(id) & VIP_C)
  485.     {
  486.         menu_additem(iMenu, "\yStorm \r[VIP++]", "", 0)
  487.         menu_additem(iMenu, "\yLaevateinn \r[VIP++]", "", 0)
  488.         menu_additem(iMenu, "\yWarHammer Dark Night \r[VIP++]", "", 0)
  489.         menu_additem(iMenu, "\yBalrog Kosa \r[VIP++]", "", 0)
  490.     }
  491.  
  492.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  493.     menu_display(id, iMenu, 0)
  494. }
  495.  
  496. public Menu_Handler(id, iMenu, iKey)
  497. {
  498.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  499.         return PLUGIN_HANDLED
  500.        
  501.     switch(iKey)
  502.     {
  503.         case 0: // Compat
  504.         {
  505.             g_bCompat[id] = true
  506.             g_bStrong[id] = false
  507.             g_bKatana[id] = false
  508.             g_bHammer[id] = false
  509.             g_bTurbulent9[id] = false
  510.             g_bBio[id] = false
  511.             g_bSabers[id] = false
  512.             g_bPlasma[id] = false
  513.             g_bStorm[id] = false
  514.             g_bLaevateinn[id] = false
  515.             g_bWarHammer_Dark_Knight[id] = false
  516.             g_bBalrog_Kosa[id] = false
  517.             g_iUsedTimes[id]++
  518.             /*rg_remove_item(id, "weapon_knife")
  519.             rg_give_item(id, "weapon_knife", GT_APPEND)
  520.             engclient_cmd(id, "weapon_knife")
  521.             g_iUsedTimes[id]++
  522.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  523.         }
  524.         case 1: // Strong
  525.         {
  526.             g_bCompat[id] = false
  527.             g_bStrong[id] = true
  528.             g_bKatana[id] = false
  529.             g_bHammer[id] = false
  530.             g_bTurbulent9[id] = false
  531.             g_bBio[id] = false
  532.             g_bSabers[id] = false
  533.             g_bPlasma[id] = false
  534.             g_bStorm[id] = false
  535.             g_bLaevateinn[id] = false
  536.             g_bWarHammer_Dark_Knight[id] = false
  537.             g_bBalrog_Kosa[id] = false
  538.             g_iUsedTimes[id]++
  539.             /*rg_remove_item(id, "weapon_knife")
  540.             rg_give_item(id, "weapon_knife", GT_APPEND)
  541.             engclient_cmd(id, "weapon_knife")
  542.             g_iUsedTimes[id]++
  543.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  544.         }
  545.         case 2: // Katana
  546.         {
  547.             g_bCompat[id] = false
  548.             g_bStrong[id] = false
  549.             g_bKatana[id] = true
  550.             g_bHammer[id] = false
  551.             g_bTurbulent9[id] = false
  552.             g_bBio[id] = false
  553.             g_bSabers[id] = false
  554.             g_bPlasma[id] = false
  555.             g_bStorm[id] = false
  556.             g_bLaevateinn[id] = false
  557.             g_bWarHammer_Dark_Knight[id] = false
  558.             g_bBalrog_Kosa[id] = false
  559.             g_iUsedTimes[id]++
  560.             /*rg_remove_item(id, "weapon_knife")
  561.             rg_give_item(id, "weapon_knife", GT_APPEND)
  562.             engclient_cmd(id, "weapon_knife")
  563.             g_iUsedTimes[id]++
  564.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  565.         }
  566.         case 3: // Hammer
  567.         {
  568.             g_bCompat[id] = false
  569.             g_bStrong[id] = false
  570.             g_bKatana[id] = false
  571.             g_bHammer[id] = true
  572.             g_bTurbulent9[id] = false
  573.             g_bBio[id] = false
  574.             g_bSabers[id] = false
  575.             g_bPlasma[id] = false
  576.             g_bStorm[id] = false
  577.             g_bLaevateinn[id] = false
  578.             g_bWarHammer_Dark_Knight[id] = false
  579.             g_bBalrog_Kosa[id] = false
  580.             g_iUsedTimes[id]++
  581.             /*rg_remove_item(id, "weapon_knife")
  582.             rg_give_item(id, "weapon_knife", GT_APPEND)
  583.             engclient_cmd(id, "weapon_knife")
  584.             g_iUsedTimes[id]++
  585.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  586.         }
  587.         case 4: // Turbulent
  588.         {
  589.             if (ze_get_vip_flags(id) & VIP_A)
  590.             {
  591.                 g_bCompat[id] = false
  592.                 g_bStrong[id] = false
  593.                 g_bKatana[id] = false
  594.                 g_bHammer[id] = false
  595.                 g_bTurbulent9[id] = true
  596.                 g_bBio[id] = false
  597.                 g_bSabers[id] = false
  598.                 g_bPlasma[id] = false
  599.                 g_bStorm[id] = false
  600.                 g_bLaevateinn[id] = false
  601.                 g_bWarHammer_Dark_Knight[id] = false
  602.                 g_bBalrog_Kosa[id] = false
  603.                 g_iUsedTimes[id]++
  604.                 /*rg_remove_item(id, "weapon_knife")
  605.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  606.                 engclient_cmd(id, "weapon_knife")
  607.                 g_iUsedTimes[id]++
  608.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  609.             }
  610.         }
  611.         case 5: // Bio
  612.         {
  613.             if (ze_get_vip_flags(id) & VIP_A)
  614.             {
  615.                 g_bCompat[id] = false
  616.                 g_bStrong[id] = false
  617.                 g_bKatana[id] = false
  618.                 g_bHammer[id] = false
  619.                 g_bTurbulent9[id] = false
  620.                 g_bBio[id] = true
  621.                 g_bSabers[id] = false
  622.                 g_bPlasma[id] = false
  623.                 g_bStorm[id] = false
  624.                 g_bLaevateinn[id] = false
  625.                 g_bWarHammer_Dark_Knight[id] = false
  626.                 g_bBalrog_Kosa[id] = false
  627.                 g_iUsedTimes[id]++
  628.                 /*rg_remove_item(id, "weapon_knife")
  629.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  630.                 engclient_cmd(id, "weapon_knife")
  631.                 g_iUsedTimes[id]++
  632.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  633.             }
  634.         }
  635.         case 6: // Sabers
  636.         {
  637.             if (ze_get_vip_flags(id) & VIP_B)
  638.             {
  639.                 g_bCompat[id] = false
  640.                 g_bStrong[id] = false
  641.                 g_bKatana[id] = false
  642.                 g_bHammer[id] = false
  643.                 g_bTurbulent9[id] = false
  644.                 g_bBio[id] = false
  645.                 g_bSabers[id] = true
  646.                 g_bPlasma[id] = false
  647.                 g_bStorm[id] = false
  648.                 g_bLaevateinn[id] = false
  649.                 g_bWarHammer_Dark_Knight[id] = false
  650.                 g_bBalrog_Kosa[id] = false
  651.                 g_iUsedTimes[id]++
  652.                 /*rg_remove_item(id, "weapon_knife")
  653.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  654.                 engclient_cmd(id, "weapon_knife")
  655.                 g_iUsedTimes[id]++
  656.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  657.             }
  658.         }
  659.         case 7: // Plasma
  660.         {
  661.             if (ze_get_vip_flags(id) & VIP_B)
  662.             {
  663.                 g_bCompat[id] = false
  664.                 g_bStrong[id] = false
  665.                 g_bKatana[id] = false
  666.                 g_bHammer[id] = false
  667.                 g_bTurbulent9[id] = false
  668.                 g_bBio[id] = false
  669.                 g_bSabers[id] = false
  670.                 g_bPlasma[id] = true
  671.                 g_bStorm[id] = false
  672.                 g_bLaevateinn[id] = false
  673.                 g_bWarHammer_Dark_Knight[id] = false
  674.                 g_bBalrog_Kosa[id] = false
  675.                 g_iUsedTimes[id]++
  676.                 /*rg_remove_item(id, "weapon_knife")
  677.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  678.                 engclient_cmd(id, "weapon_knife")
  679.                 g_iUsedTimes[id]++
  680.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  681.             }
  682.         }
  683.         case 8: // Storm
  684.         {
  685.             if (ze_get_vip_flags(id) & VIP_C)
  686.             {
  687.                 g_bCompat[id] = false
  688.                 g_bStrong[id] = false
  689.                 g_bKatana[id] = false
  690.                 g_bHammer[id] = false
  691.                 g_bTurbulent9[id] = false
  692.                 g_bBio[id] = false
  693.                 g_bSabers[id] = false
  694.                 g_bPlasma[id] = false
  695.                 g_bStorm[id] = true
  696.                 g_bLaevateinn[id] = false
  697.                 g_bWarHammer_Dark_Knight[id] = false
  698.                 g_bBalrog_Kosa[id] = false
  699.                 g_iUsedTimes[id]++
  700.                 /*rg_remove_item(id, "weapon_knife")
  701.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  702.                 engclient_cmd(id, "weapon_knife")
  703.                 g_iUsedTimes[id]++
  704.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  705.             }
  706.         }
  707.         case 9: // Laevateinn
  708.         {
  709.             if (ze_get_vip_flags(id) & VIP_C)
  710.             {
  711.                 g_bCompat[id] = false
  712.                 g_bStrong[id] = false
  713.                 g_bKatana[id] = false
  714.                 g_bHammer[id] = false
  715.                 g_bTurbulent9[id] = false
  716.                 g_bBio[id] = false
  717.                 g_bSabers[id] = false
  718.                 g_bPlasma[id] = false
  719.                 g_bStorm[id] = false
  720.                 g_bLaevateinn[id] = true
  721.                 g_bWarHammer_Dark_Knight[id] = false
  722.                 g_bBalrog_Kosa[id] = false
  723.                 g_iUsedTimes[id]++
  724.                 /*rg_remove_item(id, "weapon_knife")
  725.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  726.                 engclient_cmd(id, "weapon_knife")
  727.                 g_iUsedTimes[id]++
  728.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  729.             }
  730.         }
  731.         case 10: // Warhammer Dark Night
  732.         {
  733.             if (ze_get_vip_flags(id) & VIP_C)
  734.             {
  735.                 g_bCompat[id] = false
  736.                 g_bStrong[id] = false
  737.                 g_bKatana[id] = false
  738.                 g_bHammer[id] = false
  739.                 g_bTurbulent9[id] = false
  740.                 g_bBio[id] = false
  741.                 g_bSabers[id] = false
  742.                 g_bPlasma[id] = false
  743.                 g_bStorm[id] = false
  744.                 g_bLaevateinn[id] = false
  745.                 g_bWarHammer_Dark_Knight[id] = true
  746.                 g_bBalrog_Kosa[id] = false
  747.                 g_iUsedTimes[id]++
  748.                 /*rg_remove_item(id, "weapon_knife")
  749.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  750.                 engclient_cmd(id, "weapon_knife")
  751.                 g_iUsedTimes[id]++
  752.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  753.             }
  754.         }
  755.         case 11: // Balrog Kosa
  756.         {
  757.             if (ze_get_vip_flags(id) & VIP_C)
  758.             {
  759.                 g_bCompat[id] = false
  760.                 g_bStrong[id] = false
  761.                 g_bKatana[id] = false
  762.                 g_bHammer[id] = false
  763.                 g_bTurbulent9[id] = false
  764.                 g_bBio[id] = false
  765.                 g_bSabers[id] = false
  766.                 g_bPlasma[id] = false
  767.                 g_bStorm[id] = false
  768.                 g_bLaevateinn[id] = false
  769.                 g_bWarHammer_Dark_Knight[id] = false
  770.                 g_bBalrog_Kosa[id] = true
  771.                 g_iUsedTimes[id]++
  772.                 /*rg_remove_item(id, "weapon_knife")
  773.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  774.                 engclient_cmd(id, "weapon_knife")
  775.                 g_iUsedTimes[id]++
  776.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  777.             }
  778.         }
  779.     }
  780.  
  781.     rg_remove_item(id, "weapon_knife")
  782.     rg_give_item(id, "weapon_knife", GT_APPEND)
  783.     engclient_cmd(id, "weapon_knife")
  784.     emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  785.     menu_destroy(iMenu)
  786.     return PLUGIN_HANDLED
  787. }
  788.  
  789. public fw_EmitSound(id, channel, const sound[])
  790. {
  791.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  792.         return FMRES_IGNORED
  793.        
  794.     new i
  795.     for (i = 0; i <= charsmax(combat_sounds); i++)
  796.     for (i = 0; i <= charsmax(strong_sounds); i++)
  797.     for (i = 0; i <= charsmax(katana_sounds); i++)
  798.     for (i = 0; i <= charsmax(hammer_sounds); i++)
  799.     for (i = 0; i <= charsmax(turbulent9_sounds); i++)
  800.     for (i = 0; i <= charsmax(bio_sounds); i++)
  801.     for (i = 0; i <= charsmax(sabers_sounds); i++)
  802.     for (i = 0; i <= charsmax(plasma_sounds); i++)
  803.     for (i = 0; i <= charsmax(storm_sounds); i++)
  804.     for (i = 0; i <= charsmax(laevateinn_sounds); i++)
  805.     for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
  806.     for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
  807.     {
  808.         if(equal(sound, oldknife_sounds[i]))
  809.         {
  810.             if (g_bCompat[id])
  811.             {
  812.                 emit_sound(id, channel, combat_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  813.                 return FMRES_SUPERCEDE
  814.             }
  815.             else if (g_bStrong[id])
  816.             {
  817.                 emit_sound(id, channel, strong_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  818.                 return FMRES_SUPERCEDE
  819.             }
  820.             else if (g_bKatana[id])
  821.             {
  822.                 emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  823.                 return FMRES_SUPERCEDE
  824.             }
  825.             else if (g_bHammer[id])
  826.             {
  827.                 emit_sound(id, channel, hammer_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  828.                 return FMRES_SUPERCEDE
  829.             }
  830.             else if ((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
  831.             {
  832.                 emit_sound(id, channel, turbulent9_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  833.                 return FMRES_SUPERCEDE
  834.             }
  835.             else if ((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
  836.             {
  837.                 emit_sound(id, channel, bio_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  838.                 return FMRES_SUPERCEDE
  839.             }
  840.             else if ((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
  841.             {
  842.                 emit_sound(id, channel, sabers_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  843.                 return FMRES_SUPERCEDE
  844.             }
  845.             else if ((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
  846.             {
  847.                 emit_sound(id, channel, plasma_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  848.                 return FMRES_SUPERCEDE
  849.             }
  850.             else if ((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
  851.             {
  852.                 emit_sound(id, channel, storm_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  853.                 return FMRES_SUPERCEDE
  854.             }
  855.             else if ((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
  856.             {
  857.                 emit_sound(id, channel, laevateinn_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  858.                 return FMRES_SUPERCEDE
  859.             }
  860.             else if ((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
  861.             {
  862.                 emit_sound(id, channel, warhammer_dark_knight_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  863.                 return FMRES_SUPERCEDE
  864.             }
  865.             else if ((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
  866.             {
  867.                 emit_sound(id, channel, balrog_kosa_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  868.                 return FMRES_SUPERCEDE
  869.             }
  870.             else if (!g_bCompat[id] || !g_bStrong[id] || !g_bKatana[id] || !g_bHammer[id] || !g_bTurbulent9[id] || !g_bBio[id] || !g_bSabers[id] || !g_bPlasma[id] || !g_bStorm[id] || !g_bLaevateinn[id] || !g_bWarHammer_Dark_Knight[id] || !g_bBalrog_Kosa[id])
  871.             {
  872.                 emit_sound(id, channel, oldknife_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  873.                 return FMRES_SUPERCEDE
  874.             }
  875.         }
  876.     }
  877.     return FMRES_IGNORED
  878. }
  879.  
  880. public CurrentWeapon(id)
  881. {
  882.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  883.         return
  884.        
  885.     if(get_user_weapon(id) & CSW_KNIFE)
  886.     {
  887.         if(g_bCompat[id])
  888.         {
  889.             cs_set_player_view_model(id, CSW_KNIFE, Compat_Models[0])
  890.             cs_set_player_weap_model(id, CSW_KNIFE, Compat_Models[1])
  891.         }
  892.         else if(g_bStrong[id])
  893.         {
  894.             cs_set_player_view_model(id, CSW_KNIFE, Strong_Models[0])
  895.             cs_set_player_weap_model(id, CSW_KNIFE, Strong_Models[1])
  896.         }
  897.         else if(g_bKatana[id])
  898.         {
  899.             cs_set_player_view_model(id, CSW_KNIFE, Katana_Models[0])
  900.             cs_set_player_weap_model(id, CSW_KNIFE, Katana_Models[1])
  901.         }
  902.         else if(g_bHammer[id])
  903.         {
  904.             cs_set_player_view_model(id, CSW_KNIFE, Hammer_Models[0])
  905.             cs_set_player_weap_model(id, CSW_KNIFE, Hammer_Models[1])
  906.         }
  907.         else if((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
  908.         {
  909.             cs_set_player_view_model(id, CSW_KNIFE, Turbulent9_Models[0])
  910.             cs_set_player_weap_model(id, CSW_KNIFE, Turbulent9_Models[1])
  911.         }
  912.         else if((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
  913.         {
  914.             cs_set_player_view_model(id, CSW_KNIFE, Bio_Models[0])
  915.             cs_set_player_weap_model(id, CSW_KNIFE, Bio_Models[1])
  916.         }
  917.         else if((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
  918.         {
  919.             cs_set_player_view_model(id, CSW_KNIFE, Sabers_Models[0])
  920.             cs_set_player_weap_model(id, CSW_KNIFE, Sabers_Models[1])
  921.         }
  922.         else if((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
  923.         {
  924.             cs_set_player_view_model(id, CSW_KNIFE, Plasma_Models[0])
  925.             cs_set_player_weap_model(id, CSW_KNIFE, Plasma_Models[1])
  926.         }
  927.         else if((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
  928.         {
  929.             cs_set_player_view_model(id, CSW_KNIFE, Storm_Models[0])
  930.             cs_set_player_weap_model(id, CSW_KNIFE, Storm_Models[1])
  931.         }
  932.         else if((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
  933.         {
  934.             cs_set_player_view_model(id, CSW_KNIFE, Laevateinn_Models[0])
  935.             cs_set_player_weap_model(id, CSW_KNIFE, Laevateinn_Models[1])
  936.         }
  937.         else if((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
  938.         {
  939.             cs_set_player_view_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[0])
  940.             cs_set_player_weap_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[1])
  941.         }
  942.         else if((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
  943.         {
  944.             cs_set_player_view_model(id, CSW_KNIFE, Balrog_Kosa_Models[0])
  945.             cs_set_player_weap_model(id, CSW_KNIFE, Balrog_Kosa_Models[1])
  946.         }
  947.         else
  948.         {
  949.             cs_reset_player_view_model(id, CSW_KNIFE)
  950.             cs_reset_player_weap_model(id, CSW_KNIFE)
  951.         }
  952.     }
  953. }
  954.  
  955. public Fw_RestMaxSpeed_Post(id)
  956. {
  957.     set_task(0.1, "DelaySettingSpeed", id)
  958. }
  959.  
  960. public DelaySettingSpeed(id)
  961. {
  962.     new iWpnId = get_user_weapon(id)
  963.    
  964.     if (iWpnId == CSW_KNIFE && g_bCompat[id])
  965.     {
  966.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  967.         {
  968.             new iFlags = get_entvar(id, var_flags);
  969.             new iWaterlvl = get_entvar(id, var_waterlevel)
  970.            
  971.             if (!(iFlags & FL_ONGROUND))
  972.                 return
  973.  
  974.             if (iFlags & FL_WATERJUMP)
  975.                 return
  976.  
  977.             if (iWaterlvl > 1)
  978.                 return
  979.            
  980.             new Float:flVelocity[3]
  981.             get_entvar(id , var_velocity , flVelocity)
  982.  
  983.             flVelocity[2] += 325
  984.  
  985.             set_entvar(id , var_velocity , flVelocity)
  986.  
  987.             set_entvar(id, var_gaitsequence, 6)
  988.         }
  989.        
  990.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
  991.     }
  992.     else if (iWpnId == CSW_KNIFE && g_bStrong[id])
  993.     {
  994.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  995.         {
  996.             new iFlags = get_entvar(id, var_flags);
  997.             new iWaterlvl = get_entvar(id, var_waterlevel)
  998.            
  999.             if (!(iFlags & FL_ONGROUND))
  1000.                 return
  1001.  
  1002.             if (iFlags & FL_WATERJUMP)
  1003.                 return
  1004.  
  1005.             if (iWaterlvl > 1)
  1006.                 return
  1007.            
  1008.             new Float:flVelocity[3]
  1009.             get_entvar(id , var_velocity , flVelocity)
  1010.  
  1011.             flVelocity[2] += 325
  1012.  
  1013.             set_entvar(id , var_velocity , flVelocity)
  1014.  
  1015.             set_entvar(id, var_gaitsequence, 6)
  1016.         }
  1017.        
  1018.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_strong))
  1019.     }
  1020.     else if (iWpnId == CSW_KNIFE && g_bKatana[id])
  1021.     {
  1022.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1023.         {
  1024.             new iFlags = get_entvar(id, var_flags);
  1025.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1026.            
  1027.             if (!(iFlags & FL_ONGROUND))
  1028.                 return
  1029.  
  1030.             if (iFlags & FL_WATERJUMP)
  1031.                 return
  1032.  
  1033.             if (iWaterlvl > 1)
  1034.                 return
  1035.            
  1036.             new Float:flVelocity[3]
  1037.             get_entvar(id , var_velocity , flVelocity)
  1038.  
  1039.             flVelocity[2] += 325
  1040.  
  1041.             set_entvar(id , var_velocity , flVelocity)
  1042.  
  1043.             set_entvar(id, var_gaitsequence, 6)
  1044.         }
  1045.        
  1046.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_katana))
  1047.     }
  1048.     else if (iWpnId == CSW_KNIFE && g_bHammer[id])
  1049.     {
  1050.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1051.         {
  1052.             new iFlags = get_entvar(id, var_flags);
  1053.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1054.            
  1055.             if (!(iFlags & FL_ONGROUND))
  1056.                 return
  1057.  
  1058.             if (iFlags & FL_WATERJUMP)
  1059.                 return
  1060.  
  1061.             if (iWaterlvl > 1)
  1062.                 return
  1063.            
  1064.             new Float:flVelocity[3]
  1065.             get_entvar(id , var_velocity , flVelocity)
  1066.  
  1067.             flVelocity[2] += 325
  1068.  
  1069.             set_entvar(id , var_velocity , flVelocity)
  1070.  
  1071.             set_entvar(id, var_gaitsequence, 6)
  1072.         }
  1073.        
  1074.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_hammer))
  1075.     }
  1076.     else if (iWpnId == CSW_KNIFE && g_bTurbulent9[id])
  1077.     {
  1078.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1079.         {
  1080.             new iFlags = get_entvar(id, var_flags);
  1081.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1082.            
  1083.             if (!(iFlags & FL_ONGROUND))
  1084.                 return
  1085.  
  1086.             if (iFlags & FL_WATERJUMP)
  1087.                 return
  1088.  
  1089.             if (iWaterlvl > 1)
  1090.                 return
  1091.            
  1092.             new Float:flVelocity[3]
  1093.             get_entvar(id , var_velocity , flVelocity)
  1094.  
  1095.             flVelocity[2] += 325
  1096.  
  1097.             set_entvar(id , var_velocity , flVelocity)
  1098.  
  1099.             set_entvar(id, var_gaitsequence, 6)
  1100.         }
  1101.        
  1102.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_turb))
  1103.     }
  1104.     else if (iWpnId == CSW_KNIFE && g_bBio[id])
  1105.     {
  1106.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1107.         {
  1108.             new iFlags = get_entvar(id, var_flags);
  1109.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1110.            
  1111.             if (!(iFlags & FL_ONGROUND))
  1112.                 return
  1113.  
  1114.             if (iFlags & FL_WATERJUMP)
  1115.                 return
  1116.  
  1117.             if (iWaterlvl > 1)
  1118.                 return
  1119.            
  1120.             new Float:flVelocity[3]
  1121.             get_entvar(id , var_velocity , flVelocity)
  1122.  
  1123.             flVelocity[2] += 325
  1124.  
  1125.             set_entvar(id , var_velocity , flVelocity)
  1126.  
  1127.             set_entvar(id, var_gaitsequence, 6)
  1128.         }
  1129.        
  1130.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_bio))
  1131.     }
  1132.     else if (iWpnId == CSW_KNIFE && g_bSabers[id])
  1133.     {
  1134.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1135.         {
  1136.             new iFlags = get_entvar(id, var_flags);
  1137.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1138.            
  1139.             if (!(iFlags & FL_ONGROUND))
  1140.                 return
  1141.  
  1142.             if (iFlags & FL_WATERJUMP)
  1143.                 return
  1144.  
  1145.             if (iWaterlvl > 1)
  1146.                 return
  1147.            
  1148.             new Float:flVelocity[3]
  1149.             get_entvar(id , var_velocity , flVelocity)
  1150.  
  1151.             flVelocity[2] += 325
  1152.  
  1153.             set_entvar(id , var_velocity , flVelocity)
  1154.  
  1155.             set_entvar(id, var_gaitsequence, 6)
  1156.         }
  1157.        
  1158.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_sabers))
  1159.     }
  1160.     else if (iWpnId == CSW_KNIFE && g_bPlasma[id])
  1161.     {
  1162.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1163.         {
  1164.             new iFlags = get_entvar(id, var_flags);
  1165.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1166.            
  1167.             if (!(iFlags & FL_ONGROUND))
  1168.                 return
  1169.  
  1170.             if (iFlags & FL_WATERJUMP)
  1171.                 return
  1172.  
  1173.             if (iWaterlvl > 1)
  1174.                 return
  1175.            
  1176.             new Float:flVelocity[3]
  1177.             get_entvar(id , var_velocity , flVelocity)
  1178.  
  1179.             flVelocity[2] += 325
  1180.  
  1181.             set_entvar(id , var_velocity , flVelocity)
  1182.  
  1183.             set_entvar(id, var_gaitsequence, 6)
  1184.         }
  1185.        
  1186.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_plasma))
  1187.     }
  1188.     else if (iWpnId == CSW_KNIFE && g_bStorm[id])
  1189.     {
  1190.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1191.         {
  1192.             new iFlags = get_entvar(id, var_flags);
  1193.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1194.            
  1195.             if (!(iFlags & FL_ONGROUND))
  1196.                 return
  1197.  
  1198.             if (iFlags & FL_WATERJUMP)
  1199.                 return
  1200.  
  1201.             if (iWaterlvl > 1)
  1202.                 return
  1203.            
  1204.             new Float:flVelocity[3]
  1205.             get_entvar(id , var_velocity , flVelocity)
  1206.  
  1207.             flVelocity[2] += 325
  1208.  
  1209.             set_entvar(id , var_velocity , flVelocity)
  1210.  
  1211.             set_entvar(id, var_gaitsequence, 6)
  1212.         }
  1213.        
  1214.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_storm))
  1215.     }
  1216.     else if (iWpnId == CSW_KNIFE && g_bLaevateinn[id])
  1217.     {
  1218.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1219.         {
  1220.             new iFlags = get_entvar(id, var_flags);
  1221.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1222.            
  1223.             if (!(iFlags & FL_ONGROUND))
  1224.                 return
  1225.  
  1226.             if (iFlags & FL_WATERJUMP)
  1227.                 return
  1228.  
  1229.             if (iWaterlvl > 1)
  1230.                 return
  1231.            
  1232.             new Float:flVelocity[3]
  1233.             get_entvar(id , var_velocity , flVelocity)
  1234.  
  1235.             flVelocity[2] += 325
  1236.  
  1237.             set_entvar(id , var_velocity , flVelocity)
  1238.  
  1239.             set_entvar(id, var_gaitsequence, 6)
  1240.         }
  1241.        
  1242.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_laevat))
  1243.     }
  1244.     else if (iWpnId == CSW_KNIFE && g_bWarHammer_Dark_Knight[id])
  1245.     {
  1246.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1247.         {
  1248.             new iFlags = get_entvar(id, var_flags);
  1249.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1250.            
  1251.             if (!(iFlags & FL_ONGROUND))
  1252.                 return
  1253.  
  1254.             if (iFlags & FL_WATERJUMP)
  1255.                 return
  1256.  
  1257.             if (iWaterlvl > 1)
  1258.                 return
  1259.            
  1260.             new Float:flVelocity[3]
  1261.             get_entvar(id , var_velocity , flVelocity)
  1262.  
  1263.             flVelocity[2] += 325
  1264.  
  1265.             set_entvar(id , var_velocity , flVelocity)
  1266.  
  1267.             set_entvar(id, var_gaitsequence, 6)
  1268.         }
  1269.        
  1270.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_darknight))
  1271.     }
  1272.     else if (iWpnId == CSW_KNIFE && g_bBalrog_Kosa[id])
  1273.     {
  1274.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1275.         {
  1276.             new iFlags = get_entvar(id, var_flags);
  1277.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1278.            
  1279.             if (!(iFlags & FL_ONGROUND))
  1280.                 return
  1281.  
  1282.             if (iFlags & FL_WATERJUMP)
  1283.                 return
  1284.  
  1285.             if (iWaterlvl > 1)
  1286.                 return
  1287.            
  1288.             new Float:flVelocity[3]
  1289.             get_entvar(id , var_velocity , flVelocity)
  1290.  
  1291.             flVelocity[2] += 325
  1292.  
  1293.             set_entvar(id , var_velocity , flVelocity)
  1294.  
  1295.             set_entvar(id, var_gaitsequence, 6)
  1296.         }
  1297.        
  1298.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_kosa))
  1299.     }
  1300. }
  1301.  
  1302. public DeathMsg(msg_id, msg_dest, id)
  1303. {
  1304.     static szTruncatedWeapon[33], iAttacker
  1305.     get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  1306.     iAttacker = get_msg_arg_int(1)
  1307.    
  1308.     if(!is_user_alive(iAttacker) || iAttacker == get_msg_arg_int(2) || !is_user_alive(get_msg_arg_int(2))) // get_msg_arg_int(2) = iVictim
  1309.         return
  1310.    
  1311.     if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iAttacker) & CSW_KNIFE)
  1312.     {
  1313.         if(g_bCompat[id])
  1314.         {
  1315.             set_msg_arg_string(4, "Combat knife")
  1316.         }
  1317.         else if(g_bStrong[id])
  1318.         {
  1319.             set_msg_arg_string(4, "Strong knife")
  1320.         }
  1321.         else if(g_bKatana[id])
  1322.         {
  1323.             set_msg_arg_string(4, "Katana knife")
  1324.         }
  1325.         else if(g_bHammer[id])
  1326.         {
  1327.             set_msg_arg_string(4, "Ice knife")
  1328.         }
  1329.         else if(g_bTurbulent9[id])
  1330.         {
  1331.             set_msg_arg_string(4, "Turbulent9 knife")
  1332.         }
  1333.         else if(g_bBio[id])
  1334.         {
  1335.             set_msg_arg_string(4, "Biohazard knife")
  1336.         }
  1337.         else if(g_bSabers[id])
  1338.         {
  1339.             set_msg_arg_string(4, "Sabers knife")
  1340.         }
  1341.         else if(g_bPlasma[id])
  1342.         {
  1343.             set_msg_arg_string(4, "Plasma knife")
  1344.         }
  1345.         else if(g_bStorm[id])
  1346.         {
  1347.             set_msg_arg_string(4, "Storm knife")
  1348.         }
  1349.         else if(g_bLaevateinn[id])
  1350.         {
  1351.             set_msg_arg_string(4, "Laevateinn knife")
  1352.         }
  1353.         else if(g_bWarHammer_Dark_Knight[id])
  1354.         {
  1355.             set_msg_arg_string(4, "WarHammer Dark Knight knife")
  1356.         }
  1357.         else if(g_bBalrog_Kosa[id])
  1358.         {
  1359.             set_msg_arg_string(4, "Balrog Kosa Knife")
  1360.         }
  1361.     }
  1362. }
  1363.  
  1364. stock fm_set_user_maxspeed(index, Float:speed = -1.0)
  1365. {
  1366.         engfunc(EngFunc_SetClientMaxspeed, index, speed);
  1367.         set_pev(index, pev_maxspeed, speed);
  1368.  
  1369.         return 1;
  1370. }  
  1371.  
  1372. public native_ze_open_knife_menu(id)
  1373. {
  1374.     Show_Knife_Menu(id)
  1375. }

The right approach is:

  1. public plugin_init()
  2. {
  3.     // Hook max speed reset (When user change his weapon)
  4.     RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
  5. }
  6.  
  7. public Fw_RestMaxSpeed_Post(id)
  8. {
  9.     // Delay setting your speed
  10.     set_task(0.1, "DelaySettingSpeed", id)
  11. }
  12.  
  13. public DelaySettingSpeed(id)
  14. {
  15.     new iWpnId = get_user_weapon(id)
  16.    
  17.     if (iWpnId == ANYTHING)
  18.     {
  19.         set_entvar(id, var_maxspeed, speed_as_float)
  20.     }
  21. }
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#33

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Delay needed:

  1. #include <zombie_escape>
  2. #include <engine>
  3. #include <fun>
  4. #include <ze_vip>
  5.  
  6. // Models
  7. new const Compat_Models[][] =
  8. {
  9.     "models/zombie_escape/v_combat_knife.mdl",
  10.     "models/zombie_escape/p_combat_knife.mdl"
  11. }
  12.  
  13. new const Strong_Models[][] =
  14. {
  15.     "models/zombie_escape/v_strong_knife.mdl",
  16.     "models/zombie_escape/p_strong_knife.mdl"
  17. }
  18.  
  19. new const Katana_Models[][] =
  20. {
  21.     "models/zombie_escape/v_katana_knife.mdl",
  22.     "models/zombie_escape/p_katana_knife.mdl"
  23. }
  24.  
  25. new const Hammer_Models[][] =
  26. {
  27.     "models/zombie_escape/v_hammer_knife.mdl",
  28.     "models/zombie_escape/p_hammer_knife.mdl"
  29. }
  30.  
  31. new const Turbulent9_Models[][] =
  32. {
  33.     "models/zombie_escape/v_turbulent9_knife.mdl",
  34.     "models/zombie_escape/p_turbulent9_knife.mdl"
  35. }
  36.  
  37. new const Bio_Models[][] =
  38. {
  39.     "models/zombie_escape/v_bio_knife.mdl",
  40.     "models/zombie_escape/p_bio_knife.mdl"
  41. }
  42.  
  43. new const Sabers_Models[][] =
  44. {
  45.     "models/zombie_escape/v_laser_knife.mdl",
  46.     "models/zombie_escape/p_laser_knife.mdl"
  47. }
  48.  
  49. new const Plasma_Models[][] =
  50. {
  51.     "models/zombie_escape/v_plasma_knife.mdl",
  52.     "models/zombie_escape/p_plasma_knife.mdl"
  53. }
  54.  
  55. new const Storm_Models[][] =
  56. {
  57.     "models/zombie_escape/v_storm_sword_knife.mdl",
  58.     "models/zombie_escape/p_storm_sword_knife.mdl"
  59. }
  60.  
  61. new const Laevateinn_Models[][] =
  62. {
  63.     "models/zombie_escape/v_laevateinn_knife.mdl",
  64.     "models/zombie_escape/p_laevateinn_knife.mdl"
  65. }
  66.  
  67. new const WarHammer_Dark_Knight_Models[][] =
  68. {
  69.     "models/zombie_escape/v_WarHammer_dark_knight_knife.mdl",
  70.     "models/zombie_escape/p_WarHammer_dark_knight_knife.mdl"
  71. }
  72.  
  73. new const Balrog_Kosa_Models[][] =
  74. {
  75.     "models/zombie_escape/v_balrog_kosa_knife.mdl",
  76.     "models/zombie_escape/p_balrog_kosa_knife.mdl"
  77. }
  78.  
  79. // Sounds
  80. new const g_sound_knife[] = "items/gunpickup2.wav"
  81.  
  82. new const combat_sounds[][] =
  83. {
  84.     "zombie_escape/knife_menu/combat_deploy.wav",
  85.     "zombie_escape/knife_menu/combat_hit.wav",
  86.     "zombie_escape/knife_menu/combat_hit.wav",
  87.     "zombie_escape/knife_menu/combat_hit.wav",
  88.     "zombie_escape/knife_menu/combat_hit.wav",
  89.     "zombie_escape/knife_menu/combat_hitwall.wav",
  90.     "zombie_escape/knife_menu/combat_slash.wav",
  91.     "zombie_escape/knife_menu/combat_slash.wav",
  92.     "zombie_escape/knife_menu/combat_stab.wav"
  93. }
  94.  
  95. new const strong_sounds[][] =
  96. {
  97.     "zombie_escape/knife_menu/strong_deploy.wav",
  98.     "zombie_escape/knife_menu/strong_hit.wav",
  99.     "zombie_escape/knife_menu/strong_hit.wav",
  100.     "zombie_escape/knife_menu/strong_hit.wav",
  101.     "zombie_escape/knife_menu/strong_hit.wav",
  102.     "zombie_escape/knife_menu/strong_hitwall.wav",
  103.     "zombie_escape/knife_menu/strong_slash.wav",
  104.     "zombie_escape/knife_menu/strong_slash.wav",
  105.     "zombie_escape/knife_menu/strong_stab.wav"
  106. }
  107.  
  108. new const katana_sounds[][] =
  109. {
  110.     "zombie_escape/knife_menu/katana_deploy.wav",
  111.     "zombie_escape/knife_menu/katana_hit.wav",
  112.     "zombie_escape/knife_menu/katana_hit.wav",
  113.     "zombie_escape/knife_menu/katana_hit.wav",
  114.     "zombie_escape/knife_menu/katana_hit.wav",
  115.     "zombie_escape/knife_menu/katana_hitwall.wav",
  116.     "zombie_escape/knife_menu/katana_slash.wav",
  117.     "zombie_escape/knife_menu/katana_slash.wav",
  118.     "zombie_escape/knife_menu/katana_stab.wav"
  119. }
  120.  
  121. new const hammer_sounds[][] =
  122. {
  123.     "zombie_escape/knife_menu/hammer_deploy.wav",
  124.     "zombie_escape/knife_menu/hammer_hit.wav",
  125.     "zombie_escape/knife_menu/hammer_hit.wav",
  126.     "zombie_escape/knife_menu/hammer_hit.wav",
  127.     "zombie_escape/knife_menu/hammer_hit.wav",
  128.     "zombie_escape/knife_menu/hammer_hitwall.wav",
  129.     "zombie_escape/knife_menu/hammer_slash.wav",
  130.     "zombie_escape/knife_menu/hammer_slash.wav",
  131.     "zombie_escape/knife_menu/hammer_stab.wav"
  132. }
  133.  
  134. new const turbulent9_sounds[][] =
  135. {
  136.     "zombie_escape/knife_menu/turbulent9_deploy.wav",
  137.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  138.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  139.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  140.     "zombie_escape/knife_menu/turbulent9_hit.wav",
  141.     "zombie_escape/knife_menu/turbulent9_hitwall.wav",
  142.     "zombie_escape/knife_menu/turbulent9_slash.wav",
  143.     "zombie_escape/knife_menu/turbulent9_slash.wav",
  144.     "zombie_escape/knife_menu/turbulent9_stab.wav"
  145. }
  146.  
  147. new const bio_sounds[][] =
  148. {
  149.     "zombie_escape/knife_menu/bio_deploy.wav",
  150.     "zombie_escape/knife_menu/bio_hit.wav",
  151.     "zombie_escape/knife_menu/bio_hit.wav",
  152.     "zombie_escape/knife_menu/bio_hit.wav",
  153.     "zombie_escape/knife_menu/bio_hit.wav",
  154.     "zombie_escape/knife_menu/bio_hitwall.wav",
  155.     "zombie_escape/knife_menu/bio_slash.wav",
  156.     "zombie_escape/knife_menu/bio_slash.wav",
  157.     "zombie_escape/knife_menu/bio_stab.wav"
  158. }
  159.  
  160. new const sabers_sounds[][] =
  161. {
  162.     "zombie_escape/knife_menu/laser_deploy.wav",
  163.     "zombie_escape/knife_menu/laser_hit.wav",
  164.     "zombie_escape/knife_menu/laser_hit.wav",
  165.     "zombie_escape/knife_menu/laser_hit.wav",
  166.     "zombie_escape/knife_menu/laser_hit.wav",
  167.     "zombie_escape/knife_menu/laser_hitwall.wav",
  168.     "zombie_escape/knife_menu/laser_slash1.wav",
  169.     "zombie_escape/knife_menu/laser_slash2.wav",
  170.     "zombie_escape/knife_menu/laser_stab.wav"
  171. }
  172.  
  173. new const plasma_sounds[][] =
  174. {
  175.     "zombie_escape/knife_menu/plasma_deploy.wav",
  176.     "zombie_escape/knife_menu/plasma_hit.wav",
  177.     "zombie_escape/knife_menu/plasma_hit.wav",
  178.     "zombie_escape/knife_menu/plasma_hit.wav",
  179.     "zombie_escape/knife_menu/plasma_hit.wav",
  180.     "zombie_escape/knife_menu/plasma_hitwall.wav",
  181.     "zombie_escape/knife_menu/plasma_slash.wav",
  182.     "zombie_escape/knife_menu/plasma_slash.wav",
  183.     "zombie_escape/knife_menu/plasma_stab.wav"
  184. }
  185.  
  186. new const storm_sounds[][] =
  187. {
  188.     "zombie_escape/knife_menu/storm_sword_deploy.wav",
  189.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  190.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  191.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  192.     "zombie_escape/knife_menu/storm_sword_hit.wav",
  193.     "zombie_escape/knife_menu/storm_sword_hitwall.wav",
  194.     "zombie_escape/knife_menu/storm_sword_slash.wav",
  195.     "zombie_escape/knife_menu/storm_sword_slash.wav",
  196.     "zombie_escape/knife_menu/storm_sword_stab.wav"
  197. }
  198.  
  199. new const laevateinn_sounds[][] =
  200. {
  201.     "zombie_escape/knife_menu/laevateinn_deploy.wav",
  202.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  203.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  204.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  205.     "zombie_escape/knife_menu/laevateinn_hit.wav",
  206.     "zombie_escape/knife_menu/laevateinn_hitwall.wav",
  207.     "zombie_escape/knife_menu/laevateinn_slash.wav",
  208.     "zombie_escape/knife_menu/laevateinn_slash.wav",
  209.     "zombie_escape/knife_menu/laevateinn_stab.wav"
  210. }
  211.  
  212. new const warhammer_dark_knight_sounds[][] =
  213. {
  214.     "zombie_escape/knife_menu/WarHammer_dark_knight_deploy.wav",
  215.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  216.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  217.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  218.     "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
  219.     "zombie_escape/knife_menu/WarHammer_dark_knight_hitwall.wav",
  220.     "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
  221.     "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
  222.     "zombie_escape/knife_menu/WarHammer_dark_knight_stab.wav"
  223. }
  224.  
  225. new const balrog_kosa_sounds[][] =
  226. {
  227.     "zombie_escape/knife_menu/balrog_kosa_deploy.wav",
  228.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  229.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  230.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  231.     "zombie_escape/knife_menu/balrog_kosa_hit.wav",
  232.     "zombie_escape/knife_menu/balrog_kosa_hitwall.wav",
  233.     "zombie_escape/knife_menu/balrog_kosa_slash.wav",
  234.     "zombie_escape/knife_menu/balrog_kosa_slash.wav",
  235.     "zombie_escape/knife_menu/balrog_kosa_stab.wav"
  236. }
  237.  
  238. new const oldknife_sounds[][] =
  239. {
  240.     "weapons/knife_deploy1.wav",
  241.     "weapons/knife_hit1.wav",
  242.     "weapons/knife_hit2.wav",
  243.     "weapons/knife_hit3.wav",
  244.     "weapons/knife_hit4.wav",
  245.     "weapons/knife_hitwall1.wav",
  246.     "weapons/knife_slash1.wav",
  247.     "weapons/knife_slash2.wav",
  248.     "weapons/knife_stab.wav"
  249. }
  250.  
  251. new bool:g_bCompat[33], bool:g_bStrong[33], bool:g_bKatana[33], bool:g_bHammer[33], bool:g_bTurbulent9[33], bool:g_bBio[33], bool:g_bSabers[33], bool:g_bPlasma[33],
  252. bool:g_bStorm[33], bool:g_bLaevateinn[33], bool:g_bWarHammer_Dark_Knight[33], bool:g_bBalrog_Kosa[33], bool:g_bNoSpeed, g_iUsedTimes[33], g_pCvarUseTimes
  253.  
  254. new cvar_speed_compat
  255. new cvar_speed_strong
  256. new cvar_speed_katana
  257. new cvar_speed_hammer
  258. new cvar_speed_turb
  259. new cvar_speed_bio
  260. new cvar_speed_sabers
  261. new cvar_speed_plasma
  262. new cvar_speed_storm
  263. new cvar_speed_laevat
  264. new cvar_speed_darknight
  265. new cvar_speed_kosa
  266.  
  267. public plugin_precache()
  268. {
  269.     new i
  270.  
  271.     for (i = 0; i <= charsmax(Compat_Models); i++)
  272.         precache_model(Compat_Models[i])
  273.  
  274.     for (i = 0; i <= charsmax(Hammer_Models); i++)
  275.         precache_model(Hammer_Models[i])
  276.  
  277.     for (i = 0; i <= charsmax(Katana_Models); i++)
  278.         precache_model(Katana_Models[i])
  279.  
  280.     for (i = 0; i <= charsmax(Strong_Models); i++)
  281.         precache_model(Strong_Models[i])
  282.  
  283.     for (i = 0; i <= charsmax(Turbulent9_Models); i++)
  284.         precache_model(Turbulent9_Models[i])
  285.  
  286.     for (i = 0; i <= charsmax(Bio_Models); i++)
  287.         precache_model(Bio_Models[i])
  288.  
  289.     for (i = 0; i <= charsmax(Sabers_Models); i++)
  290.         precache_model(Sabers_Models[i])
  291.  
  292.     for (i = 0; i <= charsmax(Plasma_Models); i++)
  293.         precache_model(Plasma_Models[i])
  294.  
  295.     for (i = 0; i <= charsmax(Storm_Models); i++)
  296.         precache_model(Storm_Models[i])
  297.  
  298.     for (i = 0; i <= charsmax(Laevateinn_Models); i++)
  299.         precache_model(Laevateinn_Models[i])
  300.  
  301.     for (i = 0; i <= charsmax(WarHammer_Dark_Knight_Models); i++)
  302.         precache_model(WarHammer_Dark_Knight_Models[i])
  303.  
  304.     for (i = 0; i <= charsmax(Balrog_Kosa_Models); i++)
  305.         precache_model(Balrog_Kosa_Models[i])
  306.  
  307.     for (i = 0; i <= charsmax(combat_sounds); i++)
  308.         precache_sound(combat_sounds[i])
  309.  
  310.     for (i = 0; i <= charsmax(strong_sounds); i++)
  311.         precache_sound(strong_sounds[i])
  312.  
  313.     for (i = 0; i <= charsmax(katana_sounds); i++)
  314.         precache_sound(katana_sounds[i])
  315.  
  316.     for (i = 0; i <= charsmax(hammer_sounds); i++)
  317.         precache_sound(hammer_sounds[i])
  318.  
  319.     for (i = 0; i <= charsmax(turbulent9_sounds); i++)
  320.         precache_sound(turbulent9_sounds[i])
  321.  
  322.     for (i = 0; i <= charsmax(bio_sounds); i++)
  323.         precache_sound(bio_sounds[i])
  324.  
  325.     for (i = 0; i <= charsmax(sabers_sounds); i++)
  326.         precache_sound(sabers_sounds[i])
  327.  
  328.     for (i = 0; i <= charsmax(plasma_sounds); i++)
  329.         precache_sound(plasma_sounds[i])
  330.  
  331.     for (i = 0; i <= charsmax(storm_sounds); i++)
  332.         precache_sound(storm_sounds[i])
  333.  
  334.     for (i = 0; i <= charsmax(laevateinn_sounds); i++)
  335.         precache_sound(laevateinn_sounds[i])
  336.  
  337.     for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
  338.         precache_sound(warhammer_dark_knight_sounds[i])
  339.  
  340.     for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
  341.         precache_sound(balrog_kosa_sounds[i])
  342.  
  343.     precache_sound(g_sound_knife)
  344. }
  345.  
  346. public plugin_natives()
  347. {
  348.     register_native("ze_open_knife_menu", "native_ze_open_knife_menu", 1)
  349. }
  350.  
  351. public plugin_init()
  352. {
  353.     register_plugin("[ZE] Addon: Knife Menu", "1.2", "Jack GamePlay")
  354.  
  355.     register_forward(FM_EmitSound, "fw_EmitSound")
  356.     register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
  357.  
  358.     register_event("CurWeapon", "CurrentWeapon", "be", "1=1")
  359.     RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
  360.    
  361.     g_pCvarUseTimes = register_cvar("ze_knife_menu_use_times", "1")
  362.  
  363.     register_message(get_user_msgid("DeathMsg"), "DeathMsg")
  364.  
  365.     register_clcmd("say /k", "Show_Knife_Menu")
  366.    
  367.     cvar_speed_compat = register_cvar("ze_compat_speed", "400.0")
  368.     cvar_speed_strong = register_cvar("ze_strong_speed", "270.0")
  369.     cvar_speed_katana = register_cvar("ze_katana_speed", "270.0")
  370.     cvar_speed_hammer = register_cvar("ze_hammer_speed", "270.0")
  371.     cvar_speed_turb = register_cvar("ze_turb_speed", "275.0")    
  372.     cvar_speed_bio = register_cvar("ze_bio_speed", "275.0")
  373.     cvar_speed_sabers = register_cvar("ze_sabers_speed", "275.0")
  374.     cvar_speed_plasma = register_cvar("ze_plasma_speed", "275.0")
  375.     cvar_speed_storm = register_cvar("ze_storm_speed", "280.0")    
  376.     cvar_speed_laevat = register_cvar("ze_laevat_speed", "280.0")  
  377.     cvar_speed_darknight = register_cvar("ze_darknight_speed", "280.0")
  378.     cvar_speed_kosa = register_cvar("ze_kosa_speed", "280.0")
  379. }
  380.  
  381. public ze_user_humanized(id)
  382. {
  383.     g_iUsedTimes[id] = 0
  384. }
  385.  
  386. public ze_user_infected(Victim)
  387. {
  388.     g_bCompat[Victim] = false
  389.     g_bStrong[Victim] = false
  390.     g_bKatana[Victim] = false
  391.     g_bHammer[Victim] = false
  392.     g_bTurbulent9[Victim] = false
  393.     g_bBio[Victim] = false
  394.     g_bSabers[Victim] = false
  395.     g_bPlasma[Victim] = false
  396.     g_bStorm[Victim] = false
  397.     g_bLaevateinn[Victim] = false
  398.     g_bWarHammer_Dark_Knight[Victim] = false
  399.     g_bBalrog_Kosa[Victim] = false
  400.     g_iUsedTimes[Victim] = 0
  401. }
  402.  
  403. public client_putinserver(id)
  404. {
  405.     g_bCompat[id] = false
  406.     g_bStrong[id] = false
  407.     g_bKatana[id] = false
  408.     g_bHammer[id] = false
  409.     g_bTurbulent9[id] = false
  410.     g_bBio[id] = false
  411.     g_bSabers[id] = false
  412.     g_bPlasma[id] = false
  413.     g_bStorm[id] = false
  414.     g_bLaevateinn[id] = false
  415.     g_bWarHammer_Dark_Knight[id] = false
  416.     g_bBalrog_Kosa[id] = false
  417.     g_iUsedTimes[id] = 0
  418. }
  419.  
  420. public client_disconnected(id)
  421. {
  422.     g_bCompat[id] = false
  423.     g_bStrong[id] = false
  424.     g_bKatana[id] = false
  425.     g_bHammer[id] = false
  426.     g_bTurbulent9[id] = false
  427.     g_bBio[id] = false
  428.     g_bSabers[id] = false
  429.     g_bPlasma[id] = false
  430.     g_bStorm[id] = false
  431.     g_bLaevateinn[id] = false
  432.     g_bWarHammer_Dark_Knight[id] = false
  433.     g_bBalrog_Kosa[id] = false
  434.     g_iUsedTimes[id] = 0
  435. }
  436.  
  437. public Show_Knife_Menu(id)
  438. {
  439.     if (!is_user_connected(id))
  440.         return PLUGIN_CONTINUE
  441.  
  442.     if (ze_is_user_zombie(id))
  443.     {
  444.         ze_colored_print(id, "!tZombies can't open knife menu!y.")
  445.         return PLUGIN_HANDLED
  446.     }
  447.  
  448.     if (g_iUsedTimes[id] >= get_pcvar_num(g_pCvarUseTimes))
  449.     {
  450.         ze_colored_print(id, "!tYou can only open knife menu !y[!g%dx!y] per round!", get_pcvar_num(g_pCvarUseTimes))
  451.         return PLUGIN_HANDLED
  452.     }
  453.  
  454.     if (!is_user_alive(id))
  455.     {
  456.         ze_colored_print(id, "!tDead can't open knife menu!y.")
  457.         return PLUGIN_HANDLED
  458.     }
  459.  
  460.     Knife_Menu(id)
  461.     return PLUGIN_CONTINUE
  462. }
  463.  
  464. public Knife_Menu(id)
  465. {
  466.     new iMenu = menu_create("\rChoose Your Knife\w:", "Menu_Handler")
  467.     menu_additem(iMenu, "\yCombat", "", 0)
  468.     menu_additem(iMenu, "\yStrong", "", 0)
  469.     menu_additem(iMenu, "\yKatana", "", 0)
  470.     menu_additem(iMenu, "\yHammer", "", 0)
  471.  
  472.     if (ze_get_vip_flags(id) & VIP_A)
  473.     {
  474.         menu_additem(iMenu, "\yTurbulent9 \r[VIP]", "", 0)
  475.         menu_additem(iMenu, "\yBio Hazard \r[VIP]", "", 0)
  476.     }
  477.    
  478.     if (ze_get_vip_flags(id) & VIP_B)
  479.     {
  480.         menu_additem(iMenu, "\ySabers \r[VIP+]", "", 0)
  481.         menu_additem(iMenu, "\yPlasma \r[VIP+]", "", 0)
  482.     }
  483.  
  484.     if (ze_get_vip_flags(id) & VIP_C)
  485.     {
  486.         menu_additem(iMenu, "\yStorm \r[VIP++]", "", 0)
  487.         menu_additem(iMenu, "\yLaevateinn \r[VIP++]", "", 0)
  488.         menu_additem(iMenu, "\yWarHammer Dark Night \r[VIP++]", "", 0)
  489.         menu_additem(iMenu, "\yBalrog Kosa \r[VIP++]", "", 0)
  490.     }
  491.  
  492.     menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  493.     menu_display(id, iMenu, 0)
  494. }
  495.  
  496. public Menu_Handler(id, iMenu, iKey)
  497. {
  498.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  499.         return PLUGIN_HANDLED
  500.        
  501.     switch(iKey)
  502.     {
  503.         case 0: // Compat
  504.         {
  505.             g_bCompat[id] = true
  506.             g_bStrong[id] = false
  507.             g_bKatana[id] = false
  508.             g_bHammer[id] = false
  509.             g_bTurbulent9[id] = false
  510.             g_bBio[id] = false
  511.             g_bSabers[id] = false
  512.             g_bPlasma[id] = false
  513.             g_bStorm[id] = false
  514.             g_bLaevateinn[id] = false
  515.             g_bWarHammer_Dark_Knight[id] = false
  516.             g_bBalrog_Kosa[id] = false
  517.             g_iUsedTimes[id]++
  518.             /*rg_remove_item(id, "weapon_knife")
  519.             rg_give_item(id, "weapon_knife", GT_APPEND)
  520.             engclient_cmd(id, "weapon_knife")
  521.             g_iUsedTimes[id]++
  522.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  523.         }
  524.         case 1: // Strong
  525.         {
  526.             g_bCompat[id] = false
  527.             g_bStrong[id] = true
  528.             g_bKatana[id] = false
  529.             g_bHammer[id] = false
  530.             g_bTurbulent9[id] = false
  531.             g_bBio[id] = false
  532.             g_bSabers[id] = false
  533.             g_bPlasma[id] = false
  534.             g_bStorm[id] = false
  535.             g_bLaevateinn[id] = false
  536.             g_bWarHammer_Dark_Knight[id] = false
  537.             g_bBalrog_Kosa[id] = false
  538.             g_iUsedTimes[id]++
  539.             /*rg_remove_item(id, "weapon_knife")
  540.             rg_give_item(id, "weapon_knife", GT_APPEND)
  541.             engclient_cmd(id, "weapon_knife")
  542.             g_iUsedTimes[id]++
  543.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  544.         }
  545.         case 2: // Katana
  546.         {
  547.             g_bCompat[id] = false
  548.             g_bStrong[id] = false
  549.             g_bKatana[id] = true
  550.             g_bHammer[id] = false
  551.             g_bTurbulent9[id] = false
  552.             g_bBio[id] = false
  553.             g_bSabers[id] = false
  554.             g_bPlasma[id] = false
  555.             g_bStorm[id] = false
  556.             g_bLaevateinn[id] = false
  557.             g_bWarHammer_Dark_Knight[id] = false
  558.             g_bBalrog_Kosa[id] = false
  559.             g_iUsedTimes[id]++
  560.             /*rg_remove_item(id, "weapon_knife")
  561.             rg_give_item(id, "weapon_knife", GT_APPEND)
  562.             engclient_cmd(id, "weapon_knife")
  563.             g_iUsedTimes[id]++
  564.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  565.         }
  566.         case 3: // Hammer
  567.         {
  568.             g_bCompat[id] = false
  569.             g_bStrong[id] = false
  570.             g_bKatana[id] = false
  571.             g_bHammer[id] = true
  572.             g_bTurbulent9[id] = false
  573.             g_bBio[id] = false
  574.             g_bSabers[id] = false
  575.             g_bPlasma[id] = false
  576.             g_bStorm[id] = false
  577.             g_bLaevateinn[id] = false
  578.             g_bWarHammer_Dark_Knight[id] = false
  579.             g_bBalrog_Kosa[id] = false
  580.             g_iUsedTimes[id]++
  581.             /*rg_remove_item(id, "weapon_knife")
  582.             rg_give_item(id, "weapon_knife", GT_APPEND)
  583.             engclient_cmd(id, "weapon_knife")
  584.             g_iUsedTimes[id]++
  585.             emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  586.         }
  587.         case 4: // Turbulent
  588.         {
  589.             if (ze_get_vip_flags(id) & VIP_A)
  590.             {
  591.                 g_bCompat[id] = false
  592.                 g_bStrong[id] = false
  593.                 g_bKatana[id] = false
  594.                 g_bHammer[id] = false
  595.                 g_bTurbulent9[id] = true
  596.                 g_bBio[id] = false
  597.                 g_bSabers[id] = false
  598.                 g_bPlasma[id] = false
  599.                 g_bStorm[id] = false
  600.                 g_bLaevateinn[id] = false
  601.                 g_bWarHammer_Dark_Knight[id] = false
  602.                 g_bBalrog_Kosa[id] = false
  603.                 g_iUsedTimes[id]++
  604.                 /*rg_remove_item(id, "weapon_knife")
  605.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  606.                 engclient_cmd(id, "weapon_knife")
  607.                 g_iUsedTimes[id]++
  608.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  609.             }
  610.         }
  611.         case 5: // Bio
  612.         {
  613.             if (ze_get_vip_flags(id) & VIP_A)
  614.             {
  615.                 g_bCompat[id] = false
  616.                 g_bStrong[id] = false
  617.                 g_bKatana[id] = false
  618.                 g_bHammer[id] = false
  619.                 g_bTurbulent9[id] = false
  620.                 g_bBio[id] = true
  621.                 g_bSabers[id] = false
  622.                 g_bPlasma[id] = false
  623.                 g_bStorm[id] = false
  624.                 g_bLaevateinn[id] = false
  625.                 g_bWarHammer_Dark_Knight[id] = false
  626.                 g_bBalrog_Kosa[id] = false
  627.                 g_iUsedTimes[id]++
  628.                 /*rg_remove_item(id, "weapon_knife")
  629.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  630.                 engclient_cmd(id, "weapon_knife")
  631.                 g_iUsedTimes[id]++
  632.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  633.             }
  634.         }
  635.         case 6: // Sabers
  636.         {
  637.             if (ze_get_vip_flags(id) & VIP_B)
  638.             {
  639.                 g_bCompat[id] = false
  640.                 g_bStrong[id] = false
  641.                 g_bKatana[id] = false
  642.                 g_bHammer[id] = false
  643.                 g_bTurbulent9[id] = false
  644.                 g_bBio[id] = false
  645.                 g_bSabers[id] = true
  646.                 g_bPlasma[id] = false
  647.                 g_bStorm[id] = false
  648.                 g_bLaevateinn[id] = false
  649.                 g_bWarHammer_Dark_Knight[id] = false
  650.                 g_bBalrog_Kosa[id] = false
  651.                 g_iUsedTimes[id]++
  652.                 /*rg_remove_item(id, "weapon_knife")
  653.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  654.                 engclient_cmd(id, "weapon_knife")
  655.                 g_iUsedTimes[id]++
  656.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  657.             }
  658.         }
  659.         case 7: // Plasma
  660.         {
  661.             if (ze_get_vip_flags(id) & VIP_B)
  662.             {
  663.                 g_bCompat[id] = false
  664.                 g_bStrong[id] = false
  665.                 g_bKatana[id] = false
  666.                 g_bHammer[id] = false
  667.                 g_bTurbulent9[id] = false
  668.                 g_bBio[id] = false
  669.                 g_bSabers[id] = false
  670.                 g_bPlasma[id] = true
  671.                 g_bStorm[id] = false
  672.                 g_bLaevateinn[id] = false
  673.                 g_bWarHammer_Dark_Knight[id] = false
  674.                 g_bBalrog_Kosa[id] = false
  675.                 g_iUsedTimes[id]++
  676.                 /*rg_remove_item(id, "weapon_knife")
  677.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  678.                 engclient_cmd(id, "weapon_knife")
  679.                 g_iUsedTimes[id]++
  680.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  681.             }
  682.         }
  683.         case 8: // Storm
  684.         {
  685.             if (ze_get_vip_flags(id) & VIP_C)
  686.             {
  687.                 g_bCompat[id] = false
  688.                 g_bStrong[id] = false
  689.                 g_bKatana[id] = false
  690.                 g_bHammer[id] = false
  691.                 g_bTurbulent9[id] = false
  692.                 g_bBio[id] = false
  693.                 g_bSabers[id] = false
  694.                 g_bPlasma[id] = false
  695.                 g_bStorm[id] = true
  696.                 g_bLaevateinn[id] = false
  697.                 g_bWarHammer_Dark_Knight[id] = false
  698.                 g_bBalrog_Kosa[id] = false
  699.                 g_iUsedTimes[id]++
  700.                 /*rg_remove_item(id, "weapon_knife")
  701.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  702.                 engclient_cmd(id, "weapon_knife")
  703.                 g_iUsedTimes[id]++
  704.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  705.             }
  706.         }
  707.         case 9: // Laevateinn
  708.         {
  709.             if (ze_get_vip_flags(id) & VIP_C)
  710.             {
  711.                 g_bCompat[id] = false
  712.                 g_bStrong[id] = false
  713.                 g_bKatana[id] = false
  714.                 g_bHammer[id] = false
  715.                 g_bTurbulent9[id] = false
  716.                 g_bBio[id] = false
  717.                 g_bSabers[id] = false
  718.                 g_bPlasma[id] = false
  719.                 g_bStorm[id] = false
  720.                 g_bLaevateinn[id] = true
  721.                 g_bWarHammer_Dark_Knight[id] = false
  722.                 g_bBalrog_Kosa[id] = false
  723.                 g_iUsedTimes[id]++
  724.                 /*rg_remove_item(id, "weapon_knife")
  725.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  726.                 engclient_cmd(id, "weapon_knife")
  727.                 g_iUsedTimes[id]++
  728.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  729.             }
  730.         }
  731.         case 10: // Warhammer Dark Night
  732.         {
  733.             if (ze_get_vip_flags(id) & VIP_C)
  734.             {
  735.                 g_bCompat[id] = false
  736.                 g_bStrong[id] = false
  737.                 g_bKatana[id] = false
  738.                 g_bHammer[id] = false
  739.                 g_bTurbulent9[id] = false
  740.                 g_bBio[id] = false
  741.                 g_bSabers[id] = false
  742.                 g_bPlasma[id] = false
  743.                 g_bStorm[id] = false
  744.                 g_bLaevateinn[id] = false
  745.                 g_bWarHammer_Dark_Knight[id] = true
  746.                 g_bBalrog_Kosa[id] = false
  747.                 g_iUsedTimes[id]++
  748.                 /*rg_remove_item(id, "weapon_knife")
  749.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  750.                 engclient_cmd(id, "weapon_knife")
  751.                 g_iUsedTimes[id]++
  752.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  753.             }
  754.         }
  755.         case 11: // Balrog Kosa
  756.         {
  757.             if (ze_get_vip_flags(id) & VIP_C)
  758.             {
  759.                 g_bCompat[id] = false
  760.                 g_bStrong[id] = false
  761.                 g_bKatana[id] = false
  762.                 g_bHammer[id] = false
  763.                 g_bTurbulent9[id] = false
  764.                 g_bBio[id] = false
  765.                 g_bSabers[id] = false
  766.                 g_bPlasma[id] = false
  767.                 g_bStorm[id] = false
  768.                 g_bLaevateinn[id] = false
  769.                 g_bWarHammer_Dark_Knight[id] = false
  770.                 g_bBalrog_Kosa[id] = true
  771.                 g_iUsedTimes[id]++
  772.                 /*rg_remove_item(id, "weapon_knife")
  773.                 rg_give_item(id, "weapon_knife", GT_APPEND)
  774.                 engclient_cmd(id, "weapon_knife")
  775.                 g_iUsedTimes[id]++
  776.                 emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
  777.             }
  778.         }
  779.     }
  780.  
  781.     rg_remove_item(id, "weapon_knife")
  782.     rg_give_item(id, "weapon_knife", GT_APPEND)
  783.     engclient_cmd(id, "weapon_knife")
  784.     emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  785.     menu_destroy(iMenu)
  786.     return PLUGIN_HANDLED
  787. }
  788.  
  789. public fw_EmitSound(id, channel, const sound[])
  790. {
  791.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  792.         return FMRES_IGNORED
  793.        
  794.     new i
  795.     for (i = 0; i <= charsmax(combat_sounds); i++)
  796.     for (i = 0; i <= charsmax(strong_sounds); i++)
  797.     for (i = 0; i <= charsmax(katana_sounds); i++)
  798.     for (i = 0; i <= charsmax(hammer_sounds); i++)
  799.     for (i = 0; i <= charsmax(turbulent9_sounds); i++)
  800.     for (i = 0; i <= charsmax(bio_sounds); i++)
  801.     for (i = 0; i <= charsmax(sabers_sounds); i++)
  802.     for (i = 0; i <= charsmax(plasma_sounds); i++)
  803.     for (i = 0; i <= charsmax(storm_sounds); i++)
  804.     for (i = 0; i <= charsmax(laevateinn_sounds); i++)
  805.     for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
  806.     for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
  807.     {
  808.         if(equal(sound, oldknife_sounds[i]))
  809.         {
  810.             if (g_bCompat[id])
  811.             {
  812.                 emit_sound(id, channel, combat_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  813.                 return FMRES_SUPERCEDE
  814.             }
  815.             else if (g_bStrong[id])
  816.             {
  817.                 emit_sound(id, channel, strong_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  818.                 return FMRES_SUPERCEDE
  819.             }
  820.             else if (g_bKatana[id])
  821.             {
  822.                 emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  823.                 return FMRES_SUPERCEDE
  824.             }
  825.             else if (g_bHammer[id])
  826.             {
  827.                 emit_sound(id, channel, hammer_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  828.                 return FMRES_SUPERCEDE
  829.             }
  830.             else if ((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
  831.             {
  832.                 emit_sound(id, channel, turbulent9_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  833.                 return FMRES_SUPERCEDE
  834.             }
  835.             else if ((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
  836.             {
  837.                 emit_sound(id, channel, bio_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  838.                 return FMRES_SUPERCEDE
  839.             }
  840.             else if ((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
  841.             {
  842.                 emit_sound(id, channel, sabers_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  843.                 return FMRES_SUPERCEDE
  844.             }
  845.             else if ((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
  846.             {
  847.                 emit_sound(id, channel, plasma_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  848.                 return FMRES_SUPERCEDE
  849.             }
  850.             else if ((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
  851.             {
  852.                 emit_sound(id, channel, storm_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  853.                 return FMRES_SUPERCEDE
  854.             }
  855.             else if ((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
  856.             {
  857.                 emit_sound(id, channel, laevateinn_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  858.                 return FMRES_SUPERCEDE
  859.             }
  860.             else if ((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
  861.             {
  862.                 emit_sound(id, channel, warhammer_dark_knight_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  863.                 return FMRES_SUPERCEDE
  864.             }
  865.             else if ((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
  866.             {
  867.                 emit_sound(id, channel, balrog_kosa_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  868.                 return FMRES_SUPERCEDE
  869.             }
  870.             else if (!g_bCompat[id] || !g_bStrong[id] || !g_bKatana[id] || !g_bHammer[id] || !g_bTurbulent9[id] || !g_bBio[id] || !g_bSabers[id] || !g_bPlasma[id] || !g_bStorm[id] || !g_bLaevateinn[id] || !g_bWarHammer_Dark_Knight[id] || !g_bBalrog_Kosa[id])
  871.             {
  872.                 emit_sound(id, channel, oldknife_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  873.                 return FMRES_SUPERCEDE
  874.             }
  875.         }
  876.     }
  877.     return FMRES_IGNORED
  878. }
  879.  
  880. public CurrentWeapon(id)
  881. {
  882.     if(!is_user_alive(id) || ze_is_user_zombie(id))
  883.         return
  884.        
  885.     if(get_user_weapon(id) & CSW_KNIFE)
  886.     {
  887.         if(g_bCompat[id])
  888.         {
  889.             cs_set_player_view_model(id, CSW_KNIFE, Compat_Models[0])
  890.             cs_set_player_weap_model(id, CSW_KNIFE, Compat_Models[1])
  891.         }
  892.         else if(g_bStrong[id])
  893.         {
  894.             cs_set_player_view_model(id, CSW_KNIFE, Strong_Models[0])
  895.             cs_set_player_weap_model(id, CSW_KNIFE, Strong_Models[1])
  896.         }
  897.         else if(g_bKatana[id])
  898.         {
  899.             cs_set_player_view_model(id, CSW_KNIFE, Katana_Models[0])
  900.             cs_set_player_weap_model(id, CSW_KNIFE, Katana_Models[1])
  901.         }
  902.         else if(g_bHammer[id])
  903.         {
  904.             cs_set_player_view_model(id, CSW_KNIFE, Hammer_Models[0])
  905.             cs_set_player_weap_model(id, CSW_KNIFE, Hammer_Models[1])
  906.         }
  907.         else if((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
  908.         {
  909.             cs_set_player_view_model(id, CSW_KNIFE, Turbulent9_Models[0])
  910.             cs_set_player_weap_model(id, CSW_KNIFE, Turbulent9_Models[1])
  911.         }
  912.         else if((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
  913.         {
  914.             cs_set_player_view_model(id, CSW_KNIFE, Bio_Models[0])
  915.             cs_set_player_weap_model(id, CSW_KNIFE, Bio_Models[1])
  916.         }
  917.         else if((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
  918.         {
  919.             cs_set_player_view_model(id, CSW_KNIFE, Sabers_Models[0])
  920.             cs_set_player_weap_model(id, CSW_KNIFE, Sabers_Models[1])
  921.         }
  922.         else if((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
  923.         {
  924.             cs_set_player_view_model(id, CSW_KNIFE, Plasma_Models[0])
  925.             cs_set_player_weap_model(id, CSW_KNIFE, Plasma_Models[1])
  926.         }
  927.         else if((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
  928.         {
  929.             cs_set_player_view_model(id, CSW_KNIFE, Storm_Models[0])
  930.             cs_set_player_weap_model(id, CSW_KNIFE, Storm_Models[1])
  931.         }
  932.         else if((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
  933.         {
  934.             cs_set_player_view_model(id, CSW_KNIFE, Laevateinn_Models[0])
  935.             cs_set_player_weap_model(id, CSW_KNIFE, Laevateinn_Models[1])
  936.         }
  937.         else if((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
  938.         {
  939.             cs_set_player_view_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[0])
  940.             cs_set_player_weap_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[1])
  941.         }
  942.         else if((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
  943.         {
  944.             cs_set_player_view_model(id, CSW_KNIFE, Balrog_Kosa_Models[0])
  945.             cs_set_player_weap_model(id, CSW_KNIFE, Balrog_Kosa_Models[1])
  946.         }
  947.         else
  948.         {
  949.             cs_reset_player_view_model(id, CSW_KNIFE)
  950.             cs_reset_player_weap_model(id, CSW_KNIFE)
  951.         }
  952.     }
  953. }
  954.  
  955. public Fw_RestMaxSpeed_Post(id)
  956. {
  957.     set_task(0.1, "DelaySettingSpeed", id)
  958. }
  959.  
  960. public DelaySettingSpeed(id)
  961. {
  962.     new iWpnId = get_user_weapon(id)
  963.    
  964.     if (iWpnId == CSW_KNIFE && g_bCompat[id])
  965.     {
  966.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  967.         {
  968.             new iFlags = get_entvar(id, var_flags);
  969.             new iWaterlvl = get_entvar(id, var_waterlevel)
  970.            
  971.             if (!(iFlags & FL_ONGROUND))
  972.                 return
  973.  
  974.             if (iFlags & FL_WATERJUMP)
  975.                 return
  976.  
  977.             if (iWaterlvl > 1)
  978.                 return
  979.            
  980.             new Float:flVelocity[3]
  981.             get_entvar(id , var_velocity , flVelocity)
  982.  
  983.             flVelocity[2] += 325
  984.  
  985.             set_entvar(id , var_velocity , flVelocity)
  986.  
  987.             set_entvar(id, var_gaitsequence, 6)
  988.         }
  989.        
  990.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
  991.     }
  992.     else if (iWpnId == CSW_KNIFE && g_bStrong[id])
  993.     {
  994.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  995.         {
  996.             new iFlags = get_entvar(id, var_flags);
  997.             new iWaterlvl = get_entvar(id, var_waterlevel)
  998.            
  999.             if (!(iFlags & FL_ONGROUND))
  1000.                 return
  1001.  
  1002.             if (iFlags & FL_WATERJUMP)
  1003.                 return
  1004.  
  1005.             if (iWaterlvl > 1)
  1006.                 return
  1007.            
  1008.             new Float:flVelocity[3]
  1009.             get_entvar(id , var_velocity , flVelocity)
  1010.  
  1011.             flVelocity[2] += 325
  1012.  
  1013.             set_entvar(id , var_velocity , flVelocity)
  1014.  
  1015.             set_entvar(id, var_gaitsequence, 6)
  1016.         }
  1017.        
  1018.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_strong))
  1019.     }
  1020.     else if (iWpnId == CSW_KNIFE && g_bKatana[id])
  1021.     {
  1022.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1023.         {
  1024.             new iFlags = get_entvar(id, var_flags);
  1025.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1026.            
  1027.             if (!(iFlags & FL_ONGROUND))
  1028.                 return
  1029.  
  1030.             if (iFlags & FL_WATERJUMP)
  1031.                 return
  1032.  
  1033.             if (iWaterlvl > 1)
  1034.                 return
  1035.            
  1036.             new Float:flVelocity[3]
  1037.             get_entvar(id , var_velocity , flVelocity)
  1038.  
  1039.             flVelocity[2] += 325
  1040.  
  1041.             set_entvar(id , var_velocity , flVelocity)
  1042.  
  1043.             set_entvar(id, var_gaitsequence, 6)
  1044.         }
  1045.        
  1046.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_katana))
  1047.     }
  1048.     else if (iWpnId == CSW_KNIFE && g_bHammer[id])
  1049.     {
  1050.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1051.         {
  1052.             new iFlags = get_entvar(id, var_flags);
  1053.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1054.            
  1055.             if (!(iFlags & FL_ONGROUND))
  1056.                 return
  1057.  
  1058.             if (iFlags & FL_WATERJUMP)
  1059.                 return
  1060.  
  1061.             if (iWaterlvl > 1)
  1062.                 return
  1063.            
  1064.             new Float:flVelocity[3]
  1065.             get_entvar(id , var_velocity , flVelocity)
  1066.  
  1067.             flVelocity[2] += 325
  1068.  
  1069.             set_entvar(id , var_velocity , flVelocity)
  1070.  
  1071.             set_entvar(id, var_gaitsequence, 6)
  1072.         }
  1073.        
  1074.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_hammer))
  1075.     }
  1076.     else if (iWpnId == CSW_KNIFE && g_bTurbulent9[id])
  1077.     {
  1078.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1079.         {
  1080.             new iFlags = get_entvar(id, var_flags);
  1081.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1082.            
  1083.             if (!(iFlags & FL_ONGROUND))
  1084.                 return
  1085.  
  1086.             if (iFlags & FL_WATERJUMP)
  1087.                 return
  1088.  
  1089.             if (iWaterlvl > 1)
  1090.                 return
  1091.            
  1092.             new Float:flVelocity[3]
  1093.             get_entvar(id , var_velocity , flVelocity)
  1094.  
  1095.             flVelocity[2] += 325
  1096.  
  1097.             set_entvar(id , var_velocity , flVelocity)
  1098.  
  1099.             set_entvar(id, var_gaitsequence, 6)
  1100.         }
  1101.        
  1102.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_turb))
  1103.     }
  1104.     else if (iWpnId == CSW_KNIFE && g_bBio[id])
  1105.     {
  1106.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1107.         {
  1108.             new iFlags = get_entvar(id, var_flags);
  1109.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1110.            
  1111.             if (!(iFlags & FL_ONGROUND))
  1112.                 return
  1113.  
  1114.             if (iFlags & FL_WATERJUMP)
  1115.                 return
  1116.  
  1117.             if (iWaterlvl > 1)
  1118.                 return
  1119.            
  1120.             new Float:flVelocity[3]
  1121.             get_entvar(id , var_velocity , flVelocity)
  1122.  
  1123.             flVelocity[2] += 325
  1124.  
  1125.             set_entvar(id , var_velocity , flVelocity)
  1126.  
  1127.             set_entvar(id, var_gaitsequence, 6)
  1128.         }
  1129.        
  1130.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_bio))
  1131.     }
  1132.     else if (iWpnId == CSW_KNIFE && g_bSabers[id])
  1133.     {
  1134.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1135.         {
  1136.             new iFlags = get_entvar(id, var_flags);
  1137.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1138.            
  1139.             if (!(iFlags & FL_ONGROUND))
  1140.                 return
  1141.  
  1142.             if (iFlags & FL_WATERJUMP)
  1143.                 return
  1144.  
  1145.             if (iWaterlvl > 1)
  1146.                 return
  1147.            
  1148.             new Float:flVelocity[3]
  1149.             get_entvar(id , var_velocity , flVelocity)
  1150.  
  1151.             flVelocity[2] += 325
  1152.  
  1153.             set_entvar(id , var_velocity , flVelocity)
  1154.  
  1155.             set_entvar(id, var_gaitsequence, 6)
  1156.         }
  1157.        
  1158.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_sabers))
  1159.     }
  1160.     else if (iWpnId == CSW_KNIFE && g_bPlasma[id])
  1161.     {
  1162.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1163.         {
  1164.             new iFlags = get_entvar(id, var_flags);
  1165.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1166.            
  1167.             if (!(iFlags & FL_ONGROUND))
  1168.                 return
  1169.  
  1170.             if (iFlags & FL_WATERJUMP)
  1171.                 return
  1172.  
  1173.             if (iWaterlvl > 1)
  1174.                 return
  1175.            
  1176.             new Float:flVelocity[3]
  1177.             get_entvar(id , var_velocity , flVelocity)
  1178.  
  1179.             flVelocity[2] += 325
  1180.  
  1181.             set_entvar(id , var_velocity , flVelocity)
  1182.  
  1183.             set_entvar(id, var_gaitsequence, 6)
  1184.         }
  1185.        
  1186.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_plasma))
  1187.     }
  1188.     else if (iWpnId == CSW_KNIFE && g_bStorm[id])
  1189.     {
  1190.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1191.         {
  1192.             new iFlags = get_entvar(id, var_flags);
  1193.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1194.            
  1195.             if (!(iFlags & FL_ONGROUND))
  1196.                 return
  1197.  
  1198.             if (iFlags & FL_WATERJUMP)
  1199.                 return
  1200.  
  1201.             if (iWaterlvl > 1)
  1202.                 return
  1203.            
  1204.             new Float:flVelocity[3]
  1205.             get_entvar(id , var_velocity , flVelocity)
  1206.  
  1207.             flVelocity[2] += 325
  1208.  
  1209.             set_entvar(id , var_velocity , flVelocity)
  1210.  
  1211.             set_entvar(id, var_gaitsequence, 6)
  1212.         }
  1213.        
  1214.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_storm))
  1215.     }
  1216.     else if (iWpnId == CSW_KNIFE && g_bLaevateinn[id])
  1217.     {
  1218.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1219.         {
  1220.             new iFlags = get_entvar(id, var_flags);
  1221.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1222.            
  1223.             if (!(iFlags & FL_ONGROUND))
  1224.                 return
  1225.  
  1226.             if (iFlags & FL_WATERJUMP)
  1227.                 return
  1228.  
  1229.             if (iWaterlvl > 1)
  1230.                 return
  1231.            
  1232.             new Float:flVelocity[3]
  1233.             get_entvar(id , var_velocity , flVelocity)
  1234.  
  1235.             flVelocity[2] += 325
  1236.  
  1237.             set_entvar(id , var_velocity , flVelocity)
  1238.  
  1239.             set_entvar(id, var_gaitsequence, 6)
  1240.         }
  1241.        
  1242.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_laevat))
  1243.     }
  1244.     else if (iWpnId == CSW_KNIFE && g_bWarHammer_Dark_Knight[id])
  1245.     {
  1246.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1247.         {
  1248.             new iFlags = get_entvar(id, var_flags);
  1249.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1250.            
  1251.             if (!(iFlags & FL_ONGROUND))
  1252.                 return
  1253.  
  1254.             if (iFlags & FL_WATERJUMP)
  1255.                 return
  1256.  
  1257.             if (iWaterlvl > 1)
  1258.                 return
  1259.            
  1260.             new Float:flVelocity[3]
  1261.             get_entvar(id , var_velocity , flVelocity)
  1262.  
  1263.             flVelocity[2] += 325
  1264.  
  1265.             set_entvar(id , var_velocity , flVelocity)
  1266.  
  1267.             set_entvar(id, var_gaitsequence, 6)
  1268.         }
  1269.        
  1270.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_darknight))
  1271.     }
  1272.     else if (iWpnId == CSW_KNIFE && g_bBalrog_Kosa[id])
  1273.     {
  1274.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  1275.         {
  1276.             new iFlags = get_entvar(id, var_flags);
  1277.             new iWaterlvl = get_entvar(id, var_waterlevel)
  1278.            
  1279.             if (!(iFlags & FL_ONGROUND))
  1280.                 return
  1281.  
  1282.             if (iFlags & FL_WATERJUMP)
  1283.                 return
  1284.  
  1285.             if (iWaterlvl > 1)
  1286.                 return
  1287.            
  1288.             new Float:flVelocity[3]
  1289.             get_entvar(id , var_velocity , flVelocity)
  1290.  
  1291.             flVelocity[2] += 325
  1292.  
  1293.             set_entvar(id , var_velocity , flVelocity)
  1294.  
  1295.             set_entvar(id, var_gaitsequence, 6)
  1296.         }
  1297.        
  1298.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_kosa))
  1299.     }
  1300. }
  1301.  
  1302. public DeathMsg(msg_id, msg_dest, id)
  1303. {
  1304.     static szTruncatedWeapon[33], iAttacker
  1305.     get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  1306.     iAttacker = get_msg_arg_int(1)
  1307.    
  1308.     if(!is_user_alive(iAttacker) || iAttacker == get_msg_arg_int(2) || !is_user_alive(get_msg_arg_int(2))) // get_msg_arg_int(2) = iVictim
  1309.         return
  1310.    
  1311.     if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iAttacker) & CSW_KNIFE)
  1312.     {
  1313.         if(g_bCompat[id])
  1314.         {
  1315.             set_msg_arg_string(4, "Combat knife")
  1316.         }
  1317.         else if(g_bStrong[id])
  1318.         {
  1319.             set_msg_arg_string(4, "Strong knife")
  1320.         }
  1321.         else if(g_bKatana[id])
  1322.         {
  1323.             set_msg_arg_string(4, "Katana knife")
  1324.         }
  1325.         else if(g_bHammer[id])
  1326.         {
  1327.             set_msg_arg_string(4, "Ice knife")
  1328.         }
  1329.         else if(g_bTurbulent9[id])
  1330.         {
  1331.             set_msg_arg_string(4, "Turbulent9 knife")
  1332.         }
  1333.         else if(g_bBio[id])
  1334.         {
  1335.             set_msg_arg_string(4, "Biohazard knife")
  1336.         }
  1337.         else if(g_bSabers[id])
  1338.         {
  1339.             set_msg_arg_string(4, "Sabers knife")
  1340.         }
  1341.         else if(g_bPlasma[id])
  1342.         {
  1343.             set_msg_arg_string(4, "Plasma knife")
  1344.         }
  1345.         else if(g_bStorm[id])
  1346.         {
  1347.             set_msg_arg_string(4, "Storm knife")
  1348.         }
  1349.         else if(g_bLaevateinn[id])
  1350.         {
  1351.             set_msg_arg_string(4, "Laevateinn knife")
  1352.         }
  1353.         else if(g_bWarHammer_Dark_Knight[id])
  1354.         {
  1355.             set_msg_arg_string(4, "WarHammer Dark Knight knife")
  1356.         }
  1357.         else if(g_bBalrog_Kosa[id])
  1358.         {
  1359.             set_msg_arg_string(4, "Balrog Kosa Knife")
  1360.         }
  1361.     }
  1362. }
  1363.  
  1364. stock fm_set_user_maxspeed(index, Float:speed = -1.0)
  1365. {
  1366.         engfunc(EngFunc_SetClientMaxspeed, index, speed);
  1367.         set_pev(index, pev_maxspeed, speed);
  1368.  
  1369.         return 1;
  1370. }  
  1371.  
  1372. public native_ze_open_knife_menu(id)
  1373. {
  1374.     Show_Knife_Menu(id)
  1375. }

The right approach is:

  1. public plugin_init()
  2. {
  3.     // Hook max speed reset (When user change his weapon)
  4.     RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
  5. }
  6.  
  7. public Fw_RestMaxSpeed_Post(id)
  8. {
  9.     // Delay setting your speed
  10.     set_task(0.1, "DelaySettingSpeed", id)
  11. }
  12.  
  13. public DelaySettingSpeed(id)
  14. {
  15.     new iWpnId = get_user_weapon(id)
  16.    
  17.     if (iWpnId == ANYTHING)
  18.     {
  19.         set_entvar(id, var_maxspeed, speed_as_float)
  20.     }
  21. }
You sure still same problem?

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#34

Post by Raheem » 5 years ago

Yes this approach working without problems, code i tested here:

Code: Select all

#include <zombie_escape>
#include <engine>
#include <fun>
 
// Models
new const Compat_Models[][] =
{
    "models/zombie_escape/v_combat_knife.mdl",
    "models/zombie_escape/p_combat_knife.mdl"
}
 
new const Strong_Models[][] =
{
    "models/zombie_escape/v_strong_knife.mdl",
    "models/zombie_escape/p_strong_knife.mdl"
}
 
new const Katana_Models[][] =
{
    "models/zombie_escape/v_katana_knife.mdl",
    "models/zombie_escape/p_katana_knife.mdl"
}
 
new const Hammer_Models[][] =
{
    "models/zombie_escape/v_hammer_knife.mdl",
    "models/zombie_escape/p_hammer_knife.mdl"
}
 
new const Turbulent9_Models[][] =
{
    "models/zombie_escape/v_turbulent9_knife.mdl",
    "models/zombie_escape/p_turbulent9_knife.mdl"
}
 
new const Bio_Models[][] =
{
    "models/zombie_escape/v_bio_knife.mdl",
    "models/zombie_escape/p_bio_knife.mdl"
}
 
new const Sabers_Models[][] =
{
    "models/zombie_escape/v_laser_knife.mdl",
    "models/zombie_escape/p_laser_knife.mdl"
}
 
new const Plasma_Models[][] =
{
    "models/zombie_escape/v_plasma_knife.mdl",
    "models/zombie_escape/p_plasma_knife.mdl"
}
 
new const Storm_Models[][] =
{
    "models/zombie_escape/v_storm_sword_knife.mdl",
    "models/zombie_escape/p_storm_sword_knife.mdl"
}
 
new const Laevateinn_Models[][] =
{
    "models/zombie_escape/v_laevateinn_knife.mdl",
    "models/zombie_escape/p_laevateinn_knife.mdl"
}
 
new const WarHammer_Dark_Knight_Models[][] =
{
    "models/zombie_escape/v_WarHammer_dark_knight_knife.mdl",
    "models/zombie_escape/p_WarHammer_dark_knight_knife.mdl"
}
 
new const Balrog_Kosa_Models[][] =
{
    "models/zombie_escape/v_balrog_kosa_knife.mdl",
    "models/zombie_escape/p_balrog_kosa_knife.mdl"
}
 
// Sounds
new const g_sound_knife[] = "items/gunpickup2.wav"
 
new const combat_sounds[][] =
{
    "zombie_escape/knife_menu/combat_deploy.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hitwall.wav",
    "zombie_escape/knife_menu/combat_slash.wav",
    "zombie_escape/knife_menu/combat_slash.wav",
    "zombie_escape/knife_menu/combat_stab.wav"
}
 
new const strong_sounds[][] =
{
    "zombie_escape/knife_menu/strong_deploy.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hitwall.wav",
    "zombie_escape/knife_menu/strong_slash.wav",
    "zombie_escape/knife_menu/strong_slash.wav",
    "zombie_escape/knife_menu/strong_stab.wav"
}
 
new const katana_sounds[][] =
{
    "zombie_escape/knife_menu/katana_deploy.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hitwall.wav",
    "zombie_escape/knife_menu/katana_slash.wav",
    "zombie_escape/knife_menu/katana_slash.wav",
    "zombie_escape/knife_menu/katana_stab.wav"
}
 
new const hammer_sounds[][] =
{
    "zombie_escape/knife_menu/hammer_deploy.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hitwall.wav",
    "zombie_escape/knife_menu/hammer_slash.wav",
    "zombie_escape/knife_menu/hammer_slash.wav",
    "zombie_escape/knife_menu/hammer_stab.wav"
}
 
new const turbulent9_sounds[][] =
{
    "zombie_escape/knife_menu/turbulent9_deploy.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hitwall.wav",
    "zombie_escape/knife_menu/turbulent9_slash.wav",
    "zombie_escape/knife_menu/turbulent9_slash.wav",
    "zombie_escape/knife_menu/turbulent9_stab.wav"
}
 
new const bio_sounds[][] =
{
    "zombie_escape/knife_menu/bio_deploy.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hitwall.wav",
    "zombie_escape/knife_menu/bio_slash.wav",
    "zombie_escape/knife_menu/bio_slash.wav",
    "zombie_escape/knife_menu/bio_stab.wav"
}
 
new const sabers_sounds[][] =
{
    "zombie_escape/knife_menu/laser_deploy.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hitwall.wav",
    "zombie_escape/knife_menu/laser_slash1.wav",
    "zombie_escape/knife_menu/laser_slash2.wav",
    "zombie_escape/knife_menu/laser_stab.wav"
}
 
new const plasma_sounds[][] =
{
    "zombie_escape/knife_menu/plasma_deploy.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hitwall.wav",
    "zombie_escape/knife_menu/plasma_slash.wav",
    "zombie_escape/knife_menu/plasma_slash.wav",
    "zombie_escape/knife_menu/plasma_stab.wav"
}
 
new const storm_sounds[][] =
{
    "zombie_escape/knife_menu/storm_sword_deploy.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hitwall.wav",
    "zombie_escape/knife_menu/storm_sword_slash.wav",
    "zombie_escape/knife_menu/storm_sword_slash.wav",
    "zombie_escape/knife_menu/storm_sword_stab.wav"
}
 
new const laevateinn_sounds[][] =
{
    "zombie_escape/knife_menu/laevateinn_deploy.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hitwall.wav",
    "zombie_escape/knife_menu/laevateinn_slash.wav",
    "zombie_escape/knife_menu/laevateinn_slash.wav",
    "zombie_escape/knife_menu/laevateinn_stab.wav"
}
 
new const warhammer_dark_knight_sounds[][] =
{
    "zombie_escape/knife_menu/WarHammer_dark_knight_deploy.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hitwall.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_stab.wav"
}
 
new const balrog_kosa_sounds[][] =
{
    "zombie_escape/knife_menu/balrog_kosa_deploy.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hitwall.wav",
    "zombie_escape/knife_menu/balrog_kosa_slash.wav",
    "zombie_escape/knife_menu/balrog_kosa_slash.wav",
    "zombie_escape/knife_menu/balrog_kosa_stab.wav"
}
 
new const oldknife_sounds[][] =
{
    "weapons/knife_deploy1.wav",
    "weapons/knife_hit1.wav",
    "weapons/knife_hit2.wav",
    "weapons/knife_hit3.wav",
    "weapons/knife_hit4.wav",
    "weapons/knife_hitwall1.wav",
    "weapons/knife_slash1.wav",
    "weapons/knife_slash2.wav",
    "weapons/knife_stab.wav"
}
 
new bool:g_bCompat[33], bool:g_bStrong[33], bool:g_bKatana[33], bool:g_bHammer[33], bool:g_bTurbulent9[33], bool:g_bBio[33], bool:g_bSabers[33], bool:g_bPlasma[33],
bool:g_bStorm[33], bool:g_bLaevateinn[33], bool:g_bWarHammer_Dark_Knight[33], bool:g_bBalrog_Kosa[33], bool:g_bNoSpeed, g_iUsedTimes[33], g_pCvarUseTimes
 
new cvar_speed_compat
new cvar_speed_strong
new cvar_speed_katana
new cvar_speed_hammer
new cvar_speed_turb
new cvar_speed_bio
new cvar_speed_sabers
new cvar_speed_plasma
new cvar_speed_storm
new cvar_speed_laevat
new cvar_speed_darknight
new cvar_speed_kosa
 
/*public plugin_precache()
{
    new i
 
    for (i = 0; i <= charsmax(Compat_Models); i++)
        precache_model(Compat_Models[i])
 
    for (i = 0; i <= charsmax(Hammer_Models); i++)
        precache_model(Hammer_Models[i])
 
    for (i = 0; i <= charsmax(Katana_Models); i++)
        precache_model(Katana_Models[i])
 
    for (i = 0; i <= charsmax(Strong_Models); i++)
        precache_model(Strong_Models[i])
 
    for (i = 0; i <= charsmax(Turbulent9_Models); i++)
        precache_model(Turbulent9_Models[i])
 
    for (i = 0; i <= charsmax(Bio_Models); i++)
        precache_model(Bio_Models[i])
 
    for (i = 0; i <= charsmax(Sabers_Models); i++)
        precache_model(Sabers_Models[i])
 
    for (i = 0; i <= charsmax(Plasma_Models); i++)
        precache_model(Plasma_Models[i])
 
    for (i = 0; i <= charsmax(Storm_Models); i++)
        precache_model(Storm_Models[i])
 
    for (i = 0; i <= charsmax(Laevateinn_Models); i++)
        precache_model(Laevateinn_Models[i])
 
    for (i = 0; i <= charsmax(WarHammer_Dark_Knight_Models); i++)
        precache_model(WarHammer_Dark_Knight_Models[i])
 
    for (i = 0; i <= charsmax(Balrog_Kosa_Models); i++)
        precache_model(Balrog_Kosa_Models[i])
 
    for (i = 0; i <= charsmax(combat_sounds); i++)
        precache_sound(combat_sounds[i])
 
    for (i = 0; i <= charsmax(strong_sounds); i++)
        precache_sound(strong_sounds[i])
 
    for (i = 0; i <= charsmax(katana_sounds); i++)
        precache_sound(katana_sounds[i])
 
    for (i = 0; i <= charsmax(hammer_sounds); i++)
        precache_sound(hammer_sounds[i])
 
    for (i = 0; i <= charsmax(turbulent9_sounds); i++)
        precache_sound(turbulent9_sounds[i])
 
    for (i = 0; i <= charsmax(bio_sounds); i++)
        precache_sound(bio_sounds[i])
 
    for (i = 0; i <= charsmax(sabers_sounds); i++)
        precache_sound(sabers_sounds[i])
 
    for (i = 0; i <= charsmax(plasma_sounds); i++)
        precache_sound(plasma_sounds[i])
 
    for (i = 0; i <= charsmax(storm_sounds); i++)
        precache_sound(storm_sounds[i])
 
    for (i = 0; i <= charsmax(laevateinn_sounds); i++)
        precache_sound(laevateinn_sounds[i])
 
    for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
        precache_sound(warhammer_dark_knight_sounds[i])
 
    for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
        precache_sound(balrog_kosa_sounds[i])
 
    precache_sound(g_sound_knife)
}*/
 
public plugin_natives()
{
    register_native("ze_open_knife_menu", "native_ze_open_knife_menu", 1)
}
 
public plugin_init()
{
    register_plugin("[ZE] Addon: Knife Menu", "1.2", "Jack GamePlay")
 
    //register_forward(FM_EmitSound, "fw_EmitSound")
    //register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
 
    //register_event("CurWeapon", "CurrentWeapon", "be", "1=1")
    RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
   
    g_pCvarUseTimes = register_cvar("ze_knife_menu_use_times", "1000")
 
    register_message(get_user_msgid("DeathMsg"), "DeathMsg")
 
    register_clcmd("say /k", "Show_Knife_Menu")
   
    cvar_speed_compat = register_cvar("ze_compat_speed", "400.0")
    cvar_speed_strong = register_cvar("ze_strong_speed", "270.0")
    cvar_speed_katana = register_cvar("ze_katana_speed", "270.0")
    cvar_speed_hammer = register_cvar("ze_hammer_speed", "270.0")
    cvar_speed_turb = register_cvar("ze_turb_speed", "275.0")    
    cvar_speed_bio = register_cvar("ze_bio_speed", "275.0")
    cvar_speed_sabers = register_cvar("ze_sabers_speed", "275.0")
    cvar_speed_plasma = register_cvar("ze_plasma_speed", "275.0")
    cvar_speed_storm = register_cvar("ze_storm_speed", "280.0")    
    cvar_speed_laevat = register_cvar("ze_laevat_speed", "280.0")  
    cvar_speed_darknight = register_cvar("ze_darknight_speed", "280.0")
    cvar_speed_kosa = register_cvar("ze_kosa_speed", "280.0")
}
 
public ze_user_humanized(id)
{
    g_iUsedTimes[id] = 0
}
 
public ze_user_infected(Victim)
{
    g_bCompat[Victim] = false
    g_bStrong[Victim] = false
    g_bKatana[Victim] = false
    g_bHammer[Victim] = false
    g_bTurbulent9[Victim] = false
    g_bBio[Victim] = false
    g_bSabers[Victim] = false
    g_bPlasma[Victim] = false
    g_bStorm[Victim] = false
    g_bLaevateinn[Victim] = false
    g_bWarHammer_Dark_Knight[Victim] = false
    g_bBalrog_Kosa[Victim] = false
    g_iUsedTimes[Victim] = 0
}
 
public client_putinserver(id)
{
    g_bCompat[id] = false
    g_bStrong[id] = false
    g_bKatana[id] = false
    g_bHammer[id] = false
    g_bTurbulent9[id] = false
    g_bBio[id] = false
    g_bSabers[id] = false
    g_bPlasma[id] = false
    g_bStorm[id] = false
    g_bLaevateinn[id] = false
    g_bWarHammer_Dark_Knight[id] = false
    g_bBalrog_Kosa[id] = false
    g_iUsedTimes[id] = 0
}
 
public client_disconnected(id)
{
    g_bCompat[id] = false
    g_bStrong[id] = false
    g_bKatana[id] = false
    g_bHammer[id] = false
    g_bTurbulent9[id] = false
    g_bBio[id] = false
    g_bSabers[id] = false
    g_bPlasma[id] = false
    g_bStorm[id] = false
    g_bLaevateinn[id] = false
    g_bWarHammer_Dark_Knight[id] = false
    g_bBalrog_Kosa[id] = false
    g_iUsedTimes[id] = 0
}
 
public Show_Knife_Menu(id)
{
    /*if (!is_user_connected(id))
        return PLUGIN_CONTINUE
 
    if (ze_is_user_zombie(id))
    {
        ze_colored_print(id, "!tZombies can't open knife menu!y.")
        return PLUGIN_HANDLED
    }
 
    if (g_iUsedTimes[id] >= get_pcvar_num(g_pCvarUseTimes))
    {
        ze_colored_print(id, "!tYou can only open knife menu !y[!g%dx!y] per round!", get_pcvar_num(g_pCvarUseTimes))
        return PLUGIN_HANDLED
    }
 
    if (!is_user_alive(id))
    {
        ze_colored_print(id, "!tDead can't open knife menu!y.")
        return PLUGIN_HANDLED
    }*/
 
    Knife_Menu(id)
    return PLUGIN_CONTINUE
}
 
public Knife_Menu(id)
{
    new iMenu = menu_create("\rChoose Your Knife\w:", "Menu_Handler")
    menu_additem(iMenu, "\yCombat", "", 0)
    menu_additem(iMenu, "\yStrong", "", 0)
    menu_additem(iMenu, "\yKatana", "", 0)
    menu_additem(iMenu, "\yHammer", "", 0)
 
	menu_additem(iMenu, "\yTurbulent9 \r[VIP]", "", 0)
	menu_additem(iMenu, "\yBio Hazard \r[VIP]", "", 0)


	menu_additem(iMenu, "\ySabers \r[VIP+]", "", 0)
	menu_additem(iMenu, "\yPlasma \r[VIP+]", "", 0)


	menu_additem(iMenu, "\yStorm \r[VIP++]", "", 0)
	menu_additem(iMenu, "\yLaevateinn \r[VIP++]", "", 0)
	menu_additem(iMenu, "\yWarHammer Dark Night \r[VIP++]", "", 0)
	menu_additem(iMenu, "\yBalrog Kosa \r[VIP++]", "", 0)

    menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, iMenu, 0)
}
 
public Menu_Handler(id, iMenu, iKey)
{
    if(!is_user_alive(id) || ze_is_user_zombie(id))
        return PLUGIN_HANDLED
       
    switch(iKey)
    {
        case 0: // Compat
        {
            g_bCompat[id] = true
            g_bStrong[id] = false
            g_bKatana[id] = false
            g_bHammer[id] = false
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
			rg_reset_maxspeed(id)
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
        case 1: // Strong
        {
            g_bCompat[id] = false
            g_bStrong[id] = true
            g_bKatana[id] = false
            g_bHammer[id] = false
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
        case 2: // Katana
        {
            g_bCompat[id] = false
            g_bStrong[id] = false
            g_bKatana[id] = true
            g_bHammer[id] = false
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            /*rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
        }
        case 3: // Hammer
        {
            g_bCompat[id] = false
            g_bStrong[id] = false
            g_bKatana[id] = false
            g_bHammer[id] = true
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            /*rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
        }
        case 4: // Turbulent
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = true
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 5: // Bio
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = true
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 6: // Sabers
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = true
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 7: // Plasma
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = true
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 8: // Storm
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = true
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/

        }
        case 9: // Laevateinn
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = true
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/

        }
        case 10: // Warhammer Dark Night
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = true
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
       
        }
        case 11: // Balrog Kosa
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = true
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
    }

    menu_destroy(iMenu)
    return PLUGIN_HANDLED
}
 
/*public fw_EmitSound(id, channel, const sound[])
{
    if(!is_user_alive(id) || ze_is_user_zombie(id))
        return FMRES_IGNORED
       
    new i
    for (i = 0; i <= charsmax(combat_sounds); i++)
    for (i = 0; i <= charsmax(strong_sounds); i++)
    for (i = 0; i <= charsmax(katana_sounds); i++)
    for (i = 0; i <= charsmax(hammer_sounds); i++)
    for (i = 0; i <= charsmax(turbulent9_sounds); i++)
    for (i = 0; i <= charsmax(bio_sounds); i++)
    for (i = 0; i <= charsmax(sabers_sounds); i++)
    for (i = 0; i <= charsmax(plasma_sounds); i++)
    for (i = 0; i <= charsmax(storm_sounds); i++)
    for (i = 0; i <= charsmax(laevateinn_sounds); i++)
    for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
    for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
    {
        if(equal(sound, oldknife_sounds[i]))
        {
            if (g_bCompat[id])
            {
                emit_sound(id, channel, combat_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (g_bStrong[id])
            {
                emit_sound(id, channel, strong_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (g_bKatana[id])
            {
                emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (g_bHammer[id])
            {
                emit_sound(id, channel, hammer_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
            {
                emit_sound(id, channel, turbulent9_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
            {
                emit_sound(id, channel, bio_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
            {
                emit_sound(id, channel, sabers_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
            {
                emit_sound(id, channel, plasma_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, storm_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, laevateinn_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, warhammer_dark_knight_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, balrog_kosa_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (!g_bCompat[id] || !g_bStrong[id] || !g_bKatana[id] || !g_bHammer[id] || !g_bTurbulent9[id] || !g_bBio[id] || !g_bSabers[id] || !g_bPlasma[id] || !g_bStorm[id] || !g_bLaevateinn[id] || !g_bWarHammer_Dark_Knight[id] || !g_bBalrog_Kosa[id])
            {
                emit_sound(id, channel, oldknife_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
        }
    }
    return FMRES_IGNORED
}*/
 
/*public CurrentWeapon(id)
{
    if(!is_user_alive(id) || ze_is_user_zombie(id))
        return
       
    if(get_user_weapon(id) & CSW_KNIFE)
    {
        if(g_bCompat[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Compat_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Compat_Models[1])
        }
        else if(g_bStrong[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Strong_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Strong_Models[1])
        }
        else if(g_bKatana[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Katana_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Katana_Models[1])
        }
        else if(g_bHammer[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Hammer_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Hammer_Models[1])
        }
        else if((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Turbulent9_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Turbulent9_Models[1])
        }
        else if((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Bio_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Bio_Models[1])
        }
        else if((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Sabers_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Sabers_Models[1])
        }
        else if((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Plasma_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Plasma_Models[1])
        }
        else if((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Storm_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Storm_Models[1])
        }
        else if((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Laevateinn_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Laevateinn_Models[1])
        }
        else if((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[1])
        }
        else if((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Balrog_Kosa_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Balrog_Kosa_Models[1])
        }
        else
        {
            cs_reset_player_view_model(id, CSW_KNIFE)
            cs_reset_player_weap_model(id, CSW_KNIFE)
        }
    }
}*/
 
public Fw_RestMaxSpeed_Post(id)
{
	set_task(0.1, "DelayLoad", id)
	
    return HC_CONTINUE
}
 
public DelayLoad(id)
{
    new iWpnId = get_user_weapon(id)
   
    if (iWpnId == CSW_KNIFE && g_bCompat[id])
    {
        if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
        {
            new iFlags = get_entvar(id, var_flags);
            new iWaterlvl = get_entvar(id, var_waterlevel)
           
            if (!(iFlags & FL_ONGROUND))
                return HC_CONTINUE
 
            if (iFlags & FL_WATERJUMP)
                return HAM_IGNORED
 
            if (iWaterlvl > 1)
                return HAM_IGNORED
           
            new Float:flVelocity[3]
            get_entvar(id , var_velocity , flVelocity)
 
            flVelocity[2] += 325
 
            set_entvar(id , var_velocity , flVelocity)
 
            set_entvar(id, var_gaitsequence, 6)
        }
       
        set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
    }
}
 
public DeathMsg(msg_id, msg_dest, id)
{
    static szTruncatedWeapon[33], iAttacker
    get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
    iAttacker = get_msg_arg_int(1)
   
    if(!is_user_alive(iAttacker) || iAttacker == get_msg_arg_int(2) || !is_user_alive(get_msg_arg_int(2))) // get_msg_arg_int(2) = iVictim
        return
   
    if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iAttacker) & CSW_KNIFE)
    {
        if(g_bCompat[id])
        {
            set_msg_arg_string(4, "Combat knife")
        }
        else if(g_bStrong[id])
        {
            set_msg_arg_string(4, "Strong knife")
        }
        else if(g_bKatana[id])
        {
            set_msg_arg_string(4, "Katana knife")
        }
        else if(g_bHammer[id])
        {
            set_msg_arg_string(4, "Ice knife")
        }
        else if(g_bTurbulent9[id])
        {
            set_msg_arg_string(4, "Turbulent9 knife")
        }
        else if(g_bBio[id])
        {
            set_msg_arg_string(4, "Biohazard knife")
        }
        else if(g_bSabers[id])
        {
            set_msg_arg_string(4, "Sabers knife")
        }
        else if(g_bPlasma[id])
        {
            set_msg_arg_string(4, "Plasma knife")
        }
        else if(g_bStorm[id])
        {
            set_msg_arg_string(4, "Storm knife")
        }
        else if(g_bLaevateinn[id])
        {
            set_msg_arg_string(4, "Laevateinn knife")
        }
        else if(g_bWarHammer_Dark_Knight[id])
        {
            set_msg_arg_string(4, "WarHammer Dark Knight knife")
        }
        else if(g_bBalrog_Kosa[id])
        {
            set_msg_arg_string(4, "Balrog Kosa Knife")
        }
    }
}
 
stock fm_set_user_maxspeed(index, Float:speed = -1.0)
{
        engfunc(EngFunc_SetClientMaxspeed, index, speed);
        set_pev(index, pev_maxspeed, speed);
 
        return 1;
}  
 
public native_ze_open_knife_menu(id)
{
    Show_Knife_Menu(id)
}
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#35

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Yes this approach working without problems, code i tested here:

Code: Select all

#include <zombie_escape>
#include <engine>
#include <fun>
 
// Models
new const Compat_Models[][] =
{
    "models/zombie_escape/v_combat_knife.mdl",
    "models/zombie_escape/p_combat_knife.mdl"
}
 
new const Strong_Models[][] =
{
    "models/zombie_escape/v_strong_knife.mdl",
    "models/zombie_escape/p_strong_knife.mdl"
}
 
new const Katana_Models[][] =
{
    "models/zombie_escape/v_katana_knife.mdl",
    "models/zombie_escape/p_katana_knife.mdl"
}
 
new const Hammer_Models[][] =
{
    "models/zombie_escape/v_hammer_knife.mdl",
    "models/zombie_escape/p_hammer_knife.mdl"
}
 
new const Turbulent9_Models[][] =
{
    "models/zombie_escape/v_turbulent9_knife.mdl",
    "models/zombie_escape/p_turbulent9_knife.mdl"
}
 
new const Bio_Models[][] =
{
    "models/zombie_escape/v_bio_knife.mdl",
    "models/zombie_escape/p_bio_knife.mdl"
}
 
new const Sabers_Models[][] =
{
    "models/zombie_escape/v_laser_knife.mdl",
    "models/zombie_escape/p_laser_knife.mdl"
}
 
new const Plasma_Models[][] =
{
    "models/zombie_escape/v_plasma_knife.mdl",
    "models/zombie_escape/p_plasma_knife.mdl"
}
 
new const Storm_Models[][] =
{
    "models/zombie_escape/v_storm_sword_knife.mdl",
    "models/zombie_escape/p_storm_sword_knife.mdl"
}
 
new const Laevateinn_Models[][] =
{
    "models/zombie_escape/v_laevateinn_knife.mdl",
    "models/zombie_escape/p_laevateinn_knife.mdl"
}
 
new const WarHammer_Dark_Knight_Models[][] =
{
    "models/zombie_escape/v_WarHammer_dark_knight_knife.mdl",
    "models/zombie_escape/p_WarHammer_dark_knight_knife.mdl"
}
 
new const Balrog_Kosa_Models[][] =
{
    "models/zombie_escape/v_balrog_kosa_knife.mdl",
    "models/zombie_escape/p_balrog_kosa_knife.mdl"
}
 
// Sounds
new const g_sound_knife[] = "items/gunpickup2.wav"
 
new const combat_sounds[][] =
{
    "zombie_escape/knife_menu/combat_deploy.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hit.wav",
    "zombie_escape/knife_menu/combat_hitwall.wav",
    "zombie_escape/knife_menu/combat_slash.wav",
    "zombie_escape/knife_menu/combat_slash.wav",
    "zombie_escape/knife_menu/combat_stab.wav"
}
 
new const strong_sounds[][] =
{
    "zombie_escape/knife_menu/strong_deploy.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hit.wav",
    "zombie_escape/knife_menu/strong_hitwall.wav",
    "zombie_escape/knife_menu/strong_slash.wav",
    "zombie_escape/knife_menu/strong_slash.wav",
    "zombie_escape/knife_menu/strong_stab.wav"
}
 
new const katana_sounds[][] =
{
    "zombie_escape/knife_menu/katana_deploy.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hit.wav",
    "zombie_escape/knife_menu/katana_hitwall.wav",
    "zombie_escape/knife_menu/katana_slash.wav",
    "zombie_escape/knife_menu/katana_slash.wav",
    "zombie_escape/knife_menu/katana_stab.wav"
}
 
new const hammer_sounds[][] =
{
    "zombie_escape/knife_menu/hammer_deploy.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hit.wav",
    "zombie_escape/knife_menu/hammer_hitwall.wav",
    "zombie_escape/knife_menu/hammer_slash.wav",
    "zombie_escape/knife_menu/hammer_slash.wav",
    "zombie_escape/knife_menu/hammer_stab.wav"
}
 
new const turbulent9_sounds[][] =
{
    "zombie_escape/knife_menu/turbulent9_deploy.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hit.wav",
    "zombie_escape/knife_menu/turbulent9_hitwall.wav",
    "zombie_escape/knife_menu/turbulent9_slash.wav",
    "zombie_escape/knife_menu/turbulent9_slash.wav",
    "zombie_escape/knife_menu/turbulent9_stab.wav"
}
 
new const bio_sounds[][] =
{
    "zombie_escape/knife_menu/bio_deploy.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hit.wav",
    "zombie_escape/knife_menu/bio_hitwall.wav",
    "zombie_escape/knife_menu/bio_slash.wav",
    "zombie_escape/knife_menu/bio_slash.wav",
    "zombie_escape/knife_menu/bio_stab.wav"
}
 
new const sabers_sounds[][] =
{
    "zombie_escape/knife_menu/laser_deploy.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hit.wav",
    "zombie_escape/knife_menu/laser_hitwall.wav",
    "zombie_escape/knife_menu/laser_slash1.wav",
    "zombie_escape/knife_menu/laser_slash2.wav",
    "zombie_escape/knife_menu/laser_stab.wav"
}
 
new const plasma_sounds[][] =
{
    "zombie_escape/knife_menu/plasma_deploy.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hit.wav",
    "zombie_escape/knife_menu/plasma_hitwall.wav",
    "zombie_escape/knife_menu/plasma_slash.wav",
    "zombie_escape/knife_menu/plasma_slash.wav",
    "zombie_escape/knife_menu/plasma_stab.wav"
}
 
new const storm_sounds[][] =
{
    "zombie_escape/knife_menu/storm_sword_deploy.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hit.wav",
    "zombie_escape/knife_menu/storm_sword_hitwall.wav",
    "zombie_escape/knife_menu/storm_sword_slash.wav",
    "zombie_escape/knife_menu/storm_sword_slash.wav",
    "zombie_escape/knife_menu/storm_sword_stab.wav"
}
 
new const laevateinn_sounds[][] =
{
    "zombie_escape/knife_menu/laevateinn_deploy.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hit.wav",
    "zombie_escape/knife_menu/laevateinn_hitwall.wav",
    "zombie_escape/knife_menu/laevateinn_slash.wav",
    "zombie_escape/knife_menu/laevateinn_slash.wav",
    "zombie_escape/knife_menu/laevateinn_stab.wav"
}
 
new const warhammer_dark_knight_sounds[][] =
{
    "zombie_escape/knife_menu/WarHammer_dark_knight_deploy.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hit.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_hitwall.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_slash.wav",
    "zombie_escape/knife_menu/WarHammer_dark_knight_stab.wav"
}
 
new const balrog_kosa_sounds[][] =
{
    "zombie_escape/knife_menu/balrog_kosa_deploy.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hit.wav",
    "zombie_escape/knife_menu/balrog_kosa_hitwall.wav",
    "zombie_escape/knife_menu/balrog_kosa_slash.wav",
    "zombie_escape/knife_menu/balrog_kosa_slash.wav",
    "zombie_escape/knife_menu/balrog_kosa_stab.wav"
}
 
new const oldknife_sounds[][] =
{
    "weapons/knife_deploy1.wav",
    "weapons/knife_hit1.wav",
    "weapons/knife_hit2.wav",
    "weapons/knife_hit3.wav",
    "weapons/knife_hit4.wav",
    "weapons/knife_hitwall1.wav",
    "weapons/knife_slash1.wav",
    "weapons/knife_slash2.wav",
    "weapons/knife_stab.wav"
}
 
new bool:g_bCompat[33], bool:g_bStrong[33], bool:g_bKatana[33], bool:g_bHammer[33], bool:g_bTurbulent9[33], bool:g_bBio[33], bool:g_bSabers[33], bool:g_bPlasma[33],
bool:g_bStorm[33], bool:g_bLaevateinn[33], bool:g_bWarHammer_Dark_Knight[33], bool:g_bBalrog_Kosa[33], bool:g_bNoSpeed, g_iUsedTimes[33], g_pCvarUseTimes
 
new cvar_speed_compat
new cvar_speed_strong
new cvar_speed_katana
new cvar_speed_hammer
new cvar_speed_turb
new cvar_speed_bio
new cvar_speed_sabers
new cvar_speed_plasma
new cvar_speed_storm
new cvar_speed_laevat
new cvar_speed_darknight
new cvar_speed_kosa
 
/*public plugin_precache()
{
    new i
 
    for (i = 0; i <= charsmax(Compat_Models); i++)
        precache_model(Compat_Models[i])
 
    for (i = 0; i <= charsmax(Hammer_Models); i++)
        precache_model(Hammer_Models[i])
 
    for (i = 0; i <= charsmax(Katana_Models); i++)
        precache_model(Katana_Models[i])
 
    for (i = 0; i <= charsmax(Strong_Models); i++)
        precache_model(Strong_Models[i])
 
    for (i = 0; i <= charsmax(Turbulent9_Models); i++)
        precache_model(Turbulent9_Models[i])
 
    for (i = 0; i <= charsmax(Bio_Models); i++)
        precache_model(Bio_Models[i])
 
    for (i = 0; i <= charsmax(Sabers_Models); i++)
        precache_model(Sabers_Models[i])
 
    for (i = 0; i <= charsmax(Plasma_Models); i++)
        precache_model(Plasma_Models[i])
 
    for (i = 0; i <= charsmax(Storm_Models); i++)
        precache_model(Storm_Models[i])
 
    for (i = 0; i <= charsmax(Laevateinn_Models); i++)
        precache_model(Laevateinn_Models[i])
 
    for (i = 0; i <= charsmax(WarHammer_Dark_Knight_Models); i++)
        precache_model(WarHammer_Dark_Knight_Models[i])
 
    for (i = 0; i <= charsmax(Balrog_Kosa_Models); i++)
        precache_model(Balrog_Kosa_Models[i])
 
    for (i = 0; i <= charsmax(combat_sounds); i++)
        precache_sound(combat_sounds[i])
 
    for (i = 0; i <= charsmax(strong_sounds); i++)
        precache_sound(strong_sounds[i])
 
    for (i = 0; i <= charsmax(katana_sounds); i++)
        precache_sound(katana_sounds[i])
 
    for (i = 0; i <= charsmax(hammer_sounds); i++)
        precache_sound(hammer_sounds[i])
 
    for (i = 0; i <= charsmax(turbulent9_sounds); i++)
        precache_sound(turbulent9_sounds[i])
 
    for (i = 0; i <= charsmax(bio_sounds); i++)
        precache_sound(bio_sounds[i])
 
    for (i = 0; i <= charsmax(sabers_sounds); i++)
        precache_sound(sabers_sounds[i])
 
    for (i = 0; i <= charsmax(plasma_sounds); i++)
        precache_sound(plasma_sounds[i])
 
    for (i = 0; i <= charsmax(storm_sounds); i++)
        precache_sound(storm_sounds[i])
 
    for (i = 0; i <= charsmax(laevateinn_sounds); i++)
        precache_sound(laevateinn_sounds[i])
 
    for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
        precache_sound(warhammer_dark_knight_sounds[i])
 
    for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
        precache_sound(balrog_kosa_sounds[i])
 
    precache_sound(g_sound_knife)
}*/
 
public plugin_natives()
{
    register_native("ze_open_knife_menu", "native_ze_open_knife_menu", 1)
}
 
public plugin_init()
{
    register_plugin("[ZE] Addon: Knife Menu", "1.2", "Jack GamePlay")
 
    //register_forward(FM_EmitSound, "fw_EmitSound")
    //register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
 
    //register_event("CurWeapon", "CurrentWeapon", "be", "1=1")
    RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "Fw_RestMaxSpeed_Post", 1)
   
    g_pCvarUseTimes = register_cvar("ze_knife_menu_use_times", "1000")
 
    register_message(get_user_msgid("DeathMsg"), "DeathMsg")
 
    register_clcmd("say /k", "Show_Knife_Menu")
   
    cvar_speed_compat = register_cvar("ze_compat_speed", "400.0")
    cvar_speed_strong = register_cvar("ze_strong_speed", "270.0")
    cvar_speed_katana = register_cvar("ze_katana_speed", "270.0")
    cvar_speed_hammer = register_cvar("ze_hammer_speed", "270.0")
    cvar_speed_turb = register_cvar("ze_turb_speed", "275.0")    
    cvar_speed_bio = register_cvar("ze_bio_speed", "275.0")
    cvar_speed_sabers = register_cvar("ze_sabers_speed", "275.0")
    cvar_speed_plasma = register_cvar("ze_plasma_speed", "275.0")
    cvar_speed_storm = register_cvar("ze_storm_speed", "280.0")    
    cvar_speed_laevat = register_cvar("ze_laevat_speed", "280.0")  
    cvar_speed_darknight = register_cvar("ze_darknight_speed", "280.0")
    cvar_speed_kosa = register_cvar("ze_kosa_speed", "280.0")
}
 
public ze_user_humanized(id)
{
    g_iUsedTimes[id] = 0
}
 
public ze_user_infected(Victim)
{
    g_bCompat[Victim] = false
    g_bStrong[Victim] = false
    g_bKatana[Victim] = false
    g_bHammer[Victim] = false
    g_bTurbulent9[Victim] = false
    g_bBio[Victim] = false
    g_bSabers[Victim] = false
    g_bPlasma[Victim] = false
    g_bStorm[Victim] = false
    g_bLaevateinn[Victim] = false
    g_bWarHammer_Dark_Knight[Victim] = false
    g_bBalrog_Kosa[Victim] = false
    g_iUsedTimes[Victim] = 0
}
 
public client_putinserver(id)
{
    g_bCompat[id] = false
    g_bStrong[id] = false
    g_bKatana[id] = false
    g_bHammer[id] = false
    g_bTurbulent9[id] = false
    g_bBio[id] = false
    g_bSabers[id] = false
    g_bPlasma[id] = false
    g_bStorm[id] = false
    g_bLaevateinn[id] = false
    g_bWarHammer_Dark_Knight[id] = false
    g_bBalrog_Kosa[id] = false
    g_iUsedTimes[id] = 0
}
 
public client_disconnected(id)
{
    g_bCompat[id] = false
    g_bStrong[id] = false
    g_bKatana[id] = false
    g_bHammer[id] = false
    g_bTurbulent9[id] = false
    g_bBio[id] = false
    g_bSabers[id] = false
    g_bPlasma[id] = false
    g_bStorm[id] = false
    g_bLaevateinn[id] = false
    g_bWarHammer_Dark_Knight[id] = false
    g_bBalrog_Kosa[id] = false
    g_iUsedTimes[id] = 0
}
 
public Show_Knife_Menu(id)
{
    /*if (!is_user_connected(id))
        return PLUGIN_CONTINUE
 
    if (ze_is_user_zombie(id))
    {
        ze_colored_print(id, "!tZombies can't open knife menu!y.")
        return PLUGIN_HANDLED
    }
 
    if (g_iUsedTimes[id] >= get_pcvar_num(g_pCvarUseTimes))
    {
        ze_colored_print(id, "!tYou can only open knife menu !y[!g%dx!y] per round!", get_pcvar_num(g_pCvarUseTimes))
        return PLUGIN_HANDLED
    }
 
    if (!is_user_alive(id))
    {
        ze_colored_print(id, "!tDead can't open knife menu!y.")
        return PLUGIN_HANDLED
    }*/
 
    Knife_Menu(id)
    return PLUGIN_CONTINUE
}
 
public Knife_Menu(id)
{
    new iMenu = menu_create("\rChoose Your Knife\w:", "Menu_Handler")
    menu_additem(iMenu, "\yCombat", "", 0)
    menu_additem(iMenu, "\yStrong", "", 0)
    menu_additem(iMenu, "\yKatana", "", 0)
    menu_additem(iMenu, "\yHammer", "", 0)
 
	menu_additem(iMenu, "\yTurbulent9 \r[VIP]", "", 0)
	menu_additem(iMenu, "\yBio Hazard \r[VIP]", "", 0)


	menu_additem(iMenu, "\ySabers \r[VIP+]", "", 0)
	menu_additem(iMenu, "\yPlasma \r[VIP+]", "", 0)


	menu_additem(iMenu, "\yStorm \r[VIP++]", "", 0)
	menu_additem(iMenu, "\yLaevateinn \r[VIP++]", "", 0)
	menu_additem(iMenu, "\yWarHammer Dark Night \r[VIP++]", "", 0)
	menu_additem(iMenu, "\yBalrog Kosa \r[VIP++]", "", 0)

    menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, iMenu, 0)
}
 
public Menu_Handler(id, iMenu, iKey)
{
    if(!is_user_alive(id) || ze_is_user_zombie(id))
        return PLUGIN_HANDLED
       
    switch(iKey)
    {
        case 0: // Compat
        {
            g_bCompat[id] = true
            g_bStrong[id] = false
            g_bKatana[id] = false
            g_bHammer[id] = false
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
			rg_reset_maxspeed(id)
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
        case 1: // Strong
        {
            g_bCompat[id] = false
            g_bStrong[id] = true
            g_bKatana[id] = false
            g_bHammer[id] = false
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
        case 2: // Katana
        {
            g_bCompat[id] = false
            g_bStrong[id] = false
            g_bKatana[id] = true
            g_bHammer[id] = false
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            /*rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
        }
        case 3: // Hammer
        {
            g_bCompat[id] = false
            g_bStrong[id] = false
            g_bKatana[id] = false
            g_bHammer[id] = true
            g_bTurbulent9[id] = false
            g_bBio[id] = false
            g_bSabers[id] = false
            g_bPlasma[id] = false
            g_bStorm[id] = false
            g_bLaevateinn[id] = false
            g_bWarHammer_Dark_Knight[id] = false
            g_bBalrog_Kosa[id] = false
            g_iUsedTimes[id]++
            /*rg_remove_item(id, "weapon_knife")
            rg_give_item(id, "weapon_knife", GT_APPEND)
            engclient_cmd(id, "weapon_knife")
            g_iUsedTimes[id]++
            emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
        }
        case 4: // Turbulent
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = true
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 5: // Bio
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = true
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 6: // Sabers
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = true
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 7: // Plasma
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = true
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
        case 8: // Storm
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = true
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/

        }
        case 9: // Laevateinn
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = true
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/

        }
        case 10: // Warhammer Dark Night
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = true
                g_bBalrog_Kosa[id] = false
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
       
        }
        case 11: // Balrog Kosa
        {

                g_bCompat[id] = false
                g_bStrong[id] = false
                g_bKatana[id] = false
                g_bHammer[id] = false
                g_bTurbulent9[id] = false
                g_bBio[id] = false
                g_bSabers[id] = false
                g_bPlasma[id] = false
                g_bStorm[id] = false
                g_bLaevateinn[id] = false
                g_bWarHammer_Dark_Knight[id] = false
                g_bBalrog_Kosa[id] = true
                g_iUsedTimes[id]++
                /*rg_remove_item(id, "weapon_knife")
                rg_give_item(id, "weapon_knife", GT_APPEND)
                engclient_cmd(id, "weapon_knife")
                g_iUsedTimes[id]++
                emit_sound(id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)*/
            
        }
    }

    menu_destroy(iMenu)
    return PLUGIN_HANDLED
}
 
/*public fw_EmitSound(id, channel, const sound[])
{
    if(!is_user_alive(id) || ze_is_user_zombie(id))
        return FMRES_IGNORED
       
    new i
    for (i = 0; i <= charsmax(combat_sounds); i++)
    for (i = 0; i <= charsmax(strong_sounds); i++)
    for (i = 0; i <= charsmax(katana_sounds); i++)
    for (i = 0; i <= charsmax(hammer_sounds); i++)
    for (i = 0; i <= charsmax(turbulent9_sounds); i++)
    for (i = 0; i <= charsmax(bio_sounds); i++)
    for (i = 0; i <= charsmax(sabers_sounds); i++)
    for (i = 0; i <= charsmax(plasma_sounds); i++)
    for (i = 0; i <= charsmax(storm_sounds); i++)
    for (i = 0; i <= charsmax(laevateinn_sounds); i++)
    for (i = 0; i <= charsmax(warhammer_dark_knight_sounds); i++)
    for (i = 0; i <= charsmax(balrog_kosa_sounds); i++)
    {
        if(equal(sound, oldknife_sounds[i]))
        {
            if (g_bCompat[id])
            {
                emit_sound(id, channel, combat_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (g_bStrong[id])
            {
                emit_sound(id, channel, strong_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (g_bKatana[id])
            {
                emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (g_bHammer[id])
            {
                emit_sound(id, channel, hammer_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
            {
                emit_sound(id, channel, turbulent9_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
            {
                emit_sound(id, channel, bio_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
            {
                emit_sound(id, channel, sabers_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
            {
                emit_sound(id, channel, plasma_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, storm_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, laevateinn_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, warhammer_dark_knight_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if ((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
            {
                emit_sound(id, channel, balrog_kosa_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
            else if (!g_bCompat[id] || !g_bStrong[id] || !g_bKatana[id] || !g_bHammer[id] || !g_bTurbulent9[id] || !g_bBio[id] || !g_bSabers[id] || !g_bPlasma[id] || !g_bStorm[id] || !g_bLaevateinn[id] || !g_bWarHammer_Dark_Knight[id] || !g_bBalrog_Kosa[id])
            {
                emit_sound(id, channel, oldknife_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
            }
        }
    }
    return FMRES_IGNORED
}*/
 
/*public CurrentWeapon(id)
{
    if(!is_user_alive(id) || ze_is_user_zombie(id))
        return
       
    if(get_user_weapon(id) & CSW_KNIFE)
    {
        if(g_bCompat[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Compat_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Compat_Models[1])
        }
        else if(g_bStrong[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Strong_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Strong_Models[1])
        }
        else if(g_bKatana[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Katana_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Katana_Models[1])
        }
        else if(g_bHammer[id])
        {
            cs_set_player_view_model(id, CSW_KNIFE, Hammer_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Hammer_Models[1])
        }
        else if((g_bTurbulent9[id]) && (ze_get_vip_flags(id) & VIP_A))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Turbulent9_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Turbulent9_Models[1])
        }
        else if((g_bBio[id]) && (ze_get_vip_flags(id) & VIP_A))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Bio_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Bio_Models[1])
        }
        else if((g_bSabers[id]) && (ze_get_vip_flags(id) & VIP_B))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Sabers_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Sabers_Models[1])
        }
        else if((g_bPlasma[id]) && (ze_get_vip_flags(id) & VIP_B))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Plasma_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Plasma_Models[1])
        }
        else if((g_bStorm[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Storm_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Storm_Models[1])
        }
        else if((g_bLaevateinn[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Laevateinn_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Laevateinn_Models[1])
        }
        else if((g_bWarHammer_Dark_Knight[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, WarHammer_Dark_Knight_Models[1])
        }
        else if((g_bBalrog_Kosa[id]) && (ze_get_vip_flags(id) & VIP_C))
        {
            cs_set_player_view_model(id, CSW_KNIFE, Balrog_Kosa_Models[0])
            cs_set_player_weap_model(id, CSW_KNIFE, Balrog_Kosa_Models[1])
        }
        else
        {
            cs_reset_player_view_model(id, CSW_KNIFE)
            cs_reset_player_weap_model(id, CSW_KNIFE)
        }
    }
}*/
 
public Fw_RestMaxSpeed_Post(id)
{
	set_task(0.1, "DelayLoad", id)
	
    return HC_CONTINUE
}
 
public DelayLoad(id)
{
    new iWpnId = get_user_weapon(id)
   
    if (iWpnId == CSW_KNIFE && g_bCompat[id])
    {
        if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
        {
            new iFlags = get_entvar(id, var_flags);
            new iWaterlvl = get_entvar(id, var_waterlevel)
           
            if (!(iFlags & FL_ONGROUND))
                return HC_CONTINUE
 
            if (iFlags & FL_WATERJUMP)
                return HAM_IGNORED
 
            if (iWaterlvl > 1)
                return HAM_IGNORED
           
            new Float:flVelocity[3]
            get_entvar(id , var_velocity , flVelocity)
 
            flVelocity[2] += 325
 
            set_entvar(id , var_velocity , flVelocity)
 
            set_entvar(id, var_gaitsequence, 6)
        }
       
        set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
    }
}
 
public DeathMsg(msg_id, msg_dest, id)
{
    static szTruncatedWeapon[33], iAttacker
    get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
    iAttacker = get_msg_arg_int(1)
   
    if(!is_user_alive(iAttacker) || iAttacker == get_msg_arg_int(2) || !is_user_alive(get_msg_arg_int(2))) // get_msg_arg_int(2) = iVictim
        return
   
    if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iAttacker) & CSW_KNIFE)
    {
        if(g_bCompat[id])
        {
            set_msg_arg_string(4, "Combat knife")
        }
        else if(g_bStrong[id])
        {
            set_msg_arg_string(4, "Strong knife")
        }
        else if(g_bKatana[id])
        {
            set_msg_arg_string(4, "Katana knife")
        }
        else if(g_bHammer[id])
        {
            set_msg_arg_string(4, "Ice knife")
        }
        else if(g_bTurbulent9[id])
        {
            set_msg_arg_string(4, "Turbulent9 knife")
        }
        else if(g_bBio[id])
        {
            set_msg_arg_string(4, "Biohazard knife")
        }
        else if(g_bSabers[id])
        {
            set_msg_arg_string(4, "Sabers knife")
        }
        else if(g_bPlasma[id])
        {
            set_msg_arg_string(4, "Plasma knife")
        }
        else if(g_bStorm[id])
        {
            set_msg_arg_string(4, "Storm knife")
        }
        else if(g_bLaevateinn[id])
        {
            set_msg_arg_string(4, "Laevateinn knife")
        }
        else if(g_bWarHammer_Dark_Knight[id])
        {
            set_msg_arg_string(4, "WarHammer Dark Knight knife")
        }
        else if(g_bBalrog_Kosa[id])
        {
            set_msg_arg_string(4, "Balrog Kosa Knife")
        }
    }
}
 
stock fm_set_user_maxspeed(index, Float:speed = -1.0)
{
        engfunc(EngFunc_SetClientMaxspeed, index, speed);
        set_pev(index, pev_maxspeed, speed);
 
        return 1;
}  
 
public native_ze_open_knife_menu(id)
{
    Show_Knife_Menu(id)
}
Wow man someday ill be as good as you :D

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#36

Post by Raheem » 5 years ago

You will by learning & testing more :)
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#37

Post by Mark » 5 years ago

Raheem wrote: 5 years ago You will by learning & testing more :)
lol im trying to add back in
  1. public ze_game_started()
  2. {
  3.     g_bNoSpeed = true
  4. }
  5.  
  6. public ze_zombie_release()
  7. {
  8.     g_bNoSpeed = false
  9. }
where do i put it?
  1. public DelayLoad(id)
  2. {
  3.     new iWpnId = get_user_weapon(id)
  4.     if (iWpnId == CSW_KNIFE && g_bCompat[id])
  5.     {
  6.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  7.         {
  8.             new iFlags = get_entvar(id, var_flags);
  9.             new iWaterlvl = get_entvar(id, var_waterlevel)
  10.            
  11.             if (!(iFlags & FL_ONGROUND))
  12.                 return HC_CONTINUE
  13.  
  14.             if (iFlags & FL_WATERJUMP)
  15.                 return HAM_IGNORED
  16.  
  17.             if (iWaterlvl > 1)
  18.                 return HAM_IGNORED
  19.            
  20.             new Float:flVelocity[3]
  21.             get_entvar(id , var_velocity , flVelocity)
  22.  
  23.             flVelocity[2] += 325
  24.  
  25.             set_entvar(id , var_velocity , flVelocity)
  26.  
  27.             set_entvar(id, var_gaitsequence, 6)
  28.         }
  29.        
  30.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
  31.     }

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#38

Post by Raheem » 5 years ago

Here :D:

  1. public Fw_RestMaxSpeed_Post(id)
  2. {
  3.     if (g_bNoSpeed)
  4.         return
  5.    
  6.     set_task(0.1, "DelaySettingSpeed", id)
  7. }
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#39

Post by Mark » 5 years ago

Damit i was close lol i did this

  1. public DelayLoad(id)
  2. {
  3.     if(g_bNoSpeed)
  4.         return HAM_IGNORED
  5.    
  6.     new iWpnId = (get_user_weapon(id))
  7.     if (iWpnId == CSW_KNIFE && g_bCompat[id])
  8.     {
  9.         if ((get_entvar(id, var_button) & IN_JUMP) && !(get_entvar(id, var_oldbuttons) & IN_JUMP))
  10.         {
  11.             new iFlags = get_entvar(id, var_flags);
  12.             new iWaterlvl = get_entvar(id, var_waterlevel)
  13.            
  14.             if (!(iFlags & FL_ONGROUND))
  15.                 return HC_CONTINUE
  16.  
  17.             if (iFlags & FL_WATERJUMP)
  18.                 return HAM_IGNORED
  19.  
  20.             if (iWaterlvl > 1)
  21.                 return HAM_IGNORED
  22.            
  23.             new Float:flVelocity[3]
  24.             get_entvar(id , var_velocity , flVelocity)
  25.  
  26.             flVelocity[2] += 325
  27.  
  28.             set_entvar(id , var_velocity , flVelocity)
  29.  
  30.             set_entvar(id, var_gaitsequence, 6)
  31.         }
  32.        
  33.         set_entvar(id, var_maxspeed, get_pcvar_float(cvar_speed_compat))
  34.     }

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#40

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Here :D:

  1. public Fw_RestMaxSpeed_Post(id)
  2. {
  3.     if (g_bNoSpeed)
  4.         return
  5.    
  6.     set_task(0.1, "DelaySettingSpeed", id)
  7. }
So now if i buy the knife before freeze time ends i have to switch from knife to gun back to knife to get the speed lol

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: No registered users and 2 guests