HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include amxmodx
  4. #include amxmisc
  5. #include zombieplague
  6. #include fakemeta
  7. #include hamsandwich
  8.  
  9. #define PLUGIN "[ZP]Tomahawk"
  10. #define VERSION "0.1"
  11. #define AUTHOR "Barney/Rayman"
  12.  
  13. new const tomahawk_model[][] = {"models/v_tomahawk.mdl","models/p_tomahawk.mdl"}
  14.  
  15. new const knife_sounds[][] =
  16. {
  17. "weapons/tomahawk_draw.wav",
  18. "weapons/tomahawk_slash1_hit.wav",
  19. "weapons/tomahawk_slash2_hit.wav",
  20. "weapons/tomahawk_stab_hit.wav",
  21. "weapons/tomahawk_stab_hit.wav",
  22. "weapons/tomahawk_wall.wav",
  23. "weapons/tomahawk_slash1.wav",
  24. "weapons/tomahawk_slash2.wav",
  25. "weapons/tomahawk_stab_miss.wav"
  26. }
  27.  
  28. new const oldknife_sounds[][] =
  29. {
  30. "weapons/knife_deploy1.wav",
  31. "weapons/knife_hit1.wav",
  32. "weapons/knife_hit2.wav",
  33. "weapons/knife_hit3.wav",
  34. "weapons/knife_hit4.wav",
  35. "weapons/knife_hitwall1.wav",
  36. "weapons/knife_slash1.wav",
  37. "weapons/knife_slash2.wav",
  38. "weapons/knife_stab.wav"
  39. }
  40.  
  41.  
  42. new g_knife,bool:g_tomahawk[33]
  43.  
  44. public plugin_init() {
  45. register_plugin(PLUGIN, VERSION, AUTHOR)
  46. g_knife = zp_register_extra_item("Tomahawk knife",10,ZP_TEAM_HUMAN)
  47. register_event("CurWeapon","ev_curweapon","be","1=1")
  48. register_forward(FM_EmitSound, "fw_EmitSound")
  49. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  50. RegisterHam(Ham_Spawn,"player","spawn_post",1)
  51.  
  52. }
  53.  
  54. public plugin_precache(){
  55. for(new i = 0; i < sizeof tomahawk_model; i++)
  56. precache_model(tomahawk_model[i])
  57. for(new i = 0; i < sizeof knife_sounds; i++)
  58. precache_sound(knife_sounds[i])
  59. }
  60.  
  61. public fw_EmitSound(id, channel, const sound[])
  62. {
  63. if(is_user_alive(id) && is_user_connected(id) && g_tomahawk[id]){
  64. for(new i = 0; i < sizeof knife_sounds; i++)
  65. {
  66. if(equal(sound, oldknife_sounds[i]))
  67. {
  68. emit_sound(id, channel, knife_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
  69. return FMRES_SUPERCEDE
  70. }
  71. }
  72. }
  73.  
  74. return FMRES_IGNORED
  75. }
  76.  
  77. public zp_extra_item_selected(chelovek,itemid){
  78. if(itemid == g_knife){
  79. if(get_user_weapon(chelovek) == CSW_KNIFE){
  80. set_pev(chelovek,pev_viewmodel2,tomahawk_model[0])
  81. set_pev(chelovek,pev_weaponmodel2,tomahawk_model[1])
  82. }
  83. g_tomahawk[chelovek]=true
  84. }
  85. }
  86. public ev_curweapon(chelovek){
  87. if(read_data(2) == CSW_KNIFE && g_tomahawk[chelovek]){
  88. if(is_user_alive(chelovek) && !zp_get_user_zombie(chelovek) && !zp_get_user_nemesis(chelovek) && !zp_get_user_survivor(chelovek)){
  89. set_pev(chelovek,pev_viewmodel2,tomahawk_model[0])
  90. set_pev(chelovek,pev_weaponmodel2,tomahawk_model[1])
  91. }
  92. }
  93. }
  94.  
  95. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  96. {
  97. if (victim != attacker && is_user_connected(attacker))
  98. {
  99. if(get_user_weapon(attacker) == CSW_KNIFE)
  100. {
  101. if(g_tomahawk[attacker])
  102. SetHamParamFloat(4, damage * 4.0)
  103. }
  104. }
  105. }
  106.  
  107. public spawn_post(chelovek){
  108. g_tomahawk[chelovek] = false
  109. }
  110.