unityzgy/Assets/Scripts/PublicTool/TCP/Server/HandleServerMsg.cs
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

126 lines
4.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
/// <summary>
/// 服务端消息处理类
/// </summary>
class HandleServerMsg
{
//学员登陆
public void MsgLogin(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
User userMsg = proto.GetClass<User>(start, ref start) as User;
NetLoginFailureMsg errorMsg= NetLoginFailureMsg.none;
bool result = DBManager.Instance.CheckUserLogin(userMsg);
if (!result)//数据库未查询到数据
{
errorMsg = NetLoginFailureMsg.noUser;
}
else if(MasterLoginManager.Instance.CheckUserIsLoginon(userMsg.user))//通过验证后 判断该用户是否已经登录
{
result = false;
errorMsg = NetLoginFailureMsg.hasLogin;
}
Debug.Log($"用户:{userMsg.user},尝试通过计算机:{clientMsg.ip}登录,登录结果:{result}");
if (result)
{
EventCenter.Instance.EventTrigger<string, string>("StudentLoginOn", clientMsg.ip, userMsg.user);
}
TCPManager.Instance.SendLoginResult(result, clientMsg.ip, errorMsg);
}
//接到学员上传的答卷
public void MsgAnswerSheet(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
NetAnswerSheet userRseultMsg = proto.GetClass<NetAnswerSheet>(start, ref start) as NetAnswerSheet;
ResultMsgToUI uiResult = new ResultMsgToUI(clientMsg.ip, userRseultMsg);
GameMain.Instance.UIManager.ChangePanel(uiResult);
Debug.Log($"用户:{clientMsg.ip}结束当前训练科目,传回结果数据");
}
//学员退出登录
public void MsgStudentQuit(ClientMsg clientMsg)
{
//int start = 0;
//ProtocolByte proto = clientMsg.protocolByte;
//string protoName = proto.GetString(start, ref start);
//proto = new ProtocolByte();
EventCenter.Instance.EventTrigger<string>("StudentQuit", clientMsg.ip);
}
//学员改变科目推演阶段
public void MsgChangeStudentStage(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
NetSubStage stage = (NetSubStage)proto.GetInt(start, ref start);
EventCenter.Instance.EventTrigger<string, NetSubStage>("ChangeStudentStage", clientMsg.ip, stage);
}
//学员传回的导调初始化信息
public void MsgAdjustingInitData(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
NetAdjustingInitData initData = proto.GetClass<NetAdjustingInitData>(start, ref start);
Debug.Log("接到传回的导调界面初始化信息");
EventCenter.Instance.EventTrigger<string,NetAdjustingInitData>("NetAdjustingInitData",clientMsg.ip, initData);
}
//导调过程中的同步信息
public void MsgSyn(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
AdjustingCarIconData[] synMsg = proto.GetClass<AdjustingCarIconData[]>(start, ref start);
EventCenter.Instance.EventTrigger<AdjustingCarIconData[]>("SynCarPos", synMsg);
}
//导调过程中的事件同步信息
public void MsgTuFaEvent(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
NetTuFaHandleMsg handleMsg = proto.GetClass<NetTuFaHandleMsg>(start, ref start);
EventCenter.Instance.EventTrigger<NetTuFaHandleMsg>("SynTuFa", handleMsg);
}
//学员端主动结束成绩等待面板
public void MsgStuCloseResPanel(ClientMsg clientMsg)
{
EventCenter.Instance.EventTrigger<string>("StuCloseResultPanel", clientMsg.ip);
}
//学员端改变学习状态 目前只有转变为等待状态时调用
public void MsgStuChangeState(ClientMsg clientMsg)
{
int start = 0;
ProtocolByte proto = clientMsg.protocolByte;
string protoName = proto.GetString(start, ref start);
LearnState handleMsg = (LearnState)proto.GetInt(start, ref start);
EventCenter.Instance.EventTrigger<string, LearnState>("ChangeLearnState", clientMsg.ip, handleMsg);
}
}