public void AddDiscoveredLoot(DiscoveredLoot loot)
        {
            if (_discoveredLoot.Exists(x => x.ObjectId == loot.ObjectId))
            {
                return;
            }

            _discoveredLoot.Add(loot);
        }
Пример #2
0
        public NewSimpleItemEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(0))
                {
                    _objectId = parameters[0].ObjectToLong();
                }

                if (parameters.ContainsKey(1))
                {
                    _itemId = parameters[1].ObjectToInt();
                }

                if (parameters.ContainsKey(2))
                {
                    _quantity = parameters[2].ObjectToInt();
                }

                if (_objectId != null)
                {
                    Loot = new DiscoveredLoot()
                    {
                        ObjectId = (long)_objectId,
                        ItemId   = _itemId,
                        Quantity = _quantity
                    };
                }
                else
                {
                    Loot = null;
                }
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
        public NewEquipmentItemEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(0))
                {
                    _objectId = parameters[0].ObjectToLong();
                }

                if (parameters.ContainsKey(1))
                {
                    _itemId = parameters[1].ObjectToInt();
                }

                if (parameters.ContainsKey(2))
                {
                    _quantity = parameters[2].ObjectToInt();
                }

                if (parameters.ContainsKey(8))
                {
                    var valueType = parameters[8].GetType();
                    if (valueType.IsArray && typeof(byte[]).Name == valueType.Name)
                    {
                        var spells = ((byte[])parameters[8]).ToDictionary();
                        foreach (var spell in spells)
                        {
                            _spellDictionary.Add(spell.Key, spell.Value.ObjectToInt());
                        }
                    }
                    else if (valueType.IsArray && typeof(short[]).Name == valueType.Name)
                    {
                        var spells = ((short[])parameters[8]).ToDictionary();
                        foreach (var spell in spells)
                        {
                            _spellDictionary.Add(spell.Key, spell.Value.ObjectToInt());
                        }
                    }
                    else if (valueType.IsArray && typeof(int[]).Name == valueType.Name)
                    {
                        var spells = ((int[])parameters[8]).ToDictionary();
                        foreach (var spell in spells)
                        {
                            _spellDictionary.Add(spell.Key, spell.Value.ObjectToInt());
                        }
                    }
                }

                if (_objectId != null)
                {
                    Loot = new DiscoveredLoot()
                    {
                        ObjectId        = (long)_objectId,
                        ItemId          = _itemId,
                        Quantity        = _quantity,
                        SpellDictionary = _spellDictionary
                    };
                }
                else
                {
                    Loot = null;
                }
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }