using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Google.Protobuf.WellKnownTypes; namespace SogClient { /* public enum DeskStatus { idle = 0, send_search = 1, search = 1, in_desk = 2, leave_desk = 3, } public class TestDesk : ITestHandler { private DeskStatus status; private long lastSendMsgTime; public long deskId; public TestDesk(Player player) { SetPlayer(player); status = DeskStatus.idle; } public override void Update(long nowSecond) { if (nowSecond - lastSendMsgTime >= 10) { if (status == DeskStatus.idle) { //SendSearchDeskReq(); } else if (status == DeskStatus.in_desk) { // SendLeaveDeskReq(); } lastSendMsgTime = nowSecond; } } public override void HandlerMsg(RequestPacket packet) { TraceLog.Trace("recv message from server, message type {0}", packet.MsgID); switch (packet.MsgID) { case (int)CSGameMsgID.SearchDeskRes: OnSearchDeskRes((CSSearchDeskRes)packet.Packet); break; case (int)CSGameMsgID.EnterDeskRes: OnEnterDeskRes((CSEnterDeskRes)packet.Packet); break; case (int)CSGameMsgID.LeaveDeskRes: OnLeaveDeskRes((CSLeaveDeskRes)packet.Packet); break; default: break; } } public void SendSearchDeskReq() { CSSearchDeskReq req = new CSSearchDeskReq(); req.Uid = m_player.GetUid(); req.TeamType = TeamType.Single; req.BreakIce = BreakIceType.Fix; req.Chip = -1; SendToServer(req, (int)CSGameMsgID.SearchDeskReq); // status = DeskStatus.send_search; } public void SendEnterDeskReq() { CSEnterDeskReq enterDeskReq = new CSEnterDeskReq(); enterDeskReq.Uid = m_player.GetUid(); enterDeskReq.DeskId = 1; SendToServer(enterDeskReq, (int)CSGameMsgID.EnterDeskReq); } public void SendLeaveDeskReq() { if (deskId > 0) { CSLeaveDeskReq leaveDeskReq = new CSLeaveDeskReq(); leaveDeskReq.Uid = m_player.GetUid(); leaveDeskReq.DeskId = deskId; SendToServer(leaveDeskReq, (int) CSGameMsgID.LeaveDeskReq); } } public void OnSearchDeskRes(CSSearchDeskRes res) { if (res.Ret == 0) { if (res.Cancel == 0) { status = DeskStatus.search; } else { status = DeskStatus.idle; } } } public void OnEnterDeskRes(CSEnterDeskRes res) { if (res.Ret == 0) { status = DeskStatus.in_desk; deskId = res.DeskId; } } public void OnLeaveDeskRes(CSLeaveDeskRes res) { if (res.Ret == 0) { status = DeskStatus.leave_desk; } } } */ }