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(); }
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); } }