This lacks some of the functionality you desire, such as the spam protection and list of online GM's, but you can probably tinker with it to add those features yourself. This is a good basic request script, and it includes the player's ID number in the request as well. If you want it to list the character name instead, it's easy to do and I'll be happy to change it for you.
prontera,131,167,5 script GM Support Assistant 738,{
mes "[GM Support Assistant]";
mes "Hello, I'm the Game Master Support Assistant. I can assist you by putting you into contact with a GM at the click of a button! What would you like for me to do?";
next;
menu "Send a help request.",P_1,"Quit.",P_2;
P_1:
atcommand "@request Calling all Game Masters, player ID: " + getcharid(0) + " is in need of assistance.";
close;
P_2:
close;
}