Alright I did it ;).
Here is my algorytm that blocks all the nades from exploding and forces them to detonate when you press e(+use)
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUGIN "Block Reaserch"
#define AUTHOR "OT"
#define VERSION "1"
new const g_sNadeModels[][] =
{
//"models/w_hegrenade.mdl",
"models/w_flashbang.mdl",
"models/w_smokegrenade.mdl"
};
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_SetModel,"fw_setmodel")
register_forward(FM_Think,"fw_think")
}
public fw_setmodel(ent,const model[])
{
if (!pev_valid(ent))
return FMRES_IGNORED;
new k = 0;
for(new i=0;i<1;i++)
{
if (equal(g_sNadeModels[i],model))
k=1
}
if (k==0)
return FMRES_IGNORED
new info_id = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString, "info_target"))
set_pev(info_id,pev_classname,"info_nade")
set_pev(info_id,pev_iuser1,ent)
set_pev(info_id,pev_owner,pev(ent,pev_owner))
set_pev(info_id,pev_nextthink,get_gametime() + 0.01)
set_pev(ent,pev_nextthink,get_gametime() + 4000)
return FMRES_IGNORED;
}
public fw_think(ent)
{
if (!pev_valid(ent))
return FMRES_IGNORED;
new classname[10]
pev(ent,pev_classname,classname,9)
if (!(equal(classname,"info_nade")))
return FMRES_IGNORED;
new owner = pev(ent,pev_owner)
new ent_id = pev(ent,pev_iuser1)
if (pev(owner,pev_button) & IN_USE && !(pev(owner,pev_oldbuttons) & IN_USE))
{
set_pev(ent_id,pev_nextthink,get_gametime()+0.001)
engfunc(EngFunc_RemoveEntity,ent)
return FMRES_IGNORED;
}
set_pev(ent,pev_nextthink,get_gametime() + 0.01)
return FMRES_IGNORED;
}
__________________