Code:
public monsters_touch(monster, target)
{
new array[32]
new owner = pev(monster, pev_owner)
pev(target, pev_classname, array, charsmax(array))
if(equal(array, "func_door") || equal(array, "func_door_rotating") || equal(array, "func_button"))
use_func(target, owner)
else if(equal(array, "func_pushable"))
velocity_func(monster, target, 1)
else if(equal(array, "player"))
{
if(!is_user_alive(target)) return
new skip
pev(monster, pev_model, array, charsmax(array))
if(equal(array, "models/w_grenade.mdl")) set_pev(monster, pev_solid, SOLID_NOT)
else if(equal(array, "models/w_squeak.mdl")) skip = 1
else if(equal(array, "models/w_satchel.mdl")) skip = 0
else return // HLW_MP5(grenade) has NO model "o_O"
if(get_pcvar_num(drop))
console_cmd(target, "drop")
velocity_func(monster, target, 2)
if(!skip)
hurt_func(owner, target, get_pcvar_num(pain), monster)
}
}