MegastoRM

Untitled

Jan 10th, 2013
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <hamsandwich>
  6. #include <fakemeta>
  7.  
  8. new const NADE_TYPE_SPIKE= 7777
  9. new bool:imaspike[33] = false
  10.  
  11. public plugin_init() {
  12. register_plugin("","","")
  13. register_forward(FM_Touch, "fw_Touch2" )
  14. register_forward(FM_SetModel, "fw_SetModel")
  15.  
  16. register_clcmd("say /gren","give")
  17. // Add your code here...
  18. }
  19.  
  20. public give(id)
  21. {
  22. give_item(id, "weapon_smokegrenade")
  23. imaspike[ id ] = true
  24. }
  25.  
  26. public fw_Touch2(ent, id)
  27. {
  28. if(!pev_valid(ent))
  29. return FMRES_IGNORED
  30.  
  31. new class[32]
  32. pev(ent, pev_classname, class, charsmax(class))
  33.  
  34. if(!equal(class, "grenade"))
  35. return FMRES_IGNORED
  36.  
  37. new Float:entOrigin[3]
  38. pev(ent, pev_origin, entOrigin);
  39. entOrigin[2] += 1.0;
  40.  
  41. new attacker = pev(ent, pev_owner)
  42. if (get_user_team(attacker) != get_user_team(id))
  43. {
  44. new greModel[64]
  45. pev(ent, pev_model, greModel, 63)
  46.  
  47. if(equali(greModel, "models/w_smokegrenade.mdl" ) && imaspike[ attacker ] )
  48. {
  49. if(is_user_alive(id))
  50. ExecuteHam(Ham_TakeDamage, id, ent, attacker, 100.0 , 1)
  51. }
  52. engfunc(EngFunc_RemoveEntity ,ent);
  53. imaspike[ attacker ] = false
  54. }
  55. return FMRES_IGNORED
  56. }
  57.  
  58. public fw_SetModel(entity, const model[])
  59. {
  60. static Float:dmgtime
  61. pev(entity, pev_dmgtime, dmgtime)
  62. new owner = pev(entity, pev_owner)
  63.  
  64. if(!dmgtime || !(equal(model[7], "w_sm", 4)) || !imaspike[ owner ])
  65. return;
  66.  
  67. set_pev(entity, pev_flTimeStepSound, NADE_TYPE_SPIKE)
  68. }
  69.  
  70. public client_putinserver(id)
  71. imaspike[ id ] = false
  72.  
  73. stock give_item(index, const item[]) {
  74. if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
  75. return 0;
  76.  
  77. new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
  78. if (!pev_valid(ent))
  79. return 0;
  80.  
  81. new Float:origin[3];
  82. pev(index, pev_origin, origin);
  83. set_pev(ent, pev_origin, origin);
  84. set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
  85. dllfunc(DLLFunc_Spawn, ent);
  86.  
  87. new save = pev(ent, pev_solid);
  88. dllfunc(DLLFunc_Touch, ent, index);
  89. if (pev(ent, pev_solid) != save)
  90. return ent;
  91.  
  92. engfunc(EngFunc_RemoveEntity, ent);
  93.  
  94. return -1;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment