public void ShowPlayerFenShu(PlayerEnum indexVal, int fenShuVal) { int indexPlayer = (int)indexVal - 1; indexPlayer = (indexPlayer < 0 || indexPlayer > 3) ? 0 : indexPlayer; int fenShuValTmp = (fenShuVal * XKDaoJuGlobalDt.FenShuBeiLv[indexPlayer]); if (fenShuValTmp <= 0) { return; } if (XkGameCtrl.GetIsActivePlayer(indexVal) == true && XkGameCtrl.GetIsDeathPlayer(indexVal) == false) { XkGameCtrl.PlayerJiFenArray[indexPlayer] += fenShuValTmp; } XKPlayerScoreCtrl.ChangePlayerScore(indexVal); XKPlayerFenShuMove fenShuMoveCom = GetXKPlayerFenShuMove(indexVal); if (fenShuMoveCom == null) { return; } Transform playerTr = XKPlayerMoveCtrl.GetInstance(indexVal).PiaoFenPoint; // playerTr = TestPlayerTr; //test Vector3 startPos = XkGameCtrl.GetInstance().GetWorldObjToScreenPos(playerTr.position); int fenShuLen = fenShuVal.ToString().Length; startPos.x += 9f * (fenShuLen - 1); fenShuMoveCom.SetPlayerFenShuVal(fenShuVal, startPos, indexPlayer); }
void MoveDaoJuToPlayer() { if (IsMoveOverDaoJuToPlayer) { return; } if (AimPlayerTr == null) { return; } if (XkGameCtrl.GetIsDeathPlayer(m_PlayerIndex) == true) { if (IsDeath == false) { IsDeath = true; //当血包或其它道具飞向玩家的过程中如果玩家GG了则关闭道具飞向玩家的逻辑并且将其删除。 DestroyNetObj(gameObject); } return; } Vector3 dirVal = AimPlayerTr.position - DaoJuTr.position; dirVal = dirVal.normalized * XKDaoJuGlobalDt.GetInstance().CiLiDaoJuSpeed *Time.deltaTime; DaoJuTr.Translate(dirVal, Space.World); if (Vector3.Distance(AimPlayerTr.position, DaoJuTr.position) <= 0.5f) { //Debug.Log("Unity:"+"MoveDaoJuToPlayer..."); IsMoveOverDaoJuToPlayer = true; XKPlayerMoveCtrl script = AimPlayerTr.GetComponent <XKPlayerMoveCtrl>(); if (script == null) { return; } RemoveBuJiBao(script.PlayerIndex); } }
static void CheckPlayerZuiGaoFen(bool isHuLueTime = false) { //XkGameCtrl.CheckPlayerActiveNum(); if (XkGameCtrl.PlayerActiveNum <= 0) { return; } if (Time.time - TimeLastMaxScore < 0.5f) { return; } TimeLastMaxScore = Time.time; int maxScore = 0; int indexVal = -1; PlayerEnum indexPlayer = PlayerEnum.Null; for (int i = 0; i < 4; i++) { indexPlayer = (PlayerEnum)(i + 1); if (XkGameCtrl.GetIsActivePlayer(indexPlayer) == false) { continue; } if (XkGameCtrl.GetIsDeathPlayer(indexPlayer) == true) { XKPlayerScoreCtrl playerScoreCom = GetInstance(indexPlayer); if (playerScoreCom != null) { playerScoreCom.SetActiveZuiGaoFen(false); } continue; } //switch (i) { //case 0: // if (!XkGameCtrl.IsActivePlayerOne) { // continue; // } // break; //case 1: // if (!XkGameCtrl.IsActivePlayerTwo) { // continue; // } // break; //case 2: // if (!XkGameCtrl.IsActivePlayerThree) { // continue; // } // break; //case 3: // if (!XkGameCtrl.IsActivePlayerFour) { // continue; // } // break; //} if (XkGameCtrl.PlayerJiFenArray[i] > maxScore) { maxScore = XkGameCtrl.PlayerJiFenArray[i]; indexVal = i; } } //Debug.Log("Unity:"+"CheckPlayerZuiGaoFen -> maxScore "+maxScore+", index "+indexVal); if (indexVal == -1) { return; } XKPlayerScoreCtrl playerScore = null; switch (indexVal) { case 0: playerScore = _InstanceP1; break; case 1: playerScore = _InstanceP2; break; case 2: playerScore = _InstanceP3; break; case 3: playerScore = _InstanceP4; break; } if (playerScore.ZuiGaoFenObj.activeSelf) { return; } if (_InstanceP1 != null) { _InstanceP1.SetActiveZuiGaoFen(playerScore == _InstanceP1); } if (_InstanceP2 != null) { _InstanceP2.SetActiveZuiGaoFen(playerScore == _InstanceP2); } if (_InstanceP3 != null) { _InstanceP3.SetActiveZuiGaoFen(playerScore == _InstanceP3); } if (_InstanceP4 != null) { _InstanceP4.SetActiveZuiGaoFen(playerScore == _InstanceP4); } }
// Update is called once per frame void Update() { if (CameraTran == null) { CameraTran = Camera.main != null ? Camera.main.transform : null; return; } if (Time.frameCount % 3 == 0) { if (XkGameCtrl.GetIsActivePlayer(PlayerSt) == false || XkGameCtrl.GetIsDeathPlayer(PlayerSt) == true) { //gameObject.SetActive(false); SetActivePlayerXuTiao(false); return; } } CheckPlayerHitCol(); Vector3 pos = Vector3.zero; Vector3 forwardVal = Vector3.zero; switch (KeyHitSt) { case 0: //血条在后. forwardVal = CameraTran.forward; forwardVal.y = 0f; NengLianTran.forward = forwardVal; pos = NengLianParentTr.position; pos += forwardVal * OffsetXT.z; //pos.x += OffsetXT.x; //pos.y += OffsetXT.y; NengLianTran.position = pos; break; case 1: //血条在左. forwardVal = CameraTran.right; forwardVal.y = 0f; NengLianTran.forward = forwardVal; pos = NengLianParentTr.position; pos += forwardVal * (OffsetXT.z + 3f); //pos.x += OffsetXT.x; //pos.y += OffsetXT.y; NengLianTran.position = pos; break; case 2: //血条在右. forwardVal = -CameraTran.right; forwardVal.y = 0f; NengLianTran.forward = forwardVal; pos = NengLianParentTr.position; pos += forwardVal * (OffsetXT.z + 3f); //pos.x += OffsetXT.x; //pos.y += OffsetXT.y; NengLianTran.position = pos; break; case 3: //血条在前. forwardVal = CameraTran.forward; forwardVal.y = 0f; NengLianTran.forward = forwardVal; pos = NengLianParentTr.position; pos -= forwardVal * (OffsetXT.z - 3.5f); //pos.x += OffsetXT.x; //pos.y += OffsetXT.y; NengLianTran.position = pos; break; } }
/// <summary> /// Removes the bu ji bao. playerSt == 0 -> hit TerrainLayer, /// playerSt == 1 -> PlayerOne, playerSt == 2 -> PlayerTwo. /// playerSt == 3 -> PlayerThree, playerSt == 4 -> PlayerFour. /// </summary> /// <param name="key">Key.</param> public void RemoveBuJiBao(PlayerEnum playerSt, int keyHit = 0) { if (XkGameCtrl.GetIsDeathPlayer(playerSt) == true) { //玩家血值耗尽. return; } if (IsDeath) { return; } IsDeath = true; CancelInvoke("DelayDestroyBuJiBao"); if (playerSt != PlayerEnum.Null || keyHit == 1) { //XKGlobalData.GetInstance().PlayAudioHitBuJiBao(); if (ExplodeObj != null) { GameObject obj = (GameObject)Instantiate(ExplodeObj, transform.position, transform.rotation); if (obj != null) { obj.transform.SetParent(XkGameCtrl.PlayerAmmoArray); } XkGameCtrl.CheckObjDestroyThisTimed(obj); if (obj != null && IsCaiPiaoDaoJu) { if (XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage != null) { int value = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameCaiPiaoData.GetPrintCaiPiaoValueByDeCaiState(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.SuiJiDaoJu, DaoJuType); SSCaiPiaoLiZiManage caiPiaoLiZi = obj.GetComponent <SSCaiPiaoLiZiManage>(); if (caiPiaoLiZi != null) { caiPiaoLiZi.ShowNumUI(value, playerSt); } else { Debug.LogWarning("CreatLiZi -> caiPiaoLiZi was null................."); } } if (XkGameCtrl.GetInstance().m_CaiPiaoFlyData != null) { //初始化飞出的彩票逻辑. XkGameCtrl.GetInstance().m_CaiPiaoFlyData.InitCaiPiaoFly(obj.transform.position, playerSt, SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.SuiJiDaoJu); } else { Debug.LogWarning("CreatLiZi -> m_CaiPiaoFlyData was null............"); } } } if (Network.peerType != NetworkPeerType.Server) { bool isMoveDaoJu = true; switch (BuJiBao) { case BuJiBaoType.FenShuDJ: isMoveDaoJu = false; //XKPlayerFenShuCtrl.GetInstance().ShowPlayerFenShu(playerSt, GetJiFen()); XKPlayerFenShuCtrl.GetInstance().ShowPlayerFenShu(playerSt, FenShuVal); break; case BuJiBaoType.JiSuDJ: //isMoveDaoJu = false; XKPlayerMoveCtrl.SetPlayerJiSuMoveSpeed(playerSt); XKPlayerMoveCtrl.SetPlayerJiSuState(playerSt); XKPlayerJiSuCtrl.GetInstance().ShowPlayerJiSu(playerSt); break; case BuJiBaoType.YiLiaoBaoDJ: { isMoveDaoJu = false; XkGameCtrl.AddPlayerHealth(playerSt, XKDaoJuGlobalDt.GetInstance().YiLiaoBaoXueLiangVal); XKPlayerJiJiuBaoCtrl.GetInstance().ShowPlayerJiJiuBao(playerSt); break; } case BuJiBaoType.BigYiLiaoBaoDJ: { //大医疗包. isMoveDaoJu = false; XkGameCtrl.AddPlayerHealth(playerSt, XKDaoJuGlobalDt.GetInstance().BigYiLiaoBaoXueLiang); //XKPlayerJiJiuBaoCtrl.GetInstance().ShowPlayerJiJiuBao(playerSt); break; } case BuJiBaoType.ShuangBeiFenShuDJ: isMoveDaoJu = false; //XKDaoJuGlobalDt.SetTimeFenShuBeiLv(playerSt, FenShuBeiLv); //XKDaoJuGlobalDt.SetTimeFenShuBeiLv(playerSt, 2); //XKFenShuBeiLvCtrl.GetInstance().ShowPlayerFenShuBeiLv(playerSt); break; case BuJiBaoType.QianHouFireDJ: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerQianHouFire(playerSt); break; case BuJiBaoType.ChangChengJiQiang: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerChangChengFire(playerSt); break; case BuJiBaoType.SanDanJiQiang: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerJiQiangSanDanFire(playerSt); break; case BuJiBaoType.QiangJiJiQiang: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerQiangJiFire(playerSt); break; case BuJiBaoType.PaiJiPaoDJ: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerIsPaiJiPaoFire(playerSt); break; case BuJiBaoType.ChongJiBoDJ: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerIsOpenChongJiBoZPFire(playerSt); break; case BuJiBaoType.ZhuPaoSanDanDJ: isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerIsSanDanZPFire(playerSt); break; case BuJiBaoType.HuoLiAllOpenDJ: //isMoveDaoJu = false; XKDaoJuGlobalDt.SetPlayerIsHuoLiAllOpen(playerSt); XKPlayerHuoLiAllOpenCtrl.GetInstance().ShowPlayerHuoLiOpen(playerSt); break; case BuJiBaoType.ChuanTouDan: isMoveDaoJu = false; XKPlayerAutoFire.GetInstanceAutoFire(playerSt).SetAmmoStateZhuPao(PlayerAmmoType.ChuanTouAmmo); break; case BuJiBaoType.DaoDan: case BuJiBaoType.GaoBaoDan: case BuJiBaoType.SanDan: case BuJiBaoType.GenZongDan: case BuJiBaoType.JianSuDan: case BuJiBaoType.NLHuDun: isMoveDaoJu = false; break; } if (isMoveDaoJu) { DaoJuCtrl.GetInstance().MoveDaoJuObjToPlayer(playerSt, transform); } } } DestroyNetObj(gameObject); }