Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugin generated by AMXX-Studio */
- #include <amxmodx>
- #include <amxmisc>
- #include <hamsandwich>
- #include <fakemeta>
- new const NADE_TYPE_SPIKE= 7777
- new bool:imaspike[33] = false
- public plugin_init() {
- register_plugin("","","")
- register_forward(FM_Touch, "fw_Touch2" )
- register_forward(FM_SetModel, "fw_SetModel")
- register_clcmd("say /gren","give")
- // Add your code here...
- }
- public give(id)
- {
- give_item(id, "weapon_smokegrenade")
- imaspike[ id ] = true
- }
- public fw_Touch2(ent, id)
- {
- if(!pev_valid(ent))
- return FMRES_IGNORED
- new class[32]
- pev(ent, pev_classname, class, charsmax(class))
- if(!equal(class, "grenade"))
- return FMRES_IGNORED
- new Float:entOrigin[3]
- pev(ent, pev_origin, entOrigin);
- entOrigin[2] += 1.0;
- new attacker = pev(ent, pev_owner)
- if (get_user_team(attacker) != get_user_team(id))
- {
- new greModel[64]
- pev(ent, pev_model, greModel, 63)
- if(equali(greModel, "models/w_smokegrenade.mdl" ) && imaspike[ attacker ] )
- {
- if(is_user_alive(id))
- ExecuteHam(Ham_TakeDamage, id, ent, attacker, 100.0 , 1)
- }
- engfunc(EngFunc_RemoveEntity ,ent);
- imaspike[ attacker ] = false
- }
- return FMRES_IGNORED
- }
- public fw_SetModel(entity, const model[])
- {
- static Float:dmgtime
- pev(entity, pev_dmgtime, dmgtime)
- new owner = pev(entity, pev_owner)
- if(!dmgtime || !(equal(model[7], "w_sm", 4)) || !imaspike[ owner ])
- return;
- set_pev(entity, pev_flTimeStepSound, NADE_TYPE_SPIKE)
- }
- public client_putinserver(id)
- imaspike[ id ] = false
- stock give_item(index, const item[]) {
- if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
- return 0;
- new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
- if (!pev_valid(ent))
- return 0;
- new Float:origin[3];
- pev(index, pev_origin, origin);
- set_pev(ent, pev_origin, origin);
- set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
- dllfunc(DLLFunc_Spawn, ent);
- new save = pev(ent, pev_solid);
- dllfunc(DLLFunc_Touch, ent, index);
- if (pev(ent, pev_solid) != save)
- return ent;
- engfunc(EngFunc_RemoveEntity, ent);
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment