private void OnUserEnterResp(Packet packet) { int dataStruct = Marshal.SizeOf(typeof(tagUserInfoHead)); if (packet.DataSize < dataStruct) { Debug.LogWarning("data error!"); return; } tagUserInfoHead userInfo = GameConvert.ByteToStruct <tagUserInfoHead>(packet.Data); PlayerInfo player = ProtoHelper.InitPlayerInfo(userInfo); if (player.ID == GameApp.GameData.UserInfo.UserID) { GameApp.GameData.UserInfo.SetSitInfo(player.DeskNO, player.DeskStation); } ByteBuffer buffer = ByteBufferPool.PopPacket(packet.Data); buffer.Position = dataStruct; while (true) { string str = ""; ushort type = ProtoHelper.ReadDescDataString(ref buffer, ref str); if (type == 0) { break; } switch (type) { case CommonDefine.DTP_GR_NICK_NAME: { player.NickName = str; break; } } } ByteBufferPool.DropPacket(buffer); GameApp.GameSrv.AddPlayer(player); GameApp.GameSrv.CallUserEnterEvent(player); }
public static PlayerInfo InitPlayerInfo(tagUserInfoHead userInfo) { return(new PlayerInfo() { DeskNO = userInfo.wTableID, DeskStation = userInfo.wChairID, UserState = userInfo.cbUserStatus, Money = userInfo.lScore, BankMoney = userInfo.lInsure, HeadID = userInfo.wFaceID, ID = userInfo.dwUserID, Gender = userInfo.cbGender, DrawCount = userInfo.dwDrawCount, LostCount = userInfo.dwLostCount, WinCount = userInfo.dwWinCount, VipLevel = userInfo.cbMemberOrder }); }