Пример #1
0
    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);
        //    }
        //}
    }
Пример #2
0
 public void OnExitCopy(stExitCopyUserCmd_CS cmd)
 {
     DataManager.Manager <ComBatCopyDataManager>().OnExitCopy(cmd);
 }
Пример #3
0
    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;
    }