@Blink: Maybe, you can use a map entity as shield, and then add something like
if(IN_SOLID){ent_remove(me);}
or
if(EVENT == EVENT_BOUNCE){ent_remove(me);}
right in the beginning of the function. You have to look into the manual of your version of A6 for the proper terms, because I don't remember them right now.