public void OnCompelteRotFirePoint(int indexXiaoShuiJing) { if (DaShuiJingHealth.GetIsDeathNpc()) { return; } StartCoroutine(CheckXiaoShuiJingFireState(indexXiaoShuiJing)); }
bool CheckAmmoHitObj(GameObject hitObjNpc, PlayerEnum playerIndex) { // BuJiBaoCtrl buJiBaoScript = hitObjNpc.GetComponent<BuJiBaoCtrl>(); // if (buJiBaoScript != null) { // buJiBaoScript.RemoveBuJiBao(playerIndex); //buJiBaoScript // return; // } bool isStopCheckHit = false; if (AmmoType != PlayerAmmoType.PaiJiPaoAmmo) { XKPlayerCheckCamera checkCam = hitObjNpc.GetComponent <XKPlayerCheckCamera>(); if (checkCam != null) { IsHitNpcAmmo = true; //SSDebug.LogWarning("MoveAmmoOnCompelteITween ============== 55555555555555555"); MoveAmmoOnCompelteITween(); return(true); } } XKNpcHealthCtrl healthScript = hitObjNpc.GetComponent <XKNpcHealthCtrl>(); if (healthScript != null && !healthScript.GetIsDeathNpc()) { /*Debug.Log("Unity:"+"CheckAmmoHitObj -> OnDamageNpc: " +"AmmoType "+AmmoType +", AmmoName "+AmmoTran.name +", NpcName "+healthScript.GetNpcName() +", AmmoDamageDis "+AmmoDamageDis);*/ bool isHitNpc = false; switch (AmmoType) { case PlayerAmmoType.ChuanTouAmmo: case PlayerAmmoType.PaiJiPaoAmmo: { if (NpcHealthList == null) { NpcHealthList = new List <XKNpcHealthCtrl>(); } if (!NpcHealthList.Contains(healthScript)) { NpcHealthList.Add(healthScript); isHitNpc = true; } break; } default: { IsHitNpcAmmo = true; //MoveAmmoOnCompelteITween(); isStopCheckHit = true; isHitNpc = true; break; } } if (isHitNpc) { int baoJiDamage = 0; if (AmmoType == PlayerAmmoType.ChuanTouAmmo || AmmoType == PlayerAmmoType.DaoDanAmmo || AmmoType == PlayerAmmoType.PaiJiPaoAmmo || AmmoType == PlayerAmmoType.SanDanAmmo || AmmoType == PlayerAmmoType.ChongJiBoAmmo) { //获取玩家对代金券npc的暴击伤害. XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.CheckPlayerBaoJiDengJi(AmmoType, PlayerState, healthScript); if (XkGameCtrl.GetInstance().m_CaiPiaoHealthDt != null && healthScript.GetIsDaiJinQuanNpc() == true) { baoJiDamage = XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.GetBaoJiDamage(PlayerState); } } //if (XkGameCtrl.GetInstance().m_CaiPiaoHealthDt != null && healthScript.GetIsDaiJinQuanNpc() == true) //{ // if (AmmoType == PlayerAmmoType.ChuanTouAmmo // || AmmoType == PlayerAmmoType.DaoDanAmmo // || AmmoType == PlayerAmmoType.PaiJiPaoAmmo // || AmmoType == PlayerAmmoType.SanDanAmmo) // { // //获取玩家对代金券npc的暴击伤害. // XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.CheckPlayerBaoJiDengJi(AmmoType, PlayerState, healthScript); // baoJiDamage = XkGameCtrl.GetInstance().m_CaiPiaoHealthDt.GetBaoJiDamage(PlayerState); // } //} healthScript.OnDamageNpc(DamageNpc + baoJiDamage, PlayerState, AmmoType, IsAiFireAmmo); SpawnAmmoParticleObj(healthScript); } if (isStopCheckHit == true) { //停止子弹的伤害检测. if (AmmoType == PlayerAmmoType.ChongJiBoAmmo) { //冲击波子弹不允许调用MoveAmmoOnCompelteITween. } else { //SSDebug.LogWarning("MoveAmmoOnCompelteITween ============== 44444444444444444"); MoveAmmoOnCompelteITween(); } } } if (hitObjNpc != null) { NpcAmmoCtrl npcAmmoScript = hitObjNpc.GetComponent <NpcAmmoCtrl>(); if (npcAmmoScript != null) { npcAmmoScript.MoveAmmoOnCompelteITween(); } if (AmmoType == PlayerAmmoType.DaoDanAmmo || AmmoType == PlayerAmmoType.GaoBaoAmmo || AmmoType == PlayerAmmoType.PuTongAmmo || AmmoType == PlayerAmmoType.SanDanAmmo || AmmoType == PlayerAmmoType.ChongJiBoAmmo) { if (hitObjNpc.layer != LayerMask.NameToLayer("Default")) { //SSDebug.Log("hitObjNpc ===================================== " + hitObjNpc.name); IsHitNpcAmmo = true; if (AmmoType == PlayerAmmoType.ChongJiBoAmmo) { //冲击波子弹不允许在这里调用MoveAmmoOnCompelteITween,否则会被瞬间删除. } else { //SSDebug.LogWarning("MoveAmmoOnCompelteITween ============== 333333333333333"); MoveAmmoOnCompelteITween(); } isStopCheckHit = true; } } } return(isStopCheckHit); }
bool CheckAmmoHitObj(GameObject hitObjNpc, PlayerEnum playerIndex) { // BuJiBaoCtrl buJiBaoScript = hitObjNpc.GetComponent<BuJiBaoCtrl>(); // if (buJiBaoScript != null) { // buJiBaoScript.RemoveBuJiBao(playerIndex); //buJiBaoScript // return; // } bool isStopCheckHit = false; if (AmmoType != PlayerAmmoType.PaiJiPaoAmmo) { XKPlayerCheckCamera checkCam = hitObjNpc.GetComponent <XKPlayerCheckCamera>(); if (checkCam != null) { MoveAmmoOnCompelteITween(); return(true); } } XKNpcHealthCtrl healthScript = hitObjNpc.GetComponent <XKNpcHealthCtrl>(); if (healthScript != null && !healthScript.GetIsDeathNpc()) { /*Debug.Log("CheckAmmoHitObj -> OnDamageNpc: " +"AmmoType "+AmmoType +", AmmoName "+AmmoTran.name +", NpcName "+healthScript.GetNpcName() +", AmmoDamageDis "+AmmoDamageDis);*/ bool isHitNpc = false; switch (AmmoType) { case PlayerAmmoType.ChuanTouAmmo: case PlayerAmmoType.PaiJiPaoAmmo: if (NpcHealthList == null) { NpcHealthList = new List <XKNpcHealthCtrl>(); } if (!NpcHealthList.Contains(healthScript)) { NpcHealthList.Add(healthScript); isHitNpc = true; } break; default: MoveAmmoOnCompelteITween(); isStopCheckHit = true; isHitNpc = true; break; } if (isHitNpc) { healthScript.OnDamageNpc(DamageNpc, PlayerState, AmmoType); SpawnAmmoParticleObj(); } } if (hitObjNpc != null) { NpcAmmoCtrl npcAmmoScript = hitObjNpc.GetComponent <NpcAmmoCtrl>(); if (npcAmmoScript != null) { npcAmmoScript.MoveAmmoOnCompelteITween(); } if (AmmoType == PlayerAmmoType.DaoDanAmmo || AmmoType == PlayerAmmoType.GaoBaoAmmo || AmmoType == PlayerAmmoType.PuTongAmmo || AmmoType == PlayerAmmoType.SanDanAmmo) { if (hitObjNpc.layer != LayerMask.NameToLayer("Default")) { MoveAmmoOnCompelteITween(); isStopCheckHit = true; } } } return(isStopCheckHit); }
void CheckPlayerTwoFireBt() { if (XKPlayerCamera.IndexPlayerNum != 1) { SetQianGuanTwRot(PlayerEnum.PlayerTwo, false); return; } if (!ScreenDanHeiCtrl.IsStartGame) { SetQianGuanTwRot(PlayerEnum.PlayerTwo, false); return; } if (!XkGameCtrl.IsActivePlayerTwo) { SetQianGuanTwRot(PlayerEnum.PlayerTwo, false); return; } if (!IsActiveFireBtTwo) { SetQianGuanTwRot(PlayerEnum.PlayerTwo, false); return; } SetQianGuanTwRot(PlayerEnum.PlayerTwo, true); // if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi()) { // return; // } if (!XkGameCtrl.IsTiaoGuoStartCartoon) { if (!ZhunXingCtrl.GetInstanceTwo().GetActiveZhunXing() || !ZhunXingTeXiaoCtrl.IsOverTeXiaoZhunXing) { return; } } if (Camera.main == null) { return; } // if (GameOverCtrl.IsShowGameOver || JiFenJieMianCtrl.GetInstance().GetIsShowFinishTask()) { // IsActiveFireBtTwo = false; // return; // } // if (PlayerStEnum == PlayerTypeEnum.FeiJi && XkGameCtrl.GameJiTaiSt != GameJiTaiType.FeiJiJiTai) { // IsActiveFireBtTwo = false; // return; // } // if (PlayerStEnum == PlayerTypeEnum.TanKe && XkGameCtrl.GameJiTaiSt != GameJiTaiType.TanKeJiTai) { // IsActiveFireBtTwo = false; // return; // } if (XkGameCtrl.GaoBaoDanNumPTwo <= 0 && Time.time < LastFireTimeTwo + 1f / Frequency) { return; } if (XkGameCtrl.GaoBaoDanNumPTwo > 0 && Time.time < LastFireTimeTwo + 1f / FrequencyGaoBao) { return; } LastFireTimeTwo = Time.time; Vector3 ammoSpawnPos = AmmoStartPosTwo[0].position; GameObject obj = null; CheckFireAudioPlayerTwo(); bool isSpawnGaoBaoDan = false; if (XkGameCtrl.GaoBaoDanNumPTwo <= 0) { if (AmmoParticle[0] != null) { obj = SpawnParticleCom.SpawnParticleObject(AmmoParticle[0], ammoSpawnPos, AmmoStartPosTwo[0].rotation); obj.transform.parent = AmmoStartPosTwo[0]; } obj = GetPlayerAmmo(PlayerAmmoType.PuTongAmmo, ammoSpawnPos, AmmoStartPosTwo[0].rotation); } else { isSpawnGaoBaoDan = true; if (GaoBaoAmmoParticle[0] != null) { obj = SpawnParticleCom.SpawnParticleObject(GaoBaoAmmoParticle[0], ammoSpawnPos, AmmoStartPosTwo[0].rotation); obj.transform.parent = AmmoStartPosTwo[0]; } XkGameCtrl.GetInstance().SubGaoBaoDanNumPTwo(); obj = GetPlayerAmmo(PlayerAmmoType.GaoBaoAmmo, ammoSpawnPos, AmmoStartPosTwo[0].rotation); } obj.transform.parent = XkGameCtrl.PlayerAmmoArray; PlayerAmmoCtrl ammoScript = obj.GetComponent <PlayerAmmoCtrl>(); ammoScript.SetIsDonotHurtNpc(false); Vector3 mousePosInput = pcvr.GetPlayerMousePos(PlayerEnum.PlayerTwo); Vector3 firePos = Vector3.zero; Vector3 mousePos = mousePosInput + Vector3.forward * OffsetForward; Vector3 posTmp = Camera.main.ScreenToWorldPoint(mousePos); Vector3 ammoForward = Vector3.Normalize(posTmp - ammoSpawnPos); Ray ray = Camera.main.ScreenPointToRay(mousePosInput); RaycastHit hit; if (!IsPSAutoFire) { //firePos = FirePosValTmp * ammoForward + ammoSpawnPos; if (Physics.Raycast(ray, out hit, FireRayDirLen, FireLayer.value)) { //Debug.Log("Player fire obj -> "+hit.collider.name); //firePos = hit.point; if (ammoScript.AmmoType == PlayerAmmoType.PuTongAmmo) { XKNpcHealthCtrl healthScript = hit.collider.GetComponent <XKNpcHealthCtrl>(); if (healthScript != null && !healthScript.GetIsDeathNpc()) { healthScript.OnDamageNpc(ammoScript.AmmoType, PlayerEnum.PlayerTwo); } } BuJiBaoCtrl buJiBaoScript = hit.collider.GetComponent <BuJiBaoCtrl>(); if (buJiBaoScript != null) { buJiBaoScript.RemoveBuJiBao(PlayerEnum.PlayerTwo); //buJiBaoScript } } firePos = GunLaser[1].PlayerCursorTr.position; } else { ammoForward = obj.transform.forward; firePos = FirePosValTmp * ammoForward + ammoSpawnPos; if (Physics.Raycast(ammoSpawnPos, ammoForward, out hit, FireRayDirLen, FireLayer.value)) { //Debug.Log("Player fire obj -> "+hit.collider.name); firePos = hit.point; if (ammoScript.AmmoType == PlayerAmmoType.PuTongAmmo) { XKNpcHealthCtrl healthScript = hit.collider.GetComponent <XKNpcHealthCtrl>(); if (healthScript != null && !healthScript.GetIsDeathNpc()) { healthScript.OnDamageNpc(ammoScript.AmmoType, PlayerEnum.PlayerTwo); } } BuJiBaoCtrl buJiBaoScript = hit.collider.GetComponent <BuJiBaoCtrl>(); if (buJiBaoScript != null) { buJiBaoScript.RemoveBuJiBao(PlayerEnum.PlayerTwo); //buJiBaoScript } } } if (hit.collider == null) { ammoScript.StartMoveAmmo(firePos, PlayerEnum.PlayerTwo); } else { ammoScript.StartMoveAmmo(firePos, PlayerEnum.PlayerTwo, null, hit.collider.gameObject); } if (isSpawnGaoBaoDan) { //Call OtherPort Show AmmoParticle PlayerScript.CallOtherPortSpawnPlayerAmmoParticle(2, 2, firePos); } else { //Call OtherPort Show AmmoParticle PlayerScript.CallOtherPortSpawnPlayerAmmoParticle(2, 0, firePos); } }