ID:142460
 
Code:
    ST(var/XC1,XC2,YC1,YC2,T)
var{XC=XC1;YC=YC1}TOSP(T)
for(var/Y in text1)
var/obj/fonts/text/C=new(client)
if(XC==round(XC)&&YC==round(YC))
C.screen_loc="[XC],[YC]"
else if(XC!=round(XC)&&YC==round(YC))
C.screen_loc="[XC-0.5]:16,[YC]"
else if(XC==round(XC)&&YC!=round(YC))
C.screen_loc="[XC],[YC-0.5]:+16"
else if(XC!=round(XC)&&YC!=round(YC))
C.screen_loc="[XC-0.5]:16,[YC-0.5]:+16"
C.icon_state="[Y]"
XC+=0.5
if(XC==XC2)
XC=XC1;YC-=0.5
if(YC==YC2-0.5)
break


Problem description:
I've been trying to fix this problem and I've narrowed it down, players who connect from a computer other than the host will freeze when they are to login. This function is used to show text and is used in character creation and command menu. If anybody can find any reason why this happens please let me know.

Ugh, what do yo have against descriptive names for procs, or variables? And what do you have against whitespace?

I have no clue what XC1, XC2, YC1, YC2, T, XC, YC, textl (text1?) or TOSP are supposed to be. And where is this proc being called from? How are the external variables being modified?
In response to Garthor
ST = screen text
yc, xc are the y and x locations to place the text
TOSP is a function that I don't know what the letters stand for, this was something that I had help with from a friend. Here is the TOSP function, I think maybe I should just remove the function and make this part of the ST function since thats the only place it is used. Here it is.

TOSP(var/textonscreen)
text1=list()
for(var/a=1,a<=length(textonscreen),a++)
text1+=copytext(textonscreen,a,a+1)