Check first if ent is a valid entity or you'll get some errors.
I also guess that the function has to be public, and that you should return FMRES_IGNORED, not FMRES_HANDLED, but i may be wrong on this last point.
Code:
public Forward_Touch(Ent, id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED;
if(!pev_valid(Ent)) {
return FMRES_IGNORED;
}
static classname[32];
pev(Ent, pev_classname, classname, sizeof classname - 1);
for(new i = 0 ; i < sizeof g_EntClass ; i++)
{
if(equali(classname, g_EntClass[i]) && get_user_team(id) == 1)
{
return FMRES_SUPERCEDE;
}
}
return return FMRES_IGNORED;
}
You also may avoid using the native get_user_team checking player team offset.