@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.