Move itemLimit code to be across all bot containers instead of per

Remove a tpl from loot pool once an item limit has been reached - prevents it being picked over and over
Remove loot data from pmc jsons as its generated dynamically, adding data into jsons now acts as an override for the dynamic generation
Reduced rouble max count to 1 for PMCs

Split PMC loot caches by side (usec/bear)
This commit is contained in:
Dev 2024-02-22 16:34:15 +00:00
parent cdb55ef7d5
commit 5e496af804
7 changed files with 200 additions and 1261 deletions

View File

@ -363,7 +363,7 @@
"5a341c4686f77469e155819e": 1, "5a341c4686f77469e155819e": 1,
"55818b164bdc2ddc698b456c": 2, "55818b164bdc2ddc698b456c": 2,
"5448bc234bdc2d3c308b4569": 2, "5448bc234bdc2d3c308b4569": 2,
"543be5dd4bdc2deb348b4569": 2, "543be5dd4bdc2deb348b4569": 1,
"543be5cb4bdc2deb348b4568": 2, "543be5cb4bdc2deb348b4568": 2,
"5485a8684bdc2da71d8b4567": 2, "5485a8684bdc2da71d8b4567": 2,
"5d650c3e815116009f6201d2": 2, "5d650c3e815116009f6201d2": 2,

View File

@ -3164,398 +3164,8 @@
} }
}, },
"items": { "items": {
"Backpack": { "Backpack": {},
"5448ba0b4bdc2d02308b456c": 1, "Pockets": {},
"5448c12b4bdc2d02308b456f": 1,
"5448c1d04bdc2dff2f8b4569": 1,
"5448fee04bdc2dbc018b4567": 1,
"5448ff904bdc2d6f028b456e": 1,
"544fb25a4bdc2dfb738b4567": 1,
"544fb3364bdc2d34748b456a": 1,
"544fb37f4bdc2dee738b4567": 1,
"544fb3f34bdc2d03748b456a": 1,
"544fb45d4bdc2dee738b4568": 1,
"544fb62a4bdc2dfb738b4568": 1,
"544fb6cc4bdc2d34748b456e": 1,
"55d4837c4bdc2d1d4e8b456c": 1,
"5645bcc04bdc2d363b8b4572": 1,
"5649af884bdc2d1b2b8b4589": 1,
"5672c92d4bdc2d180f8b4567": 1,
"5672cb124bdc2d1a0f8b4568": 1,
"5672cb304bdc2dc2088b456a": 1,
"5673de654bdc2d180f8b456d": 1,
"56742c284bdc2d98058b456d": 1,
"56742c324bdc2d150f8b456d": 1,
"571a282c2459771fb2755a69": 1,
"571a28e524597720b4066567": 1,
"571a29dc2459771fb2755a6a": 1,
"5733279d245977289b77ec24": 1,
"573474f924597738002c6174": 1,
"5734758f24597738025ee253": 1,
"573476d324597737da2adc13": 1,
"573476f124597737e04bf328": 1,
"5734770f24597738025ee254": 1,
"5734773724597737fd047c14": 1,
"5734779624597737e04bf329": 1,
"573477e124597737dd42e191": 1,
"5734781f24597737e04bf32a": 1,
"573478bc24597738002c6175": 1,
"57347b8b24597737dd42e192": 1,
"57347c1124597737fb1379e3": 1,
"57347c2e24597744902c94a1": 1,
"57347c5b245977448d35f6e1": 1,
"57347c77245977448d35f6e2": 1,
"57347c93245977448d35f6e3": 1,
"57347ca924597744596b4e71": 1,
"57347cd0245977445a2d6ff1": 1,
"57347d3d245977448f7b7f61": 1,
"57347d5f245977448b40fa81": 1,
"57347d692459774491567cf1": 1,
"57347d7224597744596b4e72": 1,
"57347d8724597744596b4e76": 1,
"57347d90245977448f7b7f65": 1,
"57347d9c245977448b40fa85": 1,
"57347da92459774491567cf5": 1,
"57505f6224597709a92585a9": 1,
"575062b524597720a31c09a1": 1,
"57513f07245977207e26a311": 1,
"57513f9324597720a7128161": 1,
"57513fcc24597720a31c09a6": 1,
"5751435d24597720a27126d1": 1,
"57514643245977207f2c2d09": 1,
"575146b724597720a27126d5": 1,
"5751487e245977207e26a315": 1,
"5751a25924597722c463c472": 1,
"5755356824597772cb798962": 1,
"5755383e24597772cb798966": 1,
"57616a9e2459773c7a400234": 1,
"576a7c512459771e796e0e17": 1,
"577e1c9d2459773cd707c525": 1,
"5780cda02459777b272ede61": 1,
"5780cf692459777de4559321": 1,
"5780cf722459777a5108b9a1": 1,
"5780cf7f2459777de4559322": 1,
"5780cf942459777df90dcb72": 1,
"5780cf9e2459777df90dcb73": 1,
"5780cfa52459777dfb276eb1": 1,
"5780d0532459777a5108b9a2": 1,
"5780d0652459777df90dcb74": 1,
"5780d07a2459777de4559324": 1,
"57a349b2245977762b199ec7": 1,
"57d14e1724597714010c3f4b": 1,
"588226e62459776e3e094af7": 1,
"590a358486f77429692b2790": 1,
"590a373286f774287540368b": 1,
"590a386e86f77429692b27ab": 1,
"590a391c86f774385a33c404": 1,
"590a3b0486f7743954552bdb": 1,
"590a3c0a86f774385a33c450": 1,
"590a3cd386f77436f20848cb": 1,
"590a3efd86f77437d351a25b": 1,
"590c2b4386f77425357b6123": 1,
"590c2c9c86f774245b1f03f2": 1,
"590c2d8786f774245b1f03f3": 1,
"590c2e1186f77425357b6124": 1,
"590c311186f77424d1667482": 1,
"590c31c586f774245e3141b2": 1,
"590c346786f77423e50ed342": 1,
"590c35a486f774273531c822": 1,
"590c392f86f77444754deb29": 1,
"590c595c86f7747884343ad7": 1,
"590c5a7286f7747884343aea": 1,
"590c5bbd86f774785762df04": 1,
"590c5c9f86f77477c91c36e7": 1,
"590c5d4b86f774784e1b9c45": 1,
"590c5f0d86f77413997acfab": 1,
"590c621186f774138d11ea29": 1,
"590c639286f774151567fa95": 1,
"590c651286f7741e566b6461": 1,
"590c661e86f7741e566b646a": 1,
"590c678286f77426c9660122": 1,
"590de71386f774347051a052": 1,
"590de7e986f7741b096e5f32": 1,
"59136e1e86f774432f15d133": 1,
"59136f6f86f774447a1ed173": 1,
"59148c8a86f774197930e983": 1,
"591afe0186f77431bd616a11": 1,
"5938504186f7740991483f30": 1,
"593858c486f774253a24cb52": 1,
"5938603e86f77435642354f4": 1,
"59387a4986f77401cc236e62": 1,
"593962ca86f774068014d9af": 1,
"59d625f086f774661516605d": 1,
"59e3577886f774176a362503": 1,
"59e35abd86f7741778269d82": 1,
"59e35cbb86f7741778269d83": 1,
"59e35de086f7741778269d84": 1,
"59e35ef086f7741777737012": 1,
"59e3606886f77417674759a5": 1,
"59e361e886f774176c10a2a5": 1,
"59e3639286f7741777737013": 1,
"59e3658a86f7741776641ac4": 1,
"59e366c186f7741778269d85": 1,
"59e36c6f86f774176c10a2a7": 1,
"59e7635f86f7742cbf2c1095": 1,
"59e7708286f7742cbd762753": 1,
"59e7715586f7742ee5789605": 1,
"59e898ee86f77427614bd225": 1,
"59faf7ca86f7740dbe19f6c2": 1,
"59faf98186f774067b6be103": 1,
"59fafb5d86f774067a6f2084": 1,
"5a0dc95c86f77452440fc675": 1,
"5a0ea79b86f7741d4a35298e": 1,
"5a0eb6ac86f7743124037a28": 1,
"5a0ee30786f774023b6ee08f": 1,
"5a0ee34586f774023b6ee092": 1,
"5a0eee1486f77402aa773226": 1,
"5a13ef0686f7746e5a411744": 1,
"5a145d4786f7744cbb6f4a12": 1,
"5a145d7b86f7744cbb6f4a13": 1,
"5a38ee51c4a282000c5a955c": 1,
"5a7893c1c585673f2b5c374d": 1,
"5a7c4850e899ef00150be885": 1,
"5a9fbb74a2750c0032157181": 1,
"5a9fbb84a2750c00137fa685": 1,
"5aa2b9ede5b5b000137b758b": 1,
"5aaa5e60e5b5b000140293d6": 1,
"5ab8f4ff86f77431c60d91ba": 1,
"5ab8f85d86f7745cd93a1cf5": 1,
"5ad5d64486f774079b080af8": 1,
"5ad5db3786f7743568421cce": 1,
"5af0454c86f7746bf20992e8": 1,
"5af0484c86f7740f02001f7f": 1,
"5af04b6486f774195a3ebb49": 1,
"5af0534a86f7743b6f354284": 1,
"5af0561e86f7745f5f3ad6ac": 1,
"5b4335ba86f7744d2837a264": 1,
"5b43575a86f77424f443fe62": 1,
"5b7bef1e5acfc43d82528402": 1,
"5b7d679f5acfc4001a5c4024": 1,
"5b86a0e586f7745b600ccb23": 1,
"5bbdb811d4351e45020113c7": 1,
"5bc9b355d4351e6d1509862a": 1,
"5bc9bc53d4351e00367fbcee": 1,
"5c052e6986f7746b207bc3c9": 1,
"5c052f6886f7746b1e3db148": 1,
"5c052fb986f7746b2101e909": 1,
"5c05300686f7746dce784e5d": 1,
"5c05308086f7746b2101e90b": 1,
"5c0530ee86f774697952d952": 1,
"5c06779c86f77426e00dd782": 1,
"5c06782b86f77426df5407d2": 1,
"5c1265fc86f7743f896a21c2": 1,
"5c12688486f77426843c7d32": 1,
"5c13cd2486f774072c757944": 1,
"5c13cef886f774072e618e82": 1,
"5c1d0c5f86f7744bb2683cf0": 1,
"5c1d0d6d86f7744bb2683e1f": 1,
"5c1d0dc586f7744baf2e7b79": 1,
"5c1e495a86f7743109743dfb": 1,
"5c471c442e221602b542a6f8": 1,
"5c5db5fc2e2216000f1b2842": 1,
"5c78f2792e221600106f4683": 1,
"5c87ca002e221600114cb150": 1,
"5c94bbff86f7747ee735c08f": 1,
"5c9a26332e2216001219ea70": 1,
"5cf508bfd7f00c056e24104e": 1,
"5d02778e86f774203e7dedbe": 1,
"5d02797c86f774203f38e30a": 1,
"5d0375ff86f774186372f685": 1,
"5d03775b86f774203e7e0c4b": 1,
"5d0378d486f77420421a5ff4": 1,
"5d03794386f77420415576f5": 1,
"5d0379a886f77420407aa271": 1,
"5d1340bdd7ad1a0e8d245aab": 1,
"5d15cf3bd7ad1a67e71518b2": 1,
"5d1b2fa286f77425227d1674": 1,
"5d1b2ffd86f77425243e8d17": 1,
"5d1b304286f774253763a528": 1,
"5d1b309586f77425227d1676": 1,
"5d1b313086f77425227d1678": 1,
"5d1b317c86f7742523398392": 1,
"5d1b31ce86f7742523398394": 1,
"5d1b327086f7742525194449": 1,
"5d1b32c186f774252167a530": 1,
"5d1b36a186f7742523398433": 1,
"5d1b371186f774253763a656": 1,
"5d1b376e86f774252519444e": 1,
"5d1b392c86f77425243e98fe": 1,
"5d1b39a386f774252339976f": 1,
"5d1b3a5d86f774252167ba22": 1,
"5d1b3f2d86f774253763b735": 1,
"5d1c774f86f7746d6620f8db": 1,
"5d1c819a86f774771b0acd6c": 1,
"5d235a5986f77443f6329bc6": 1,
"5d2c76ed48f03532f2136169": 1,
"5d40412b86f7743cb332ac3a": 1,
"5d40419286f774318526545f": 1,
"5d4041f086f7743cac3f22a7": 1,
"5d5e7d28a4b936645d161203": 1,
"5d63d33b86f7746ea9275524": 1,
"5d80c62a86f7744036212b3f": 1,
"5d80c6fc86f774403a401e3c": 1,
"5d80cb3886f77440556dbf09": 1,
"5d95d6be86f77424444eb3a7": 1,
"5d95d6fa86f77424484aa5e9": 1,
"5df8e4080b92095fd441e594": 1,
"5e2aedd986f7746d404f3aa4": 1,
"5e2aef7986f7746d3f3c33f5": 1,
"5e2af00086f7746d3f3c33f7": 1,
"5e2af29386f7746d4159f077": 1,
"5e2af2bc86f7746d3f3c33fc": 1,
"5e2af41e86f774755a234b67": 1,
"5e2af47786f7746d404f3aaa": 1,
"5e2af4a786f7746d3f3c3400": 1,
"5e2af4d286f7746d4159f07a": 1,
"5e340dcdcb6d5863cc5e5efb": 1,
"5e54f6af86f7742199090bf3": 1,
"5e831507ea0a7c419c2f9bd9": 1,
"5e8488fa988a8701445df1e4": 1,
"5ed515c8d380ab312177c0fa": 1,
"5ed515f6915ec335206e4152": 1,
"5ed51652f6c34d2cc26336a1": 1,
"5ede7b0c6d23e5473e6e8c66": 1,
"5efde6b4f5448336730dbd61": 1,
"5eff09cd30a7dc22fd1ddfed": 1,
"60098af40accd37ef2175f27": 1,
"60391a8b3364dc22b04d0ce5": 1,
"60391afc25aff57af81f7085": 1,
"60391b0fb847c71012789415": 1,
"60b0f93284c20f0feb453da7": 1,
"619cbf476b8a1b37a54eebf8": 1,
"619cbfccbedcde2f5b3f7bdd": 1,
"619cbfeb6b8a1b37a54eebfa": 1,
"619cc01e0a7c3a1a2731940c": 1,
"61bf7b6302b3924be92fa8c3": 1,
"61bf7c024770ee6f9c6b8b53": 1,
"61bf83814088ec1a363d7097": 1,
"62a08f4c4f842e1bd12d9d62": 1,
"62a0a043cf4a99369e2624a5": 1,
"62a0a098de7ac8199358053b": 1
},
"Pockets": {
"544fb3f34bdc2d03748b456a": 1,
"5648b1504bdc2d9d488b4584": 1,
"5672c92d4bdc2d180f8b4567": 1,
"56742c2e4bdc2d95058b456d": 1,
"573474f924597738002c6174": 1,
"5734773724597737fd047c14": 1,
"5734779624597737e04bf329": 1,
"573477e124597737dd42e191": 1,
"5734795124597738002c6176": 1,
"57347baf24597738002c6178": 1,
"57347c2e24597744902c94a1": 1,
"57347cd0245977445a2d6ff1": 1,
"5751496424597720a27126da": 1,
"5751a25924597722c463c472": 1,
"576a5ed62459771e9c2096cb": 1,
"576a7c512459771e796e0e17": 1,
"5783c43d2459774bbe137486": 1,
"57c44fa82459772d2d75e415": 1,
"57c55f112459772d28133310": 1,
"57cff947245977638e6f2a19": 1,
"57ee59b42459771c7b045da5": 1,
"588226d124597767ad33f787": 1,
"588226e62459776e3e094af7": 1,
"588226ef24597767af46e39c": 1,
"5888988e24597752fe43a6fa": 1,
"58a56f8d86f774651579314c": 1,
"58d39d3d86f77445bb794ae7": 1,
"58d3db5386f77426186285a0": 1,
"5909e99886f7740c983b9984": 1,
"590a358486f77429692b2790": 1,
"590a373286f774287540368b": 1,
"590a391c86f774385a33c404": 1,
"590a3b0486f7743954552bdb": 1,
"590a3c0a86f774385a33c450": 1,
"590a3cd386f77436f20848cb": 1,
"590c2b4386f77425357b6123": 1,
"590c2c9c86f774245b1f03f2": 1,
"590c2d8786f774245b1f03f3": 1,
"590c311186f77424d1667482": 1,
"590c5bbd86f774785762df04": 1,
"5913611c86f77479e0084092": 1,
"5913651986f774432f15d132": 1,
"5914578086f774123569ffa4": 1,
"5938144586f77473c2087145": 1,
"5938994586f774523a425196": 1,
"59db3acc86f7742a2c4ab912": 1,
"59e0bdb186f774156f04ce82": 1,
"59e3577886f774176a362503": 1,
"59e5d83b86f7745aed03d262": 1,
"59f99a7d86f7745b134aa97b": 1,
"59faff1d86f7746c51718c9c": 1,
"59fc48e086f77463b1118392": 1,
"5a0c27731526d80618476ac4": 1,
"5a0ee34586f774023b6ee092": 1,
"5a0ee72c86f77436955d3435": 1,
"5a0eee1486f77402aa773226": 1,
"5a0f075686f7745bcc42ee12": 1,
"5a144dfd86f77445cb5a0982": 1,
"5a145d7b86f7744cbb6f4a13": 1,
"5a145ebb86f77458f1796f05": 1,
"5a38ed75c4a28232996e40c6": 1,
"5a6b5ed88dc32e000c52ec86": 1,
"5a6b60158dc32e000a31138b": 1,
"5a718b548dc32e000d46d262": 1,
"5a9d56c8a2750c0032157146": 1,
"5a9d6d00a2750c5c985b5305": 1,
"5ad5cfbd86f7742c825d6104": 1,
"5ad5d7d286f77450166e0a89": 1,
"5ad7242b86f7740a6a3abd43": 1,
"5af04b6486f774195a3ebb49": 1,
"5af0561e86f7745f5f3ad6ac": 1,
"5b07db875acfc40dc528a5f6": 1,
"5b4335ba86f7744d2837a264": 1,
"5b7bef1e5acfc43d82528402": 1,
"5b7d679f5acfc4001a5c4024": 1,
"5bb20e18d4351e00320205d5": 1,
"5bc9c29cd4351e003562b8a3": 1,
"5bc9c377d4351e3bac12251b": 1,
"5c052fb986f7746b2101e909": 1,
"5c0e531d86f7747fa23f4d42": 1,
"5c0e533786f7747fa23f4d47": 1,
"5c0e534186f7747fa1419867": 1,
"5c13cef886f774072e618e82": 1,
"5c1bc4812e22164bef5cfde7": 1,
"5c1bc5fb2e221602b1779b32": 1,
"5c1d0c5f86f7744bb2683cf0": 1,
"5c1d0d6d86f7744bb2683e1f": 1,
"5c471c442e221602b542a6f8": 1,
"5c503ad32e2216398b5aada2": 1,
"5c6161fb2e221600113fbde5": 1,
"5c61627a2e22160012542c55": 1,
"5c7fc87d2e221644f31c0298": 1,
"5c87ca002e221600114cb150": 1,
"5c94bbff86f7747ee735c08f": 1,
"5cf508bfd7f00c056e24104e": 1,
"5d0376a486f7747d8050965c": 1,
"5d0377ce86f774186372f689": 1,
"5d08d21286f774736e7c94c3": 1,
"5d1b313086f77425227d1678": 1,
"5d1b31ce86f7742523398394": 1,
"5d1b39a386f774252339976f": 1,
"5d1b3a5d86f774252167ba22": 1,
"5d1c774f86f7746d6620f8db": 1,
"5d235b4d86f7742e017bc88a": 1,
"5d4aaa54a4b9365392071170": 1,
"5d4aaa73a4b9365392071175": 1,
"5d80c60f86f77440373c4ece": 1,
"5d80c6c586f77440351beef1": 1,
"5d80cd1a86f77402aa362f42": 1,
"5d8e0e0e86f774321140eb56": 1,
"5de8ea8ffd6b4e6e2276dc35": 1,
"5e2aedd986f7746d404f3aa4": 1,
"5e2af22086f7746d3f3c33fa": 1,
"5e2af29386f7746d4159f077": 1,
"5e2af37686f774755a234b65": 1,
"5e32f56fcb6d5863cc5e5ee4": 1,
"5e42c71586f7747f245e1343": 1,
"5e42c81886f7742a01529f57": 1,
"5e42c83786f7742a021fdf3c": 1,
"5e569a0156edd02abe09f27d": 1,
"5e831507ea0a7c419c2f9bd9": 1
},
"SecuredContainer": { "SecuredContainer": {
"54527a984bdc2d4e668b4567": 1, "54527a984bdc2d4e668b4567": 1,
"54527ac44bdc2d36668b4567": 1, "54527ac44bdc2d36668b4567": 1,
@ -3648,148 +3258,7 @@
"601aa3d2b2bcb34913271e6d": 1 "601aa3d2b2bcb34913271e6d": 1
}, },
"SpecialLoot": {}, "SpecialLoot": {},
"TacticalVest": { "TacticalVest": {}
"5448be9a4bdc2dfd2f8b456a": 1,
"5448c1d04bdc2dff2f8b4569": 1,
"544a37c44bdc2d25388b4567": 1,
"544fb25a4bdc2dfb738b4567": 1,
"544fb37f4bdc2dee738b4567": 1,
"54527a984bdc2d4e668b4567": 1,
"54527ac44bdc2d36668b4567": 1,
"559ba5b34bdc2d1f1a8b4582": 1,
"55d480c04bdc2d1d4e8b456a": 1,
"55d482194bdc2d1d4e8b456b": 1,
"55d4837c4bdc2d1d4e8b456c": 1,
"55d4887d4bdc2d962f8b4570": 1,
"560d61e84bdc2da74d8b4571": 1,
"5656d7c34bdc2d9d198b4587": 1,
"56d59d3ad2720bdb418b4577": 1,
"56dfef82d2720bbd668b4567": 1,
"56dff026d2720bb8668b4567": 1,
"56dff061d2720bb5668b4567": 1,
"56dff216d2720bbd668b4568": 1,
"56dff2ced2720bb4668b4567": 1,
"56dff4ecd2720b5f5a8b4568": 1,
"572b7fa524597762b747ce82": 1,
"5734758f24597738025ee253": 1,
"5751a25924597722c463c472": 1,
"5755383e24597772cb798966": 1,
"57616a9e2459773c7a400234": 1,
"576a5ed62459771e9c2096cb": 1,
"57838f0b2459774a256959b2": 1,
"57838f9f2459774a150289a0": 1,
"57a0e5022459774d1673f889": 1,
"57d1519e24597714373db79d": 1,
"57e26fc7245977162a14b800": 1,
"587df3a12459772c28142567": 1,
"587df583245977373c4f1129": 1,
"58820d1224597753c90aeb13": 1,
"58864a4f2459770fcc257101": 1,
"5887431f2459777e1612938f": 1,
"58d3db5386f77426186285a0": 1,
"58dd3ad986f77403051cba8f": 1,
"590c5a7286f7747884343aea": 1,
"590c661e86f7741e566b646a": 1,
"590c678286f77426c9660122": 1,
"590c695186f7741e566b64a2": 1,
"5926c3b286f774640d189b6b": 1,
"599860ac86f77436b225ed1a": 1,
"59c1383d86f774290a37e0ca": 1,
"59d625f086f774661516605d": 1,
"59e0d99486f7744a32234762": 1,
"59e4cf5286f7741778269d8a": 1,
"59e4d24686f7741776641ac7": 1,
"59e5d83b86f7745aed03d262": 1,
"59e6542b86f77411dc52a77a": 1,
"59e655cb86f77411dc52a77b": 1,
"59e6658b86f77411d949b250": 1,
"59e68f6f86f7746c9f75e846": 1,
"59e6906286f7746c9f75e847": 1,
"59e690b686f7746c9f75e848": 1,
"59e6918f86f7746c9f75e849": 1,
"59e6920f86f77411d82aa167": 1,
"59e6927d86f77411da468256": 1,
"59e77a2386f7742ee578960a": 1,
"59f99a7d86f7745b134aa97b": 1,
"59fafc5086f7740dbe19f6c3": 1,
"5a01c29586f77474660c694c": 1,
"5a0c27731526d80618476ac4": 1,
"5a3501acc4a282000d72293a": 1,
"5a351711c4a282000b1521a4": 1,
"5a38ebd9c4a282000d722a5b": 1,
"5a3c16fe86f77452b62de32a": 1,
"5a6086ea4f39f99cd479502f": 1,
"5a608bf24f39f98ffc77720e": 1,
"5a718b548dc32e000d46d262": 1,
"5a718da68dc32e000d46d264": 1,
"5a718f958dc32e00094b97e7": 1,
"5a7882dcc5856700177af662": 1,
"5a7ad2e851dfba0016153692": 1,
"5a9e81fba2750c00164f6b11": 1,
"5aaa5e60e5b5b000140293d6": 1,
"5aaf8a0be5b5b00015693243": 1,
"5ac66bea5acfc43b321d4aec": 1,
"5ac66c5d5acfc4001718d314": 1,
"5addcce35acfc4001a5fc635": 1,
"5af0548586f7743a532b7e99": 1,
"5b1fd4e35acfc40018633c39": 1,
"5b4335ba86f7744d2837a264": 1,
"5b7bef5d5acfc43bca7067a3": 1,
"5b7bef9c5acfc43d102852ec": 1,
"5b7d37845acfc400170e2f87": 1,
"5ba264f6d4351e0034777d52": 1,
"5ba2657ed4351e0035628ff2": 1,
"5ba26586d4351e44f824b340": 1,
"5ba26844d4351e00334c9475": 1,
"5c0548ae0db834001966a3c2": 1,
"5c0672ed0db834001b7353f3": 1,
"5c0673fb0db8340023300271": 1,
"5c0d56a986f774449d5de529": 1,
"5c0d5ae286f7741e46554302": 1,
"5c0d688c86f77413ae3407b2": 1,
"5c0e530286f7747fa1419862": 1,
"5c10c8fd86f7743d7d706df3": 1,
"5c3df7d588a4501f290594e5": 1,
"5c471c442e221602b542a6f8": 1,
"5c503ac82e221602b21d6e9a": 1,
"5c503ad32e2216398b5aada2": 1,
"5c5970672e221602b21d7855": 1,
"5c5db6552e2216001026119d": 1,
"5c5db6742e2216000f1b2852": 1,
"5c6161fb2e221600113fbde5": 1,
"5c6d42cb2e2216000e69d7d1": 1,
"5c6d450c2e221600114c997d": 1,
"5c6d46132e221601da357d56": 1,
"5c88f24b2e22160bc12c69a6": 1,
"5c925fa22e221601da359b7b": 1,
"5cadf6ddae9215051e1c23b2": 1,
"5caf1041ae92157c28402e3f": 1,
"5cc80f8fe4a949033b0224a2": 1,
"5cc86840d7f00c002412c56c": 1,
"5d1340b3d7ad1a0b52682ed7": 1,
"5d1340cad7ad1a0b0b249869": 1,
"5d2f213448f0355009199284": 1,
"5d6e6a53a4b9361bd473feec": 1,
"5de653abf76fdc1ce94a5a2a": 1,
"5de8e8dafd6b4e6e2276dc32": 1,
"5de8ea8ffd6b4e6e2276dc35": 1,
"5de8eaadbbaf010b10528a6d": 1,
"5df25b6c0b92095fd441e4cf": 1,
"5df8f535bb49d91fb446d6b0": 1,
"5df8f541c41b2312ea3335e3": 1,
"5e023cf8186a883be655e54f": 1,
"5e023d34e8a400319a28ed44": 1,
"5e023e6e34d52a55c3304f71": 1,
"5e21a3c67e40bd02257a008a": 1,
"5e32f56fcb6d5863cc5e5ee4": 1,
"5e831507ea0a7c419c2f9bd9": 1,
"5e8488fa988a8701445df1e4": 1,
"5ed515ece452db0eb56fc028": 1,
"5ed5160a87bb8443d10680b5": 1,
"5ed51652f6c34d2cc26336a1": 1,
"5ed5166ad380ab312177c100": 1,
"60098ad7c2240c0fe85c570a": 1
}
}, },
"mods": { "mods": {
"5447a9cd4bdc2dbd208b4567": { "5447a9cd4bdc2dbd208b4567": {

View File

@ -3161,649 +3161,101 @@
} }
}, },
"items": { "items": {
"Backpack": { "Backpack": {},
"62a0a043cf4a99369e2624a5": 1, "Pockets": {},
"62a08f4c4f842e1bd12d9d62": 1,
"62a0a098de7ac8199358053b": 1,
"59136e1e86f774432f15d133": 1,
"5c1d0d6d86f7744bb2683e1f": 1,
"5ad5d64486f774079b080af8": 1,
"5c1e495a86f7743109743dfb": 1,
"5a7c4850e899ef00150be885": 1,
"5d5e7d28a4b936645d161203": 1,
"5d40419286f774318526545f": 1,
"60098af40accd37ef2175f27": 1,
"57513f9324597720a7128161": 1,
"57513f07245977207e26a311": 1,
"60b0f93284c20f0feb453da7": 1,
"544fb62a4bdc2dfb738b4568": 1,
"590c595c86f7747884343ad7": 1,
"59e366c186f7741778269d85": 1,
"5d1b327086f7742525194449": 1,
"5d1b371186f774253763a656": 1,
"5734781f24597737e04bf32a": 1,
"59e3606886f77417674759a5": 1,
"5d1b313086f77425227d1678": 1,
"5d1b304286f774253763a528": 1,
"590a3cd386f77436f20848cb": 1,
"5d1b32c186f774252167a530": 1,
"5d0375ff86f774186372f685": 1,
"590c392f86f77444754deb29": 1,
"5d1b2ffd86f77425243e8d17": 1,
"5af0484c86f7740f02001f7f": 1,
"5d1b317c86f7742523398392": 1,
"590c311186f77424d1667482": 1,
"59e35de086f7741778269d84": 1,
"5c13cef886f774072e618e82": 1,
"5d1c774f86f7746d6620f8db": 1,
"5d1b39a386f774252339976f": 1,
"590c678286f77426c9660122": 1,
"5755383e24597772cb798966": 1,
"5c1d0c5f86f7744bb2683cf0": 1,
"5c1d0dc586f7744baf2e7b79": 1,
"5938603e86f77435642354f4": 1,
"591afe0186f77431bd616a11": 1,
"593858c486f774253a24cb52": 1,
"5a0eb6ac86f7743124037a28": 1,
"590c5f0d86f77413997acfab": 1,
"590c5c9f86f77477c91c36e7": 1,
"59faf98186f774067b6be103": 1,
"59e35cbb86f7741778269d83": 1,
"5c052f6886f7746b1e3db148": 1,
"5c05308086f7746b2101e90b": 1,
"5ed51652f6c34d2cc26336a1": 1,
"5780cf7f2459777de4559322": 1,
"5a13ef0686f7746e5a411744": 1,
"5a0ee34586f774023b6ee092": 1,
"5a0eee1486f77402aa773226": 1,
"5a0ea79b86f7741d4a35298e": 1,
"5efde6b4f5448336730dbd61": 1,
"590c2e1186f77425357b6124": 1,
"59e36c6f86f774176c10a2a7": 1,
"573477e124597737dd42e191": 1,
"590a358486f77429692b2790": 1,
"56742c324bdc2d150f8b456d": 1,
"5c1265fc86f7743f896a21c2": 1,
"573476d324597737da2adc13": 1,
"573476f124597737e04bf328": 1,
"5734770f24597738025ee254": 1,
"5c052fb986f7746b2101e909": 1,
"5eff09cd30a7dc22fd1ddfed": 1,
"59e7708286f7742cbd762753": 1,
"5aa2b9ede5b5b000137b758b": 1,
"5ab8f4ff86f77431c60d91ba": 1,
"5ab8f85d86f7745cd93a1cf5": 1,
"5645bcc04bdc2d363b8b4572": 1,
"5e2af4d286f7746d4159f07a": 1,
"5c12688486f77426843c7d32": 1,
"5e2af47786f7746d404f3aaa": 1,
"5b43575a86f77424f443fe62": 1,
"59e3639286f7741777737013": 1,
"573478bc24597738002c6175": 1,
"59e3658a86f7741776641ac4": 1,
"590de71386f774347051a052": 1,
"590de7e986f7741b096e5f32": 1,
"5e2af4a786f7746d3f3c3400": 1,
"5e2af41e86f774755a234b67": 1,
"5d02778e86f774203e7dedbe": 1,
"5c052e6986f7746b207bc3c9": 1,
"5d02797c86f774203f38e30a": 1,
"5af0454c86f7746bf20992e8": 1,
"5ed515c8d380ab312177c0fa": 1,
"5ed515f6915ec335206e4152": 1,
"5af0534a86f7743b6f354284": 1,
"590c5a7286f7747884343aea": 1,
"5733279d245977289b77ec24": 1,
"544fb3f34bdc2d03748b456a": 1,
"590a3efd86f77437d351a25b": 1,
"544fb45d4bdc2dee738b4568": 1,
"5a145d7b86f7744cbb6f4a13": 1,
"5a145d4786f7744cbb6f4a12": 1,
"5a0ee30786f774023b6ee08f": 1,
"5a0dc95c86f77452440fc675": 1,
"5ad5db3786f7743568421cce": 1,
"593962ca86f774068014d9af": 1,
"59faf7ca86f7740dbe19f6c2": 1,
"59e7715586f7742ee5789605": 1,
"5b4335ba86f7744d2837a264": 1,
"5734758f24597738025ee253": 1,
"590c621186f774138d11ea29": 1,
"59e7635f86f7742cbf2c1095": 1,
"5938504186f7740991483f30": 1,
"5780cf942459777df90dcb72": 1,
"5d0379a886f77420407aa271": 1,
"5d03794386f77420415576f5": 1,
"5e831507ea0a7c419c2f9bd9": 1,
"5e8488fa988a8701445df1e4": 1,
"5672cb124bdc2d1a0f8b4568": 1,
"55d4837c4bdc2d1d4e8b456c": 1,
"5780d0532459777a5108b9a2": 1,
"5d1b3f2d86f774253763b735": 1,
"5a38ee51c4a282000c5a955c": 1,
"57347c93245977448d35f6e3": 1,
"5755356824597772cb798962": 1,
"5649af884bdc2d1b2b8b4589": 1,
"544fb37f4bdc2dee738b4567": 1,
"590c2b4386f77425357b6123": 1,
"544fb3364bdc2d34748b456a": 1,
"5448c1d04bdc2dff2f8b4569": 1,
"57347d692459774491567cf1": 1,
"590c661e86f7741e566b646a": 1,
"59e361e886f774176c10a2a5": 1,
"5751487e245977207e26a315": 1,
"5c06779c86f77426e00dd782": 1,
"5780cf9e2459777df90dcb73": 1,
"57347b8b24597737dd42e192": 1,
"575062b524597720a31c09a1": 1,
"57347d9c245977448b40fa85": 1,
"571a29dc2459771fb2755a6a": 1,
"5aaa5e60e5b5b000140293d6": 1,
"57347d7224597744596b4e72": 1,
"5d1b392c86f77425243e98fe": 1,
"5780cf722459777a5108b9a1": 1,
"5780d0652459777df90dcb74": 1,
"5e2af2bc86f7746d3f3c33fc": 1,
"5780cda02459777b272ede61": 1,
"544fb6cc4bdc2d34748b456e": 1,
"57347c1124597737fb1379e3": 1,
"57347d90245977448f7b7f65": 1,
"57d14e1724597714010c3f4b": 1,
"5673de654bdc2d180f8b456d": 1,
"5b86a0e586f7745b600ccb23": 1,
"5cf508bfd7f00c056e24104e": 1,
"571a28e524597720b4066567": 1,
"5780cf692459777de4559321": 1,
"57505f6224597709a92585a9": 1,
"57a349b2245977762b199ec7": 1,
"57514643245977207f2c2d09": 1,
"57616a9e2459773c7a400234": 1,
"5b7d679f5acfc4001a5c4024": 1,
"5c06782b86f77426df5407d2": 1,
"57513fcc24597720a31c09a6": 1,
"590c31c586f774245e3141b2": 1,
"57347ca924597744596b4e71": 1,
"59d625f086f774661516605d": 1,
"577e1c9d2459773cd707c525": 1,
"59136f6f86f774447a1ed173": 1,
"5df8e4080b92095fd441e594": 1,
"5d15cf3bd7ad1a67e71518b2": 1,
"576a7c512459771e796e0e17": 1,
"5448fee04bdc2dbc018b4567": 1,
"5448fee04bdc2dbc018b4567": 1,
"5448fee04bdc2dbc018b4567": 1,
"57347d3d245977448f7b7f61": 1,
"5d1b36a186f7742523398433": 1,
"5751435d24597720a27126d1": 1,
"5e340dcdcb6d5863cc5e5efb": 1,
"5d40412b86f7743cb332ac3a": 1,
"59148c8a86f774197930e983": 1,
"59e35abd86f7741778269d82": 1,
"571a282c2459771fb2755a69": 1,
"5d63d33b86f7746ea9275524": 1,
"59e35ef086f7741777737012": 1,
"57347c77245977448d35f6e2": 1,
"57347c5b245977448d35f6e1": 1,
"5c5db5fc2e2216000f1b2842": 1,
"588226e62459776e3e094af7": 1,
"59387a4986f77401cc236e62": 1,
"5d4041f086f7743cac3f22a7": 1,
"5448ba0b4bdc2d02308b456c": 1,
"57347d8724597744596b4e76": 1,
"5780d07a2459777de4559324": 1,
"5a9fbb74a2750c0032157181": 1,
"5c94bbff86f7747ee735c08f": 1,
"56742c284bdc2d98058b456d": 1,
"590c2d8786f774245b1f03f3": 1,
"5672c92d4bdc2d180f8b4567": 1,
"5780cfa52459777dfb276eb1": 1,
"57347d5f245977448b40fa81": 1,
"544fb25a4bdc2dfb738b4567": 1,
"5c78f2792e221600106f4683": 1,
"59e898ee86f77427614bd225": 1,
"59e3577886f774176a362503": 1,
"590c5d4b86f774784e1b9c45": 1,
"5d1b2fa286f77425227d1674": 1,
"5734773724597737fd047c14": 1,
"5448ff904bdc2d6f028b456e": 1,
"5c87ca002e221600114cb150": 1,
"590c5bbd86f774785762df04": 1,
"5448c12b4bdc2d02308b456f": 1,
"5d2c76ed48f03532f2136169": 1,
"57347da92459774491567cf5": 1,
"5e2aef7986f7746d3f3c33f5": 1,
"5af04b6486f774195a3ebb49": 1,
"5a7893c1c585673f2b5c374d": 1,
"5b7bef1e5acfc43d82528402": 1,
"5c471c442e221602b542a6f8": 1,
"5a9fbb84a2750c00137fa685": 1,
"5c9a26332e2216001219ea70": 1,
"5672cb304bdc2dc2088b456a": 1,
"575146b724597720a27126d5": 1,
"5d1b31ce86f7742523398394": 1,
"573474f924597738002c6174": 1,
"5d1340bdd7ad1a0e8d245aab": 1,
"59fafb5d86f774067a6f2084": 1,
"5bbdb811d4351e45020113c7": 1,
"5c13cd2486f774072c757944": 1,
"5af0561e86f7745f5f3ad6ac": 1,
"57513f9324597720a7128161": 1,
"590c346786f77423e50ed342": 1,
"590c35a486f774273531c822": 1,
"5d80c62a86f7744036212b3f": 1,
"5ede7b0c6d23e5473e6e8c66": 1,
"5d80cb3886f77440556dbf09": 1,
"5d95d6fa86f77424484aa5e9": 1,
"5d95d6be86f77424444eb3a7": 1,
"5d80c6fc86f774403a401e3c": 1,
"590a3b0486f7743954552bdb": 1,
"590a391c86f774385a33c404": 1,
"590a386e86f77429692b27ab": 1,
"57347c2e24597744902c94a1": 1,
"5bc9bc53d4351e00367fbcee": 1,
"5d235a5986f77443f6329bc6": 1,
"5e2af29386f7746d4159f077": 1,
"619cbfeb6b8a1b37a54eebfa": 1,
"60391a8b3364dc22b04d0ce5": 1,
"590c2c9c86f774245b1f03f2": 1,
"619cbf476b8a1b37a54eebf8": 1,
"590a373286f774287540368b": 1,
"5bc9b355d4351e6d1509862a": 1,
"61bf7b6302b3924be92fa8c3": 1,
"619cbfccbedcde2f5b3f7bdd": 1,
"60391afc25aff57af81f7085": 1,
"5e2af00086f7746d3f3c33f7": 1,
"590a3c0a86f774385a33c450": 1,
"57347cd0245977445a2d6ff1": 1,
"60391b0fb847c71012789415": 1,
"5d1c819a86f774771b0acd6c": 1,
"5734779624597737e04bf329": 1,
"5e2aedd986f7746d404f3aa4": 1,
"5d0378d486f77420421a5ff4": 1,
"5d03775b86f774203e7e0c4b": 1,
"61bf7c024770ee6f9c6b8b53": 1,
"5c05300686f7746dce784e5d": 1,
"5d1b309586f77425227d1676": 1,
"5751a25924597722c463c472": 1,
"544fb25a4bdc2dfb738b4567": 1,
"5af0484c86f7740f02001f7f": 1,
"5e54f6af86f7742199090bf3": 1,
"5d1b3f2d86f774253763b735": 1,
"5e831507ea0a7c419c2f9bd9": 1,
"5c0530ee86f774697952d952": 1,
"5b4335ba86f7744d2837a264": 1,
"619cc01e0a7c3a1a2731940c": 1,
"5af0534a86f7743b6f354284": 1,
"5d1b3a5d86f774252167ba22": 1,
"59e3606886f77417674759a5": 1,
"61bf83814088ec1a363d7097": 1,
"57347c93245977448d35f6e3": 1,
"573474f924597738002c6174": 1,
"590c651286f7741e566b6461": 1,
"5d1b376e86f774252519444e": 1,
"590c639286f774151567fa95": 1
},
"Pockets": {
"5e831507ea0a7c419c2f9bd9": 1,
"5938994586f774523a425196": 1,
"59e5d83b86f7745aed03d262": 1,
"590c2d8786f774245b1f03f3": 1,
"57347c2e24597744902c94a1": 1,
"5c052fb986f7746b2101e909": 1,
"5c13cef886f774072e618e82": 1,
"5783c43d2459774bbe137486": 1,
"5c6161fb2e221600113fbde5": 1,
"5cf508bfd7f00c056e24104e": 1,
"56742c2e4bdc2d95058b456d": 1,
"576a7c512459771e796e0e17": 1,
"5e2aedd986f7746d404f3aa4": 1,
"573474f924597738002c6174": 1,
"5914578086f774123569ffa4": 1,
"5e2af22086f7746d3f3c33fa": 1,
"59e3577886f774176a362503": 1,
"57347baf24597738002c6178": 1,
"5a9d56c8a2750c0032157146": 1,
"57c55f112459772d28133310": 1,
"5a0eee1486f77402aa773226": 1,
"5c0e533786f7747fa23f4d47": 1,
"5751496424597720a27126da": 1,
"5c471c442e221602b542a6f8": 1,
"5bc9c29cd4351e003562b8a3": 1,
"590a391c86f774385a33c404": 1,
"5bc9c377d4351e3bac12251b": 1,
"5af04b6486f774195a3ebb49": 1,
"588226d124597767ad33f787": 1,
"5734779624597737e04bf329": 1,
"5648b1504bdc2d9d488b4584": 1,
"5ad5d7d286f77450166e0a89": 1,
"590c2c9c86f774245b1f03f2": 1,
"590a3b0486f7743954552bdb": 1,
"5d1c774f86f7746d6620f8db": 1,
"5a38ed75c4a28232996e40c6": 1,
"5e2af29386f7746d4159f077": 1,
"5a6b5ed88dc32e000c52ec86": 1,
"5734795124597738002c6176": 1,
"5ad5cfbd86f7742c825d6104": 1,
"5af0561e86f7745f5f3ad6ac": 1,
"5a718b548dc32e000d46d262": 1,
"5a9d6d00a2750c5c985b5305": 1,
"5a0ee72c86f77436955d3435": 1,
"5c1d0c5f86f7744bb2683cf0": 1,
"5913651986f774432f15d132": 1,
"5a0c27731526d80618476ac4": 1,
"5b7d679f5acfc4001a5c4024": 1,
"59e0bdb186f774156f04ce82": 1,
"5d0377ce86f774186372f689": 1,
"5d4aaa73a4b9365392071175": 1,
"5a0ee34586f774023b6ee092": 1,
"57cff947245977638e6f2a19": 1,
"5e32f56fcb6d5863cc5e5ee4": 1,
"590a358486f77429692b2790": 1,
"5d8e0e0e86f774321140eb56": 1,
"590c2b4386f77425357b6123": 1,
"5d1b39a386f774252339976f": 1,
"590a3cd386f77436f20848cb": 1,
"588226e62459776e3e094af7": 1,
"590a3c0a86f774385a33c450": 1,
"5938144586f77473c2087145": 1,
"588226ef24597767af46e39c": 1,
"5751a25924597722c463c472": 1,
"5ad7242b86f7740a6a3abd43": 1,
"5d80cd1a86f77402aa362f42": 1,
"57347cd0245977445a2d6ff1": 1,
"5c7fc87d2e221644f31c0298": 1,
"590c5bbd86f774785762df04": 1,
"5d80c6c586f77440351beef1": 1,
"5de8ea8ffd6b4e6e2276dc35": 1,
"5d1b313086f77425227d1678": 1,
"5d1b31ce86f7742523398394": 1,
"5d235b4d86f7742e017bc88a": 1,
"5b7bef1e5acfc43d82528402": 1,
"5c61627a2e22160012542c55": 1,
"5c87ca002e221600114cb150": 1,
"5d80c60f86f77440373c4ece": 1,
"5c94bbff86f7747ee735c08f": 1,
"544fb3f34bdc2d03748b456a": 1,
"5d1b3a5d86f774252167ba22": 1,
"5a145d7b86f7744cbb6f4a13": 1,
"5909e99886f7740c983b9984": 1,
"58d39d3d86f77445bb794ae7": 1,
"59db3acc86f7742a2c4ab912": 1,
"5a6b60158dc32e000a31138b": 1,
"5c1d0d6d86f7744bb2683e1f": 1,
"5e569a0156edd02abe09f27d": 1,
"590c311186f77424d1667482": 1,
"59f99a7d86f7745b134aa97b": 1,
"576a5ed62459771e9c2096cb": 1,
"5a145ebb86f77458f1796f05": 1,
"5913611c86f77479e0084092": 1,
"5c0e531d86f7747fa23f4d42": 1,
"59fc48e086f77463b1118392": 1,
"5c1bc5fb2e221602b1779b32": 1,
"5c1bc4812e22164bef5cfde7": 1,
"5b4335ba86f7744d2837a264": 1,
"5888988e24597752fe43a6fa": 1,
"58a56f8d86f774651579314c": 1,
"57ee59b42459771c7b045da5": 1,
"5672c92d4bdc2d180f8b4567": 1,
"5e42c81886f7742a01529f57": 1,
"58d3db5386f77426186285a0": 1,
"5a144dfd86f77445cb5a0982": 1,
"5e2af37686f774755a234b65": 1,
"59faff1d86f7746c51718c9c": 1,
"5c0e534186f7747fa1419867": 1,
"573477e124597737dd42e191": 1,
"590a373286f774287540368b": 1,
"5a0f075686f7745bcc42ee12": 1,
"5734773724597737fd047c14": 1,
"5c503ad32e2216398b5aada2": 1,
"57c44fa82459772d2d75e415": 1,
"5bb20e18d4351e00320205d5": 1,
"5b07db875acfc40dc528a5f6": 1,
"5d4aaa54a4b9365392071170": 1,
"5d0376a486f7747d8050965c": 1,
"5d08d21286f774736e7c94c3": 1,
"5e42c71586f7747f245e1343": 1,
"5e42c83786f7742a021fdf3c": 1
},
"SecuredContainer": { "SecuredContainer": {
"590c657e86f77412b013051d": 1,
"590c657e86f77412b013051d": 1,
"590c657e86f77412b013051d": 1,
"590c657e86f77412b013051d": 1,
"590c657e86f77412b013051d": 1,
"59e4cf5286f7741778269d8a": 1,
"59e0d99486f7744a32234762": 1,
"59e4d24686f7741776641ac7": 1,
"5656d7c34bdc2d9d198b4587": 1,
"601aa3d2b2bcb34913271e6d": 1,
"573603562459776430731618": 1,
"59e655cb86f77411dc52a77b": 1,
"59e6542b86f77411dc52a77a": 1,
"5c0d56a986f774449d5de529": 1,
"56d59d3ad2720bdb418b4577": 1,
"5c925fa22e221601da359b7b": 1,
"5efb0da7a29a85116f6ea05f": 1,
"5a3c16fe86f77452b62de32a": 1,
"54527a984bdc2d4e668b4567": 1, "54527a984bdc2d4e668b4567": 1,
"54527ac44bdc2d36668b4567": 1, "54527ac44bdc2d36668b4567": 1,
"59e6906286f7746c9f75e847": 1, "560d5e524bdc2d25448b4571": 1,
"59e6920f86f77411d82aa167": 1,
"5c0d5ae286f7741e46554302": 1,
"59e68f6f86f7746c9f75e846": 1,
"59e690b686f7746c9f75e848": 1,
"601949593ae8f707c4608daa": 1,
"58dd3ad986f77403051cba8f": 1,
"5e023e53d4353e3302577c4c": 1,
"5a6086ea4f39f99cd479502f": 1,
"5a608bf24f39f98ffc77720e": 1,
"5efb0c1bd79ff02a1f5e68d9": 1,
"5cc80f53e4a949000e1ea4f8": 1,
"5cc80f38e4a949001152b560": 1,
"5cc80f67e4a949035e43bbba": 1,
"5e023d48186a883be655e551": 1,
"5887431f2459777e1612938f": 1,
"5e023d34e8a400319a28ed44": 1,
"59e77a2386f7742ee578960a": 1,
"560d61e84bdc2da74d8b4571": 1, "560d61e84bdc2da74d8b4571": 1,
"5cadf6eeae921500134b2799": 1, "5656d7c34bdc2d9d198b4587": 1,
"5cadf6ddae9215051e1c23b2": 1, "56d59d3ad2720bdb418b4577": 1,
"5cadf6e5ae921500113bb973": 1, "56dfef82d2720bbd668b4567": 1,
"5a38ebd9c4a282000d722a5b": 1,
"5d6e6a5fa4b93614ec501745": 1,
"5d6e6a05a4b93618084f58d0": 1,
"5d6e69c7a4b9360b6c0d54e4": 1,
"5d6e6a42a4b9364f07165f52": 1,
"5d6e6a53a4b9361bd473feec": 1,
"56dff026d2720bb8668b4567": 1, "56dff026d2720bb8668b4567": 1,
"56dff061d2720bb5668b4567": 1, "56dff061d2720bb5668b4567": 1,
"5c0d5e4486f77478390952fe": 1,
"56dff2ced2720bb4668b4567": 1, "56dff2ced2720bb4668b4567": 1,
"56dfef82d2720bbd668b4567": 1, "573603562459776430731618": 1,
"57a0e5022459774d1673f889": 1, "573719762459775a626ccbc1": 1,
"5c0d688c86f77413ae3407b2": 1, "573719df2459775a626ccbc2": 1,
"5c0d668f86f7747ccb7f13b2": 1, "57371aab2459775a77142f22": 1,
"57371b192459775a9f58a5e0": 1,
"57371f2b24597761224311f1": 1,
"57371f8d24597761006c6a81": 1,
"573720e02459776143012541": 1,
"5737218f245977612125ba51": 1,
"57a0dfb82459774d3078b56c": 1, "57a0dfb82459774d3078b56c": 1,
"5ba2678ad4351e44f824b344": 1, "57a0e5022459774d1673f889": 1,
"5ba26835d4351e0035628ff5": 1,
"5ba26812d4351e003201fef1": 1,
"5d6e67fba4b9361bc73bc779": 1,
"5d6e689ca4b9361bc8618956": 1,
"5d6e6806a4b936088465b17e": 1,
"5d6e68e6a4b9361c140bcfe0": 1,
"5d6e68a8a4b9360b6c0d54e2": 1,
"58820d1224597753c90aeb13": 1, "58820d1224597753c90aeb13": 1,
"5887431f2459777e1612938f": 1,
"58dd3ad986f77403051cba8f": 1,
"590c657e86f77412b013051d": 1,
"59e0d99486f7744a32234762": 1,
"59e4cf5286f7741778269d8a": 1,
"59e4d24686f7741776641ac7": 1,
"59e6542b86f77411dc52a77a": 1,
"59e655cb86f77411dc52a77b": 1,
"59e68f6f86f7746c9f75e846": 1,
"59e6906286f7746c9f75e847": 1,
"59e690b686f7746c9f75e848": 1,
"59e6920f86f77411d82aa167": 1,
"59e77a2386f7742ee578960a": 1,
"5a0ec6d286f7742c0b518fb5": 1,
"5a13eebd86f7746fd639aa93": 1,
"5a13ef7e86f7741290491063": 1,
"5a13f24186f77410e57c5626": 1,
"5a1452ee86f7746f33111763": 1,
"5a38ebd9c4a282000d722a5b": 1,
"5a3c16fe86f77452b62de32a": 1,
"5a6086ea4f39f99cd479502f": 1,
"5a608bf24f39f98ffc77720e": 1,
"5ba2678ad4351e44f824b344": 1,
"5ba26812d4351e003201fef1": 1,
"5ba26835d4351e0035628ff5": 1,
"5c0d56a986f774449d5de529": 1,
"5c0d591486f7744c505b416f": 1, "5c0d591486f7744c505b416f": 1,
"560d5e524bdc2d25448b4571": 1, "5c0d5ae286f7741e46554302": 1,
"5d6e6911a4b9361bd5780d52": 1, "5c0d5e4486f77478390952fe": 1,
"5c0d668f86f7747ccb7f13b2": 1,
"5c0d688c86f77413ae3407b2": 1,
"5c925fa22e221601da359b7b": 1,
"5cadf6ddae9215051e1c23b2": 1,
"5cadf6e5ae921500113bb973": 1,
"5cadf6eeae921500134b2799": 1,
"5cc80f38e4a949001152b560": 1,
"5cc80f53e4a949000e1ea4f8": 1,
"5cc80f67e4a949035e43bbba": 1,
"5d6e67fba4b9361bc73bc779": 1,
"5d6e6806a4b936088465b17e": 1,
"5d6e6869a4b9361c140bcfde": 1, "5d6e6869a4b9361c140bcfde": 1,
"5d6e6891a4b9361bd473feea": 1, "5d6e6891a4b9361bd473feea": 1,
"5d6e689ca4b9361bc8618956": 1,
"5d6e68a8a4b9360b6c0d54e2": 1,
"5d6e68b3a4b9361bca7e50b5": 1, "5d6e68b3a4b9361bca7e50b5": 1,
"5d6e68c4a4b9361b93413f79": 1, "5d6e68c4a4b9361b93413f79": 1,
"5d6e68d1a4b93622fe60e845": 1, "5d6e68d1a4b93622fe60e845": 1,
"5737218f245977612125ba51": 1, "5d6e68e6a4b9361c140bcfe0": 1,
"57371b192459775a9f58a5e0": 1, "5d6e6911a4b9361bd5780d52": 1,
"573719df2459775a626ccbc2": 1, "5d6e69c7a4b9360b6c0d54e4": 1,
"573719762459775a626ccbc1": 1, "5d6e6a05a4b93618084f58d0": 1,
"57371f8d24597761006c6a81": 1, "5d6e6a42a4b9364f07165f52": 1,
"573720e02459776143012541": 1, "5d6e6a53a4b9361bd473feec": 1,
"57371f2b24597761224311f1": 1, "5d6e6a5fa4b93614ec501745": 1,
"57371aab2459775a77142f22": 1,
"5fbe3ffdf8b6a877a729ea82": 1,
"5fd20ff893a8961fc660a954": 1,
"5f0596629e22f464da6bbdd9": 1,
"59e655cb86f77411dc52a77b": 1,
"5efb0cabfb3e451d70735af5": 1,
"5fc275cf85fd526b824a571a": 1,
"5a1452ee86f7746f33111763": 1,
"5a13f24186f77410e57c5626": 1,
"5a13ef7e86f7741290491063": 1,
"5d8e15b686f774445103b190": 1, "5d8e15b686f774445103b190": 1,
"5a0ec6d286f7742c0b518fb5": 1, "5e023d34e8a400319a28ed44": 1,
"5a13eebd86f7746fd639aa93": 1 "5e023d48186a883be655e551": 1,
"5e023e53d4353e3302577c4c": 1,
"5efb0c1bd79ff02a1f5e68d9": 1,
"5efb0cabfb3e451d70735af5": 1,
"5efb0da7a29a85116f6ea05f": 1,
"5f0596629e22f464da6bbdd9": 1,
"5fbe3ffdf8b6a877a729ea82": 1,
"5fc275cf85fd526b824a571a": 1,
"5fd20ff893a8961fc660a954": 1,
"601949593ae8f707c4608daa": 1,
"601aa3d2b2bcb34913271e6d": 1
}, },
"SpecialLoot": {}, "SpecialLoot": {},
"TacticalVest": { "TacticalVest": {}
"590c678286f77426c9660122": 1,
"5b4335ba86f7744d2837a264": 1,
"5ed51652f6c34d2cc26336a1": 1,
"5ed5160a87bb8443d10680b5": 1,
"5ed515ece452db0eb56fc028": 1,
"5ed5166ad380ab312177c100": 1,
"590c5a7286f7747884343aea": 1,
"5e831507ea0a7c419c2f9bd9": 1,
"5e8488fa988a8701445df1e4": 1,
"587df3a12459772c28142567": 1,
"59e4d24686f7741776641ac7": 1,
"5e21a3c67e40bd02257a008a": 1,
"5926c3b286f774640d189b6b": 1,
"5448be9a4bdc2dfd2f8b456a": 1,
"5c6d46132e221601da357d56": 1,
"54527a984bdc2d4e668b4567": 1,
"59e6920f86f77411d82aa167": 1,
"59e5d83b86f7745aed03d262": 1,
"5656d7c34bdc2d9d198b4587": 1,
"59e0d99486f7744a32234762": 1,
"5a0c27731526d80618476ac4": 1,
"58d3db5386f77426186285a0": 1,
"59f99a7d86f7745b134aa97b": 1,
"5448c1d04bdc2dff2f8b4569": 1,
"5aaa5e60e5b5b000140293d6": 1,
"5e32f56fcb6d5863cc5e5ee4": 1,
"59e6906286f7746c9f75e847": 1,
"5c0673fb0db8340023300271": 1,
"5c6d450c2e221600114c997d": 1,
"590c661e86f7741e566b646a": 1,
"59e6658b86f77411d949b250": 1,
"5a718da68dc32e000d46d264": 1,
"5df8f535bb49d91fb446d6b0": 1,
"5e023e6e34d52a55c3304f71": 1,
"58dd3ad986f77403051cba8f": 1,
"576a5ed62459771e9c2096cb": 1,
"54527ac44bdc2d36668b4567": 1,
"544a37c44bdc2d25388b4567": 1,
"5a01c29586f77474660c694c": 1,
"5a7ad2e851dfba0016153692": 1,
"5c6d42cb2e2216000e69d7d1": 1,
"559ba5b34bdc2d1f1a8b4582": 1,
"5c5db6742e2216000f1b2852": 1,
"5c0e530286f7747fa1419862": 1,
"5caf1041ae92157c28402e3f": 1,
"5cadf6ddae9215051e1c23b2": 1,
"5de8ea8ffd6b4e6e2276dc35": 1,
"5c6161fb2e221600113fbde5": 1,
"5a718f958dc32e00094b97e7": 1,
"59e77a2386f7742ee578960a": 1,
"5df8f541c41b2312ea3335e3": 1,
"59e6918f86f7746c9f75e849": 1,
"5a351711c4a282000b1521a4": 1,
"5c3df7d588a4501f290594e5": 1,
"55d4837c4bdc2d1d4e8b456c": 1,
"56dff061d2720bb5668b4567": 1,
"57838f0b2459774a256959b2": 1,
"5c0d688c86f77413ae3407b2": 1,
"599860ac86f77436b225ed1a": 1,
"5a9e81fba2750c00164f6b11": 1,
"5c5db6552e2216001026119d": 1,
"5de8e8dafd6b4e6e2276dc32": 1,
"5c0d56a986f774449d5de529": 1,
"5ba2657ed4351e0035628ff2": 1,
"5ba26844d4351e00334c9475": 1,
"5c88f24b2e22160bc12c69a6": 1,
"5c0672ed0db834001b7353f3": 1,
"57a0e5022459774d1673f889": 1,
"587df583245977373c4f1129": 1,
"59e4cf5286f7741778269d8a": 1,
"57616a9e2459773c7a400234": 1,
"55d4887d4bdc2d962f8b4570": 1,
"59e6927d86f77411da468256": 1,
"5c503ad32e2216398b5aada2": 1,
"5a6086ea4f39f99cd479502f": 1,
"59d625f086f774661516605d": 1,
"590c695186f7741e566b64a2": 1,
"5b1fd4e35acfc40018633c39": 1,
"5cc80f8fe4a949033b0224a2": 1,
"5cc86840d7f00c002412c56c": 1,
"5a718b548dc32e000d46d262": 1,
"5ac66c5d5acfc4001718d314": 1,
"57838f9f2459774a150289a0": 1,
"544fb37f4bdc2dee738b4567": 1,
"544fb25a4bdc2dfb738b4567": 1,
"5de8eaadbbaf010b10528a6d": 1,
"58864a4f2459770fcc257101": 1,
"5c10c8fd86f7743d7d706df3": 1,
"5a38ebd9c4a282000d722a5b": 1,
"5d2f213448f0355009199284": 1,
"56d59d3ad2720bdb418b4577": 1,
"5c925fa22e221601da359b7b": 1,
"5755383e24597772cb798966": 1,
"5d1340b3d7ad1a0b52682ed7": 1,
"5a3c16fe86f77452b62de32a": 1,
"5aaf8a0be5b5b00015693243": 1,
"5b7bef9c5acfc43d102852ec": 1,
"56dfef82d2720bbd668b4567": 1,
"56dff2ced2720bb4668b4567": 1,
"5a7882dcc5856700177af662": 1,
"59e690b686f7746c9f75e848": 1,
"56dff026d2720bb8668b4567": 1,
"5c0d5ae286f7741e46554302": 1,
"5addcce35acfc4001a5fc635": 1,
"5c503ac82e221602b21d6e9a": 1,
"5ba264f6d4351e0034777d52": 1,
"5de653abf76fdc1ce94a5a2a": 1,
"5d1340cad7ad1a0b0b249869": 1,
"58820d1224597753c90aeb13": 1,
"59e6542b86f77411dc52a77a": 1,
"5887431f2459777e1612938f": 1,
"59c1383d86f774290a37e0ca": 1,
"5b7bef5d5acfc43bca7067a3": 1,
"55d480c04bdc2d1d4e8b456a": 1,
"56dff216d2720bbd668b4568": 1,
"5c471c442e221602b542a6f8": 1,
"560d61e84bdc2da74d8b4571": 1,
"5e023cf8186a883be655e54f": 1,
"5a608bf24f39f98ffc77720e": 1,
"5ac66bea5acfc43b321d4aec": 1,
"5df25b6c0b92095fd441e4cf": 1,
"59fafc5086f7740dbe19f6c3": 1,
"57d1519e24597714373db79d": 1,
"5c0548ae0db834001966a3c2": 1,
"5af0548586f7743a532b7e99": 1,
"5d6e6a53a4b9361bd473feec": 1,
"55d482194bdc2d1d4e8b456b": 1,
"56dff4ecd2720b5f5a8b4568": 1,
"5ba26586d4351e44f824b340": 1,
"59e68f6f86f7746c9f75e846": 1,
"5e023d34e8a400319a28ed44": 1,
"5a3501acc4a282000d72293a": 1,
"5751a25924597722c463c472": 1,
"5c5970672e221602b21d7855": 1,
"59e655cb86f77411dc52a77b": 1,
"5b7d37845acfc400170e2f87": 1,
"572b7fa524597762b747ce82": 1,
"57e26fc7245977162a14b800": 1,
"5734758f24597738025ee253": 1,
"60098ad7c2240c0fe85c570a": 1
}
}, },
"mods": { "mods": {
"5447a9cd4bdc2dbd208b4567": { "5447a9cd4bdc2dbd208b4567": {
@ -8598,13 +8050,21 @@
] ]
}, },
"5b44cf1486f77431723e3d05": { "5b44cf1486f77431723e3d05": {
"Front_plate": ["656fa8d700d62bcd2e024084"], "Back_plate": [
"Back_plate": ["656fa8d700d62bcd2e024084"], "656fa8d700d62bcd2e024084"
"Left_side_plate": ["6557458f83942d705f0c4962"], ],
"Right_side_plate": ["6557458f83942d705f0c4962"],
"Collar": [ "Collar": [
"6575c3ec52b7f8c76a05ee39" "6575c3ec52b7f8c76a05ee39"
], ],
"Front_plate": [
"656fa8d700d62bcd2e024084"
],
"Left_side_plate": [
"6557458f83942d705f0c4962"
],
"Right_side_plate": [
"6557458f83942d705f0c4962"
],
"Shoulder_l": [ "Shoulder_l": [
"6575c3fd52b7f8c76a05ee3d" "6575c3fd52b7f8c76a05ee3d"
], ],

View File

@ -2,6 +2,7 @@ import { inject, injectable } from "tsyringe";
import { BotWeaponGenerator } from "@spt-aki/generators/BotWeaponGenerator"; import { BotWeaponGenerator } from "@spt-aki/generators/BotWeaponGenerator";
import { BotGeneratorHelper } from "@spt-aki/helpers/BotGeneratorHelper"; import { BotGeneratorHelper } from "@spt-aki/helpers/BotGeneratorHelper";
import { BotHelper } from "@spt-aki/helpers/BotHelper";
import { BotWeaponGeneratorHelper } from "@spt-aki/helpers/BotWeaponGeneratorHelper"; import { BotWeaponGeneratorHelper } from "@spt-aki/helpers/BotWeaponGeneratorHelper";
import { HandbookHelper } from "@spt-aki/helpers/HandbookHelper"; import { HandbookHelper } from "@spt-aki/helpers/HandbookHelper";
import { InventoryHelper } from "@spt-aki/helpers/InventoryHelper"; import { InventoryHelper } from "@spt-aki/helpers/InventoryHelper";
@ -16,6 +17,7 @@ import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
import { EquipmentSlots } from "@spt-aki/models/enums/EquipmentSlots"; import { EquipmentSlots } from "@spt-aki/models/enums/EquipmentSlots";
import { ItemAddedResult } from "@spt-aki/models/enums/ItemAddedResult"; import { ItemAddedResult } from "@spt-aki/models/enums/ItemAddedResult";
import { LootCacheType } from "@spt-aki/models/spt/bots/IBotLootCache"; import { LootCacheType } from "@spt-aki/models/spt/bots/IBotLootCache";
import { IItemSpawnLimitSettings } from "@spt-aki/models/spt/bots/IItemSpawnLimitSettings";
import { IBotConfig } from "@spt-aki/models/spt/config/IBotConfig"; import { IBotConfig } from "@spt-aki/models/spt/config/IBotConfig";
import { IPmcConfig } from "@spt-aki/models/spt/config/IPmcConfig"; import { IPmcConfig } from "@spt-aki/models/spt/config/IPmcConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
@ -46,6 +48,7 @@ export class BotLootGenerator
@inject("BotWeaponGenerator") protected botWeaponGenerator: BotWeaponGenerator, @inject("BotWeaponGenerator") protected botWeaponGenerator: BotWeaponGenerator,
@inject("BotWeaponGeneratorHelper") protected botWeaponGeneratorHelper: BotWeaponGeneratorHelper, @inject("BotWeaponGeneratorHelper") protected botWeaponGeneratorHelper: BotWeaponGeneratorHelper,
@inject("WeightedRandomHelper") protected weightedRandomHelper: WeightedRandomHelper, @inject("WeightedRandomHelper") protected weightedRandomHelper: WeightedRandomHelper,
@inject("BotHelper") protected botHelper: BotHelper,
@inject("BotLootCacheService") protected botLootCacheService: BotLootCacheService, @inject("BotLootCacheService") protected botLootCacheService: BotLootCacheService,
@inject("LocalisationService") protected localisationService: LocalisationService, @inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ConfigServer") protected configServer: ConfigServer, @inject("ConfigServer") protected configServer: ConfigServer,
@ -55,6 +58,15 @@ export class BotLootGenerator
this.pmcConfig = this.configServer.getConfig(ConfigTypes.PMC); this.pmcConfig = this.configServer.getConfig(ConfigTypes.PMC);
} }
protected getItemSpawnLimitsForBot(botRole: string): IItemSpawnLimitSettings
{
// Init item limits
const limitsForBotDict: Record<string, number> = {};
this.initItemLimitArray(botRole, limitsForBotDict);
return { currentLimits: limitsForBotDict, globalLimits: this.getItemSpawnLimitsForBotType(botRole) };
}
/** /**
* Add loot to bots containers * Add loot to bots containers
* @param sessionId Session id * @param sessionId Session id
@ -97,6 +109,8 @@ export class BotLootGenerator
this.addForcedMedicalItemsToPmcSecure(botInventory, botRole); this.addForcedMedicalItemsToPmcSecure(botInventory, botRole);
} }
const botItemLimits = this.getItemSpawnLimitsForBot(botRole);
const containersBotHasAvailable = this.getAvailableContainersBotCanStoreItemsIn(botInventory); const containersBotHasAvailable = this.getAvailableContainersBotCanStoreItemsIn(botInventory);
// Special items // Special items
@ -106,7 +120,7 @@ export class BotLootGenerator
specialLootItemCount, specialLootItemCount,
botInventory, botInventory,
botRole, botRole,
true, botItemLimits,
); );
// Healing items / Meds // Healing items / Meds
@ -116,7 +130,7 @@ export class BotLootGenerator
healingItemCount, healingItemCount,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
isPmc, isPmc,
); );
@ -128,7 +142,7 @@ export class BotLootGenerator
drugItemCount, drugItemCount,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
isPmc, isPmc,
); );
@ -140,7 +154,7 @@ export class BotLootGenerator
stimItemCount, stimItemCount,
botInventory, botInventory,
botRole, botRole,
true, botItemLimits,
0, 0,
isPmc, isPmc,
); );
@ -152,7 +166,7 @@ export class BotLootGenerator
grenadeCount, grenadeCount,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
isPmc, isPmc,
); );
@ -181,7 +195,7 @@ export class BotLootGenerator
backpackLootCount, backpackLootCount,
botInventory, botInventory,
botRole, botRole,
true, botItemLimits,
this.pmcConfig.maxBackpackLootTotalRub, this.pmcConfig.maxBackpackLootTotalRub,
isPmc, isPmc,
); );
@ -197,7 +211,7 @@ export class BotLootGenerator
vestLootCount, vestLootCount,
botInventory, botInventory,
botRole, botRole,
true, botItemLimits,
this.pmcConfig.maxVestLootTotalRub, this.pmcConfig.maxVestLootTotalRub,
isPmc, isPmc,
); );
@ -210,7 +224,7 @@ export class BotLootGenerator
pocketLootCount, pocketLootCount,
botInventory, botInventory,
botRole, botRole,
true, botItemLimits,
this.pmcConfig.maxPocketLootTotalRub, this.pmcConfig.maxPocketLootTotalRub,
isPmc, isPmc,
); );
@ -222,7 +236,7 @@ export class BotLootGenerator
50, 50,
botInventory, botInventory,
botRole, botRole,
false, null,
-1, -1,
isPmc, isPmc,
); );
@ -265,7 +279,7 @@ export class BotLootGenerator
1, 1,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
true, true,
); );
@ -278,7 +292,7 @@ export class BotLootGenerator
1, 1,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
true, true,
); );
@ -291,7 +305,7 @@ export class BotLootGenerator
2, 2,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
true, true,
); );
@ -304,7 +318,7 @@ export class BotLootGenerator
2, 2,
botInventory, botInventory,
botRole, botRole,
false, null,
0, 0,
true, true,
); );
@ -330,7 +344,7 @@ export class BotLootGenerator
* @param totalItemCount Max count of items to add * @param totalItemCount Max count of items to add
* @param inventoryToAddItemsTo Bot inventory loot will be added to * @param inventoryToAddItemsTo Bot inventory loot will be added to
* @param botRole Role of the bot loot is being generated for (assault/pmcbot) * @param botRole Role of the bot loot is being generated for (assault/pmcbot)
* @param useLimits Should item limit counts be used as defined in config/bot.json * @param itemSpawnLimits Item spawn limits the bot must adhere to
* @param totalValueLimitRub Total value of loot allowed in roubles * @param totalValueLimitRub Total value of loot allowed in roubles
* @param isPmc Is bot being generated for a pmc * @param isPmc Is bot being generated for a pmc
*/ */
@ -340,18 +354,17 @@ export class BotLootGenerator
totalItemCount: number, totalItemCount: number,
inventoryToAddItemsTo: PmcInventory, inventoryToAddItemsTo: PmcInventory,
botRole: string, botRole: string,
useLimits = false, itemSpawnLimits: IItemSpawnLimitSettings = null,
totalValueLimitRub = 0, totalValueLimitRub = 0,
isPmc = false, isPmc = false,
): void ): void
{ {
// Loot pool has items // Loot pool has items
if (Object.keys(pool).length > 0) const poolSize = Object.keys(pool).length;
if (poolSize > 0)
{ {
let currentTotalRub = 0; let currentTotalRub = 0;
const itemLimits: Record<string, number> = {};
/** Prep limits for items added to the container */
const itemSpawnLimits: Record<string, Record<string, number>> = {};
let fitItemIntoContainerAttempts = 0; let fitItemIntoContainerAttempts = 0;
for (let i = 0; i < totalItemCount; i++) for (let i = 0; i < totalItemCount; i++)
{ {
@ -374,28 +387,16 @@ export class BotLootGenerator
...this.botGeneratorHelper.generateExtraPropertiesForItem(itemToAddTemplate, botRole), ...this.botGeneratorHelper.generateExtraPropertiesForItem(itemToAddTemplate, botRole),
}]; }];
if (useLimits) if (itemSpawnLimits)
{ {
if (Object.keys(itemLimits).length === 0) if (this.itemHasReachedSpawnLimit(itemToAddTemplate, botRole, itemSpawnLimits))
{ {
this.initItemLimitArray(isPmc, botRole, itemLimits); // Delete item from pool so it cant be picked again
if (poolSize > 5)
{ // Only remove if pool has some other items to pick
delete pool[weightedItemTpl];
} }
if (!itemSpawnLimits[botRole])
{
itemSpawnLimits[botRole] = this.getItemSpawnLimitsForBotType(isPmc, botRole);
}
if (
this.itemHasReachedSpawnLimit(
itemToAddTemplate,
botRole,
isPmc,
itemLimits,
itemSpawnLimits[botRole],
)
)
{
i--; i--;
continue; continue;
} }
@ -616,14 +617,13 @@ export class BotLootGenerator
/** /**
* Hydrate item limit array to contain items that have a limit for a specific bot type * Hydrate item limit array to contain items that have a limit for a specific bot type
* All values are set to 0 * All values are set to 0
* @param isPmc Is the bot a pmc
* @param botRole Role the bot has * @param botRole Role the bot has
* @param limitCount * @param limitCount
*/ */
protected initItemLimitArray(isPmc: boolean, botRole: string, limitCount: Record<string, number>): void protected initItemLimitArray(botRole: string, limitCount: Record<string, number>): void
{ {
// Init current count of items we want to limit // Init current count of items we want to limit
const spawnLimits = this.getItemSpawnLimitsForBotType(isPmc, botRole); const spawnLimits = this.getItemSpawnLimitsForBotType(botRole);
for (const limit in spawnLimits) for (const limit in spawnLimits)
{ {
limitCount[limit] = 0; limitCount[limit] = 0;
@ -634,21 +634,17 @@ export class BotLootGenerator
* Check if an item has reached its bot-specific spawn limit * Check if an item has reached its bot-specific spawn limit
* @param itemTemplate Item we check to see if its reached spawn limit * @param itemTemplate Item we check to see if its reached spawn limit
* @param botRole Bot type * @param botRole Bot type
* @param isPmc Is bot we're working with a pmc * @param itemSpawnLimits
* @param limitCount Spawn limits for items on bot
* @param itemSpawnLimits The limits this bot is allowed to have
* @returns true if item has reached spawn limit * @returns true if item has reached spawn limit
*/ */
protected itemHasReachedSpawnLimit( protected itemHasReachedSpawnLimit(
itemTemplate: ITemplateItem, itemTemplate: ITemplateItem,
botRole: string, botRole: string,
isPmc: boolean, itemSpawnLimits: IItemSpawnLimitSettings,
limitCount: Record<string, number>,
itemSpawnLimits: Record<string, number>,
): boolean ): boolean
{ {
// PMCs and scavs have different sections of bot config for spawn limits // PMCs and scavs have different sections of bot config for spawn limits
if (!!itemSpawnLimits && itemSpawnLimits.length === 0) if (!!itemSpawnLimits && Object.keys(itemSpawnLimits.globalLimits).length === 0)
{ {
// No items found in spawn limit, drop out // No items found in spawn limit, drop out
return false; return false;
@ -660,7 +656,7 @@ export class BotLootGenerator
return false; return false;
} }
const idToCheckFor = this.getMatchingIdFromSpawnLimits(itemTemplate, itemSpawnLimits); const idToCheckFor = this.getMatchingIdFromSpawnLimits(itemTemplate, itemSpawnLimits.globalLimits);
if (!idToCheckFor) if (!idToCheckFor)
{ {
// ParentId or tplid not found in spawnLimits, not a spawn limited item, skip // ParentId or tplid not found in spawnLimits, not a spawn limited item, skip
@ -668,19 +664,19 @@ export class BotLootGenerator
} }
// Increment item count with this bot type // Increment item count with this bot type
limitCount[idToCheckFor]++; itemSpawnLimits.currentLimits[idToCheckFor]++;
// return true, we are over limit // Check if over limit
if (limitCount[idToCheckFor] > itemSpawnLimits[idToCheckFor]) if (itemSpawnLimits.currentLimits[idToCheckFor] > itemSpawnLimits.globalLimits[idToCheckFor])
{ {
// Prevent edge-case of small loot pools + code trying to add limited item over and over infinitely // Prevent edge-case of small loot pools + code trying to add limited item over and over infinitely
if (limitCount[idToCheckFor] > itemSpawnLimits[idToCheckFor] * 10) if (itemSpawnLimits.currentLimits[idToCheckFor] > itemSpawnLimits[idToCheckFor] * 10)
{ {
this.logger.debug( this.logger.debug(
this.localisationService.getText("bot-item_spawn_limit_reached_skipping_item", { this.localisationService.getText("bot-item_spawn_limit_reached_skipping_item", {
botRole: botRole, botRole: botRole,
itemName: itemTemplate._name, itemName: itemTemplate._name,
attempts: limitCount[idToCheckFor], attempts: itemSpawnLimits.currentLimits[idToCheckFor],
}), }),
); );
@ -742,13 +738,12 @@ export class BotLootGenerator
/** /**
* Get spawn limits for a specific bot type from bot.json config * Get spawn limits for a specific bot type from bot.json config
* If no limit found for a non pmc bot, fall back to defaults * If no limit found for a non pmc bot, fall back to defaults
* @param isPmc is the bot we want limits for a pmc
* @param botRole what role does the bot have * @param botRole what role does the bot have
* @returns Dictionary of tplIds and limit * @returns Dictionary of tplIds and limit
*/ */
protected getItemSpawnLimitsForBotType(isPmc: boolean, botRole: string): Record<string, number> protected getItemSpawnLimitsForBotType(botRole: string): Record<string, number>
{ {
if (isPmc) if (this.botHelper.isBotPmc(botRole))
{ {
return this.botConfig.itemSpawnLimits.pmc; return this.botConfig.itemSpawnLimits.pmc;
} }

View File

@ -38,18 +38,20 @@ export class PMCLootGenerator
* Create an array of loot items a PMC can have in their pockets * Create an array of loot items a PMC can have in their pockets
* @returns string array of tpls * @returns string array of tpls
*/ */
public generatePMCPocketLootPool(): Record<string, number> public generatePMCPocketLootPool(botRole: string): Record<string, number>
{ {
// Hydrate loot dictionary if empty // Hydrate loot dictionary if empty
if (Object.keys(this.pocketLootPool).length === 0) if (Object.keys(this.pocketLootPool).length === 0)
{ {
const items = this.databaseServer.getTables().templates.items; const items = this.databaseServer.getTables().templates.items;
const pmcPriceOverrides =
this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
.Pockets;
const allowedItemTypes = this.pmcConfig.pocketLoot.whitelist; const allowedItemTypes = this.pmcConfig.pocketLoot.whitelist;
const pmcItemBlacklist = this.pmcConfig.pocketLoot.blacklist; const pmcItemBlacklist = this.pmcConfig.pocketLoot.blacklist;
const itemBlacklist = this.itemFilterService.getBlacklistedItems(); const itemBlacklist = this.itemFilterService.getBlacklistedItems();
// Blacklist seasonal items if not inside seasonal event
// Blacklist seasonal items if not inside seasonal event // Blacklist seasonal items if not inside seasonal event
if (!this.seasonalEventService.seasonalEventEnabled()) if (!this.seasonalEventService.seasonalEventEnabled())
{ {
@ -68,12 +70,17 @@ export class PMCLootGenerator
for (const itemToAdd of itemsToAdd) for (const itemToAdd of itemsToAdd)
{ {
this.pocketLootPool[itemToAdd._id] = 1; // If pmc has override, use that. Otherwise use flea price
} if (pmcPriceOverrides[itemToAdd._id])
for (const itemToAdd of itemsToAdd)
{ {
this.pocketLootPool[itemToAdd._id] = 1; this.pocketLootPool[itemToAdd._id] = pmcPriceOverrides[itemToAdd._id];
}
else
{
// Set price of item as its weight
const price = this.ragfairPriceService.getFleaPriceForItem(itemToAdd._id);
this.pocketLootPool[itemToAdd._id] = price;
}
} }
const highestPrice = Math.max(...Object.values(this.backpackLootPool)); const highestPrice = Math.max(...Object.values(this.backpackLootPool));
@ -94,12 +101,15 @@ export class PMCLootGenerator
* Create an array of loot items a PMC can have in their vests * Create an array of loot items a PMC can have in their vests
* @returns string array of tpls * @returns string array of tpls
*/ */
public generatePMCVestLootPool(): Record<string, number> public generatePMCVestLootPool(botRole: string): Record<string, number>
{ {
// Hydrate loot dictionary if empty // Hydrate loot dictionary if empty
if (Object.keys(this.vestLootPool).length === 0) if (Object.keys(this.vestLootPool).length === 0)
{ {
const items = this.databaseServer.getTables().templates.items; const items = this.databaseServer.getTables().templates.items;
const pmcPriceOverrides =
this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
.TacticalVest;
const allowedItemTypes = this.pmcConfig.vestLoot.whitelist; const allowedItemTypes = this.pmcConfig.vestLoot.whitelist;
const pmcItemBlacklist = this.pmcConfig.vestLoot.blacklist; const pmcItemBlacklist = this.pmcConfig.vestLoot.blacklist;
@ -123,7 +133,17 @@ export class PMCLootGenerator
for (const itemToAdd of itemsToAdd) for (const itemToAdd of itemsToAdd)
{ {
this.vestLootPool[itemToAdd._id] = 1; // If pmc has override, use that. Otherwise use flea price
if (pmcPriceOverrides[itemToAdd._id])
{
this.vestLootPool[itemToAdd._id] = pmcPriceOverrides[itemToAdd._id];
}
else
{
// Set price of item as its weight
const price = this.ragfairPriceService.getFleaPriceForItem(itemToAdd._id);
this.vestLootPool[itemToAdd._id] = price;
}
} }
const highestPrice = Math.max(...Object.values(this.backpackLootPool)); const highestPrice = Math.max(...Object.values(this.backpackLootPool));
@ -155,12 +175,15 @@ export class PMCLootGenerator
* Create an array of loot items a PMC can have in their backpack * Create an array of loot items a PMC can have in their backpack
* @returns string array of tpls * @returns string array of tpls
*/ */
public generatePMCBackpackLootPool(): Record<string, number> public generatePMCBackpackLootPool(botRole: string): Record<string, number>
{ {
// Hydrate loot dictionary if empty // Hydrate loot dictionary if empty
if (Object.keys(this.backpackLootPool).length === 0) if (Object.keys(this.backpackLootPool).length === 0)
{ {
const items = this.databaseServer.getTables().templates.items; const items = this.databaseServer.getTables().templates.items;
const pmcPriceOverrides =
this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
.Backpack;
const allowedItemTypes = this.pmcConfig.backpackLoot.whitelist; const allowedItemTypes = this.pmcConfig.backpackLoot.whitelist;
const pmcItemBlacklist = this.pmcConfig.backpackLoot.blacklist; const pmcItemBlacklist = this.pmcConfig.backpackLoot.blacklist;
@ -181,11 +204,19 @@ export class PMCLootGenerator
); );
for (const itemToAdd of itemsToAdd) for (const itemToAdd of itemsToAdd)
{
// If pmc has override, use that. Otherwise use flea price
if (pmcPriceOverrides[itemToAdd._id])
{
this.backpackLootPool[itemToAdd._id] = pmcPriceOverrides[itemToAdd._id];
}
else
{ {
// Set price of item as its weight // Set price of item as its weight
const price = this.ragfairPriceService.getFleaPriceForItem(itemToAdd._id); const price = this.ragfairPriceService.getFleaPriceForItem(itemToAdd._id);
this.backpackLootPool[itemToAdd._id] = price; this.backpackLootPool[itemToAdd._id] = price;
} }
}
const highestPrice = Math.max(...Object.values(this.backpackLootPool)); const highestPrice = Math.max(...Object.values(this.backpackLootPool));
for (const key of Object.keys(this.backpackLootPool)) for (const key of Object.keys(this.backpackLootPool))

View File

@ -0,0 +1,5 @@
export interface IItemSpawnLimitSettings
{
currentLimits: Record<string, number>;
globalLimits: Record<string, number>;
}

View File

@ -115,9 +115,9 @@ export class BotLootCacheService
if (isPmc) if (isPmc)
{ {
// Replace lootPool from bot json with our own generated list for PMCs // Replace lootPool from bot json with our own generated list for PMCs
lootPool.Backpack = this.jsonUtil.clone(this.pmcLootGenerator.generatePMCBackpackLootPool()); lootPool.Backpack = this.jsonUtil.clone(this.pmcLootGenerator.generatePMCBackpackLootPool(botRole));
lootPool.Pockets = this.jsonUtil.clone(this.pmcLootGenerator.generatePMCPocketLootPool()); lootPool.Pockets = this.jsonUtil.clone(this.pmcLootGenerator.generatePMCPocketLootPool(botRole));
lootPool.TacticalVest = this.jsonUtil.clone(this.pmcLootGenerator.generatePMCVestLootPool()); lootPool.TacticalVest = this.jsonUtil.clone(this.pmcLootGenerator.generatePMCVestLootPool(botRole));
} }
// Backpack/Pockets etc // Backpack/Pockets etc
@ -130,7 +130,6 @@ export class BotLootCacheService
} }
// Sort loot pool into separate buckets // Sort loot pool into separate buckets
const items = this.itemHelper.getItems();
switch (slot.toLowerCase()) switch (slot.toLowerCase())
{ {
case "specialloot": case "specialloot":
@ -300,17 +299,6 @@ export class BotLootCacheService
} }
} }
// // Get pocket loot
// const pocketLootItems = pocketLootPool.filter((template) =>
// // biome-ignore lint/complexity/useSimplifiedLogicExpression: <explanation>
// !this.isBulletOrGrenade(template._props)
// && !this.isMagazine(template._props)
// && !this.isMedicalItem(template._props)
// && !this.isGrenade(template._props)
// && ("Height" in template._props)
// && ("Width" in template._props)
// );
// Get vest loot (excluding magazines, bullets, grenades, medical and healing items) // Get vest loot (excluding magazines, bullets, grenades, medical and healing items)
const filteredVestItems = {}; const filteredVestItems = {};
for (const itemKey of Object.keys(vestLootPool)) for (const itemKey of Object.keys(vestLootPool))
@ -332,15 +320,6 @@ export class BotLootCacheService
} }
} }
// // Get vest loot items
// const vestLootItems = vestLootPool.filter((template) =>
// // biome-ignore lint/complexity/useSimplifiedLogicExpression: <explanation>
// !this.isBulletOrGrenade(template._props)
// && !this.isMagazine(template._props)
// && !this.isMedicalItem(template._props)
// && !this.isGrenade(template._props)
// );
this.lootCache[botRole].healingItems = healingItems; this.lootCache[botRole].healingItems = healingItems;
this.lootCache[botRole].drugItems = drugItems; this.lootCache[botRole].drugItems = drugItems;
this.lootCache[botRole].stimItems = stimItems; this.lootCache[botRole].stimItems = stimItems;