public void OnJoinTable(IEvent iEvent) { NetCmdPack pack = iEvent.parameter as NetCmdPack; m_Jtable = (LC_Cmd_JoinTableResult)pack.cmd; Debug.Log("m_Jtable.Result::: " + m_Jtable.Result); if (m_Jtable.Result) { //在玩家身上设置玩家桌子ID PlayerRole.Instance.RoleInfo.RoleMe.SetTableTypeID(m_Jtable.bTableTypeID); //PlayerRole.Instance.RoleGameData.OnHandleRoleJoinTable();//表示玩家已经进入房间了 m_roomDate = new LinkRoomData(); m_roomDate.RoomID = m_Jtable.bTableTypeID; m_roomDate.BackgroundImage = m_Jtable.BackgroundImage; m_roomDate.LauncherType = m_Jtable.LauncherType; m_roomDate.Seat = m_Jtable.SeatID; m_roomDate.RateIndex = m_Jtable.RateIndex; m_roomDate.Energy = m_Jtable.Energy; //LogicManager.Instance.Forward(ncg); } else { Debug.LogError("连接桌子错误"); } }
public bool Handle(NetCmdPack pack) { if (pack.cmd.GetCmdType() == NetCmdType.CMD_JOIN_ROOM_RESULT) { NetCmdJoinRoomResult ncj = (NetCmdJoinRoomResult)pack.cmd; JoinRoomData ncg = new JoinRoomData(); ncg.RoomID = ncj.RoomID; ncg.BackgroundImage = ncj.BackgroundImage; ncg.LauncherType = ncj.LauncherType; ncg.Seat = ncj.Seat; ncg.RateIndex = 0; if (ncj.Result == 0) { State = HallState.HALL_JOIN_FAILED; GlobalEffectMgr.Instance.CloseLoadingMessage(); } else { NetServices.Instance.CmdHandler = null; LogicManager.Instance.Forward(ncg); } return(true); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_JoinTable) { LC_Cmd_JoinTableResult ncb = (LC_Cmd_JoinTableResult)pack.cmd; tagUserOperationEvent pUOM = new tagUserOperationEvent((ncb.Result ? UserOperateMessage.UOM_Table_JoinTable_Sucess : UserOperateMessage.UOM_Table_JoinTable_Failed_7)); MsgEventHandle.HandleMsg(pUOM); if (ncb.Result) { //在玩家身上设置玩家桌子ID PlayerRole.Instance.RoleInfo.RoleMe.SetTableTypeID(ncb.bTableTypeID); NetServices.Instance.CmdHandler = null; PlayerRole.Instance.RoleGameData.OnHandleRoleJoinTable();//表示玩家已经进入房间了 JoinRoomData ncg = new JoinRoomData(); ncg.RoomID = ncb.bTableTypeID; ncg.BackgroundImage = ncb.BackgroundImage; ncg.LauncherType = ncb.LauncherType; ncg.Seat = ncb.SeatID; ncg.RateIndex = ncb.RateIndex; ncg.Energy = ncb.Energy; LogicManager.Instance.Forward(ncg); } else { State = HallState.HALL_JOIN_FAILED; GlobalEffectMgr.Instance.CloseLoadingMessage(); } return(true); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_CHANGE_IMG) { NetCmdImgChange cmd = (NetCmdImgChange)pack.cmd; HeaderManager.Instance.GetPlayerHeader(cmd.PlayerID, cmd.ImgCrcValue, HeaderOptType.HEADER_FRIEND, null); return(true); } return(false); }
public bool Handle(NetCmdPack pack) { //登陆的后续命令处理 if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_AccountOnlyIDSuccess) { //玩家登陆GameServer成功了 LC_Cmd_AccountOnlyIDSuccess ncb = (LC_Cmd_AccountOnlyIDSuccess)pack.cmd; //保存玩家账号数据 登陆成功的时候 PlayerRole.Instance.RoleInfo.RoleMe.SetRoleInfo(ncb.RoleInfo);//设置玩家的数据. ServerSetting.SetCallbckUrl(Utility.IPToString(ncb.OperateIP)); //设置玩家身份标志 if (m_AccountData != null) { if (PlayerRole.Instance.RoleInfo.RoleMe.GetIsCanResetAccount()) { m_AccountData.TAG = 1; } else { m_AccountData.TAG = 0; } m_AccountData.SaveAccountData(); //SaveAccountData(m_AccountData);//将账号数据保存起来 } // NetServices.Instance.CmdHandler = null; // RuntimeData.MyAccount = m_AccountData; m_OnlyID = ncb.RandID;//用于登陆的唯一的ID PlayerRole.Instance.RoleExChange.SetPlayerRoleIsShowExChange(); //PlayerRole.Instance.IsNeedResetTable = false; LogicManager.Instance.SkipToHall(); PlayerRole.Instance.OnRoleResetOtherInfo();//清空数据并且提供事件 } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_AccountLogonToScreen) { //玩家登陆GameServer成功了 LC_Cmd_AccountLogonToScreen ncb = (LC_Cmd_AccountLogonToScreen)pack.cmd; //保存玩家账号数据 登陆成功的时候 //PlayerRole.Instance.RoleInfo.RoleMe.SetRoleInfo(ncb.RoleInfo);//设置玩家的数据. //设置玩家身份标志 if (m_AccountData != null) { if (PlayerRole.Instance.RoleInfo.RoleMe.GetIsCanResetAccount()) { GlobalLogon.Instance.AccountData.TAG = 1; } else { GlobalLogon.Instance.AccountData.TAG = 0; } m_AccountData.SaveAccountData(); //SaveAccountData(m_AccountData);//将账号数据保存起来 // NetServices.Instance.CmdHandler = null; } //RuntimeData.MyAccount = m_AccountData; m_OnlyID = ncb.RandID;//用于登陆的唯一的ID // PlayerRole.Instance.IsNeedResetTable = true; //直接进入场景 JoinRoomData ncg = new JoinRoomData(); ncg.RoomID = ncb.bTableTypeID; ncg.BackgroundImage = ncb.BackgroundImage; ncg.LauncherType = ncb.LauncherType; ncg.Seat = ncb.SeatID; ncg.RateIndex = ncb.RateIndex; ncg.Energy = ncb.Energy; //场景 LogicManager.Instance.SkipToScene(ncg); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_ResetLogonGameServer) { //玩家重新连接服务器失败了 让玩家返回登陆界面去 LogicManager.Instance.LogOff(); tagUserOperationEvent pUOM = new tagUserOperationEvent(UserOperateMessage.UOM_Logon_Reset_Error); MsgEventHandle.HandleMsg(pUOM); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_JoinTable) { LC_Cmd_JoinTableResult ncb = (LC_Cmd_JoinTableResult)pack.cmd; if (ncb.Result) { PlayerRole.Instance.RoleInfo.RoleMe.SetTableTypeID(ncb.bTableTypeID); JoinRoomData ncg = new JoinRoomData(); ncg.RoomID = ncb.bTableTypeID; ncg.BackgroundImage = ncb.BackgroundImage; ncg.LauncherType = ncb.LauncherType; ncg.Seat = ncb.SeatID; ncg.RateIndex = ncb.RateIndex; ncg.Energy = ncb.Energy; SceneRuntime.SceneLogic.ResetPlayerData(ncg, false); //LogicManager.Instance.Forward(ncg); } } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_ServerChangeSocket) { //提示玩家已经在其他地方登陆了 被踢掉了 LogicManager.Instance.LogOff(); string str = StringTable.GetString("Account_OtherLogon"); if (str != null) { GlobalHallUIMgr.Instance.ShowSystemTipsUI(str, 5, false); } } //else if(pack.cmd.GetCmdType() == NetCmdType.CMD_LC_ResetPassword) //{ // LC_Cmd_ResetPassword ncb = (LC_Cmd_ResetPassword)pack.cmd; // if(ncb.Result) // { // GlobalLogon.Instance.AccountData.CRC1 = ncb.NewPasswordCrc1; // GlobalLogon.Instance.AccountData.CRC2 = ncb.NewPasswordCrc2; // GlobalLogon.Instance.AccountData.CRC3 = ncb.NewPasswordCrc3; // tagErrorCodeEvent pEvent = new tagErrorCodeEvent(ErrorCode.EC_ResetPassword_Sucess); // MsgEventHandle.HandleMsg(pEvent); // } // else // { // tagErrorCodeEvent pEvent = new tagErrorCodeEvent(ErrorCode.EC_ResetPassword_Failed); // MsgEventHandle.HandleMsg(pEvent); // } // return true; //} else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_CheckVersionError) { LogicManager.Instance.LogOff(); tagUserOperationEvent pUOM = new tagUserOperationEvent(UserOperateMessage.UOM_Logon_Version_Error); MsgEventHandle.HandleMsg(pUOM); return(true); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_LogonQueueWrite) { //排队的消息 我们让客户端继续等待 LC_Cmd_LogonQueueWrite ncb = (LC_Cmd_LogonQueueWrite)pack.cmd; //触发排队等待的事件 tagQueueWriteEvent pEvent = new tagQueueWriteEvent(ncb.WriteIndex, ncb.WriteSec, true); MsgEventHandle.HandleMsg(pEvent); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_AccountIsFreeze) { LC_Cmd_AccountIsFreeze ncb = (LC_Cmd_AccountIsFreeze)pack.cmd; System.DateTime starTime = System.TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); System.DateTime pTime = starTime.AddSeconds(System.Convert.ToDouble(ncb.EndTime)); tagLogonAccountFreezeEvent pEvent = new tagLogonAccountFreezeEvent(pTime); MsgEventHandle.HandleMsg(pEvent); tagUserOperationEvent pUOM = new tagUserOperationEvent(UserOperateMessage.UOM_Logon_Account_Freeze_2); MsgEventHandle.HandleMsg(pUOM); LogicManager.Instance.LogOff(); return(true); } else if (pack.cmd.GetCmdType() == NetCmdType.CMD_LC_SaveAccountInfo) { LC_Cmd_SaveAccountInfo ncb = (LC_Cmd_SaveAccountInfo)pack.cmd; //将账号 和 3个 密码保持起来 供使用 if (GlobalLogon.Instance.AccountData == null) { GlobalLogon.Instance.AccountData = new AccountData(); } GlobalLogon.Instance.AccountData.AccountInfo.UID = ncb.AccountName; GlobalLogon.Instance.AccountData.AccountInfo.CRC1 = ncb.PasswordCrc1; GlobalLogon.Instance.AccountData.AccountInfo.CRC2 = ncb.PasswordCrc2; GlobalLogon.Instance.AccountData.AccountInfo.CRC3 = ncb.PasswordCrc3; GlobalLogon.Instance.AccountData.SaveAccountData(); //GlobalLogon.Instance.SaveAccountData(GlobalLogon.Instance.AccountData);//立刻保存一次 return(true); } else { return(false); } GlobalHallUIMgr.Instance.UpdateSystemTipsUITime(0.5f); return(true); }