HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* AMX Mod X
  2. * Longjump Player Model for HLDM
  3. *
  4. * (c) Copyright 2010 by KORD_12.7
  5. *
  6. * This file is provided as is (no warranties)
  7. */
  8. //--------------------------------------------------------------------------------------------------
  9. #include <amxmodx>
  10. #include <fakemeta>
  11. #include <fakemeta_util>
  12.  
  13. #define PLUGIN "Longjump Player Model"
  14. #define VERSION "0.1"
  15. #define AUTHOR "KORD_12.7"
  16.  
  17. #define MAX_CLIENTS 32
  18. //--------------------------------------------------------------------------------------------------
  19. new
  20. const g_lj_model[] = "models/p_longjump.mdl"
  21.  
  22. new
  23. g_ClientLJ[MAX_CLIENTS + 1],
  24. g_CvarEnable,
  25. g_MaxPlayers
  26. //--------------------------------------------------------------------------------------------------
  27. public plugin_init()
  28. {
  29. register_plugin(PLUGIN, VERSION, AUTHOR)
  30. register_cvar("ljpm_version", VERSION, FCVAR_SERVER)
  31.  
  32. register_event("DeathMsg", "fw_Killed", "a")
  33. register_event("ItemPickup", "fw_Longjump_AddToPlayer", "b", "1&item_longjump")
  34.  
  35. g_CvarEnable = register_cvar("p_longjump", "1")
  36. g_MaxPlayers = get_maxplayers()
  37.  
  38. engfunc(EngFunc_PrecacheModel, g_lj_model)
  39. }
  40. //--------------------------------------------------------------------------------------------------
  41. public client_disconnect(id)
  42. {
  43. if(!get_pcvar_num(g_CvarEnable))
  44. return PLUGIN_CONTINUE
  45.  
  46. if(fm_get_user_longjump(id))
  47. {
  48. if(pev_valid(g_ClientLJ[id]))
  49. engfunc(EngFunc_RemoveEntity, g_ClientLJ[id])
  50. }
  51.  
  52. return PLUGIN_CONTINUE
  53. }
  54. //--------------------------------------------------------------------------------------------------
  55. public fw_Killed()
  56. {
  57. if(!get_pcvar_num(g_CvarEnable))
  58. return PLUGIN_CONTINUE
  59.  
  60. static victim; victim = read_data(2)
  61.  
  62. if(1 <= victim <= g_MaxPlayers && fm_get_user_longjump(victim))
  63. {
  64. if(pev_valid(g_ClientLJ[victim]))
  65. engfunc(EngFunc_RemoveEntity, g_ClientLJ[victim])
  66. }
  67.  
  68. return PLUGIN_CONTINUE
  69. }
  70. //--------------------------------------------------------------------------------------------------
  71. public fw_Longjump_AddToPlayer(id)
  72. {
  73. if(!get_pcvar_num(g_CvarEnable))
  74. return PLUGIN_CONTINUE
  75.  
  76. g_ClientLJ[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
  77.  
  78. set_pev(g_ClientLJ[id], pev_movetype, MOVETYPE_FOLLOW)
  79. set_pev(g_ClientLJ[id], pev_aiment, id)
  80. set_pev(g_ClientLJ[id], pev_rendermode, kRenderNormal)
  81. set_pev(g_ClientLJ[id], pev_renderamt, 0.0)
  82. engfunc(EngFunc_SetModel, g_ClientLJ[id], g_lj_model)
  83.  
  84. return PLUGIN_CONTINUE
  85. }
  86. //--------------------------------------------------------------------------------------------------
  87.