HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <zombieplague>
  5.  
  6. #define PLUGIN "[ZP] Class : Noclip Zombie"
  7. #define VERSION "1.2.4"
  8. #define AUTHOR "The_Thing aka Fry"
  9.  
  10. //#define FOR_ADMINS
  11.  
  12. #if defined FOR_ADMINS
  13. #define ADMINACCESS ADMIN_LEVEL_A
  14. #endif
  15.  
  16. new const zclass10_name[] = { "Noclip Zombi" }
  17. new const zclass10_info[] = { "At megy a falakon" }
  18. new const zclass10_model[] = { "zombie_source" }
  19. new const zclass10_clawmodel[] = { "v_knife_zombie.mdl" }
  20. const zclass10_health = 500
  21. const zclass10_speed = 270
  22. const Float:zclass10_gravity = 1.0
  23. const Float:zclass10_knockback = 1.50
  24.  
  25. new g_zclass10_noclip, g_zclass_noclip_cooldown, g_zclass_noclip_long
  26. new Float:g_zclass_noclip_time[33]
  27. new bool:g_hasNoclip[33]
  28.  
  29. public plugin_init()
  30. {
  31. register_plugin(PLUGIN, VERSION, AUTHOR)
  32.  
  33. register_cvar("zp_zclass_noclip_zombie",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
  34.  
  35. register_concmd("+noclip","cmd_noclip", ADMIN_USER, "bind [key] +noclip")
  36. register_clcmd("-noclip","cmd_off")
  37.  
  38. g_zclass_noclip_cooldown = register_cvar("zp_noclip_cooldown", "10.0")
  39. g_zclass_noclip_long = register_cvar("zp_noclip_long", "15.0")
  40.  
  41. }
  42.  
  43. public plugin_precache()
  44. {
  45. g_zclass10_noclip = zp_register_zombie_class(zclass10_name, zclass10_info, zclass10_model, zclass10_clawmodel, zclass10_health, zclass10_speed, zclass10_gravity, zclass10_knockback)
  46. }
  47.  
  48. public zp_user_infected_post(player, infector)
  49. {
  50. if (zp_get_user_zombie_class(player) == g_zclass10_noclip)
  51. {
  52. g_hasNoclip[player] = true
  53. client_print(player, print_chat, "[ZP] Te a Noclip zombit hasznalod (bind [key] +noclip)")
  54.  
  55. g_zclass_noclip_time[player] = get_gametime()
  56. }
  57. }
  58.  
  59. public cmd_noclip(id)
  60. {
  61. if (!is_user_alive(id) || !zp_get_user_zombie(id))
  62. return PLUGIN_HANDLED
  63.  
  64. if (zp_get_user_zombie_class(id) != g_zclass10_noclip)
  65. return PLUGIN_CONTINUE
  66.  
  67. #if defined FOR_ADMINS
  68. if( !( get_user_flags(id) & ADMINACCESS) )
  69. {
  70. client_print(id, print_chat, "[ZP] Sajnalom, A Noclip Zombi csak Adminoknak engedelyezett.")
  71. return PLUGIN_CONTINUE
  72. }
  73. #endif
  74.  
  75. fm_set_user_noclip(id, 1)
  76.  
  77. g_zclass_noclip_time[id] = get_gametime()
  78.  
  79. if (get_gametime() - g_zclass_noclip_time[id] < get_pcvar_float(g_zclass_noclip_cooldown))
  80. return PLUGIN_HANDLED
  81.  
  82. return PLUGIN_CONTINUE
  83. }
  84.  
  85. public cmd_off(id)
  86. {
  87. if (!is_user_alive(id) || !zp_get_user_zombie(id))
  88. return PLUGIN_HANDLED
  89.  
  90. if (zp_get_user_zombie_class(id) != g_zclass10_noclip)
  91. return PLUGIN_CONTINUE
  92.  
  93. #if defined FOR_ADMINS
  94. if( !( get_user_flags(id) & ADMINACCESS) )
  95. {
  96. client_print(id, print_chat, "[ZP] Sajnalom, A Noclip Zombi csak Adminoknak engedelyezett.")
  97. return PLUGIN_CONTINUE
  98. }
  99. #endif
  100.  
  101. fm_set_user_noclip(id, 0)
  102. set_task(get_pcvar_float(g_zclass_noclip_long), "cmd_off", id)
  103.  
  104. if (get_gametime() - g_zclass_noclip_time[id] < get_pcvar_float(g_zclass_noclip_cooldown))
  105. return PLUGIN_HANDLED
  106.  
  107. return PLUGIN_CONTINUE
  108. }
  109.  
  110. stock fm_set_user_noclip(index, noclip = 0)
  111. {
  112. set_pev(index, pev_movetype, noclip == 1 ? MOVETYPE_NOCLIP : MOVETYPE_WALK);
  113.  
  114. return 1;
  115. }
  116. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  117. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  118. */
  119.