void RPC_S2C_GetDeadObjItem(uLink.BitStream stream, uLink.NetworkMessageInfo info) { int netId = stream.Read <int>(); int index = stream.Read <int>(); int itemId = stream.Read <int>(); AiNetwork ai = AiNetwork.Get <AiNetwork>(netId); if (null == ai || null == ai.Runner) { return; } ItemDropPeEntity dropEntity = ai.Runner.GetComponent <ItemDropPeEntity>(); if (null == dropEntity) { return; } ItemSample item = dropEntity.Get(index); if (null == item || item.protoId != itemId) { return; } dropEntity.RemoveDroppableItem(item); if (null != GameUI.Instance.mItemGet) { GameUI.Instance.mItemGet.Reflash(); } }
void RPC_S2C_GetDeadObjAllItems(uLink.BitStream stream, uLink.NetworkMessageInfo info) { int netId = stream.Read <int>(); AiNetwork ai = AiNetwork.Get <AiNetwork>(netId); if (null == ai || null == ai.Runner) { return; } ItemDropPeEntity dropEntity = ai.Runner.GetComponent <ItemDropPeEntity>(); if (null == dropEntity) { return; } dropEntity.RemoveDroppableItemAll(); if (null != GameUI.Instance.mItemGet) { GameUI.Instance.mItemGet.Reflash(); } }
BehaveResult Tick(Tree sender) { if (bReached && Time.time - m_Data.startLootTime > m_Data.lootTime) { mLootEntity = null; bReached = false; EndAction(PEActionType.Leisure); } if (!bReached && mLootEntity == null) { if (!Enemy.IsNullOrInvalid(attackEnemy)) { return(BehaveResult.Failure); } List <PeEntity> entities = LootItemDropPeEntity.GetEntities(position, m_Data.LootRadius); if (entities.Count > 0) { mLootEntity = LootItemDropPeEntity.GetLootEntity(position, m_Data.LootRadius); mItemDrop = mLootEntity.GetComponent <ItemDropPeEntity>(); if (mItemDrop == null || !mItemDrop.NpcCanFetchAll(entity.NpcCmpt.NpcPackage)) { return(BehaveResult.Failure); } LootItemDropPeEntity.RemovePeEntity(mLootEntity); } else { return(BehaveResult.Failure); } } if (!bReached) { if (IsReached(position, mLootEntity.peTrans.position, false, 1.0f) || Stucking()) { StopMove(); FaceDirection(mLootEntity.peTrans.position - position); PEActionParamS param = PEActionParamS.param; param.str = "Gather"; DoAction(PEActionType.Leisure, param); mItemDrop.NpcFetchAll(entity.NpcCmpt.NpcPackage); m_Data.startLootTime = Time.time; bReached = true; } else { MoveToPosition(mLootEntity.peTrans.position, SpeedState.Run); } } return(BehaveResult.Running); }
void InitDeadItems(ItemDropPeEntity dropEntity, ItemSample[] items) { if (null != dropEntity) { dropEntity.RemoveDroppableItemAll(); if (null != items) { foreach (ItemSample item in items) { dropEntity.AddDroppableItem(item); } } } }
protected virtual void RPC_S2C_Death(uLink.BitStream stream, uLink.NetworkMessageInfo info) { /*int casterId = */ stream.Read <int> (); death = true; if (null == Runner || null == Runner.SkEntityPE) { return; } ItemDropPeEntity dropEntity = Runner.SkEntityPE.gameObject.GetComponent <ItemDropPeEntity> (); if (null == dropEntity) { dropEntity = Runner.SkEntityPE.gameObject.AddComponent <ItemDropPeEntity> (); } InitDeadItems(dropEntity, dropItems); }