コード例 #1
0
        private void StopMove()
        {
            IEntity mainplayer = ControllerSystem.m_ClientGlobal.MainPlayer;

            if (mainplayer != null)
            {
                mainplayer.SetCallback(null);
                if (m_skillPart != null && m_skillPart.GetCurSkillState() == (int)Client.SkillState.None)
                {
                    Engine.Utility.Log.Info("暂停挂机 停止移动");
                    mainplayer.SendMessage(Client.EntityMessage.EntityCommand_StopMove, mainplayer.GetPos());
                }
            }
        }
コード例 #2
0
ファイル: AutoMission.cs プロジェクト: zuojiashun/src
    private void OnExecuteTask(uint nTaskID)
    {
        QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID);

        if (questInfo == null)
        {
            Engine.Utility.Log.Error(" Get questinfo error {0}", nTaskID);
            return;
        }

        uint npcid = 0;

        if (questInfo.IsKillMonster(out npcid))
        {
            Client.ISkillPart skillPart = Client.ClientGlobal.Instance().MainPlayer.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
            if (skillPart != null)
            {
                if (skillPart.GetCurSkillState() != (int)Client.SkillState.None)
                {
                    m_nDoingTaskID = nTaskID;
                    if (m_bAddSkillNoneListener)
                    {
                        return;
                    }
                    m_bAddSkillNoneListener = true;
                    Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.SKILLNONESTATE_ENTER, OnEvent);
                    Engine.Utility.Log.Info("等待.......技能播放完毕 执行任务{0}  {1}", m_nDoingTaskID, Client.ClientGlobal.Instance().MainPlayer.GetCurState());
                    return;
                }
            }
        }
        ProcessTask(questInfo);
    }
コード例 #3
0
ファイル: AutoMission.cs プロジェクト: zuojiashun/src
    private void OnTaskCanCommit(uint nTaskID)
    {
        QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID);

        if (questInfo == null)
        {
            Engine.Utility.Log.Error(" Get questinfo error {0}", nTaskID);
            return;
        }
        if (!questInfo.QuestTable.dwAutoCommit)
        {
            return;
        }

        Client.ISkillPart skillPart = Client.ClientGlobal.Instance().MainPlayer.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
        if (skillPart != null)
        {
            if (skillPart.GetCurSkillState() != (int)Client.SkillState.None)
            {
                m_nDoingTaskID = nTaskID;
                Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.SKILLNONESTATE_ENTER, OnEvent);
                Engine.Utility.Log.Info("等待.......技能播放完毕 执行任务{0} {1}", m_nDoingTaskID, Client.ClientGlobal.Instance().MainPlayer.GetCurState());
                StopRobot();
                return;
            }
        }

        ProcessTask(questInfo);
    }
コード例 #4
0
    /// <summary>
    /// 请求读条上马
    /// </summary>
    public bool TryUsingRide(Action <object> callback, object param)
    {
        Client.IMapSystem ms = Client.ClientGlobal.Instance().GetMapSystem();
        if (ms == null)
        {
            return(false);
        }
        table.MapDataBase mapdata = GameTableManager.Instance.GetTableItem <table.MapDataBase>(ms.GetMapID());
        if (mapdata == null)
        {
            return(false);
        }

        if (mapdata.canUsingRide != 1)
        {
            TipsManager.Instance.ShowTips("该地图不能上马");
            if (callback != null)
            {
                callback(param);
            }
            return(false);
        }
        Client.IPlayer mainPlayer = Client.ClientGlobal.Instance().MainPlayer;
        if (mainPlayer != null)
        {
            Client.ISkillPart skillpart = mainPlayer.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
            if (skillpart != null)
            {
                if (skillpart.GetCurSkillState() != (int)Client.SkillState.None)
                {
                    TipsManager.Instance.ShowTips(LocalTextType.Ride_Commond_shifangjinengzhongwufashangma);
                    if (callback != null)
                    {
                        callback(param);
                    }
                    return(false);
                }
            }
            bool isChangeBody = (bool)mainPlayer.SendMessage(Client.EntityMessage.EntityCommand_IsChange, null);
            if (isChangeBody)
            {
                if (callback != null)
                {
                    callback(param);
                }
                return(false);
            }
            bool bRide = DataManager.Manager <RideManager>().IsRide;
            if (bRide)
            {
                if (callback != null)
                {
                    callback(param);
                }
                return(false);
            }
            else if (Auto_Ride == 0)
            {
                if (callback != null)
                {
                    callback(param);
                }
                return(false);
            }
        }

        UsingRideCallback      = callback;
        UsingRideCallbackParam = param;
        if (Auto_Ride != 0)
        {
            //先发送读条 读条 结束在上马
            Client.stUninterruptMagic stparam = new Client.stUninterruptMagic();
            if (GetRideDataById(Auto_Ride) != null)
            {
                stparam.time = GetRideDataById(Auto_Ride).spellTime;
            }
            stparam.type = GameCmd.UninterruptActionType.UninterruptActionType_DEMON;
            stparam.uid  = MainPlayerHelper.GetPlayerUID();
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.SKILLGUIDE_PROGRESSSTART, stparam);
            //NetService.Instance.Send(new stUsingRideUserCmd_C());
        }
        return(true);
    }
コード例 #5
0
ファイル: AutoMission.cs プロジェクト: zuojiashun/src
    private void OnCommitTask(QuestTraceInfo taskInfo)
    {
        table.QuestDataBase questDB = taskInfo.QuestTable;
        if (questDB == null)
        {
            Engine.Utility.Log.Error("QuestTable is null");
            return;
        }

        if (taskInfo.taskSubType == TaskSubType.Guild)
        {
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.MissionMessagePanel, data: taskInfo.taskId);
            return;
        }

        PanelID pid;
        int     tab    = 0;
        int     copyId = 0;

        uint jumpId;

        if (taskInfo.IsOpenUI(out jumpId))
        {
            ItemManager.DoJump(jumpId);
            return;
        }
        else if (taskInfo.IsChangeBodyTask())
        {
            //bool isChange = (bool)Client.ClientGlobal.Instance().MainPlayer.SendMessage(Client.EntityMessage.EntityCommand_IsChange, null);
            //if (!isChange)
            //{
            //    m_nDoingTaskID = taskInfo.taskId;
            //    if (m_bAddChangeListener)
            //    {
            //        return;
            //    }

            //    m_bAddChangeListener = true;
            //    Engine.Utility.Log.Info("{0}CanDone 等待.......变身回来 执行任务{1}", TAG, m_nDoingTaskID);
            //    Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.ENTITYSYSTEM_CHANGE, OnEvent);
            //    return;
            //}

            m_nDoingTaskID = taskInfo.taskId;
            if (false == m_bAddChangeListener && false == MainPlayerIsChangeBody())
            {
                m_bAddChangeListener = true;
                Engine.Utility.Log.Info("{0}CanDone 等待.......变身回来 执行任务{1}", TAG, m_nDoingTaskID);
                Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.ENTITYSYSTEM_CHANGE, OnEvent);
            }

            VisitNpc(questDB.dwHelpCommit, questDB.submitMapID, questDB.dwEndNpc, questDB.dwID);
            return;
        }
        uint npcid = 0;

        if (taskInfo.IsKillMonster(out npcid))
        {
            Client.ISkillPart skillPart = Client.ClientGlobal.Instance().MainPlayer.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
            if (skillPart != null)
            {
                if (skillPart.GetCurSkillState() != (int)Client.SkillState.None)
                {
                    m_nDoingTaskID = taskInfo.taskId;
                    Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.SKILLNONESTATE_ENTER, OnEvent);
                    Engine.Utility.Log.Info("等待.......技能播放完毕 执行任务{0}", m_nDoingTaskID);
                    return;
                }
            }
        }

        //令牌悬赏无交任务npc
        if (taskInfo.taskType != GameCmd.TaskType.TaskType_Token)
        {
            DataManager.Manager <RideManager>().TryUsingRide(delegate(object o)
            {
                VisitNpc(questDB.dwHelpCommit, questDB.submitMapID, questDB.dwEndNpc, questDB.dwID);
            }, null);
        }
    }