SkiTles55 / SPT-AKI-Profile-Editor

Программа для редактирования профиля игрока на сервере SPT-AKI
MIT License
137 stars 21 forks source link

Error when trying to add an item into the stash #111

Closed Damntry closed 1 year ago

Damntry commented 1 year ago

Versions

Describe the bug When I try to add items into the stash, I get the error "Not enough free slots". Happens with every kind of item I tried. The first time I used the app a few days ago it worked fine, but now for some reason it wont budge.

Additional context SPT-AKI Profile file: 062bcd5a65c80685c7ffed56.zip

Damntry commented 1 year ago

Ok I see the problem.

In CreateContainerStash2D, the grid stash is reported as being 48x10 in my stash level 3, which is true in vanilla Tarkov, but in reality I have 1500 slots since the Softcore mod makes the stash much bigger to compensate for all the crafting materials you need to keep. And since my stash is mostly full, Im over the vanilla 480 item limit.

Maybe there is an alternative way that reports the real stash capacity? For now I ve made a dirty patch to fix it on my end since Im not sure you guys fix compatibility problems from other mods, but any ideas are welcome.

Damntry commented 1 year ago

Just looked into it some more. The saved profile only states the stash level, and reading values from mod files is way too much work for this kind of thing, so really not much that it can be done from this app to get modded sizes.

So I ll stay with my own patch. I ll leave it below in the very remote case someone else can benefit from it:

private static int[,] CreateContainerStash2D(InventoryItem container){

    Grid stashTPL = AppData.ServerDatabase.ItemsDB[container.Tpl].Properties.Grids.FirstOrDefault();

    //Manually adjust for the Softcore mod changes of the stash height sizes. These values are true as of Softcore 1.4.0
    int[] stashHeightSoftcore = { 50, 100, 150, 200 };

    //Type 3 area is the Stash
    HideoutArea hideoutArea = AppData.Profile.Characters.Pmc.Hideout.Areas.Where(x => x.Type == 3).FirstOrDefault();

    int stashLevelIndex = Math.Min(hideoutArea.Level, stashHeightSoftcore.Length) - 1;

    return new int[stashHeightSoftcore[stashLevelIndex], stashTPL?.Props?.CellsH ?? 0];
    //return new int[stashTPL?.Props?.CellsV ?? 0, stashTPL?.Props?.CellsH ?? 0];
}
SkiTles55 commented 1 year ago

Awful solution. Profile editor can work with modified item properties if helper mod using enabled - https://github.com/SkiTles55/SPT-AKI-Profile-Editor/blob/master/Guidelines/ModHelperENG.md.