I fear your system won't work without the use of shaders, even then it won't be easy. I suggest you simply use blop shadows, simple blurred round or cornered sprites.
my_shadow obviously is just a pointer for the shadow entity, I thought you would understand that without in detail explanation:
ENTITY* my_shadow = ent_create("toon_shadow.mdl",my.x,NULL);
my_shadow passable + unlit (forgot how to write it in C-Script)
...
the code from above