Ejemplo n.º 1
0
        public void EventOnInventoryItemAdded(string containerId, byte containerType, List <IInventoryObject> addedObjects)
        {
            //GetInventory().TryGetItem()

            List <Hashtable> items = new List <Hashtable>();

            foreach (var addedObj in addedObjects)
            {
                ServerInventoryItem resultItem = null;
                if (this.Inventory.TryGetItem(addedObj.Type, addedObj.Id, out resultItem))
                {
                    items.Add(resultItem.GetInfo());
                }
            }
            Hashtable eventData = new Hashtable();

            eventData.Add((int)SPC.Target, containerId);
            eventData.Add((int)SPC.TargetType, containerType);
            eventData.Add((int)SPC.Items, items.ToArray());

            var eventInstance = new ItemGeneric {
                ItemId          = Avatar.Id,
                ItemType        = Avatar.Type,
                CustomEventCode = (byte)CustomEventCode.InventoryItemsAdded,
                EventData       = eventData,
                GameReferenceId = nebulaObject.Id,
                CharacterId     = mCharacter.characterId
            };

            var            eData          = new EventData((byte)EventCode.ItemGeneric, eventInstance);
            SendParameters sendParameters = new SendParameters {
                Unreliable = true, ChannelId = Settings.ItemEventChannel
            };

            ((IMmoItem)Avatar).ReceiveEvent(eData, sendParameters);
        }