void OnEvent(int eventID, object param) { if (eventID == (int)GameEventID.ENTITYSYSTEM_ENTERMAP) { uint mapID = (uint)param; CopyDataBase copyBb = GameTableManager.Instance.GetTableItem <CopyDataBase>(this.m_uEnterCopyID); if (copyBb == null) { return; } //当前题图与副本地图不一样,退出副本了 if (copyBb.mapId != mapID) { stExitCopyUserCmd_CS cmd = new stExitCopyUserCmd_CS() { copy_base_id = 0 }; OnExitCopy(cmd); } } else if (eventID == (int)GameEventID.SYSTEM_LOADSCENECOMPELETE) { TimerAxis.Instance().SetTimer(m_uAutoStartFightTimerID, 1000, this, 1); } //else if (eventID == (int)GameEventID.UIEVENT_REFRESHCURRENCYNUM) //{ // if (false == this.IsEnterCopy) // { // return;//非副本,退出 // } // ItemDefine.UpdateCurrecyPassData data = (ItemDefine.UpdateCurrecyPassData)param; // if (data.MoneyType == MoneyType.MoneyType_Gold) // { // AddGoldInCopy(data.ChangeNum); // } //} }
public void OnExitCopy(stExitCopyUserCmd_CS cmd) { DataManager.Manager <ComBatCopyDataManager>().OnExitCopy(cmd); }
void ClearCopyData() { //退出副本 stExitCopyUserCmd_CS cmd = new stExitCopyUserCmd_CS() { copy_base_id = 0 }; Client.IMapSystem mapsys = ClientGlobal.Instance().GetMapSystem(); if (mapsys != null) { mapsys.SetEnterZoneCallback(null); } ICopy copy = GetCopyByCopyID(m_uEnterCopyID); if (copy != null) { copy.ExitCopy(); } m_uEnterCopyID = 0; m_nLastKillWave = 0; m_nLastTransmitWave = 0; m_dicEnterZoneStatus.Clear(); m_dicSendEnterZoneTime.Clear(); this.CopyCDAndExitData = null; //清副本目标数据 CleanCopyTargetData(); stCopyInfo info = new stCopyInfo(); info.bShow = false; DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MainPanel, UIMsgID.eShowCopyInfo, info); if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.MissionAndTeamPanel)) { DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MissionAndTeamPanel, UIMsgID.eCopyExit, null); } Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.COMBOT_ENTER_EXIT, new Client.stCombotCopy() { copyid = cmd.copy_base_id, exit = true }); IControllerSystem cs = ClientGlobal.Instance().GetControllerSystem(); if (cs == null) { Engine.Utility.Log.Error("ExecuteCmd: ControllerSystem is null"); return; } if (cs.GetCombatRobot().Status != CombatRobotStatus.STOP) { cs.GetCombatRobot().Stop(); } IPlayer player = ClientGlobal.Instance().MainPlayer; if (player != null) { player.SendMessage(EntityMessage.EntityCommand_StopMove, player.GetPos()); CmdManager.Instance().Clear();//清除寻路 } //退出副本标志 m_bIsEnterCopy = false; }