HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta_util>
  3. #include <hamsandwich>
  4.  
  5. #define PLUGIN "Weaponbox Models for HLDM"
  6. #define VERSION "0.4"
  7. #define AUTHOR "KORD_12.7"
  8.  
  9. #define IsPlayer(%1) (1 <= %1 <= g_MaxPlayers)
  10.  
  11. #define HLW_DISPLACER 20
  12. #define HLW_KNIFE 25
  13.  
  14. new
  15. g_CvarEnable,
  16. g_CvarRendEnable,
  17. g_CvarRendColor,
  18. g_CvarRendMode,
  19. g_MaxPlayers,
  20. g_XV11382,
  21. g_RGB[3]
  22.  
  23. new const g_wpn_models[][] =
  24. {
  25. "models/w_weaponbox.mdl",
  26. "models/w_crowbar.mdl",
  27. "models/w_9mmhandgun.mdl",
  28. "models/w_357.mdl",
  29. "models/w_9mmAR.mdl",
  30. "models/w_weaponbox.mdl",
  31. "models/w_crossbow.mdl",
  32. "models/w_shotgun.mdl",
  33. "models/w_rpg.mdl",
  34. "models/w_gauss.mdl",
  35. "models/w_egon.mdl",
  36. "models/w_hgun.mdl",
  37. "models/w_grenade.mdl",
  38. "models/v_tripmine.mdl",
  39. "models/w_satchel.mdl",
  40. "models/w_sqknest.mdl",
  41. "models/w_bgrap.mdl",
  42. "models/w_desert_eagle.mdl",
  43. "models/w_pipe_wrench.mdl",
  44. "models/w_saw.mdl",
  45. "models/w_displacer.mdl",
  46. "models/w_weaponbox.mdl",
  47. "models/w_shock_rifle.mdl",
  48. "models/w_spore_launcher.mdl",
  49. "models/w_m40a1.mdl",
  50. "models/w_knife.mdl"
  51. }
  52.  
  53. public plugin_init()
  54. {
  55. register_plugin(PLUGIN, VERSION, AUTHOR)
  56. register_cvar("wpnbox_version", VERSION, FCVAR_SPONLY | FCVAR_SERVER | FCVAR_UNLOGGED)
  57.  
  58. RegisterHam(Ham_Spawn, "weaponbox", "fw_WpnboxSpawnPost", 1)
  59.  
  60. g_CvarEnable = register_cvar("wpnbox_models", "1")
  61. g_CvarRendEnable = register_cvar("wpnbox_render", "1")
  62. g_CvarRendColor = register_cvar("wpnbox_render_color", "random")
  63.  
  64. g_MaxPlayers = get_maxplayers()
  65. }
  66.  
  67. public plugin_cfg()
  68. {
  69. new color[32]
  70. get_pcvar_string(g_CvarRendColor, color, charsmax(color))
  71. trim(color)
  72.  
  73. if (equali(color, "random"))
  74. g_CvarRendMode = 0
  75. else
  76. {
  77. new r[4], g[4], b[4]
  78. parse(color, r, charsmax(r), g, charsmax(g), b, charsmax(b))
  79.  
  80. g_RGB[0] = str_to_num(r)
  81. g_RGB[1] = str_to_num(g)
  82. g_RGB[2] = str_to_num(b)
  83.  
  84. g_CvarRendMode = 1
  85. }
  86.  
  87. if (get_cvar_pointer("displacer_version"))
  88. g_XV11382 = 1
  89. }
  90.  
  91. public fw_WpnboxSpawnPost(ent)
  92. {
  93. if (get_pcvar_num(g_CvarEnable) && pev_valid(ent))
  94. {
  95. new id = pev(ent, pev_owner)
  96.  
  97. if (IsPlayer(id))
  98. {
  99. new wpn_id = get_user_weapon(id)
  100.  
  101. if (g_XV11382 && wpn_id == HLW_EGON)
  102. wpn_id = HLW_DISPLACER
  103.  
  104. if (HLW_CROWBAR <= wpn_id <= HLW_KNIFE)
  105. {
  106. engfunc(EngFunc_SetModel, ent, g_wpn_models[wpn_id])
  107.  
  108. if (wpn_id == HLW_TRIPMINE)
  109. {
  110. set_pev(ent, pev_body, 3)
  111. set_pev(ent, pev_sequence, 8)
  112. }
  113.  
  114. if (get_pcvar_num(g_CvarRendEnable))
  115. {
  116. switch(g_CvarRendMode)
  117. {
  118. case 1: fm_set_rendering(ent, kRenderFxGlowShell, g_RGB[0], g_RGB[1], g_RGB[2], kRenderNormal, 16)
  119. case 0: fm_set_rendering(ent, kRenderFxGlowShell, random_num(1, 255), random_num(1, 255), random_num(1, 255), kRenderNormal, 16)
  120. }
  121. }
  122. }
  123. }
  124. }
  125.  
  126. return HAM_IGNORED
  127. }
  128.