예제 #1
0
    public override void DoBeforeLeaving()
    {
        Vector3 _Temporary_LeavePoint = this.m_MonsterBehaviour.ThisTransform.position;
        float   distance = Vector3.Distance(_Temporary_EnterPoint, _Temporary_LeavePoint);

        //TraceUtil.Log("击退结算 : " + distance);

        if (!DoNotSendBeatEnd)
        {
            if (GameManager.Instance.CurrentGameMode == GameMode.SINGLE_PLAYER)
            {
                SMsgBeatBackContextNum_CS sMsgBeatBackContextNum_CS = new SMsgBeatBackContextNum_CS();
                sMsgBeatBackContextNum_CS.byContextNum = 1;
                sMsgBeatBackContextNum_CS.list         = new System.Collections.Generic.List <SMsgFightBeatBack_CS>();

                SMsgFightBeatBack_CS sMsgFightBeatBack_CS = new SMsgFightBeatBack_CS();
                sMsgFightBeatBack_CS.uidFighter = m_MonsterBehaviour.RoleDataModel.SMsg_Header.uidEntity;
                sMsgFightBeatBack_CS.byType     = 0;
                sMsgFightBeatBack_CS.hitedPosX  = m_MonsterBehaviour.ThisTransform.position.x * 10.0f;
                sMsgFightBeatBack_CS.hitedPosY  = -m_MonsterBehaviour.ThisTransform.position.z * 10.0f;

                sMsgBeatBackContextNum_CS.list.Add(sMsgFightBeatBack_CS);

                NetServiceManager.Instance.BattleService.SendFightBeatBackCS(sMsgBeatBackContextNum_CS);
            }
        }

        base.DoBeforeLeaving();
    }
예제 #2
0
    private void BeatBack(long uid, Vector3 pos, Vector3 dir)
    {
        SMsgBattleBeatBack_SC sMsgBattleBeatBack_SC = new SMsgBattleBeatBack_SC();

        sMsgBattleBeatBack_SC.uidFighter  = uid;
        sMsgBattleBeatBack_SC.PosX        = pos.x * 10.0f;
        sMsgBattleBeatBack_SC.PosY        = -pos.z * 10.0f;
        sMsgBattleBeatBack_SC.DirX        = dir.x;
        sMsgBattleBeatBack_SC.DirY        = -dir.z;
        sMsgBattleBeatBack_SC.speed       = (int)(m_impactData.m_beatBackSpeed * 10.0f);
        sMsgBattleBeatBack_SC.Accelerated = (int)(m_impactData.m_beatBackAcceleration * 10.0f);
        sMsgBattleBeatBack_SC.time        = (int)(m_impactData.m_beatBackDuration);

        RaiseEvent(EventTypeEnum.BeatBack.ToString(), sMsgBattleBeatBack_SC);

        //send to server
        SMsgFightBeatBack_CS sMsgFightBeatBack_CS = new SMsgFightBeatBack_CS();

        sMsgFightBeatBack_CS.uidFighter = uid;
        sMsgFightBeatBack_CS.byType     = 1;
        sMsgFightBeatBack_CS.hitedPosX  = pos.x * 10.0f;
        sMsgFightBeatBack_CS.hitedPosY  = -pos.z * 10.0f;
        //NetServiceManager.Instance.BattleService.SendFightBeatBackCS(sMsgFightBeatBack_CS);
        beatBackList.Add(sMsgFightBeatBack_CS);
    }
예제 #3
0
    public override void DoBeforeLeaving()
    {
        if (GameManager.Instance.CurrentGameMode == GameMode.SINGLE_PLAYER)
        {
            SMsgBeatBackContextNum_CS sMsgBeatBackContextNum_CS = new SMsgBeatBackContextNum_CS();
            sMsgBeatBackContextNum_CS.byContextNum = 1;
            sMsgBeatBackContextNum_CS.list         = new List <SMsgFightBeatBack_CS>();

            SMsgFightBeatBack_CS sMsgFightBeatBack_CS = new SMsgFightBeatBack_CS();
            sMsgFightBeatBack_CS.uidFighter = m_PlayerBehaviour.RoleDataModel.SMsg_Header.uidEntity;
            sMsgFightBeatBack_CS.byType     = 0;
            sMsgFightBeatBack_CS.hitedPosX  = m_PlayerBehaviour.ThisTransform.position.x * 10.0f;
            sMsgFightBeatBack_CS.hitedPosY  = -m_PlayerBehaviour.ThisTransform.position.z * 10.0f;

            sMsgBeatBackContextNum_CS.list.Add(sMsgFightBeatBack_CS);

            NetServiceManager.Instance.BattleService.SendFightBeatBackCS(sMsgBeatBackContextNum_CS);
        }

        base.DoBeforeLeaving();
    }