Пример #1
0
    public override void DoBeforeLeaving()
    {
        if (DoNotSendBeatEnd)
        {
            if (GameManager.Instance.CurrentGameMode == GameMode.SINGLE_PLAYER)
            {
                SMsgAdsorptionContextNum_CS sMsgAdsorptionContextNum_CS = new SMsgAdsorptionContextNum_CS();
                sMsgAdsorptionContextNum_CS.byContextNum = 1;

                sMsgAdsorptionContextNum_CS.list = new System.Collections.Generic.List <SMsgFightAdsorption_CS>();

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

                sMsgAdsorptionContextNum_CS.list.Add(sMsgFightAdsorption_CS);

                NetServiceManager.Instance.BattleService.SendFightAdsorption_CS(sMsgAdsorptionContextNum_CS);
            }
        }

        base.DoBeforeLeaving();
    }
Пример #2
0
    private void Absord(long uid, Vector3 pos, Vector3 dir)
    {
        float distance = Vector3.Distance(m_thisTransfrom.position, pos);

        if (distance > m_impactData.m_beatBackSpeed && m_impactData.m_beatBackDuration != 0)
        {
            //int v = (int)(distance *m_impactData.m_beatBackAcceleration/m_impactData.m_beatBackDuration*10.0f);
            int v = (int)(distance / (m_impactData.m_beatBackDuration / 1000.0f));
            SMsgBattleBeAdsorb_SC sMsgBattleBeAdsorb_SC = new SMsgBattleBeAdsorb_SC();
            sMsgBattleBeAdsorb_SC.uidFighter = uid;
            sMsgBattleBeAdsorb_SC.PosX       = pos.x * 10.0f;
            sMsgBattleBeAdsorb_SC.PosY       = -pos.z * 10.0f;
            sMsgBattleBeAdsorb_SC.DirX       = dir.x;
            sMsgBattleBeAdsorb_SC.DirY       = -dir.z;
            sMsgBattleBeAdsorb_SC.speed      = v * 10;
            sMsgBattleBeAdsorb_SC.time       = (int)(m_impactData.m_beatBackDuration);

            RaiseEvent(EventTypeEnum.BeAdsorb.ToString(), sMsgBattleBeAdsorb_SC);

            //send to server
            SMsgFightAdsorption_CS sMsgFightAdsorption_CS = new SMsgFightAdsorption_CS();
            sMsgFightAdsorption_CS.uidFighter = uid;
            sMsgFightAdsorption_CS.hitedPosX  = pos.x * 10.0f;
            sMsgFightAdsorption_CS.hitedPosY  = -pos.z * 10.0f;
            sMsgFightAdsorption_CS.byType     = 1;

            //NetServiceManager.Instance.BattleService.SendFightAdsorption_CS(sMsgFightAdsorption_CS);
            adsorbList.Add(sMsgFightAdsorption_CS);
        }
    }