コード例 #1
0
 void SkillEvent(int eventID, object param)
 {
     if (eventID == (int)GameEventID.SKILLSYSTEM_ADDSKILLCMD)
     {
         stSkillCommond st = (stSkillCommond)param;
         AddCommondQueue(st);
     }
     else if (eventID == (int)GameEventID.SKILLSYSTEM_CLEARSKILLCMD)
     {
         ClearCommondQueue();
     }
     else if (eventID == (int)GameEventID.SKLL_LONGPRESS)
     {
         stSkillLongPress st = (stSkillLongPress)param;
         m_bSkillLongPress = st.bLongPress;
     }
     else if (eventID == (int)GameEventID.ENTITYSYSTEM_ENTITYBEGINMOVE)
     {
         stEntityBeginMove move = (stEntityBeginMove)param;
         if (move.uid == MainPlayerHelper.GetPlayerUID())
         {
             ClearCommondQueue();
         }
     }
     else if (eventID == (int)GameEventID.ROBOTCOMBAT_START)
     {
         stSkillLongPress longPress = new stSkillLongPress();
         longPress.bLongPress = false;
         EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress);
     }
     else if (eventID == (int)GameEventID.SKILLSYSTEM_STIFFTIMEOVER)
     {
         DoInsertSkill();
     }
 }
コード例 #2
0
    void AddSkillCommond(uint uSkillID)
    {
        if (IsCommonSkill(uSkillID))
        {
            return;
        }
        if (m_bSkillLongPress)
        {
            //点击其他技能 解除长按
            stSkillLongPress longPress = new stSkillLongPress();
            longPress.bLongPress = false;
            EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress);


            EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_CLEARSKILLCMD, null);


            stSkillCommond cmd = new stSkillCommond();
            cmd.type    = 0;
            cmd.skillID = uSkillID;
            EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_ADDSKILLCMD, cmd);


            stSkillCommond st = new stSkillCommond();
            st.type    = 0;
            st.skillID = DataManager.Manager <LearnSkillDataManager>().GetCommonSkillIDByJob();
            EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_ADDSKILLCMD, st);
        }
    }
コード例 #3
0
    //注销长按攻击事件
    void CancelPressAttack()
    {
        TimerAxis.Instance().KillTimer(m_uSkillLongPressTimerID, this);
        m_btnCommonAttack.SendMessage("OnPress", false, SendMessageOptions.DontRequireReceiver);
        stSkillLongPress longPress = new stSkillLongPress();

        // longPress.userID = MainPlayerHelper.GetPlayerUID();
        longPress.bLongPress = false;
        EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress);
    }
コード例 #4
0
 public void OnContrllerEvent(int nEventID, object param)
 {
     if (m_Host == null)
     {
         Engine.Utility.Log.Error("MoveController.OnContrllerEvent: host is null");
         return;
     }
     if (nEventID == (int)Client.GameEventID.ENTITYSYSTEM_ENTITYSTOPMOVE)
     {
         Client.stEntityStopMove stopEntity = (Client.stEntityStopMove)param;
         if (m_bJoystick && stopEntity.uid == m_Host.GetUID() && !stopEntity.bExternal) // 自行移动停止才需要继续向前预测
         {
             // 继续向前预测
             MoveByDir(m_fCalcRotate);
         }
     }
     else if (nEventID == (int)Client.GameEventID.SKLL_LONGPRESS)
     {
         stSkillLongPress st = (stSkillLongPress)param;
         m_bSkillLongPress = st.bLongPress;
     }
     else if (nEventID == (int)Client.GameEventID.ENTITYSYSTEM_ENTITYDEAD)
     {
         stEntityDead ed = (stEntityDead)param;
         if (m_ClientGlobal.IsMainPlayer(ed.uid))
         {
             m_bJoystick = false;
             m_Host.SendMessage(EntityMessage.EntityCommand_StopMove, m_ClientGlobal.MainPlayer.GetPos());
         }
     }
     else if (nEventID == (int)Client.GameEventID.SKILL_FORBIDDENJOYSTICK)
     {
         Client.stForbiddenJoystick info   = (Client.stForbiddenJoystick)param;
         Client.IPlayer             player = m_ClientGlobal.MainPlayer;
         if (player == null)
         {
             return;
         }
         if (info.playerID == player.GetUID())
         {
             //bForbiddenJoystick = info.bFobidden;
             //if(bForbiddenJoystick)
             //{
             //   // Log.LogGroup( "ZDY" , "摇杆禁用" );
             //}
             //else
             //{
             //  //  Log.LogGroup( "ZDY" , "摇杆回复" );
             //}
         }
     }
 }
コード例 #5
0
        //-------------------------------------------------------------------------------------------------------

        /**
         * @brief 按一定方向移动
         * @param
         */
        public void MoveByDir(float fAngle, bool bSyncPath = true, bool bSync = true)
        {
            if (m_bSkillLongPress)
            {
                //点击摇杆 解除长按

                stSkillLongPress longPress = new stSkillLongPress();
                longPress.bLongPress = false;
                EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress);
            }
            //不在禁用摇杆
            //if(bForbiddenJoystick)
            //{
            //    return;
            //}
            IMapSystem mapSys = m_ClientGlobal.GetMapSystem();

            if (mapSys != null)
            {
                if (m_Host == null)
                {
                    return;
                }
                // 发起移动投票,询问其它系统,是否可以移动
                stVoteEntityMove entitymove;
                entitymove.uid = m_Host.GetUID();
                if (!Engine.Utility.EventEngine.Instance().DispatchVote((int)GameVoteEventID.ENTITYSYSTEM_VOTE_ENTITYMOVE, entitymove))
                {
                    // 其它系统不允许移动
                    Engine.Utility.Log.LogGroup("ZDY", " *********************DispatchVote((int)GameVoteEventID.ENTITYSYSTEM_VOTE_ENTITYMOVE,  其它系统不允许移动");
                    return;
                }
                else
                {
                    Engine.Utility.Log.LogGroup("XXF", " *********************MoveByDir,  允许移动");
                }
                // 移动 向前预测一定距离,寻路
                Vector3 pos    = m_Host.GetPos();
                Vector3 target = new Vector3();
                if (!FindLastTarget(pos, fAngle, out target))
                {
                    //Engine.Utility.Log.Trace("摇杆方向有障碍,停止移动!");
                    m_bJoystick = false;
                    m_Host.SendMessage(EntityMessage.EntityCommand_SetRotateY, fAngle);
                    m_Host.SendMessage(EntityMessage.EntityCommand_StopMove, pos);
                    return;
                }

                // 移动 只同步当前位置
                MoveToTarget(target, null, bSyncPath, bSync);
            }
        }
コード例 #6
0
    public void OnUseSkill(uint uSkillID)
    {
        if (uSkillID == 0)
        {
            return;
        }
        IControllerSystem cs = ClientGlobal.Instance().GetControllerSystem();

        if (cs == null)
        {
            Engine.Utility.Log.Error("ExecuteCmd: ControllerSystem is null");
            return;
        }

        ICombatRobot combot = cs.GetCombatRobot();

        if (combot.Status == CombatRobotStatus.RUNNING)
        {
            //解除普攻连击
            stSkillLongPress longPress = new stSkillLongPress();
            longPress.bLongPress = false;
            EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress);
            combot.InsertSkill(uSkillID);

            return;
        }
        bool canuse = EventEngine.Instance().DispatchVote((int)GameVoteEventID.SKILL_CANUSE, uSkillID);

        if (canuse)
        {
            table.SkillDatabase db = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(uSkillID, 1);
            if (db != null)
            {
                IControllerSystem ctrl = ClientGlobal.Instance().GetControllerSystem();
                if (ctrl != null)
                {
                    MessageCode code = MessageCode.MessageCode_ButtonX;

                    ctrl.OnMessage(code, uSkillID);
                }
            }
        }
        else
        {
            IPlayer mainPlayer = MainPlayerHelper.GetMainPlayer();
            if (mainPlayer != null)
            {
                ISkillPart skillPart = mainPlayer.GetPart(EntityPart.Skill) as ISkillPart;
                if (skillPart != null)
                {
                    Client.stTipsEvent en = skillPart.GetSkillNotUseReason(uSkillID);
                    if (en.errorID != 0)
                    {
                        EventEngine.Instance().DispatchEvent((int)GameEventID.TIPS_EVENT, en);
                    }
                }
            }

            AddSkillCommond(uSkillID);
        }
    }
コード例 #7
0
    private void OnThumbDrag(GameObject obj, Vector2 delta)
    {
        if (m_bIgnore)
        {
            return;
        }


        if (MainPlayerHelper.GetMainPlayer().IsDead())
        {
            return;
        }

        Vector2 touchPos = UICamera.currentTouch.pos;

        float fDis = Vector2.Distance(m_LastJoystickBgScreenPos, touchPos);

        if (m_bJoystickStable)
        {
            Vector2 touchDelta2 = touchPos - m_LastJoystickBgScreenPos;
            m_sprite_joystickThumb.transform.position = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 0));
            if (fDis < m_fMaxDis)
            {
                Vector2 pos = m_LastJoystickBgScreenPos + touchDelta2;
                Vector3 pp  = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(pos.x, pos.y, 0));
                m_sprite_joystickThumb.transform.position = new Vector3(pp.x, pp.y, 0);
            }
            else
            {
                Vector2 dt  = touchDelta2.normalized;
                Vector2 pos = m_LastJoystickBgScreenPos + dt * m_fMaxDis;
                Vector3 pp  = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(pos.x, pos.y, 0));
                m_sprite_joystickThumb.transform.position = new Vector3(pp.x, pp.y, 0);
            }
        }
        else
        {
            m_sprite_joystickThumb.transform.position = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 0));
            if (fDis > m_fMaxDis)
            {
                Vector2 dir = (new Vector2(touchPos.x, touchPos.y) - m_LastJoystickBgScreenPos).normalized;

                Vector2 pos = dir * (fDis - m_fMaxDis);

                m_LastJoystickBgScreenPos += pos;

                m_sprite_joystickBg.transform.position = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(m_LastJoystickBgScreenPos.x, m_LastJoystickBgScreenPos.y, 0));
            }
        }

        m_LastTouchPos = touchPos;
        //if (m_bSkillLongPress)
        //{
        //    return;
        //}

        if (fDis < 10)
        {
            return;
        }
        Vector2 touchDelta = touchPos - m_LastJoystickBgScreenPos;

        // 根据 touchDelta 计算角度 垂直向上
        float fAngle = Vector2.Angle(Vector2.up, touchDelta);

        if (touchDelta.x < 0)
        {
            fAngle = -fAngle;
        }
        fAngle += CameraFollow.Instance.YAngle;
        Client.IControllerSystem controllerSys = Client.ClientGlobal.Instance().GetControllerSystem();
        if (controllerSys != null)
        {
            Client.IController ctrl = controllerSys.GetActiveCtrl();
            if (ctrl != null)
            {
                ctrl.OnMessage(Engine.MessageCode.MessageCode_JoystickChanging, (object)fAngle);
                if (m_bSkillLongPress)
                {
                    //点击摇杆 解除长按
                    Controller.CmdManager.Instance().Clear();
                    stSkillLongPress longPress = new stSkillLongPress();
                    longPress.bLongPress = false;
                    EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress);
                }
            }
        }
    }
コード例 #8
0
    void OnEvent(int eventID, object param)
    {
        switch ((Client.GameEventID)eventID)
        {
        case GameEventID.ENTITYSYSTEM_TARGETCHANGE:
        {
            OnTargetChange(param);
        }
        break;

        case GameEventID.SKILLSYSYTEM_TAB:
        {
            if (m_effctSelect != null)
            {
                Engine.RareEngine.Instance().GetRenderSystem().RemoveEffect(m_effctSelect);
                m_effctSelect = null;
            }
            string strSelectEffct = "effect/UI/[email protected]";
            strSelectEffct = strSelectEffct.ToLower();
            Engine.RareEngine.Instance().GetRenderSystem().CreateEffect(ref strSelectEffct, ref m_effctSelect, null);
            InitEffct(m_effctSelect);
            SetSelectTargetEffectPos();
        }
        break;

        case GameEventID.SKILLSYSTEM_SHOWDAMAGE:
        {
            Client.IEntity entity = ClientGlobal.Instance().GetControllerSystem().GetActiveCtrl().GetCurTarget();
            if (entity != null)
            {
            }
        }
        break;

        case GameEventID.ENTITYSYSTEM_HPUPDATE:
        {
            UpdateProprty(param);
        }
        break;

        case GameEventID.ENTITYSYSTEM_MPUPDATE:
        {
            UpdateProprty(param);
        }
        break;

        case GameEventID.ENTITYSYSTEM_PROPUPDATE:
        {
            UpdateProprty(param);
        }
        break;

        case GameEventID.PLAYER_FIGHTPOWER_REFRESH:
        {
            RefreshFightPower(param);
        }
        break;

        case GameEventID.SKILL_SHOWPETSKILL:
        {
            stShowPetSkill st = (stShowPetSkill)param;
            m_bShowPetQuick = st.bShow;
            // ShowPetQuickInfo(st.bShow);
        }
        break;

        case Client.GameEventID.CAMP_ADDCOLLECTNPC:
        {
            UpdateFBPickBtn(param);
        }
        break;

        case Client.GameEventID.ROBOTCOMBAT_STOP:
        {
            if (m_spriteEx_btnAutoFight != null)
            {
                m_spriteEx_btnAutoFight.ChangeSprite(1);
            }
        }
        break;

        case Client.GameEventID.ROBOTCOMBAT_START:
        {
            if (m_spriteEx_btnAutoFight != null)
            {
                m_spriteEx_btnAutoFight.ChangeSprite(2);
            }
        }
        break;

        case GameEventID.MAINPANEL_SHOWREDWARING:
        {
            stShowMainPanelRedPoint st        = (stShowMainPanelRedPoint)param;
            WarningDirection        direction = (WarningDirection)st.direction;
            WarningEnum             model     = (WarningEnum)st.modelID;
            bool       bShow       = (bool)st.bShowRed;
            GameObject redPointObj = null;
            switch ((WarningEnum)st.modelID)
            {
            case WarningEnum.LearnSkill:
                redPointObj = m_sprite_learnskill_warning.gameObject;
                break;

            case WarningEnum.SEVENDAY:
                redPointObj = m_sprite_seven_warning.gameObject;
                break;

            case WarningEnum.WELFARE:
                redPointObj = m_sprite_welfare_warning.gameObject;
                break;

            case WarningEnum.TITLE_NEWTITLE:
                redPointObj = m_sprite_prop_warning.gameObject;
                break;

            case WarningEnum.Question:
                redPointObj = m_sprite_question_warning.gameObject;
                break;

            case WarningEnum.Mail:
                redPointObj = m_sprite_friend_warning.gameObject;
                break;

            case WarningEnum.Noble:
                redPointObj = m_sprite_mall_warning.gameObject;
                m_sprite_Noble_warning.gameObject.SetActive(bShow);
                break;

            case WarningEnum.Clan:
                redPointObj = m_sprite_clan_warning.gameObject;
                break;

            case WarningEnum.Achievement:
                redPointObj = m_sprite_achievement_warning.gameObject;
                break;

            case WarningEnum.Daily:
                redPointObj = m_sprite_daily_warning.gameObject;
                break;

            case WarningEnum.GodWeapen:
                redPointObj = m_sprite_godweapen_warning.gameObject;
                break;

            case WarningEnum.OpenServer:
                redPointObj = m_sprite_openserver_warning.gameObject;
                break;

            case WarningEnum.FirstRechargeReward:
                redPointObj = m_sprite_FirstRecharge_warning.gameObject;
                break;

            case WarningEnum.Activity:
                redPointObj = m_sprite_activity_warning.gameObject;
                break;

            case WarningEnum.Forging:
                redPointObj = m_sprite_forging_warning.gameObject;
                break;

            case WarningEnum.Accumulative:
                redPointObj = m_sprite_Accumulative_warning.gameObject;
                break;

            case WarningEnum.Ride:
                redPointObj = m_sprite_ride_warning.gameObject;
                break;

            case WarningEnum.HttpDown:
                redPointObj = m_sprite_HttpDown_warning.gameObject;
                break;
            }
            if (redPointObj != null)
            {
                redPointObj.SetActive(bShow);
            }

            if (direction == WarningDirection.None)
            {
                //不涉及到三角标和头像红点提示的系统return;
                return;
            }
            if (!m_lstWarnningSystem.ContainsKey(direction))
            {
                m_lstWarnningSystem.Add(direction, new List <WarningEnum>());
            }
            if (bShow)
            {
                if (!m_lstWarnningSystem[direction].Contains(model))
                {
                    m_lstWarnningSystem[direction].Add(model);
                }
            }
            else
            {
                if (m_lstWarnningSystem[direction].Contains(model))
                {
                    m_lstWarnningSystem[direction].Remove(model);
                }
            }
            if (direction == WarningDirection.Right)
            {
                bool showRed = m_lstWarnningSystem[direction].Count > 0;
                m_sprite_leftbtn_warning.gameObject.SetActive(showRed);
            }
            else if (direction == WarningDirection.Left)
            {
                m_sprite_face_warning.gameObject.SetActive(m_lstWarnningSystem[direction].Count > 0);
            }
        }
        break;

        //摇杆
        case GameEventID.ENTITYSYSTEM_LEAVEMAP:
        {
            ResetJoystick();
            //小地图
            ReleaseTexture();
        }
        break;

        case GameEventID.SKLL_LONGPRESS:
        {
            stSkillLongPress press = (stSkillLongPress)param;
            //if (press.userID == MainPlayerHelper.GetPlayerUID())
            {
                m_bSkillLongPress = press.bLongPress;
            }
        }
        break;

        case GameEventID.ENTITYSYSTEM_RELIVE:
        {
            stEntityRelive ed = (stEntityRelive)param;
            if (ed.uid == MainPlayerHelper.GetPlayerUID())
            {
                ResetJoystick();

                //清采集按钮
                if (DataManager.Manager <ComBatCopyDataManager>().EnterCopyID != 0)
                {
                    stCampCollectNpc npc = new stCampCollectNpc {
                        enter = false, npcid = 0
                    };
                    UpdateFBPickBtn(npc);
                }
            }
        }
        break;

        case GameEventID.ENTITYSYSTEM_NEWNAME:
        {
            Client.stNewName name = (Client.stNewName)param;
            UserData.CurrentRole.name = name.newName;
            m_label_mainroleName.text = name.newName;
        }
        break;

        case GameEventID.EJOYSTICKSTABLE:
        {
            if (param != null)
            {
                m_bJoystickStable = (bool)param;
            }
            SetMainCollider();
        }
        break;

        case GameEventID.REFRESHTRANSMITPUSHMSGSTATUS:
        {
            RefreshBtns();
        }
        break;

        case GameEventID.SYSTEM_GAME_READY:
        {
            ControlMainBtnParticle(m_sprite_FanLi_warning.parent.transform, true);

            //ControlMainBtnParticle(m_sprite_FirstRecharge_warning.parent.transform, true);
            //ControlMainBtnParticle(m_sprite_activity_warning.parent.transform, true);
            //ControlMainBtnParticle(m_sprite_Noble_warning.parent.transform, true);
            //ControlMainBtnParticle(m_sprite_Accumulative_warning.parent.transform, true);
        }
        break;

        default:
            break;
        }
    }