原始翎风CLIENT8位
frmMain 下的 CSocket控件
属性:
在frmMain的FormCreate中
g_ConnectionStep := cnsLogin 设置为登陆方式
g_boSendLogin:=False
g_boServerConnected := FALSE
根据读取的mir.ini 文件 给 CSOCKET 的 ADDRESS ,PORT 赋值
Socket.Address:=g_sServerAddr;
CSocket.Port:=g_nServerPort;
使能
CSocket.Active:=True;
事件
CSocketConnect
CSocketDisconnect
CSocketError
CSocketRead
CSocketConnect
g_boServerConnected := TRUE;表示已经连接上
如果g_ConnectionStep = cnsLogin 则DScreen.ChangeScene (stLogin); 场景为登陆场景
如果g_ConnectionStep = cnsSelChr 选择角色 状态 等待开门动画后 SendQueryChr
如果g_ConnectionStep = cnsReSelChr 重新选择角色状态
如果g_ConnectionStep = cnsPlay 如果没有改变服务器,清理背包,聊天框,DScreen.ChangeScene (stLoginNotice)
否则 ChangeServerClearGameVariables清理游戏变量
SendRunLogin 发送登陆消息
SocStr := ''; 接受缓存 清空
BufferStr := '
CSocketDisconnect
g_boServerConnected := FALSE设置
如果g_ConnectionStep = cnsLogin 且not g_boSendLogin 没有发送登陆消息,显示FrmDlg.DMessageDlg ('【服务器关闭或者网络不稳定】
如果 g_SoftClosed 这里是小退进入角色选择?
CSocketError
ErrorCode := 0;
Socket.Close; 关闭
CSocketRead
处理数据 发送*
处理后的数据加入到 SocStr
标签:CLIENT8,控件,cnsLogin,翎风,ConnectionStep,frmMain,CSocket From: https://www.cnblogs.com/D7mir/p/17779206.html