/// <summary> /// 同步探测器距离宝藏的位置 /// </summary> /// <param name="buf"></param> private void OnSyncDeteCtorDistance(KProtoBuf buf) { S2C_SYNC_DETECTOR_DISTANCE msg = buf as S2C_SYNC_DETECTOR_DISTANCE; TreasureHuntProxy treasureHuntProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy; treasureHuntProxy.SyncDeteCtorDistance(msg); }
/// <summary> /// 同步玩家进入宝藏区域 /// </summary> /// <param name="buf"></param> private void OnSyncDiscoverPrecious(KProtoBuf buf) { S2C_SYNC_PLAYER_DISCOVER_PRECIOUS msg = buf as S2C_SYNC_PLAYER_DISCOVER_PRECIOUS; TreasureHuntProxy treasureHuntProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy; treasureHuntProxy.SyncDiscoverPrecious(msg); }
public override void OnInitialize(IChangeMaterialProperty property) { m_Property = property; Npc npcVO = m_Property.GetNPCTemplateVO(); /// npcVO.TriggerRange m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_TreasureHuntProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy; m_GameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy; m_MainEntity = m_GameplayProxy.GetMainPlayer(); GamingConfigTreasure gamingConfigTreasure = m_CfgEternityProxy.GetGamingConfig(1).Value.Treasure.Value; GamingConfigTreasureColor colour = gamingConfigTreasure.Colour.Value; m_Colors[DistanceType.discovery] = colour.DiscoveryDistance; m_Colors[DistanceType.strong] = colour.StrongSignalDistance; m_Colors[DistanceType.medium] = colour.MediumSignalDistance; m_Colors[DistanceType.weak] = colour.WeakSignalDistance; GamingConfigTreasureFrequency frequency = gamingConfigTreasure.Frequency.Value; m_Frequencys[DistanceType.discovery] = frequency.DiscoveryDistance; m_Frequencys[DistanceType.strong] = frequency.StrongSignalDistance; m_Frequencys[DistanceType.medium] = frequency.MediumSignalDistance; m_Frequencys[DistanceType.weak] = frequency.WeakSignalDistance; GamingConfigTreasureSound sound = gamingConfigTreasure.Sound.Value; m_Sounds[DistanceType.none] = (int)sound.NoSignalDetector; m_Sounds[DistanceType.strong] = (int)sound.StrongSignalDetector; m_Sounds[DistanceType.medium] = (int)sound.MediumSignalDetector; m_Sounds[DistanceType.weak] = (int)sound.WeakSignalDetector; }
/// <summary> /// 被连接者添加连线效果特效 /// </summary> private void AddEnergyEffect() { /// TODO.读表 if (m_EnergyBodyFxInstance == null) { m_EnergyBodyFxInstance = EffectManager.GetInstance().CreateEffect(m_EternityProxy.GetGamingConfig(1).Value.Treasure.Value.Effect.Value.SurroundEffect, EffectManager.GetEffectGroupNameInSpace(m_Property.IsMain())); m_EnergyBodyFxInstance.transform.SetParent(m_Property.GetSkinRootTransform(), false); m_EnergyBodyFxInstance.SetCreateForMainPlayer(m_Property.IsMain()); /// 音效 TreasureHuntProxy treasure = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy; treasure.DisturborSoundEffect(m_Property.UId()); } else { m_EnergyBodyFxInstance.PlayFX(); } }
//private void OnCollisionEnter(Collision obj) //{ // OnSpacecraftSlidingEnd(); //} //private void OnCollisionStay(Collision obj) //{ //} //private void OnCollisionExit(Collision obj) //{ //} //private void OnRelive(IComponentEvent obj) //{ // m_DeadFxState = DeadState.None; // RealTimerUtil.Instance.Unregister(m_ShowDeadFxTimerId); //} private void OnDead(IComponentEvent obj) { DeadEvent deadEvent = obj as DeadEvent; if (!m_SpacecraftDeadProperty.IsDead()) { return; } m_DropInfoList = deadEvent.DropList; /// TODO.宝藏特殊处理 /// 服务器创建后立马死亡 //if (m_SpacecraftDeadProperty.IsNotHaveAva()) //{ // if (m_DropInfoList != null && m_DropInfoList.Count > 0) // { // DropItemManager.Instance.SetDropItemInfoByDeath(m_SpacecraftDeadProperty.UId(), m_DropInfoList); // } // return; //} /// npc死亡 if (m_SpacecraftDeadProperty.GetHeroType() != KHeroType.htPlayer) { Npc npcVO = m_SpacecraftDeadProperty.GetNPCTemplateVO(); if (npcVO.SoundDead > 0) { SendEvent(ComponentEventName.PlaySound, new PlaySound() { SoundID = (int)npcVO.SoundDead }); } /// 导演死检查音乐盒子 if (m_SpacecraftDeadProperty.GetHeroType() == KHeroType.htPlotMonster) { MSAIBossProxy msab = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy; msab.DestroySoundBox(m_SpacecraftDeadProperty.UId()); } /// TODO.干扰器死亡 else if (m_SpacecraftDeadProperty.GetHeroType() == KHeroType.htDisturbor) { /// 自己的停掉 SpacecraftEntity ownerEntity = m_SpacecraftDeadProperty.GetOwner(); ownerEntity.SendEvent(ComponentEventName.PlaySound, new PlaySound() { SoundID = (int)WwiseMusic.Treasure_Disturbor_Sound5, Transform = ownerEntity.GetSkinTransform() }); TreasureHuntProxy treasure = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy; treasure.DisturborSoundEffect(m_SpacecraftDeadProperty.GetOwner().m_EntityFatherOwnerID); } } m_SpacecraftDeadProperty.SetTarget(null, null); #region 待服务器在new_hero协议中添加复活状态逻辑后删除 if (m_SpacecraftDeadProperty.IsMain()) { m_GameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy; if (m_SpacecraftDeadProperty.IsMain()) { CfgEternityProxy eternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_GameplayProxy.SetDeadMapID(eternityProxy.GetCurrentMapData().GamingmapId); } } #endregion ShowRelivePanel(deadEvent); SpacecraftPresentation presentation = m_SpacecraftDeadProperty.GetPresentation(); if (presentation != null) { if (presentation.SpacecraftDeadType != SpacecraftPresentation.SpacecraftType.Warship) { OnDeviceDead(deadEvent); } } }