HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <fakemeta>
  4. #include <hamsandwich>
  5.  
  6. new Trie:g_owners
  7.  
  8. new items[][] = {
  9. "ammo_357",
  10. "ammo_9mmAR",
  11. "ammo_9mmbox",
  12. "ammo_9mmclip",
  13. "ammo_ARgrenades",
  14. "ammo_buckshot",
  15. "ammo_crossbow",
  16. "ammo_gaussclip",
  17. "ammo_glockclip",
  18. "ammo_mp5clip",
  19. "ammo_mp5grenades",
  20. "ammo_rpgclip",
  21. "item_battery",
  22. "item_healthkit",
  23. "item_longjump"
  24. }
  25.  
  26. new wps[][] = {
  27. "weapon_hornetgun",
  28. "weapon_python",
  29. "weapon_357",
  30. "weapon_crossbow",
  31. "weapon_snark",
  32. "weapon_tripmine",
  33. "weapon_satchel",
  34. "weapon_handgrenade",
  35. "weapon_9mmAR",
  36. "weapon_gauss",
  37. "weapon_mp5",
  38. "weapon_rpg",
  39. "weapon_egon",
  40. "weapon_shotgun"
  41. }
  42.  
  43. new render_type,render_fx,render_amt,render_color
  44.  
  45. public plugin_init() {
  46. register_plugin("Weapon Spawn Effects","0.1","[LF] | Dr.Freeman")
  47.  
  48. for(new i;i<sizeof items;++i){
  49. RegisterHam(Ham_Respawn,items[i],"fw_Respawn",1)
  50. RegisterHam(Ham_Think,items[i],"fw_Think",1)
  51. }
  52.  
  53. for(new i;i<sizeof wps;++i){
  54. register_touch(wps[i],"worldspawn","fw_Respawn")
  55. RegisterHam(Ham_Think,wps[i],"fw_Think",1)
  56. }
  57.  
  58. render_type = register_cvar("ws_render","1")
  59. render_fx = register_cvar("ws_renderfx","19")
  60. render_amt = register_cvar("ws_renderamt","6.0")
  61. render_color = register_cvar("ws_rendercolor","random")
  62.  
  63. g_owners = TrieCreate()
  64. }
  65.  
  66. public fw_Respawn(ent){
  67. new classname[32],Float:origin[3],Float:angles[3]
  68.  
  69. pev(ent,pev_classname,classname,31)
  70. pev(ent,pev_origin,origin)
  71. pev(ent,pev_angles,angles)
  72.  
  73. new ghost = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,classname))
  74.  
  75. if(!pev_valid(ghost))
  76. return
  77.  
  78. new dnum[5],Float:rnd[3]
  79. num_to_str(ent,dnum,4)
  80. TrieSetCell(g_owners,dnum,ghost)
  81.  
  82. get_rendercolor(rnd)
  83.  
  84. set_pev(ghost,pev_renderfx,get_pcvar_num(render_fx))
  85. set_pev(ghost,pev_rendercolor,rnd)
  86. set_pev(ghost,pev_rendermode,get_pcvar_num(render_type))
  87. set_pev(ghost,pev_renderamt,get_pcvar_float(render_amt))
  88.  
  89. dllfunc(DLLFunc_Spawn,ghost)
  90.  
  91. set_pev(ghost,pev_movetype,MOVETYPE_FLY)
  92. set_pev(ghost,pev_nextthink,0.0)
  93. set_pev(ghost,pev_solid,SOLID_NOT)
  94.  
  95. set_pev(ghost,pev_nextthink,0.0)
  96. set_pev(ghost,pev_origin,origin)
  97. set_pev(ghost,pev_angles,angles)
  98. }
  99.  
  100. public fw_Think(ent){
  101. new dnum[5],ghost
  102. num_to_str(ent,dnum,4)
  103.  
  104. TrieGetCell(g_owners,dnum,ghost)
  105.  
  106. if(ghost){
  107. TrieDeleteKey(g_owners,dnum)
  108. engfunc(EngFunc_RemoveEntity,ghost)
  109. }
  110. }
  111.  
  112. get_rendercolor(Float:rnd[3]){
  113. new temp[36],s[3][6]
  114. get_pcvar_string(render_color,temp,35)
  115.  
  116. if(equal(temp,"random")){
  117. rnd[0] = float(random_num(10,255))
  118. rnd[1] = float(random_num(10,255))
  119. rnd[2] = float(random_num(10,255))
  120. }else{
  121. parse(temp,s[0],5,s[1],5,s[2],5)
  122. rnd[0] = str_to_float(s[0])
  123. rnd[1] = str_to_float(s[1])
  124. rnd[2] = str_to_float(s[2])
  125. }
  126. }
  127.