Quote:
if(key_q==1)
{
ent_morph (me, char2);
ent_morph (you,char1);
}
Because of that
you placed wrong.
When you do it like that you check if(key_q==1) when the player was created but no more during the game.
insert it in your while(1) loop or use
Code:
function fMorpg_ent //morph
{
ent_morph (me, char2);
ent_morph (you,char1);
}
on_q = fMorph_ent;
Im just wondering that you dont get more errors
You use player2=you; ..... often but is you not an empty pointer? Dont know what you scripted else IMO you should get a few errors "empty pointer you".
Tell me if im wrong 
nipx