Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <fun>
- #include <fakemeta>
- #include <engine>
- #include <hamsandwich>
- #include <orpheu>
- #define PLUGIN "Hallelujah Nade"
- #define VERSION "1.0"
- #define AUTHOR "Flicker"
- new const CSW_HALLELUJAH = CSW_SMOKEGRENADE
- new const g_szClassName[] = "hallelujahbomb"
- new const IUSER = 231
- new bool:g_bHasBomb[33]
- new const VMODEL[] = "models/v_hallelujah_bomb.mdl"
- new const WMODEL[] = "models/w_hallelujah_bomb.mdl"
- new const SOUND[] = "misc/hallelujah.wav"
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- new OrpheuFunction:HandleSGDetonateFunc
- HandleSGDetonateFunc = OrpheuGetFunction("SG_Detonate", "CGrenade")
- OrpheuRegisterHook(HandleSGDetonateFunc, "OnSGDetonate", OrpheuHookPre)
- OrpheuRegisterHook(HandleSGDetonateFunc, "OnSGDetonatePost", OrpheuHookPost)
- register_event("CurWeapon", "onCurWeaponEvent", "be", "1=1")
- register_clcmd("say /hal", "give_hallelujah")
- }
- public give_hallelujah(id)
- {
- g_bHasBomb[id] = true
- new szClassName[32]
- get_weaponname(CSW_HALLELUJAH, szClassName, charsmax(szClassName))
- give_item(id, szClassName)
- if(get_user_weapon(id) == CSW_HALLELUJAH)
- set_pev(id, pev_viewmodel2, VMODEL)
- }
- public plugin_precache()
- {
- precache_model(VMODEL)
- precache_model(WMODEL)
- precache_sound(SOUND)
- }
- public grenade_throw(id, ent, nade)
- if(nade == CSW_HALLELUJAH && g_bHasBomb[id])
- entity_set_model(ent, WMODEL)
- public onCurWeaponEvent(id)
- if(read_data(2) == CSW_HALLELUJAH && g_bHasBomb[id])
- set_pev(id, pev_viewmodel2, VMODEL)
- public OrpheuHookReturn:OnSGDetonate(ent)
- {
- new id = pev(ent,pev_owner)
- if(!g_bHasBomb[id] || pev(ent, pev_iuser3) == IUSER)
- return OrpheuIgnored
- new Float:dmgtime
- pev(ent, pev_dmgtime, dmgtime)
- client_print(id, print_chat, "dmgtime - %f", dmgtime)
- set_pev(ent, pev_dmgtime, dmgtime + 8.0)
- ExecuteHam(Ham_Think, ent)
- entity_set_model(ent, WMODEL)
- entity_set_string(ent, EV_SZ_classname, g_szClassName)
- emit_sound(ent, CHAN_AUTO, SOUND, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_HIGH)
- set_pev(ent, pev_iuser3, IUSER)
- return OrpheuSupercede
- }
- public OrpheuHookReturn:OnSGDetonatePost(ent)
- {
- if(pev(ent, pev_iuser3) != IUSER)
- return OrpheuIgnored
- new id = pev(ent, pev_owner)
- new Float:dmgtime
- pev(ent, pev_dmgtime, dmgtime)
- client_print(id, print_chat, "EXPLODE! dmgtime - %f", dmgtime)
- //remove_entity(ent)
- return OrpheuIgnored
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement