Advertisement
Guest User

Untitled

a guest
Dec 27th, 2014
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.42 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fun>
  3. #include <fakemeta>
  4. #include <engine>
  5. #include <hamsandwich>
  6. #include <orpheu>
  7.  
  8. #define PLUGIN "Hallelujah Nade"
  9. #define VERSION "1.0"
  10. #define AUTHOR "Flicker"
  11.  
  12. new const CSW_HALLELUJAH = CSW_SMOKEGRENADE
  13. new const g_szClassName[] = "hallelujahbomb"
  14. new const IUSER = 231
  15.  
  16. new bool:g_bHasBomb[33]
  17.  
  18. new const VMODEL[] = "models/v_hallelujah_bomb.mdl"
  19. new const WMODEL[] = "models/w_hallelujah_bomb.mdl"
  20. new const SOUND[] = "misc/hallelujah.wav"
  21.  
  22. public plugin_init()
  23. {
  24.     register_plugin(PLUGIN, VERSION, AUTHOR)
  25.    
  26.     new OrpheuFunction:HandleSGDetonateFunc
  27.     HandleSGDetonateFunc = OrpheuGetFunction("SG_Detonate", "CGrenade")
  28.     OrpheuRegisterHook(HandleSGDetonateFunc, "OnSGDetonate", OrpheuHookPre)
  29.     OrpheuRegisterHook(HandleSGDetonateFunc, "OnSGDetonatePost", OrpheuHookPost)
  30.    
  31.     register_event("CurWeapon", "onCurWeaponEvent", "be", "1=1")
  32.    
  33.     register_clcmd("say /hal", "give_hallelujah")
  34. }
  35.  
  36. public give_hallelujah(id)
  37. {
  38.     g_bHasBomb[id] = true
  39.     new szClassName[32]
  40.     get_weaponname(CSW_HALLELUJAH, szClassName, charsmax(szClassName))
  41.     give_item(id, szClassName)
  42.    
  43.     if(get_user_weapon(id) == CSW_HALLELUJAH)
  44.         set_pev(id, pev_viewmodel2, VMODEL)
  45. }
  46.  
  47. public plugin_precache()
  48. {
  49.     precache_model(VMODEL)
  50.     precache_model(WMODEL)
  51.     precache_sound(SOUND)
  52. }
  53.  
  54. public grenade_throw(id, ent, nade)
  55.     if(nade == CSW_HALLELUJAH && g_bHasBomb[id])
  56.         entity_set_model(ent, WMODEL)
  57.  
  58. public onCurWeaponEvent(id)
  59.     if(read_data(2) == CSW_HALLELUJAH && g_bHasBomb[id])
  60.         set_pev(id, pev_viewmodel2, VMODEL)
  61.  
  62. public OrpheuHookReturn:OnSGDetonate(ent)
  63. {
  64.     new id = pev(ent,pev_owner)
  65.    
  66.     if(!g_bHasBomb[id] || pev(ent, pev_iuser3) == IUSER)
  67.         return OrpheuIgnored
  68.    
  69.     new Float:dmgtime
  70.     pev(ent, pev_dmgtime, dmgtime)
  71.     client_print(id, print_chat, "dmgtime - %f", dmgtime)
  72.     set_pev(ent, pev_dmgtime, dmgtime + 8.0)
  73.     ExecuteHam(Ham_Think, ent)
  74.    
  75.     entity_set_model(ent, WMODEL)
  76.     entity_set_string(ent, EV_SZ_classname, g_szClassName)
  77.     emit_sound(ent, CHAN_AUTO, SOUND, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_HIGH)
  78.    
  79.     set_pev(ent, pev_iuser3, IUSER)
  80.    
  81.     return OrpheuSupercede
  82. }  
  83.  
  84. public OrpheuHookReturn:OnSGDetonatePost(ent)
  85. {
  86.     if(pev(ent, pev_iuser3) != IUSER)
  87.         return OrpheuIgnored
  88.        
  89.     new id = pev(ent, pev_owner)
  90.     new Float:dmgtime
  91.     pev(ent, pev_dmgtime, dmgtime)
  92.     client_print(id, print_chat, "EXPLODE! dmgtime - %f", dmgtime)
  93.    
  94.     //remove_entity(ent)
  95.    
  96.     return OrpheuIgnored
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement