/// <summary> /// 创建掉落物协议 /// </summary> /// <param name="respond"></param> public void CreateDropItemByRespond(s2cSyncPersonalDrop respond) { if (respond.DropList.Count <= 0) { /// Debug.Log("CreateDropItemByRespond:the drop_list.Count <= 0"); return; } if (respond.IsMapSync == false) { int index = Random.Range(0, 2); WwiseUtil.PlaySound(WwiseManager.voiceComboID, index == 0 ? WwiseMusicSpecialType.SpecialType_Voice_minera_event3 : WwiseMusicSpecialType.SpecialType_Voice_minera_event4, WwiseMusicPalce.Palce_1st, false, null); } ulong parentid = 0; foreach (var item in respond.DropList) { string key = item.MapId.ToString() + item.AreaUid.ToString() + item.ChestNpcUid.ToString(); if (!m_GatherDropItemInfos.ContainsKey(key)) { MineDropItemInfo mineDropItemInfo = new MineDropItemInfo(); mineDropItemInfo.mapid = item.MapId; mineDropItemInfo.areaid = item.AreaUid; mineDropItemInfo.uid = item.ChestNpcUid; mineDropItemInfo.tid = item.ChestNpcTid; mineDropItemInfo.item_tid = item.DropItemTid; mineDropItemInfo.ship_tlv = item.ShipTlv; mineDropItemInfo.parentid = item.FromHeroUid; mineDropItemInfo.positon_x = item.PositonX; mineDropItemInfo.positon_y = item.PositonY; mineDropItemInfo.positon_z = item.PositonZ; if (parentid == 0) { parentid = mineDropItemInfo.parentid; } uint mapId = m_CfgEternityProxy.GetCurrentMapData().GamingmapId; ulong aredId = m_GameplayProxy.GetCurrentAreaUid(); if (mapId == item.MapId && aredId == item.AreaUid) { CreateDropItem(key, mineDropItemInfo, respond.IsMapSync == false); } } } /// 新掉落播音效 if (respond.IsDieDrop == false && respond.IsMapSync == false && parentid != 0) { SpacecraftEntity spacecraftEntity = m_GameplayProxy.GetEntityById <SpacecraftEntity>((uint)parentid); spacecraftEntity.SendEvent(ComponentEventName.PlayDropSound, null); } }
private static void PersonalDropRun(GameSession.ToSyncDropResponse message) { GameSession.ToSyncDropResponse.Types.Success success = message.Success; if (success != null) { s2cSyncPersonalDrop personalDrop = success.Success_.PersonalDrop; if (personalDrop != null) { Debug.Log($"ToSyncDropResponse:PersonalDropRun"); MineDropItemManager.Instance.CreateDropItemByRespond(personalDrop); } } }