Reconnoiter, from what I remember, I think you need braces in C-Script (one-liners didn't work), but I may be wrong...
DAVIDMORETON, I guess you assigned the action in WED, right?
Try doing it the dynamic way, in your main function:
player = ent_create("player.mdl",vector(0,0,32),template_function);
This is in case the templates don't assign the player pointer to the actual player... This way you assign it explicitly when you're creating the entity.
PS.: I hope you understand enough to substitute the values in my example, eg. the position from WED and the function/action from the template scripts.
Oh, and I think "error" isn't available in the old C-Script. Use beep();