Example #1
0
    void OnTriggerEnter(Collider other)
    {
        XKPlayerMoveCtrl playerMoveCom = other.GetComponent <XKPlayerMoveCtrl>();

        if (playerMoveCom == null)
        {
            return;
        }
        //SSDebug.Log("SSTriggerChangeMat::OnTriggerEnter -> playerMoveCom.playerIndex ==== " + playerMoveCom.PlayerIndex);

        if (m_PlayerEnumList == null)
        {
            if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_TriggerManage != null)
            {
                //设置信息.
                XkGameCtrl.GetInstance().m_TriggerManage.SetTriggerChangeMat(this);
            }
            m_PlayerEnumList = new List <PlayerEnum>();
        }

        if (m_PlayerEnumList != null && m_PlayerEnumList.Contains(playerMoveCom.PlayerIndex) == false)
        {
            m_PlayerEnumList.Add(playerMoveCom.PlayerIndex);
            //更换材质球为透明的.
            UpdateMaterialState(MaterialState.TouMing);
        }
    }
Example #2
0
    void OnTriggerStay(Collider other)
    {
        if (IsOpenTrigger == false)
        {
            return;
        }

        XKPlayerMoveCtrl playerMoveCom = other.GetComponent <XKPlayerMoveCtrl>();

        if (playerMoveCom == null)
        {
            return;
        }

        if (IsJPBossHuoYanWeapon == true)
        {
            //玩家受到JPBoss的火焰武器伤害.
            playerMoveCom.OnJPBossHuoYanHitPlayer();
        }

        if (!playerMoveCom.GetIsWuDiState() && !playerMoveCom.GetIsShanShuoState())
        {
            if (!playerMoveCom.GetIsDeathPlayer())
            {
                XkGameCtrl.GetInstance().SubGamePlayerHealth(playerMoveCom.PlayerIndex, PlayerDamage);
            }
        }
    }
    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;
        }

        XkGameCtrl.PlayerJiFenArray[indexPlayer] += fenShuValTmp;
        XKPlayerScoreCtrl.ChangePlayerScore(indexVal);

        XKPlayerFenShuMove fenShuMoveCom = GetXKPlayerFenShuMove();

        if (fenShuMoveCom == null)
        {
            return;
        }
        Transform playerTr = XKPlayerMoveCtrl.GetXKPlayerMoveCtrl(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 OnCollisionEnter(Collision collision)
    {
        //Debug.Log("Unity:"+"**********OnCollisionEnter-> collision "+collision.gameObject.name);
        XKPlayerMoveCtrl playerScript = collision.gameObject.GetComponent <XKPlayerMoveCtrl>();

        if (playerScript == null)
        {
            return;
        }

        if (NpcJiFen == NpcJiFenEnum.Boss || !IsCanHitNpc)
        {
            if (Time.realtimeSinceStartup - TimeHitBoss < 1f)
            {
                return;
            }
            TimeHitBoss = Time.realtimeSinceStartup;

            Vector3 pushDir   = Vector3.zero;
            Vector3 playerPos = playerScript.transform.position;
            Vector3 hitPos    = transform.position;
            playerPos.y = hitPos.y = 0f;
            pushDir     = playerPos - hitPos;
            playerScript.PushPlayerTanKe(pushDir);
            if (!playerScript.GetIsWuDiState())
            {
                XkGameCtrl.GetInstance().SubGamePlayerHealth(playerScript.PlayerIndex, PlayerDamage);
            }
            return;
        }

        if (IsDeathNpc)
        {
            return;
        }

        if (!playerScript.GetIsWuDiState())
        {
            XkGameCtrl.GetInstance().SubGamePlayerHealth(playerScript.PlayerIndex, PlayerDamage);
        }

        CheckNpcDeathExplode();
        if (!IsYouTongNpc)
        {
            XkGameCtrl.GetInstance().AddPlayerKillNpc(playerScript.PlayerIndex, NpcJiFen, GetJiFen());
            ShowPiaoFen(playerScript.PlayerIndex);
        }

        if (NpcScript != null)
        {
            IsDeathNpc = true;
            NpcScript.TriggerRemovePointNpc(1);
        }
        else if (CannonScript != null)
        {
            IsDeathNpc = true;
            CannonScript.OnRemoveCannon(PlayerEnum.Null, 1);
        }
        CheckHiddenNpcObjArray();
    }
    public void ActiveCamera(Transform playerTran)
    {
        AimPlayerTran = playerTran;
        if (AimPlayerTran != null)
        {
            PlayerMvScript = AimPlayerTran.GetComponent <XKPlayerMoveCtrl>();
        }

        if (Network.peerType == NetworkPeerType.Server /* || XkGameCtrl.GetInstance().IsServerCameraTest*/)
        {
            if (Camera.main.gameObject != XkGameCtrl.ServerCameraObj)
            {
                if (Camera.main != null)
                {
                    Camera.main.enabled = false;
                }
            }

            if (CameraCom != null)
            {
                CameraCom.enabled = false;
            }
            DingDianAimCamera = gameObject;
            CameraCom         = XkGameCtrl.ServerCameraObj.camera;
            XkGameCtrl.SetServerCameraTran(transform);
        }
        else
        {
            if (Camera.main != null)
            {
                Camera.main.enabled = false;
            }
            gameObject.SetActive(true);
        }
    }
    internal void Init()
    {
        if (IsInit == true)
        {
            return;
        }
        IsInit = true;

        XKPlayerMoveCtrl playerMoveCom = gameObject.GetComponentInParent <XKPlayerMoveCtrl>();

        if (playerMoveCom != null)
        {
            PlayerSt = playerMoveCom.PlayerIndex;
        }
        //SSDebug.LogWarning("PlayerXueTiao init................ PlayerSt ==== " + PlayerSt);

        CameraTran = Camera.main != null ? Camera.main.transform : null;
#if !USE_PLAYER_WX_HEAD
        if (m_PlayerNumImg != null && m_MatNum != null)
        {
            m_MatNum.mainTexture = m_PlayerNumImg;
        }
#else
        if (m_TouMingHead != null)
        {
            //m_HeadUrl = "";
            m_MatNum.mainTexture = m_TouMingHead;
        }
#endif

        SetActivePlayerXuTiao(false);
        SetPlayerIndex(PlayerSt);
    }
Example #7
0
    void OnCollisionEnter(Collision collision)
    {
        //Debug.Log("Unity:"+"OnCollisionEnter -> nameHit "+collision.gameObject.name);
        string layerName = LayerMask.LayerToName(collision.gameObject.layer);

        if (layerName == XkGameCtrl.TerrainLayer &&
            IsSpawnDaoJu &&
            !IsDelayDestroy)
        {
            InitDelayDestroyBuJiBao();
        }

        if (Network.peerType == NetworkPeerType.Server)
        {
            return;
        }

        XKPlayerMoveCtrl script = collision.transform.root.GetComponent <XKPlayerMoveCtrl>();

        if (script == null)
        {
            return;
        }
        RemoveBuJiBao(script.PlayerIndex);
    }
 /// <summary>
 /// 删除获得战车代金券的玩家信息.
 /// </summary>
 public void RemoveGetZhanCheDaiJinQuanPlayer(XKPlayerMoveCtrl playerCom)
 {
     if (m_GenZongDanData != null)
     {
         m_GenZongDanData.RemovePlayerCom(playerCom);
     }
 }
Example #9
0
    void MoveDaoJuToPlayer()
    {
        if (IsMoveOverDaoJuToPlayer)
        {
            return;
        }

        if (AimPlayerTr == null)
        {
            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);
        }
    }
 public void Init()
 {
     Debug.Log("SSGameJiXuBaoYueDlg::Init...");
     m_ExitType = DlgEnum.QueDing;
     switch (m_ExitType)
     {
         case DlgEnum.QueDing:
             {
                 SetQueDingUITexture(1);
                 SetQuXiaoUITexture(0);
                 SetAcitveBtFlash();
                 QueDingUI.transform.localScale = m_BigScale;
                 QuXiaoUI.transform.localScale = m_SmallScale;
                 break;
             }
         case DlgEnum.QuXiao:
             {
                 SetQueDingUITexture(0);
                 SetQuXiaoUITexture(1);
                 SetAcitveBtFlash();
                 QueDingUI.transform.localScale = m_SmallScale;
                 QuXiaoUI.transform.localScale = m_BigScale;
                 break;
             }
     }
     XKPlayerMoveCtrl.OpenAllPlayerWuDiTeXiao();
     InputEventCtrl.GetInstance().ClickTVYaoKongEnterBtEvent += ClickTVYaoKongEnterBtEvent;
     InputEventCtrl.GetInstance().ClickTVYaoKongLeftBtEvent += ClickTVYaoKongLeftBtEvent;
     InputEventCtrl.GetInstance().ClickTVYaoKongRightBtEvent += ClickTVYaoKongRightBtEvent;
 }
 void OpenXueBaoDaoJuMoveToPlayer(PlayerEnum indexPlayer)
 {
     if (XKPlayerMoveCtrl.GetInstance(indexPlayer) != null)
     {
         AimPlayerTr = XKPlayerMoveCtrl.GetInstance(indexPlayer).transform;
     }
 }
Example #12
0
 public void HiddenJiSuUI(int key = 0)
 {
     if (key == 0)
     {
         XKPlayerMoveCtrl playerMoveScript = XKPlayerMoveCtrl.GetXKPlayerMoveCtrl(PlayerSt);
         playerMoveScript.ResetPlayerJiSuState();
     }
     gameObject.SetActive(false);
 }
    public static bool GetPlayerIsHuoLiAllOpen(PlayerEnum indexPlayer)
    {
        XKPlayerMoveCtrl moveScript = XKPlayerMoveCtrl.GetInstance(indexPlayer);

        if (moveScript == null)
        {
            return(false);
        }
        return(moveScript.GetIsHuoLiAllOpen());
    }
    public static void SetPlayerIsHuoLiAllOpen(PlayerEnum indexPlayer, bool isFire = true)
    {
        XKPlayerMoveCtrl moveScript = XKPlayerMoveCtrl.GetInstance(indexPlayer);

        if (moveScript == null)
        {
            return;
        }
        moveScript.SetIsHuoLiAllOpen(isFire);
    }
 //[Range(0f, 100f)]public float PlayerDamageDis = 10f;
 void OnTriggerEnter(Collider other)
 {
     XKPlayerMoveCtrl playerMoveScript = other.GetComponent<XKPlayerMoveCtrl>();
     if (playerMoveScript == null) {
         return;
     }
     Debug.Log("Unity:"+"XKTiaoBanCtrl::OnTriggerEnter -> hit "+other.name);
     //XkGameCtrl.ActivePlayerToGame(playerMoveScript.PlayerIndex, true);
     playerMoveScript.MakePlayerToTiaoYueDian(TiaoDianTr);
 }
    void UpdateAmmoHit()
    {
        if (AmmoType == PlayerAmmoType.PaiJiPaoAmmo)
        {
            return;
        }

        bool             isHitObj     = false;
        XKPlayerMoveCtrl playerScript = null;

        Collider[] hits = Physics.OverlapSphere(AmmoTran.position, HitRadius, NpcAmmoHitLayer);
        foreach (Collider c in hits)
        {
            if (c.isTrigger)
            {
                continue;
            }

            playerScript = c.GetComponent <XKPlayerMoveCtrl>();
            isHitObj     = true;
            break;
        }

        Vector3 posA = AmmoTran.position;
        Vector3 posB = AmmoTran.position;

        if (!isHitObj)
        {
            for (int i = 0; i < 4; i++)
            {
                playerScript = XKPlayerMoveCtrl.GetXKPlayerMoveCtrl((PlayerEnum)(i + 1));
                if (playerScript == null || playerScript.GetIsDeathPlayer())
                {
                    continue;
                }
                posB   = playerScript.transform.position;
                posA.y = posB.y = 0f;

                if (Vector3.Distance(posA, posB) <= HitRadius)
                {
                    isHitObj = true;
                    break;
                }
            }
        }

        if (isHitObj)
        {
            if (playerScript != null && !playerScript.GetIsDeathPlayer())
            {
                XkGameCtrl.GetInstance().SubGamePlayerHealth(playerScript.PlayerIndex, PlayerDamage);
            }
            MoveAmmoOnCompelteITween();
        }
    }
Example #17
0
    void OnTriggerExit(Collider other)
    {
        XKPlayerMoveCtrl playerMoveCom = other.GetComponent <XKPlayerMoveCtrl>();

        if (playerMoveCom == null)
        {
            return;
        }
        //SSDebug.Log("SSTriggerChangeMat::OnTriggerExit -> playerMoveCom.playerIndex ==== " + playerMoveCom.PlayerIndex);
        SubEnterCount(playerMoveCom.PlayerIndex);
    }
Example #18
0
    void HiddenHuDunUI()
    {
        gameObject.SetActive(false);
        XKPlayerMoveCtrl playerMoveScript = XKPlayerMoveCtrl.GetXKPlayerMoveCtrl(PlayerSt);

        if (playerMoveScript == null)
        {
            return;
        }
        playerMoveScript.ResetIsWuDiState();
    }
    void HiddenHuDunUI()
    {
        IsCanResetHuDunTime = false;
        gameObject.SetActive(false);
        XKPlayerMoveCtrl playerMoveScript = XKPlayerMoveCtrl.GetInstance(PlayerSt);

        if (playerMoveScript == null)
        {
            return;
        }
        playerMoveScript.ResetIsWuDiState();
    }
        public void RemovePlayerCom(XKPlayerMoveCtrl playerCom)
        {
            if (playerCom == null)
            {
                return;
            }

            if (PlayerComList.Contains(playerCom) == true)
            {
                PlayerComList.Remove(playerCom);
            }
            playerCom.ResetZhanCheDaiJinQuanCount();
        }
Example #21
0
    public static void AddPlayerMoveList(XKPlayerMoveCtrl playerScript)
    {
        if (PlayerMoveList == null)
        {
            PlayerMoveList = new List <XKPlayerMoveCtrl>();
        }

        if (PlayerMoveList.Contains(playerScript))
        {
            return;
        }
        PlayerMoveList.Add(playerScript);
    }
    /// <summary>
    /// 当玩家操控了手柄按键.
    /// </summary>
    internal void OnPlayerDoPadButton(PlayerEnum playerIndex)
    {
        int indexVal = (int)playerIndex - 1;

        if (indexVal < 0 || indexVal >= 4)
        {
            return;
        }

        if (XKPlayerMoveCtrl.GetInstance(playerIndex) != null)
        {
            XKPlayerMoveCtrl.GetInstance(playerIndex).OnPlayerAction();
        }
    }
Example #23
0
    public void ShowPlayerJiJiuBao(PlayerEnum indexVal)
    {
        XKPlayerJiJiuBaoMove huoLiOpenMoveCom = GetXKPlayerJiJiuBaoMove();

        if (huoLiOpenMoveCom == null)
        {
            return;
        }

        Transform playerTr = XKPlayerMoveCtrl.GetXKPlayerMoveCtrl(indexVal).PiaoFenPoint;
        Vector3   startPos = XkGameCtrl.GetInstance().GetWorldObjToScreenPos(playerTr.position);

        huoLiOpenMoveCom.SetPlayerJiJiuBaoVal(startPos);
    }
Example #24
0
    public void ShowPlayerFenShuBeiLv(PlayerEnum indexVal)
    {
        XKFenShuBeiLvMove fenShuBeiLvMoveCom = GetXKFenShuBeiLvMove();

        if (fenShuBeiLvMoveCom == null)
        {
            return;
        }

        Transform playerTr = XKPlayerMoveCtrl.GetInstance(indexVal).PiaoFenPoint;
        Vector3   startPos = XkGameCtrl.GetInstance().GetWorldObjToScreenPos(playerTr.position);

        fenShuBeiLvMoveCom.SetPlayerFenShuBeiLvVal(startPos);
    }
    void MoveAmmoByItween()
    {
        float      disVal = 500f;
        RaycastHit hitInfo;

        Vector3[] posArray   = new Vector3[2];
        Vector3   startPos   = AmmoTran.position;
        Vector3   forwardVal = AmmoTran.forward;
        //Instantiate(testObjAmmo, AmmoTran.position, AmmoTran.rotation); //test
        Vector3 firePos = startPos + (forwardVal * disVal);

        startPos += forwardVal * 3f;
        //优化处理,当npo子弹速度足够大时采用.
        if (MvSpeed > SpeedMaxVal)
        {
            Physics.Raycast(startPos, forwardVal, out hitInfo, disVal, NpcAmmoHitLayer);
            if (hitInfo.collider != null)
            {
                firePos = hitInfo.point;
                //Debug.Log("Unity:"+"*****npcAmmoHitObj "+hitInfo.collider.name);
                XKPlayerMoveCtrl playerScript = hitInfo.collider.GetComponent <XKPlayerMoveCtrl>();
                if (playerScript != null && !playerScript.GetIsWuDiState())
                {
                    if (AmmoType == PlayerAmmoType.GenZongAmmo && IsOnlyHitTarget == true &&
                        TargetObject != null && TargetObject != playerScript.GenZongDanAimPoint)
                    {
                        //只对跟踪目标造成伤害的跟踪弹.
                    }
                    else
                    {
                        XkGameCtrl.GetInstance().SubGamePlayerHealth(playerScript.PlayerIndex, PlayerDamage);
                    }
                }
            }
        }

//		TimeScaleVal = Time.timeScale;
        posArray[0] = AmmoTran.position;
        posArray[1] = firePos;
                #if !USE_SPHERE_HIT
        AmmoStartPos = posArray[0];
        AmmoEndPos   = firePos;
                #endif
        iTween.MoveTo(ObjAmmo, iTween.Hash("path", posArray,
                                           "speed", MvSpeed,
                                           "orienttopath", true,
                                           "easeType", iTween.EaseType.linear,
                                           "oncomplete", "MoveAmmoOnCompelteITween"));
    }
    IEnumerator DelayActivePlayerToGame(XKPlayerMoveCtrl playerScript)
    {
        playerScript.SetIsActiveZhuiYa(true);
        XKGlobalData.GetInstance().PlayAudioXuanYaDiaoLuo();
        XkGameCtrl.GetInstance().SubGamePlayerHealth(playerScript.PlayerIndex, PlayerDamage, true);
        if (!XkGameCtrl.GetIsActivePlayer(playerScript.PlayerIndex))
        {
            playerScript.SetIsActiveZhuiYa(false);
            yield break;
        }
        yield return(new WaitForSeconds(TimeResetPlayer));

        XkGameCtrl.ActivePlayerToGame(playerScript.PlayerIndex, true);
        playerScript.SetIsActiveZhuiYa(false);
    }
    /// <summary>
    /// 显示抽奖提示UI.
    /// </summary>
    internal void ShowChouJiangTiShi(PlayerEnum indexVal)
    {
        SSChouJiangTiShi tiShiCom = CreateChouJiangTiShi();

        if (tiShiCom == null)
        {
            return;
        }

        if (XKPlayerMoveCtrl.GetInstance(indexVal) != null)
        {
            Transform playerTr = XKPlayerMoveCtrl.GetInstance(indexVal).PiaoFenPoint;
            Vector3   startPos = XkGameCtrl.GetInstance().GetWorldObjToScreenPos(playerTr.position);
            tiShiCom.ShowChouJiangTiShi(indexVal, startPos);
        }
    }
    /// <summary>
    /// 攻击已经得到战车代金券的玩家的跟踪弹.
    /// </summary>
    public void SetGenZongDanAimTarget(XKPlayerMoveCtrl playerCom)
    {
        if (AmmoType != PlayerAmmoType.GenZongAmmo)
        {
            return;
        }
        //SSDebug.LogWarning("SetGenZongDanAimTarget -> *** TestGenZongDanNum ================== " + TestGenZongDanNum);

        if (TargetObject != null || playerCom == null) //跟踪弹的跟踪对象已经存在时不再更新.
        //if (playerCom == null) //强制刷新跟踪弹的跟踪对象.
        {
            return;
        }
        IsOnlyHitTarget = true;
        TargetObject    = playerCom.GenZongDanAimPoint;
    }
Example #29
0
    public void ShowPlayerJiSu(PlayerEnum indexVal)
    {
        XKPlayerJiSuMove jiSuMoveCom = GetXKPlayerJiSuMove();

        if (jiSuMoveCom == null)
        {
            return;
        }

        Transform playerTr = XKPlayerMoveCtrl.GetInstance(indexVal).PiaoFenPoint;
//		playerTr = TestPlayerTr; //test

        Vector3 startPos = XkGameCtrl.GetInstance().GetWorldObjToScreenPos(playerTr.position);

        jiSuMoveCom.SetPlayerJiSuVal(startPos);
    }
Example #30
0
    void OnTriggerEnter(Collider other)
    {
        if (XkGameCtrl.GetInstance().m_GamePlayerAiData.IsActiveAiPlayer == false)
        {
            //关闭玩家Ai坦克运动逻辑.
            return;
        }

        XKPlayerMoveCtrl playerMoveCom = other.GetComponent <XKPlayerMoveCtrl>();

        if (playerMoveCom == null || playerMoveCom.m_PlayerAiMove == null)
        {
            return;
        }
        playerMoveCom.m_PlayerAiMove.OnHitAiMoveTrigger(m_TriggerState);
    }