HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #define CUSTOM_MODELS 0
  2. #define CUSTOM_SOUNDS 0
  3.  
  4. #if ( CUSTOM_MODELS )
  5. new MODEL_VIEW[] = "models/v_knife.mdl"
  6. new MODEL_PLAYER[] = "models/p_knife.mdl"
  7. #endif
  8.  
  9. new SOUND_SLASH1[] = "weapon/knife_slash1.wav"
  10. new SOUND_SLASH2[] = "weapon/knife_slash2.wav"
  11.  
  12. new SOUND_HIT1[] = "weapon/knife_hit1.wav"
  13. new SOUND_HIT2[] = "weapon/knife_hit2.wav"
  14. new SOUND_HIT3[] = "weapon/knife_hit3.wav"
  15. new SOUND_HIT4[] = "weapon/knife_hit4.wav"
  16. new SOUND_STAB[] = "weapon/knife_stab.wav"
  17.  
  18. new SOUND_DEPLOY[] = "weapon/knife_deploy1.wav"
  19. new SOUND_HITWALL[] = "weapon/knife_hitwall1.wav"
  20.  
  21. /* DO NOT EDIT BEYOND THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING */
  22.  
  23. #include <amxmodx>
  24. #include <fakemeta>
  25. #include <engine>
  26.  
  27. new PLUGIN_NAME[] = "AIO Knife Plugin"
  28. new PLUGIN_AUTHOR[] = "Cheap_Suit"
  29. new PLUGIN_VERSION[] = "1.4"
  30.  
  31. public plugin_init()
  32. {
  33. register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR )
  34.  
  35. register_cvar( "amx_knife_boost", "0.0" )
  36. register_cvar( "amx_knife_damage", "1.0" )
  37. register_cvar( "amx_knife_jump", "240.0" )
  38.  
  39. register_event( "CurWeapon", "Event_CurWeapon", "be", "1=1" )
  40. register_event( "Damage", "Event_Damage", "b", "2!0" )
  41.  
  42. #if (CUSTOM_SOUNDS)
  43. register_forward( FM_EmitSound, "fw_EmitSound" )
  44. #endif
  45. }
  46.  
  47. public plugin_precache()
  48. {
  49. #if ( CUSTOM_MODELS )
  50. precache_model( MODEL_VIEW )
  51. precache_model( MODEL_PLAYER )
  52. #endif
  53.  
  54. #if ( CUSTOM_SOUNDS )
  55. precache_sound( SOUND_SLASH1 )
  56. precache_sound( SOUND_SLASH2 )
  57. precache_sound( SOUND_HIT1 )
  58. precache_sound( SOUND_HIT2 )
  59. precache_sound( SOUND_HIT3 )
  60. precache_sound( SOUND_HIT4 )
  61. precache_sound( SOUND_DEPLOY )
  62. precache_sound( SOUND_HITWALL )
  63. #endif
  64. }
  65.  
  66. public Event_CurWeapon( id )
  67. {
  68. if ( !is_user_connected( id ) || !is_user_alive( id ) )
  69. return PLUGIN_CONTINUE
  70.  
  71. new WeaponID = read_data( 2 )
  72. if ( WeaponID != CSW_KNIFE )
  73. return PLUGIN_CONTINUE
  74.  
  75. new Float:addSpeed = get_cvar_float( "amx_knife_boost" )
  76. if ( addSpeed > 0.0 )
  77. entity_set_float(id, EV_FL_maxspeed, 240.0 + addSpeed )
  78.  
  79. #if ( CUSTOM_MODELS )
  80. entity_set_string( id, EV_SZ_viewmodel, MODEL_VIEW )
  81. entity_set_string( id, EV_SZ_weaponmodel, MODEL_PLAYER )
  82. #endif
  83.  
  84. return PLUGIN_CONTINUE;
  85. }
  86.  
  87. public Event_Damage( id )
  88. {
  89. new weapon, bodypart
  90. new attacker = get_user_attacker( id, weapon, bodypart )
  91.  
  92. if ( !is_user_alive( id ) || !is_user_alive( attacker ) )
  93. return PLUGIN_CONTINUE
  94.  
  95. if ( weapon != CSW_KNIFE )
  96. return PLUGIN_CONTINUE
  97.  
  98. new iHealth = get_user_health( id )
  99. new iDamage = floatround( float( read_data(2) ) * get_cvar_float( "amx_knife_damage" ) )
  100. if ( iHealth > iDamage )
  101. fakedamage( id, "weapon_knife", float( iDamage ), read_data( 3 ) )
  102. else
  103. {
  104. user_silentkill( id )
  105. make_deathmsg( attacker, id, 0, "knife" )
  106. }
  107. return PLUGIN_CONTINUE
  108. }
  109. public client_PreThink( id )
  110. {
  111. if ( !is_user_connected( id ) || !is_user_alive( id ) )
  112. return PLUGIN_CONTINUE
  113.  
  114. new temp[2], weapon = get_user_weapon( id, temp[0], temp[1] )
  115. if ( weapon != CSW_KNIFE )
  116. return PLUGIN_CONTINUE
  117.  
  118. if ( ( get_user_button( id ) & IN_JUMP ) && !( get_user_oldbutton( id ) & IN_JUMP ) )
  119. {
  120. new flags = entity_get_int( id, EV_INT_flags )
  121. new waterlvl = entity_get_int( id, EV_INT_waterlevel )
  122.  
  123. if ( !( flags & FL_ONGROUND ) )
  124. return PLUGIN_CONTINUE
  125. if ( flags & FL_WATERJUMP )
  126. return PLUGIN_CONTINUE
  127. if ( waterlvl > 1 )
  128. return PLUGIN_CONTINUE
  129.  
  130. new Float:fVelocity[3]
  131. entity_get_vector( id, EV_VEC_velocity, fVelocity )
  132. fVelocity[2] += get_cvar_float( "amx_knife_jump" )
  133.  
  134. entity_set_vector( id, EV_VEC_velocity, fVelocity )
  135. entity_set_int( id, EV_INT_gaitsequence, 6 )
  136. }
  137. return PLUGIN_CONTINUE;
  138. }
  139.  
  140. public fw_EmitSound( id, channel, sound[] )
  141. {
  142. if ( !is_user_connected( id ) || !is_user_alive( id ) )
  143. return FMRES_IGNORED
  144.  
  145. new temp[2], weapon = get_user_weapon( id, temp[0], temp[1] )
  146. if ( weapon != CSW_KNIFE )
  147. return FMRES_IGNORED
  148.  
  149. if ( equal ( sound, "weapons/knife_slash1.wav" ) )
  150. {
  151. emit_sound( id, CHAN_WEAPON, SOUND_SLASH1, 1.0, ATTN_NORM, 0, PITCH_NORM )
  152. return FMRES_SUPERCEDE
  153. }
  154.  
  155. if ( equal ( sound, "weapons/knife_slash2.wav" ) )
  156. {
  157. emit_sound( id, CHAN_WEAPON, SOUND_SLASH2, 1.0, ATTN_NORM, 0, PITCH_NORM )
  158. return FMRES_SUPERCEDE;
  159. }
  160.  
  161. if ( equal ( sound, "weapons/knife_deploy1.wav" ) )
  162. {
  163. emit_sound( id, CHAN_WEAPON, SOUND_DEPLOY, 1.0, ATTN_NORM, 0, PITCH_NORM )
  164. return FMRES_SUPERCEDE;
  165. }
  166.  
  167. if ( equal ( sound, "weapons/knife_hitwall1.wav" ) )
  168. {
  169. emit_sound( id, CHAN_WEAPON, SOUND_HITWALL, 1.0, ATTN_NORM, 0, PITCH_NORM )
  170. return FMRES_SUPERCEDE
  171. }
  172.  
  173. if ( equal ( sound, "weapons/knife_hit1.wav" ) )
  174. {
  175. emit_sound( id, CHAN_WEAPON, SOUND_HIT1, 1.0, ATTN_NORM, 0, PITCH_NORM )
  176. return FMRES_SUPERCEDE
  177. }
  178.  
  179. if ( equal ( sound, "weapons/knife_hit2.wav" ) )
  180. {
  181. emit_sound( id, CHAN_WEAPON, SOUND_HIT2, 1.0, ATTN_NORM, 0, PITCH_NORM )
  182. return FMRES_SUPERCEDE
  183. }
  184.  
  185. if ( equal ( sound, "weapons/knife_hit3.wav" ) )
  186. {
  187. emit_sound( id, CHAN_WEAPON, SOUND_HIT3, 1.0, ATTN_NORM, 0, PITCH_NORM )
  188. return FMRES_SUPERCEDE
  189. }
  190.  
  191. if ( equal ( sound, "weapons/knife_hit4.wav" ) )
  192. {
  193. emit_sound( id, CHAN_WEAPON, SOUND_HIT4, 1.0, ATTN_NORM, 0, PITCH_NORM )
  194. return FMRES_SUPERCEDE
  195. }
  196.  
  197. if ( equal ( sound, "weapons/knife_stab.wav" ) )
  198. {
  199. emit_sound( id, CHAN_WEAPON, SOUND_STAB, 1.0, ATTN_NORM, 0, PITCH_NORM )
  200. return FMRES_SUPERCEDE
  201. }
  202. return FMRES_IGNORED
  203. }
  204. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  205. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  206. */
  207.