原始翎风CLIENT8位 (3) frmMain 下的 CSocket控件

发布时间 2023-10-21 16:51:13作者: D7mir

原始翎风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