[x] I understand that if I do not agree to the following points by marking the checkboxes my issue will be ignored.
[x] I have searched existing issues to see if the issue has already been opened, and I have checked the commit log to see if the issue has been resolved since my server was last updated.
[x] I am currently on the latest commit of the branch when reporting this bug
Code branch that is affected by this issue
AAEmu-client_version-3.0_client(2017-03-15)+
Bug description
Проявился баг с экипировкой в последней ревизии emu 3.0. При создании персонажа в логе появляются ошибки о неверном предмете в неверном слоте, персонаж появляется в игровом мире со сломанным оружием, если попытаться создать оружие для персонажа то предмет создается сломанным, если попытаться починить оружие у кузнеца то ничего не происходит и предметы остаются сломанными, но нужное количество золота требует чтобы было у персонажа.
В базе данных в таблице items создаются предметы для владельца 0, для каждого персонажа по два предмета, ИД предметов имеют значение, которое выдается в логе ошибок при создании персонажа.
При попытке одеть на персонажа экипировку (предметы одежды) с уровнем улучшения отличным от нуля, клиент закрывается с ошибкой.
Предметы одежды для примера (создать нужно все и одевать по очереди)
/item add self 31522 1 11 эрнардский кожаный пояс охотника
/item add self 31520 1 11 эрнардские кожаные сапоги охотника
/item add self 31518 1 11 эрнардские кожаные поножи охотника
/item add self 31519 1 11 эрнардские кожаные перчатки охотника
/item add self 31521 1 11 эрнардские кожаные наручи охотника
/item add self 31516 1 11 эрнардская фибула охотника
/item add self 31517 1 11 эрнардская кожаная куртка охотника
Сообщения в логе:
при создании персонажа
09:24:17 [WARN] ItemContainer - Master (1) tried to equip a item in the wrong slot 첫걸음 활 (6127), Id:16777221, SlotType: Ranged, TargetSlot:Ranged
09:24:17 [WARN] ItemContainer - Master (1) tried to equip a item in the wrong slot 첫걸음 관악기 (6202), Id:16777222, SlotType: Musical, TargetSlot:Musical
для разных классов свои ошибки в логе, в примере ошибки при создании лучника
при попытке починить экипировку у кузнеца
09:35:47 [WARN] GameObject - Attempting to repair an item that has max durability, Item=16777230
09:35:47 [DEBUG] PacketMarshaler - GamePacket: S->C type [5:02D] C:[131:132] .G2C.SCItemTaskSuccessPacket
09:35:47 [DEBUG] PacketMarshaler - GamePacket: C->S type [5:10D] .C2G.CSRepairSingleEquipmentPacket
09:35:50 [DEBUG] PacketMarshaler - GamePacket: S->C type [5:214] C:[132:133] .G2C.SCTimeOfDayPacket
При попытке одеть на персонажа одежду с уровнем улучшения 11
10:00:48 [ERROR] PacketMarshaler - GamePacket: C->S type 124 .C2G.CSSwapItemsPacket
10:00:48 [FATAL] PacketMarshaler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object.
at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242
at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36
at AAEmu.Game.Models.Game.Items.Containers.EquipmentContainer.OnEnterContainer(Item item, ItemContainer lastContainer) in /server/AAEmuDev/AAEmu.Game/Models/Game/Items/Containers/EquipmentContainer.cs:line 205
at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItemEx(ItemTaskType taskType, ItemContainer sourceContainer, ItemContainer targetContainer, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 667
at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItem(ItemTaskType taskType, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 296
at AAEmu.Game.Core.Packets.C2G.CSSwapItemsPacket.Read(PacketStream stream) in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSSwapItemsPacket.cs:line 24
at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 149
at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171
10:00:48 [ERROR] GameProtocolHandler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object.
at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242
at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36
at AAEmu.Game.Models.Game.Items.Containers.EquipmentContainer.OnEnterContainer(Item item, ItemContainer lastContainer) in /server/AAEmuDev/AAEmu.Game/Models/Game/Items/Containers/EquipmentContainer.cs:line 205
at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItemEx(ItemTaskType taskType, ItemContainer sourceContainer, ItemContainer targetContainer, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 667
at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItem(ItemTaskType taskType, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 296
at AAEmu.Game.Core.Packets.C2G.CSSwapItemsPacket.Read(PacketStream stream) in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSSwapItemsPacket.cs:line 24
at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 149
at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171
10:03:42 [ERROR] PacketMarshaler - GamePacket: C->S type 097 .C2G.CSNotifyInGamePacket
10:03:42 [FATAL] PacketMarshaler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object.
at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242
at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36
at AAEmu.Game.Core.Packets.C2G.CSNotifyInGamePacket.Execute() in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSNotifyInGamePacket.cs:line 37
at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 177
at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171
10:03:42 [ERROR] GameProtocolHandler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object.
at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242
at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36
at AAEmu.Game.Core.Packets.C2G.CSNotifyInGamePacket.Execute() in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSNotifyInGamePacket.cs:line 37
at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 177
at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171
Steps to reproduce
Создать нового персонажа, зайти новым персонажем в игровой мир, создать предмет, например ИД 31409, подойти к кузнецу без золота в инвентаре, создать золото в инвентарь, подойти к кузнецу и попытаться починить экипировку.
Создать предметы одежды с уровнем улучшения например 11 и попытаться одеть на персонажа.
I confirm that:
Code branch that is affected by this issue
AAEmu-client_version-3.0_client(2017-03-15)+
Bug description
Проявился баг с экипировкой в последней ревизии emu 3.0. При создании персонажа в логе появляются ошибки о неверном предмете в неверном слоте, персонаж появляется в игровом мире со сломанным оружием, если попытаться создать оружие для персонажа то предмет создается сломанным, если попытаться починить оружие у кузнеца то ничего не происходит и предметы остаются сломанными, но нужное количество золота требует чтобы было у персонажа. В базе данных в таблице items создаются предметы для владельца 0, для каждого персонажа по два предмета, ИД предметов имеют значение, которое выдается в логе ошибок при создании персонажа. При попытке одеть на персонажа экипировку (предметы одежды) с уровнем улучшения отличным от нуля, клиент закрывается с ошибкой. Предметы одежды для примера (создать нужно все и одевать по очереди) /item add self 31522 1 11 эрнардский кожаный пояс охотника /item add self 31520 1 11 эрнардские кожаные сапоги охотника /item add self 31518 1 11 эрнардские кожаные поножи охотника /item add self 31519 1 11 эрнардские кожаные перчатки охотника /item add self 31521 1 11 эрнардские кожаные наручи охотника /item add self 31516 1 11 эрнардская фибула охотника /item add self 31517 1 11 эрнардская кожаная куртка охотника
Сообщения в логе:
при создании персонажа
09:24:17 [WARN] ItemContainer - Master (1) tried to equip a item in the wrong slot 첫걸음 활 (6127), Id:16777221, SlotType: Ranged, TargetSlot:Ranged 09:24:17 [WARN] ItemContainer - Master (1) tried to equip a item in the wrong slot 첫걸음 관악기 (6202), Id:16777222, SlotType: Musical, TargetSlot:Musical
для разных классов свои ошибки в логе, в примере ошибки при создании лучника
при попытке починить экипировку у кузнеца
09:35:47 [WARN] GameObject - Attempting to repair an item that has max durability, Item=16777230 09:35:47 [DEBUG] PacketMarshaler - GamePacket: S->C type [5:02D] C:[131:132] .G2C.SCItemTaskSuccessPacket 09:35:47 [DEBUG] PacketMarshaler - GamePacket: C->S type [5:10D] .C2G.CSRepairSingleEquipmentPacket 09:35:50 [DEBUG] PacketMarshaler - GamePacket: S->C type [5:214] C:[132:133] .G2C.SCTimeOfDayPacket
При попытке одеть на персонажа одежду с уровнем улучшения 11
10:00:48 [ERROR] PacketMarshaler - GamePacket: C->S type 124 .C2G.CSSwapItemsPacket 10:00:48 [FATAL] PacketMarshaler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242 at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36 at AAEmu.Game.Models.Game.Items.Containers.EquipmentContainer.OnEnterContainer(Item item, ItemContainer lastContainer) in /server/AAEmuDev/AAEmu.Game/Models/Game/Items/Containers/EquipmentContainer.cs:line 205 at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItemEx(ItemTaskType taskType, ItemContainer sourceContainer, ItemContainer targetContainer, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 667 at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItem(ItemTaskType taskType, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 296 at AAEmu.Game.Core.Packets.C2G.CSSwapItemsPacket.Read(PacketStream stream) in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSSwapItemsPacket.cs:line 24 at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 149 at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171 10:00:48 [ERROR] GameProtocolHandler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242 at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36 at AAEmu.Game.Models.Game.Items.Containers.EquipmentContainer.OnEnterContainer(Item item, ItemContainer lastContainer) in /server/AAEmuDev/AAEmu.Game/Models/Game/Items/Containers/EquipmentContainer.cs:line 205 at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItemEx(ItemTaskType taskType, ItemContainer sourceContainer, ItemContainer targetContainer, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 667 at AAEmu.Game.Models.Game.Char.Inventory.SplitOrMoveItem(ItemTaskType taskType, UInt64 fromItemId, SlotType fromType, Byte fromSlot, UInt64 toItemId, SlotType toType, Byte toSlot, Int32 count) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/Inventory.cs:line 296 at AAEmu.Game.Core.Packets.C2G.CSSwapItemsPacket.Read(PacketStream stream) in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSSwapItemsPacket.cs:line 24 at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 149 at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171 10:03:42 [ERROR] PacketMarshaler - GamePacket: C->S type 097 .C2G.CSNotifyInGamePacket 10:03:42 [FATAL] PacketMarshaler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242 at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36 at AAEmu.Game.Core.Packets.C2G.CSNotifyInGamePacket.Execute() in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSNotifyInGamePacket.cs:line 37 at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 177 at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171 10:03:42 [ERROR] GameProtocolHandler - System.NullReferenceException: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at AAEmu.Game.Models.Game.Char.Character.ApplyArmorGradeBuff(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 242 at AAEmu.Game.Models.Game.Char.Character.UpdateGearBonuses(Item itemAdded, Item itemRemoved) in /server/AAEmuDev/AAEmu.Game/Models/Game/Char/CharacterEquipment.cs:line 36 at AAEmu.Game.Core.Packets.C2G.CSNotifyInGamePacket.Execute() in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSNotifyInGamePacket.cs:line 37 at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 177 at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171
Steps to reproduce
Создать нового персонажа, зайти новым персонажем в игровой мир, создать предмет, например ИД 31409, подойти к кузнецу без золота в инвентаре, создать золото в инвентарь, подойти к кузнецу и попытаться починить экипировку. Создать предметы одежды с уровнем улучшения например 11 и попытаться одеть на персонажа.
Expected behavior
Screenshots
https://youtu.be/sQXH91zzZjQ
Предметы в Базе данных в таблице items
Any additional context for this bug