- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
126 lines
4.6 KiB
C#
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);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|