/* remote command */ void remote(player *p,char *str) { char *msg,*pstring,*final; char *oldstack; player **list,**step; int i,n; command_type=PERSONAL|SEE_ERROR; if (p->saved_flags&BLOCK_TELLS) { tell_player(p,"You can't remote to other people when you yourself are blocking tells.\n"); return; } oldstack=stack; align(stack); list=(player **)stack; msg=next_space(str); if (!*msg) { tell_player(p,"Format : remote <player(s)> <msg>\n"); stack=oldstack; return; } *msg++=0; command_type|=SORE; n=global_tag(p,str); if (!n) { stack=oldstack; return; } for(step=list,i=0;i<n;i++,step++) if (*step!=p) { final=stack; if (*msg=='\'') sprintf(stack,"%s%s\n",p->name,msg); else sprintf(stack,"%s %s\n",p->name,msg); stack=end_string(stack); tell_player(*step,final); stack=final; } if (sys_flags&EVERYONE_TAG || !(sys_flags&FAILED_COMMAND)) { pstring=tag_string(p,list,n); final=stack; if (*msg==39) sprintf(stack,"You emote '%s%s' to %s.\n",p->name,msg,pstring); else sprintf(stack,"You emote '%s %s' to %s.\n",p->name,msg,pstring); stack=strchr(stack,0); if (idlingstring(p,list,n)) strcpy(stack,idlingstring(p,list,n)); stack=end_string(stack); tell_player(p,final); } cleanup_tag(list,n); stack=oldstack; }