public override void OnTriggerHitted(GameObject obj, int[] param) { base.OnTriggerHitted(obj, param); if (param[3] < 0) { return; } currentActiveId = param[3]; if (fightUi == null) { GameObject ui = UnityEngine.GameObject.Find("FightUi"); if (ui != null) { fightUi = ui.GetComponent <sdFightUi>(); } } if (fightUi != null && currentActiveId < monsters.Length && monsters[currentActiveId] != null) { if (monsters[currentActiveId].GetAbility() >= HeaderProto.EMonsterAbility.MONSTER_ABILITY_boss) { sdTuiTuLogic ttLogic = sdGameLevel.instance.tuiTuLogic; //ttLogic.cameraShaker.AddRandomCameraShake(0.5f,0.5f,80.0f,1.0f); // 小BOSS和大BOSS的血条样式不同aa int iMonsterHPType = 0; if (monsters[currentActiveId].GetAbility() == HeaderProto.EMonsterAbility.MONSTER_ABILITY_boss_large) { iMonsterHPType = 1; } // 呼出血条,血条初始化.. int iHpBarNum = monsters[currentActiveId].GetHPBarNum(); int iMaxHP = monsters[currentActiveId].GetMaxHP(); sdUICharacter.Instance.SetMonsterMaxHp(iMonsterHPType, iMaxHP, iHpBarNum); fightUi.ShowMonsterHp(); //深渊boss需要再设置一下当前血量,因为Boss有残血的可能.. if (monsters[currentActiveId].isLapBoss) { Hashtable uiValueDesc = new Hashtable(); uiValueDesc["value"] = monsters[currentActiveId].GetCurrentHP(); uiValueDesc["des"] = ""; sdUICharacter.Instance.SetProperty("MonsterHp", uiValueDesc); } //设置boss名字.. fightUi.SetBossName(monsters[currentActiveId].GetName()); } } }
void Update() { if (m_eCountDownType == eCountDownType.eCDT_None) { return; } m_fCountDown -= Time.deltaTime; if (m_fCountDown < 0.0f && m_eCountDownType == eCountDownType.eCDT_pvpReady) { m_fCountDown = ms_pkTime; m_eCountDownType = eCountDownType.eCDT_pvp; sdUICharacter.Instance.ShowCountDownTime2(false); sdUICharacter.Instance.ShowCountDownTime(true, eCountDownType.eCDT_pvp); } if (m_eCountDownType == eCountDownType.eCDT_pvp && m_fCountDown < 0.0f) { m_eCountDownType = eCountDownType.eCDT_None; PKStop(); sdPVPMsg.Send_CSID_PVP_RETULT_REQ(1, 1); } if (m_Fightui == null) { //初始化血条aaa GameObject ui = GameObject.Find("FightUi"); if (ui != null && m_pvpRival != null) { int iMonsterHPType = 0; int iHpBarNum = 1; int iMaxHp = m_pvpRival.GetMaxHP(); sdUICharacter.Instance.SetMonsterMaxHp(iMonsterHPType, iMaxHp, iHpBarNum); m_Fightui = ui.GetComponent <sdFightUi>(); m_Fightui.ShowMonsterHp(); m_Fightui.SetBossName(m_pvpRival.Name); } } else { //血条更新 if (m_pvpRival != null) { Hashtable uiValueDesc = new Hashtable(); uiValueDesc["value"] = m_pvpRival.GetCurrentHP(); uiValueDesc["des"] = ""; sdUICharacter.Instance.SetProperty("MonsterHp", uiValueDesc); if (m_pvpRival.GetCurrentHP() <= 0) { m_Fightui.HideMonsterHp(); } } } }
public void AddAttack() { m_nAttack++; GameObject fightUI = sdUICharacter.Instance.GetFightUi(); if (fightUI != null) { sdFightUi fight = fightUI.GetComponent <sdFightUi>(); if (fight != null) { fight.SetPT(m_nAttack); } } }
void Update() { if (currentActiveId >= 0 && currentActiveId < monsters.Length && monsters[currentActiveId] != null) { if (fightUi == null) { GameObject ui = UnityEngine.GameObject.Find("FightUi"); if (ui != null) { fightUi = ui.GetComponent <sdFightUi>(); } } if (fightUi != null) { if (monsters[currentActiveId].GetAbility() >= HeaderProto.EMonsterAbility.MONSTER_ABILITY_boss) { Hashtable uiValueDesc = new Hashtable(); uiValueDesc["value"] = monsters[currentActiveId].GetCurrentHP(); uiValueDesc["des"] = ""; sdUICharacter.Instance.SetProperty("MonsterHp", uiValueDesc); sdActGameMgr.Instance.m_uuLapBossNowBlood = monsters[currentActiveId].GetCurrentHP(); //结算之后,需要重新刷BOSS的血量.. if (sdActGameMsg.bNeedResetWorldBossHP) { monsters[currentActiveId].SetCurrentHP(sdActGameMgr.Instance.m_uuWorldBossNowBlood); sdActGameMsg.bNeedResetWorldBossHP = false; } else { sdActGameMgr.Instance.m_uuWorldBossNowBlood = monsters[currentActiveId].GetCurrentHP(); } if (monsters[currentActiveId].GetCurrentHP() <= 0) { fightUi.HideMonsterHp(); } } } } }
protected override void Update() { if (mnStage == 0) { return; } if (mnStage == 1) //榛戝睆aa { if (m_fTime <= float.Epsilon) { mnStage = 2; m_fTime = bornAnimTime; } else { if (m_fTime > enterTime) { mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); } else { mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / enterTime / enterTime); } m_fTime -= Time.deltaTime; } } else if (mnStage == 2) //鎾?斁鍑虹敓鍔ㄤ綔aa { if (m_fTime < float.Epsilon) { if (bPlayShowAnimation && gameMonster != null)//boss鎾?斁灞曠ず鍔ㄧ敾aa { AnimationState aniState = gameMonster.AnimController[mbornAnimNext]; if (aniState != null) { aniState.wrapMode = WrapMode.Once; aniState.layer = 10; gameMonster.AnimController.CrossFade(mbornAnimNext, 0.15f); } if (mbornAudio != null && mbornAudio.Length > 0) { gameMonster.PlayAudio(mbornAudio); } bPlayShowAnimation = false; } m_fTime = stayTime; mnStage = 3; } else { m_fTime -= Time.deltaTime; } } else if (mnStage == 3) { if (m_fTime <= float.Epsilon) { //mBoss.transform.rotation = bossSaveRotate; //m_fTime = 1.25f*leaveTime; m_fTime = 0.0f; mnStage = 4; } else { m_fTime -= Time.deltaTime; } } else if (mnStage == 4)//榛戝睆娣″叆aa { if (m_fTime > afterStayTime) { mBoss.transform.rotation = bossSaveRotate; m_fTime = leaveTime; mnStage = 5; } else { m_fTime += Time.deltaTime; mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / afterStayTime / afterStayTime); } } else if (mnStage == 5)//榛戝睆娣″嚭aa { if (m_fTime <= float.Epsilon) { if (bossDialogue != null) { bossDialogue.SetActive(false); } SetTargetEffectVisible(true); sdUICharacter.Instance.bBossMovie = false; GameObject fightUI = sdUICharacter.Instance.GetFightUi(); if (fightUI != null) { sdFightUi fight = fightUI.GetComponent <sdFightUi>(); if (fight != null) { fight.AddComboTime(System.DateTime.Now.Ticks / 10000000L - m_StartTime); } } mnStage = 0; } else { mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / leaveTime / leaveTime); if (bReSetCamera) { bReSetCamera = false; mMainCamera.transform.position = cameraSavePos; mMainCamera.transform.rotation = cameraSaveRotate; HeaderProto.ECreatureActionState[] state = new HeaderProto.ECreatureActionState[2]; state[0] = HeaderProto.ECreatureActionState.CREATURE_ACTION_STATE_IDLE; state[1] = HeaderProto.ECreatureActionState.CREATURE_ACTION_STATE_LIMIT_SKILL; levelArea.SetMonsterStatus(state, false); sdActorInterface activePet = sdGameLevel.instance.mainChar.Retainer; for (int i = 0; i < state.Length; i++) { if (activePet != null) { activePet.RemoveDebuffState(state[i]); } sdGameLevel.instance.mainChar.RemoveDebuffState(state[i]); } sdGameLevel.instance.mainCamera.MainCharFollow = true; sdGameLevel.instance.SetFingerObjectActive(true); if (activePet != null && activePet.actorType == ActorType.AT_Pet) { ((sdGameMonster)activePet).ActiveHPUI(); } sdUICharacter.Instance.ShowFightUi(); } m_fTime -= Time.deltaTime; } } }