You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
A merchant store item which no longer fits makes its map fail to load #1489
When an item of a merchant store finds no place in the store, e.g. because the size of its definition grew in the data, the merchant can't be created, and with it the map it stands on.
MerchantNpc builds a Storage over the merchant store, and the Storage constructor throws "Some items do not fit into the storage" for an item which finds no free place. The MerchantNpc is created while the map is initialized (MapInitializer), so the exception ends the initialization of the map.
How it showed up
On a local server, the Kris (0/0) was set from 1x2 to 4x4 in the admin panel, to test #1475. At the next start, the Crywolf event failed three times:
[Error] [CrywolfPlugIn] Unexpected error in the crywolf event.
System.ArgumentException: Some items do not fit into the storage: Slot 72: Kris+2+4 Physical Base Damage (min and max)+Luck
at MUnique.OpenMU.GameLogic.Storage..ctor(...)
at MUnique.OpenMU.GameLogic.NPC.MerchantNpc..ctor(...)
at MUnique.OpenMU.GameLogic.MapInitializer.InitializeSpawnAsync(...)
at MUnique.OpenMU.GameLogic.MapInitializer.InitializeStateAsync(...)
at MUnique.OpenMU.GameLogic.GameContext.GetMapAsync(...)
at MUnique.OpenMU.GameLogic.Crywolf.CrywolfContext.InitializeAsync()
The same path runs for every map whose merchant sells such an item, when the map is created.
Proposal
A merchant store item which finds no place is left out of the shop and logged as a warning (merchant, item, slot), instead of failing the map. The item stays in the database, so an admin can move it or change the store in the admin panel.
The items of characters (inventory, vault) are handled by #1475 / #1487; merchant stores aren't part of that, because their items belong to no player.
Activity