0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 01:30:44 -05:00

Squashed 22 commits in an attempt to fix Gitea object bloat

This commit is contained in:
Dev 2023-03-03 17:53:28 +00:00 committed by Terkoiz
parent e25f38c9f6
commit 3d849b427b
57 changed files with 85074 additions and 84755 deletions

View File

@ -5,6 +5,14 @@ Modding framework for Escape From Tarkov
[![Build Status](https://drone.sp-tarkov.com/api/badges/SPT-AKI/Server/status.svg?ref=refs/heads/development)](https://drone.sp-tarkov.com/SPT-AKI/Server) [![Build Status](https://drone.sp-tarkov.com/api/badges/SPT-AKI/Server/status.svg?ref=refs/heads/development)](https://drone.sp-tarkov.com/SPT-AKI/Server)
[![Quality Gate Status](https://sonar.sp-tarkov.com/api/project_badges/measure?project=AKI&metric=alert_status&token=d3b87ff5fac591c1f49a57d4a2883c92bfe6a77f)](https://sonar.sp-tarkov.com/dashboard?id=AKI) [![Quality Gate Status](https://sonar.sp-tarkov.com/api/project_badges/measure?project=AKI&metric=alert_status&token=d3b87ff5fac591c1f49a57d4a2883c92bfe6a77f)](https://sonar.sp-tarkov.com/dashboard?id=AKI)
## Privacy
SPT is an open source project. Your commit credentials as author of a commit will be visible by anyone. Please make sure you understand this before submitting a PR.
Feel free to use a "fake" username and email on your commits by using the following commands:
```bash
git config --local user.name "USERNAME"
git config --local user.email "USERNAME@SOMETHING.com"
```
## Requirements ## Requirements
- NodeJS (with npm) - NodeJS (with npm)

View File

@ -1,16 +1,16 @@
{ {
"looseLootMultiplier": { "looseLootMultiplier": {
"bigmap": 1.2, "bigmap": 1,
"develop": 1, "develop": 1,
"factory4_day": 1.2, "factory4_day": 1,
"factory4_night": 1.2, "factory4_night": 1,
"interchange": 1.2, "interchange": 1,
"laboratory": 1, "laboratory": 1,
"rezervbase": 1.2, "rezervbase": 1,
"shoreline": 1.2, "shoreline": 1,
"woods": 1.3, "woods": 1,
"hideout": 0, "hideout": 0,
"lighthouse": 1.2, "lighthouse": 1,
"privatearea": 1, "privatearea": 1,
"suburbs": 1, "suburbs": 1,
"tarkovstreets": 1, "tarkovstreets": 1,
@ -288,8 +288,8 @@
"laboratory": [{ "laboratory": [{
"sptId": "sptBearLabsZoneFloor1NormalSpawn", "sptId": "sptBearLabsZoneFloor1NormalSpawn",
"BossName": "sptBear", "BossName": "sptBear",
"BossChance": 15, "BossChance": 15,
"BossZone": "BotZoneFloor1", "BossZone": "BotZoneFloor1",
"BossDifficult": "normal", "BossDifficult": "normal",
"BossEscortAmount": "1", "BossEscortAmount": "1",
"BossEscortDifficult": "normal", "BossEscortDifficult": "normal",
@ -309,7 +309,7 @@
"sptId": "sptBearLabsZoneFloor2NormalSpawn", "sptId": "sptBearLabsZoneFloor2NormalSpawn",
"BossChance": 15, "BossChance": 15,
"BossName": "sptBear", "BossName": "sptBear",
"BossZone": "BotZoneFloor2", "BossZone": "BotZoneFloor2",
"BossDifficult": "normal", "BossDifficult": "normal",
"BossEscortAmount": "1", "BossEscortAmount": "1",
"BossEscortDifficult": "normal", "BossEscortDifficult": "normal",
@ -407,7 +407,7 @@
"RandomTimeSpawn": false "RandomTimeSpawn": false
} }
], ],
"interchange": [{ "interchange": [{
"sptId": "sptBearInterchangeNormalSpawn", "sptId": "sptBearInterchangeNormalSpawn",
"BossName": "sptBear", "BossName": "sptBear",
"BossChance": 15, "BossChance": 15,
@ -447,7 +447,8 @@
} }
], ],
"RandomTimeSpawn": false "RandomTimeSpawn": false
}] }
]
}, },
"normal": { "normal": {
"factory4_day": [{ "factory4_day": [{
@ -645,5 +646,6 @@
"fixEmptyBotWavesSettings": { "fixEmptyBotWavesSettings": {
"enabled": true, "enabled": true,
"ignoreMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"] "ignoreMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"]
} },
"fitLootIntoContainerAttempts": 2
} }

View File

@ -13,8 +13,9 @@
"FirstPrimaryWeapon": true, "FirstPrimaryWeapon": true,
"SecondPrimaryWeapon": true, "SecondPrimaryWeapon": true,
"Scabbard": false, "Scabbard": false,
"Pockets": false,
"SecuredContainer": false "SecuredContainer": false
}, },
"loot": true, "questItems": true,
"questItems": true "specialSlotItems": false
} }

View File

@ -583,7 +583,7 @@
"max": 2 "max": 2
} }
}, },
"labsAccessCardChancePercent": 2 "labsAccessCardChancePercent": 3
}, },
"2": { "2": {
"botTypeForLoot": "assault", "botTypeForLoot": "assault",
@ -648,7 +648,7 @@
"max": 2 "max": 2
} }
}, },
"labsAccessCardChancePercent": 5 "labsAccessCardChancePercent": 6
}, },
"3": { "3": {
"botTypeForLoot": "assault", "botTypeForLoot": "assault",
@ -713,7 +713,7 @@
"max": 2 "max": 2
} }
}, },
"labsAccessCardChancePercent": 10 "labsAccessCardChancePercent": 11
}, },
"4": { "4": {
"botTypeForLoot": "assault", "botTypeForLoot": "assault",
@ -778,7 +778,7 @@
"max": 3 "max": 3
} }
}, },
"labsAccessCardChancePercent": 15 "labsAccessCardChancePercent": 17
}, },
"5": { "5": {
"botTypeForLoot": "assault", "botTypeForLoot": "assault",
@ -843,7 +843,7 @@
"max": 3 "max": 3
} }
}, },
"labsAccessCardChancePercent": 20 "labsAccessCardChancePercent": 22
}, },
"6": { "6": {
"botTypeForLoot": "assault", "botTypeForLoot": "assault",
@ -908,7 +908,7 @@
"max": 4 "max": 4
} }
}, },
"labsAccessCardChancePercent": 25 "labsAccessCardChancePercent": 27
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -125,8 +125,8 @@
"Ammo": { "Ammo": {
"Caliber556x45NATO": { "Caliber556x45NATO": {
"59e690b686f7746c9f75e848": 1, "59e690b686f7746c9f75e848": 1,
"59e6906286f7746c9f75e847": 1,
"5c0d5ae286f7741e46554302": 1, "5c0d5ae286f7741e46554302": 1,
"59e6906286f7746c9f75e847": 1,
"59e6920f86f77411d82aa167": 1 "59e6920f86f77411d82aa167": 1
}, },
"Caliber762x25TT": { "Caliber762x25TT": {
@ -425,17 +425,17 @@
"62987dfc402c7f69bf010923", "62987dfc402c7f69bf010923",
"5926c3b286f774640d189b6b", "5926c3b286f774640d189b6b",
"6193d3149fb0c665d5490e32", "6193d3149fb0c665d5490e32",
"5eff09cd30a7dc22fd1ddfed",
"5c0548ae0db834001966a3c2", "5c0548ae0db834001966a3c2",
"59faff1d86f7746c51718c9c", "59faff1d86f7746c51718c9c",
"5eff09cd30a7dc22fd1ddfed",
"602286df23506e50807090c6", "602286df23506e50807090c6",
"5df8f541c41b2312ea3335e3", "5df8f541c41b2312ea3335e3",
"5937ee6486f77408994ba448", "5937ee6486f77408994ba448",
"5913915886f774123603c392", "5913915886f774123603c392",
"5a351711c4a282000b1521a4", "5a351711c4a282000b1521a4",
"61a64428a8c6aa1b795f0ba1", "61a64428a8c6aa1b795f0ba1",
"5c94bbff86f7747ee735c08f",
"5d80cb3886f77440556dbf09", "5d80cb3886f77440556dbf09",
"5c94bbff86f7747ee735c08f",
"5ad5d20586f77449be26d877", "5ad5d20586f77449be26d877",
"593858c486f774253a24cb52", "593858c486f774253a24cb52",
"63a39e1d234195315d4020bd", "63a39e1d234195315d4020bd",
@ -486,7 +486,12 @@
"5913877a86f774432f15d444", "5913877a86f774432f15d444",
"5da5cdcd86f774529238fb9b", "5da5cdcd86f774529238fb9b",
"63a39c7964283b5e9c56b280", "63a39c7964283b5e9c56b280",
"5d80ccdd86f77474f7575e02" "5d80ccdd86f77474f7575e02",
"5a145d4786f7744cbb6f4a12",
"61aa5aed32a4743c3453d319",
"63a39ce4cd6db0635c1975fa",
"5a0ee34586f774023b6ee092",
"5a0eebed86f77461230ddb3d"
], ],
"Backpack": [ "Backpack": [
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
@ -546,8 +551,8 @@
"5d6e68c4a4b9361b93413f79", "5d6e68c4a4b9361b93413f79",
"56d59d3ad2720bdb418b4577", "56d59d3ad2720bdb418b4577",
"5e81f423763d9f754677bf2e", "5e81f423763d9f754677bf2e",
"59e6906286f7746c9f75e847",
"5c0d5ae286f7741e46554302", "5c0d5ae286f7741e46554302",
"59e6906286f7746c9f75e847",
"5e023e53d4353e3302577c4c", "5e023e53d4353e3302577c4c",
"5c0d56a986f774449d5de529", "5c0d56a986f774449d5de529",
"5a608bf24f39f98ffc77720e", "5a608bf24f39f98ffc77720e",
@ -2510,9 +2515,9 @@
}, },
"chances": { "chances": {
"equipment": { "equipment": {
"Headwear": 24, "Headwear": 23,
"Earpiece": 0, "Earpiece": 0,
"FaceCover": 5, "FaceCover": 4,
"ArmorVest": 0, "ArmorVest": 0,
"Eyewear": 44, "Eyewear": 44,
"ArmBand": 0, "ArmBand": 0,
@ -2529,7 +2534,7 @@
"mod_launcher": 0, "mod_launcher": 0,
"mod_muzzle": 51, "mod_muzzle": 51,
"mod_reciever": 100, "mod_reciever": 100,
"mod_sight_rear": 25, "mod_sight_rear": 26,
"mod_stock": 100, "mod_stock": 100,
"mod_magazine": 100, "mod_magazine": 100,
"mod_mount_000": 8, "mod_mount_000": 8,
@ -2539,13 +2544,13 @@
"mod_tactical": 0, "mod_tactical": 0,
"mod_mount_001": 0, "mod_mount_001": 0,
"mod_mount_002": 0, "mod_mount_002": 0,
"mod_sight_front": 71, "mod_sight_front": 72,
"mod_foregrip": 86, "mod_foregrip": 85,
"mod_tactical_002": 0, "mod_tactical_002": 0,
"mod_tactical_000": 0, "mod_tactical_000": 0,
"mod_tactical_001": 0, "mod_tactical_001": 0,
"mod_mount": 0, "mod_mount": 0,
"mod_tactical_003": 60 "mod_tactical_003": 64
} }
}, },
"generation": { "generation": {

View File

@ -94,8 +94,8 @@
"equipment": { "equipment": {
"Headwear": { "Headwear": {
"5a16bb52fcdbcb001a3b00dc": 1, "5a16bb52fcdbcb001a3b00dc": 1,
"5c066ef40db834001966a595": 1,
"5a43957686f7742a2c2f11b0": 1, "5a43957686f7742a2c2f11b0": 1,
"5c066ef40db834001966a595": 1,
"5ea17ca01412a1425304d1c0": 1, "5ea17ca01412a1425304d1c0": 1,
"5b432d215acfc4771e1c6624": 1, "5b432d215acfc4771e1c6624": 1,
"61bca7cda0eae612383adf57": 1, "61bca7cda0eae612383adf57": 1,
@ -112,8 +112,8 @@
"ArmorVest": {}, "ArmorVest": {},
"Eyewear": { "Eyewear": {
"603409c80ca681766b6a0fb2": 1, "603409c80ca681766b6a0fb2": 1,
"5d6d2e22a4b9361bd5780d05": 1,
"5d5fca1ea4b93635fd598c07": 1, "5d5fca1ea4b93635fd598c07": 1,
"5d6d2e22a4b9361bd5780d05": 1,
"61c18d83b00456371a66814b": 1, "61c18d83b00456371a66814b": 1,
"5d6d2ef3a4b93618084f58bd": 1, "5d6d2ef3a4b93618084f58bd": 1,
"5aa2b986e5b5b00014028f4c": 1, "5aa2b986e5b5b00014028f4c": 1,
@ -121,9 +121,9 @@
}, },
"ArmBand": {}, "ArmBand": {},
"TacticalVest": { "TacticalVest": {
"5c0e722886f7740458316a57": 1,
"544a5caa4bdc2d1a388b4568": 1, "544a5caa4bdc2d1a388b4568": 1,
"61bc85697113f767765c7fe7": 1, "61bc85697113f767765c7fe7": 1,
"5c0e722886f7740458316a57": 1,
"5c0e746986f7741453628fe5": 1, "5c0e746986f7741453628fe5": 1,
"5b44cad286f77402a54ae7e5": 1, "5b44cad286f77402a54ae7e5": 1,
"5f5f41f56760b4138443b352": 1, "5f5f41f56760b4138443b352": 1,
@ -135,17 +135,17 @@
}, },
"Backpack": {}, "Backpack": {},
"FirstPrimaryWeapon": { "FirstPrimaryWeapon": {
"5cadfbf7ae92152ac412eeef": 1, "5aafa857e5b5b00018480968": 1,
"5aafa857e5b5b00018480968": 1 "5cadfbf7ae92152ac412eeef": 1
}, },
"SecondPrimaryWeapon": { "SecondPrimaryWeapon": {
"59984ab886f7743e98271174": 1 "59984ab886f7743e98271174": 1
}, },
"Holster": { "Holster": {
"602a9740da11d6478d5a06dc": 1,
"5f36a0e5fbf956000b716b65": 1,
"5a17f98cfcdbcb0980087290": 1, "5a17f98cfcdbcb0980087290": 1,
"5e81c3cbac2bb513793cdc75": 1, "5e81c3cbac2bb513793cdc75": 1,
"5f36a0e5fbf956000b716b65": 1,
"602a9740da11d6478d5a06dc": 1,
"6193a720f8ee7e52e42109ed": 1, "6193a720f8ee7e52e42109ed": 1,
"5abccb7dd8ce87001773e277": 1 "5abccb7dd8ce87001773e277": 1
}, },
@ -158,16 +158,9 @@
} }
}, },
"Ammo": { "Ammo": {
"Caliber127x55": {
"5cadf6eeae921500134b2799": 1,
"5cadf6ddae9215051e1c23b2": 1
},
"Caliber9x18PM": {
"573719762459775a626ccbc1": 1
},
"Caliber762x51": { "Caliber762x51": {
"5a6086ea4f39f99cd479502f": 1,
"58dd3ad986f77403051cba8f": 1, "58dd3ad986f77403051cba8f": 1,
"5a6086ea4f39f99cd479502f": 1,
"5efb0c1bd79ff02a1f5e68d9": 1 "5efb0c1bd79ff02a1f5e68d9": 1
}, },
"Caliber9x19PARA": { "Caliber9x19PARA": {
@ -175,67 +168,19 @@
"5c0d56a986f774449d5de529": 1, "5c0d56a986f774449d5de529": 1,
"5efb0da7a29a85116f6ea05f": 1 "5efb0da7a29a85116f6ea05f": 1
}, },
"Caliber127x55": {
"5cadf6ddae9215051e1c23b2": 1,
"5cadf6eeae921500134b2799": 1
},
"Caliber1143x23ACP": { "Caliber1143x23ACP": {
"5e81f423763d9f754677bf2e": 1, "5e81f423763d9f754677bf2e": 1,
"5efb0cabfb3e451d70735af5": 1 "5efb0cabfb3e451d70735af5": 1
},
"Caliber9x18PM": {
"573719762459775a626ccbc1": 1
} }
}, },
"mods": { "mods": {
"5cadfbf7ae92152ac412eeef": {
"mod_sight_front": [
"5caf16a2ae92152ac412efbc"
],
"mod_handguard": [
"5cdaa99dd7f00c002412d0b2"
],
"mod_muzzle": [
"5caf187cae92157c28402e43",
"5caf17c9ae92150b30006be1"
],
"mod_scope": [
"5caf1691ae92152ac412efb9",
"5c0517910db83400232ffee5",
"584924ec24597768f12ae244"
],
"mod_magazine": [
"5caf1109ae9215753c44119f"
]
},
"5cdaa99dd7f00c002412d0b2": {
"mod_foregrip": [
"5cda9bcfd7f00c0c0b53e900"
]
},
"5a17f98cfcdbcb0980087290": {
"mod_magazine": [
"5a17fb03fcdbcbcae668728f"
],
"mod_pistol_grip": [
"5a17fc70fcdbcb0176308b3d"
],
"mod_sight_front": [
"5aba62f8d8ce87001943946b"
],
"mod_sight_rear": [
"5aba637ad8ce87001773e17f"
]
},
"5a16bb52fcdbcb001a3b00dc": {
"mod_nvg": [
"5a16b8a9fcdbcb00165aa6ca"
]
},
"5a16b8a9fcdbcb00165aa6ca": {
"mod_nvg": [
"5a16b93dfcdbcbcae6687261",
"5c0695860db834001b735461"
]
},
"5a16b93dfcdbcbcae6687261": {
"mod_nvg": [
"57235b6f24597759bf5a30f1"
]
},
"5aafa857e5b5b00018480968": { "5aafa857e5b5b00018480968": {
"mod_stock": [ "mod_stock": [
"5addc7005acfc4001669f275" "5addc7005acfc4001669f275"
@ -247,8 +192,8 @@
"5aaf8a0be5b5b00015693243" "5aaf8a0be5b5b00015693243"
], ],
"patron_in_weapon": [ "patron_in_weapon": [
"5a6086ea4f39f99cd479502f",
"58dd3ad986f77403051cba8f", "58dd3ad986f77403051cba8f",
"5a6086ea4f39f99cd479502f",
"5efb0c1bd79ff02a1f5e68d9" "5efb0c1bd79ff02a1f5e68d9"
] ]
}, },
@ -280,13 +225,8 @@
}, },
"5addbac75acfc400194dbc56": { "5addbac75acfc400194dbc56": {
"mod_muzzle": [ "mod_muzzle": [
"5c7954d52e221600106f4cc7", "5d026791d7ad1a04a067ea63",
"5d026791d7ad1a04a067ea63" "5c7954d52e221600106f4cc7"
]
},
"5c7954d52e221600106f4cc7": {
"mod_muzzle": [
"5c7955c22e221644f31bfd5e"
] ]
}, },
"59984ab886f7743e98271174": { "59984ab886f7743e98271174": {
@ -338,6 +278,116 @@
"560d657b4bdc2da74d8b4572" "560d657b4bdc2da74d8b4572"
] ]
}, },
"602a9740da11d6478d5a06dc": {
"mod_barrel": [
"602a95edda11d6478d5a06da"
],
"mod_reciever": [
"60228924961b8d75ee233c32"
],
"mod_magazine": [
"602286df23506e50807090c6"
]
},
"60228924961b8d75ee233c32": {
"mod_sight_rear": [
"60229948cacb6b0506369e27"
],
"mod_sight_front": [
"60228a76d62c9b14ed777a66"
]
},
"5a16bb52fcdbcb001a3b00dc": {
"mod_nvg": [
"5a16b8a9fcdbcb00165aa6ca"
]
},
"5a16b8a9fcdbcb00165aa6ca": {
"mod_nvg": [
"5a16b93dfcdbcbcae6687261",
"5c0695860db834001b735461"
]
},
"5a16b93dfcdbcbcae6687261": {
"mod_nvg": [
"57235b6f24597759bf5a30f1"
]
},
"5cadfbf7ae92152ac412eeef": {
"mod_sight_front": [
"5caf16a2ae92152ac412efbc"
],
"mod_handguard": [
"5cdaa99dd7f00c002412d0b2"
],
"mod_muzzle": [
"5caf187cae92157c28402e43",
"5caf17c9ae92150b30006be1"
],
"mod_scope": [
"5c0517910db83400232ffee5",
"5caf1691ae92152ac412efb9",
"584924ec24597768f12ae244"
],
"mod_magazine": [
"5caf1109ae9215753c44119f"
]
},
"5cdaa99dd7f00c002412d0b2": {
"mod_foregrip": [
"5cda9bcfd7f00c0c0b53e900"
]
},
"5f36a0e5fbf956000b716b65": {
"mod_barrel": [
"5f3e7801153b8571434a924c"
],
"mod_pistol_grip": [
"5f3e778efcd9b651187d7201"
],
"mod_reciever": [
"5f3e7823ddc4f03b010e2045"
],
"mod_magazine": [
"5f3e77b26cda304dcc634057"
],
"mod_trigger": [
"5f3e772a670e2a7b01739a52"
],
"mod_hammer": [
"5f3e76d86cda304dcc634054"
],
"mod_catch": [
"5f3e777688ca2d00ad199d25"
]
},
"5f3e7823ddc4f03b010e2045": {
"mod_sight_rear": [
"5f3e7897ddc4f03b010e204a"
],
"mod_sight_front": [
"5f3e78a7fbf956000b716b8e"
]
},
"5a17f98cfcdbcb0980087290": {
"mod_magazine": [
"5a17fb03fcdbcbcae668728f"
],
"mod_pistol_grip": [
"5a17fc70fcdbcb0176308b3d"
],
"mod_sight_front": [
"5aba62f8d8ce87001943946b"
],
"mod_sight_rear": [
"5aba637ad8ce87001773e17f"
]
},
"5c7954d52e221600106f4cc7": {
"mod_muzzle": [
"5c7955c22e221644f31bfd5e"
]
},
"5e81c3cbac2bb513793cdc75": { "5e81c3cbac2bb513793cdc75": {
"mod_barrel": [ "mod_barrel": [
"5e81c519cb2b95385c177551" "5e81c519cb2b95385c177551"
@ -374,56 +424,6 @@
"5c066e3a0db834001b7353f0" "5c066e3a0db834001b7353f0"
] ]
}, },
"5f36a0e5fbf956000b716b65": {
"mod_barrel": [
"5f3e7801153b8571434a924c"
],
"mod_pistol_grip": [
"5f3e778efcd9b651187d7201"
],
"mod_reciever": [
"5f3e7823ddc4f03b010e2045"
],
"mod_magazine": [
"5f3e77b26cda304dcc634057"
],
"mod_trigger": [
"5f3e772a670e2a7b01739a52"
],
"mod_hammer": [
"5f3e76d86cda304dcc634054"
],
"mod_catch": [
"5f3e777688ca2d00ad199d25"
]
},
"5f3e7823ddc4f03b010e2045": {
"mod_sight_rear": [
"5f3e7897ddc4f03b010e204a"
],
"mod_sight_front": [
"5f3e78a7fbf956000b716b8e"
]
},
"602a9740da11d6478d5a06dc": {
"mod_barrel": [
"602a95edda11d6478d5a06da"
],
"mod_reciever": [
"60228924961b8d75ee233c32"
],
"mod_magazine": [
"602286df23506e50807090c6"
]
},
"60228924961b8d75ee233c32": {
"mod_sight_rear": [
"60229948cacb6b0506369e27"
],
"mod_sight_front": [
"60228a76d62c9b14ed777a66"
]
},
"6193a720f8ee7e52e42109ed": { "6193a720f8ee7e52e42109ed": {
"mod_barrel": [ "mod_barrel": [
"6194f017ed0429009f543eaa" "6194f017ed0429009f543eaa"
@ -455,17 +455,6 @@
"6194f3286db0f2477964e67d" "6194f3286db0f2477964e67d"
] ]
}, },
"5b432d215acfc4771e1c6624": {
"mod_nvg": [
"5a16b8a9fcdbcb00165aa6ca",
"5c0558060db834001b735271"
]
},
"5c0695860db834001b735461": {
"mod_nvg": [
"5c0696830db834001d23f5da"
]
},
"5caf1691ae92152ac412efb9": { "5caf1691ae92152ac412efb9": {
"mod_scope": [ "mod_scope": [
"591c4efa86f7741030027726" "591c4efa86f7741030027726"
@ -491,6 +480,17 @@
"5abcc328d8ce8700194394f3" "5abcc328d8ce8700194394f3"
] ]
}, },
"5b432d215acfc4771e1c6624": {
"mod_nvg": [
"5a16b8a9fcdbcb00165aa6ca",
"5c0558060db834001b735271"
]
},
"5c0695860db834001b735461": {
"mod_nvg": [
"5c0696830db834001d23f5da"
]
},
"5ea17ca01412a1425304d1c0": { "5ea17ca01412a1425304d1c0": {
"mod_nvg": [ "mod_nvg": [
"5ea18c84ecf1982c7712d9a2" "5ea18c84ecf1982c7712d9a2"
@ -499,25 +499,25 @@
}, },
"items": { "items": {
"TacticalVest": [ "TacticalVest": [
"5caf1109ae9215753c44119f",
"5710c24ad2720bc3458b45a3",
"5448be9a4bdc2dfd2f8b456a",
"5aaf8a0be5b5b00015693243", "5aaf8a0be5b5b00015693243",
"599860ac86f77436b225ed1a", "599860ac86f77436b225ed1a",
"58d3db5386f77426186285a0" "5710c24ad2720bc3458b45a3",
"5caf1109ae9215753c44119f",
"58d3db5386f77426186285a0",
"5448be9a4bdc2dfd2f8b456a"
], ],
"Pockets": [ "Pockets": [
"5a17fb03fcdbcbcae668728f", "602286df23506e50807090c6",
"590c678286f77426c9660122", "590c678286f77426c9660122",
"5df8a77486f77412672a1e3f",
"5e81c4ca763d9f754677befa",
"5f3e77b26cda304dcc634057", "5f3e77b26cda304dcc634057",
"5938144586f77473c2087145", "5938144586f77473c2087145",
"602286df23506e50807090c6", "5a17fb03fcdbcbcae668728f",
"5df8a77486f77412672a1e3f",
"5e81c4ca763d9f754677befa",
"6193d3149fb0c665d5490e32", "6193d3149fb0c665d5490e32",
"5c1e2d1f86f77431e9280bee", "5c1e2d1f86f77431e9280bee",
"5df8a72c86f77412640e2e83",
"5913915886f774123603c392", "5913915886f774123603c392",
"5df8a72c86f77412640e2e83",
"5c94bbff86f7747ee735c08f", "5c94bbff86f7747ee735c08f",
"5df8a6a186f77412640e2e80", "5df8a6a186f77412640e2e80",
"591afe0186f77431bd616a11", "591afe0186f77431bd616a11",
@ -528,19 +528,19 @@
"5a0ee30786f774023b6ee08f", "5a0ee30786f774023b6ee08f",
"5938994586f774523a425196", "5938994586f774523a425196",
"5913611c86f77479e0084092", "5913611c86f77479e0084092",
"5a145d4786f7744cbb6f4a12",
"5938504186f7740991483f30", "5938504186f7740991483f30",
"5a145d4786f7744cbb6f4a12",
"5937ee6486f77408994ba448", "5937ee6486f77408994ba448",
"5c0e531d86f7747fa23f4d42", "5c0e531d86f7747fa23f4d42",
"5c1e495a86f7743109743dfb", "5c1e495a86f7743109743dfb",
"63a39cb1c9b3aa4b61683ee2",
"5ede7a8229445733cb4c18e2", "5ede7a8229445733cb4c18e2",
"63a39cb1c9b3aa4b61683ee2",
"5913651986f774432f15d132", "5913651986f774432f15d132",
"5780cfa52459777dfb276eb1",
"6391fcf5744e45201147080f", "6391fcf5744e45201147080f",
"5780cfa52459777dfb276eb1",
"61aa5aed32a4743c3453d319", "61aa5aed32a4743c3453d319",
"63a39f08cd6db0635c197600",
"5ad5db3786f7743568421cce", "5ad5db3786f7743568421cce",
"63a39f08cd6db0635c197600",
"5a0eebed86f77461230ddb3d", "5a0eebed86f77461230ddb3d",
"5d947d4e86f774447b415895", "5d947d4e86f774447b415895",
"5914578086f774123569ffa4", "5914578086f774123569ffa4",
@ -566,12 +566,12 @@
"5780cf9e2459777df90dcb73", "5780cf9e2459777df90dcb73",
"59136f6f86f774447a1ed173", "59136f6f86f774447a1ed173",
"5ad7247386f7747487619dc3", "5ad7247386f7747487619dc3",
"637b620db7afa97bfc3d7009",
"591ae8f986f77406f854be45", "591ae8f986f77406f854be45",
"5ed515ece452db0eb56fc028", "5ed515ece452db0eb56fc028",
"637b620db7afa97bfc3d7009",
"5a0eff2986f7741fd654e684", "5a0eff2986f7741fd654e684",
"5c1d0d6d86f7744bb2683e1f",
"5c0e531286f7747fa54205c2", "5c0e531286f7747fa54205c2",
"5c1d0d6d86f7744bb2683e1f",
"63a39e49cd6db0635c1975fc", "63a39e49cd6db0635c1975fc",
"59387a4986f77401cc236e62", "59387a4986f77401cc236e62",
"593aa4be86f77457f56379f8", "593aa4be86f77457f56379f8",
@ -644,9 +644,15 @@
"61a64428a8c6aa1b795f0ba1", "61a64428a8c6aa1b795f0ba1",
"5a0ee72c86f77436955d3435", "5a0ee72c86f77436955d3435",
"61aa5b518f5e7a39b41416e2", "61aa5b518f5e7a39b41416e2",
"5a0eec9686f77402ac5c39f2",
"59148f8286f7741b951ea113", "59148f8286f7741b951ea113",
"5a13ef0686f7746e5a411744" "5a0eec9686f77402ac5c39f2",
"5a13ef0686f7746e5a411744",
"5fca13ca637ee0341a484f46",
"5a13eebd86f7746fd639aa93",
"63a39f6e64283b5e9c56b289",
"637b60c3b7afa97bfc3d7001",
"5d8e0db586f7744450412a42",
"5ed51652f6c34d2cc26336a1"
], ],
"Backpack": [ "Backpack": [
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
@ -700,14 +706,14 @@
"5a0eee1486f77402aa773226" "5a0eee1486f77402aa773226"
], ],
"SecuredContainer": [ "SecuredContainer": [
"58dd3ad986f77403051cba8f",
"5a3c16fe86f77452b62de32a",
"5c0d56a986f774449d5de529",
"5cadf6ddae9215051e1c23b2",
"5e81f423763d9f754677bf2e",
"5cadf6eeae921500134b2799", "5cadf6eeae921500134b2799",
"573719762459775a626ccbc1", "573719762459775a626ccbc1",
"5a6086ea4f39f99cd479502f", "5a6086ea4f39f99cd479502f",
"5a3c16fe86f77452b62de32a",
"5e81f423763d9f754677bf2e",
"5cadf6ddae9215051e1c23b2",
"58dd3ad986f77403051cba8f",
"5c0d56a986f774449d5de529",
"5efb0c1bd79ff02a1f5e68d9", "5efb0c1bd79ff02a1f5e68d9",
"5efb0cabfb3e451d70735af5", "5efb0cabfb3e451d70735af5",
"5efb0da7a29a85116f6ea05f" "5efb0da7a29a85116f6ea05f"
@ -2944,8 +2950,8 @@
"chances": { "chances": {
"equipment": { "equipment": {
"Headwear": 100, "Headwear": 100,
"Earpiece": 15, "Earpiece": 16,
"FaceCover": 11, "FaceCover": 10,
"ArmorVest": 0, "ArmorVest": 0,
"Eyewear": 77, "Eyewear": 77,
"ArmBand": 0, "ArmBand": 0,
@ -2959,25 +2965,25 @@
"SecuredContainer": 100 "SecuredContainer": 100
}, },
"mods": { "mods": {
"mod_muzzle": 89,
"mod_sight_rear": 61,
"mod_magazine": 100, "mod_magazine": 100,
"mod_sight_front": 100, "mod_sight_rear": 61,
"mod_handguard": 100, "mod_mount": 0,
"mod_scope": 67, "mod_scope": 66,
"mod_tactical_000": 0, "mod_tactical_000": 0,
"mod_tactical_001": 49, "mod_tactical_001": 49,
"mod_tactical_002": 37, "mod_tactical_002": 37,
"mod_foregrip": 100,
"mod_stock": 84,
"mod_nvg": 79,
"mod_mount": 0,
"mod_tactical_003": 0, "mod_tactical_003": 0,
"mod_muzzle": 89,
"mod_stock": 84,
"mod_charge": 100, "mod_charge": 100,
"mod_reciever": 100, "mod_reciever": 100,
"mod_mount_000": 47, "mod_foregrip": 100,
"mod_mount_001": 0,
"mod_tactical": 0, "mod_tactical": 0,
"mod_sight_front": 100,
"mod_nvg": 79,
"mod_handguard": 100,
"mod_mount_000": 46,
"mod_mount_001": 0,
"mod_equipment_000": 0, "mod_equipment_000": 0,
"mod_equipment_001": 0, "mod_equipment_001": 0,
"mod_equipment_002": 0 "mod_equipment_002": 0

View File

@ -123,8 +123,8 @@
"Eyewear": {}, "Eyewear": {},
"ArmBand": {}, "ArmBand": {},
"TacticalVest": { "TacticalVest": {
"5c0e9f2c86f77432297fe0a3": 1, "5ca20abf86f77418567a43f2": 1,
"5ca20abf86f77418567a43f2": 1 "5c0e9f2c86f77432297fe0a3": 1
}, },
"Backpack": {}, "Backpack": {},
"FirstPrimaryWeapon": { "FirstPrimaryWeapon": {
@ -148,8 +148,8 @@
}, },
"Ammo": { "Ammo": {
"Caliber545x39": { "Caliber545x39": {
"56dff026d2720bb8668b4567": 1,
"5c0d5e4486f77478390952fe": 1, "5c0d5e4486f77478390952fe": 1,
"56dff026d2720bb8668b4567": 1,
"56dff061d2720bb5668b4567": 1 "56dff061d2720bb5668b4567": 1
}, },
"Caliber762x25TT": { "Caliber762x25TT": {
@ -176,8 +176,8 @@
"5beec3e30db8340019619424" "5beec3e30db8340019619424"
], ],
"mod_barrel": [ "mod_barrel": [
"5beec2820db834001b095426", "5beec1bd0db834001e6006f3",
"5beec1bd0db834001e6006f3" "5beec2820db834001b095426"
], ],
"mod_reciever": [ "mod_reciever": [
"5beec91a0db834001961942d" "5beec91a0db834001961942d"
@ -199,16 +199,15 @@
"5beecbb80db834001d2c465e" "5beecbb80db834001d2c465e"
] ]
}, },
"5beec2820db834001b095426": { "5beec1bd0db834001e6006f3": {
"mod_muzzle": [ "mod_muzzle": [
"564caa3d4bdc2d17108b458e", "5beec3420db834001b095429"
"5cc9a96cd7f00c011c04e04a"
] ]
}, },
"5beec91a0db834001961942d": { "5beec91a0db834001961942d": {
"mod_scope": [ "mod_scope": [
"5c0505e00db834001b735073", "584984812459776a704a82a6",
"584984812459776a704a82a6" "5c0505e00db834001b735073"
], ],
"mod_sight_rear": [ "mod_sight_rear": [
"5beec9450db83400970084fd" "5beec9450db83400970084fd"
@ -236,9 +235,10 @@
"5c0e842486f77443a74d2976" "5c0e842486f77443a74d2976"
] ]
}, },
"5beec1bd0db834001e6006f3": { "5beec2820db834001b095426": {
"mod_muzzle": [ "mod_muzzle": [
"5beec3420db834001b095429" "564caa3d4bdc2d17108b458e",
"5cc9a96cd7f00c011c04e04a"
] ]
}, },
"59ff346386f77477562ff5e2": { "59ff346386f77477562ff5e2": {
@ -361,8 +361,8 @@
"5780cfa52459777dfb276eb1", "5780cfa52459777dfb276eb1",
"5913877a86f774432f15d444", "5913877a86f774432f15d444",
"62987cb98081af308d7558c8", "62987cb98081af308d7558c8",
"5a13f24186f77410e57c5626",
"5df8a6a186f77412640e2e80", "5df8a6a186f77412640e2e80",
"5a13f24186f77410e57c5626",
"62a9cb937377a65d7b070cef", "62a9cb937377a65d7b070cef",
"591383f186f7744a4c5edcf3", "591383f186f7744a4c5edcf3",
"5780cf942459777df90dcb72", "5780cf942459777df90dcb72",
@ -391,8 +391,8 @@
"5780cda02459777b272ede61", "5780cda02459777b272ede61",
"5e42c83786f7742a021fdf3c", "5e42c83786f7742a021fdf3c",
"591afe0186f77431bd616a11", "591afe0186f77431bd616a11",
"5913915886f774123603c392",
"5a0eeb8e86f77461257ed71a", "5a0eeb8e86f77461257ed71a",
"5913915886f774123603c392",
"5ad5cfbd86f7742c825d6104", "5ad5cfbd86f7742c825d6104",
"59136e1e86f774432f15d133", "59136e1e86f774432f15d133",
"5e42c81886f7742a01529f57", "5e42c81886f7742a01529f57",
@ -448,7 +448,15 @@
"5a0f006986f7741ffd2fe484", "5a0f006986f7741ffd2fe484",
"5a0f045e86f7745b0f0d0e42", "5a0f045e86f7745b0f0d0e42",
"5da743f586f7744014504f72", "5da743f586f7744014504f72",
"62987da96188c076bc0d8c51" "62987da96188c076bc0d8c51",
"63a71ed21031ac76fe773c7f",
"5d8e0db586f7744450412a42",
"5a0eee1486f77402aa773226",
"5d80ccdd86f77474f7575e02",
"61aa81fcb225ac1ead7957c3",
"5d80c93086f7744036212b41",
"5a0f068686f7745b0d4ea242",
"5751a89d24597722aa0e8db0"
], ],
"Backpack": [ "Backpack": [
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
@ -502,9 +510,9 @@
"5a0eee1486f77402aa773226" "5a0eee1486f77402aa773226"
], ],
"SecuredContainer": [ "SecuredContainer": [
"56dff026d2720bb8668b4567",
"5736026a245977644601dc61",
"5c0d5e4486f77478390952fe", "5c0d5e4486f77478390952fe",
"5736026a245977644601dc61",
"56dff026d2720bb8668b4567",
"56dff061d2720bb5668b4567", "56dff061d2720bb5668b4567",
"59e4cf5286f7741778269d8a", "59e4cf5286f7741778269d8a",
"5c925fa22e221601da359b7b", "5c925fa22e221601da359b7b",
@ -2457,7 +2465,7 @@
"FirstPrimaryWeapon": 100, "FirstPrimaryWeapon": 100,
"SecondPrimaryWeapon": 0, "SecondPrimaryWeapon": 0,
"Holster": 100, "Holster": 100,
"Scabbard": 14, "Scabbard": 15,
"Pockets": 100, "Pockets": 100,
"SecuredContainer": 100 "SecuredContainer": 100
}, },
@ -2469,7 +2477,7 @@
"mod_stock": 100, "mod_stock": 100,
"mod_mount_000": 100, "mod_mount_000": 100,
"mod_mount_001": 83, "mod_mount_001": 83,
"mod_scope": 40, "mod_scope": 39,
"mod_foregrip": 9, "mod_foregrip": 9,
"mod_tactical_000": 0, "mod_tactical_000": 0,
"mod_muzzle": 95, "mod_muzzle": 95,

View File

@ -233,28 +233,6 @@
"5a7d9104159bd400134c8c21" "5a7d9104159bd400134c8c21"
] ]
}, },
"5a7ae0c351dfba0017554310": {
"mod_barrel": [
"5a6b5b8a8dc32e001207faf3"
],
"mod_reciever": [
"5a71e4f48dc32e001207fb26"
],
"mod_magazine": [
"5a7ad2e851dfba0016153692"
]
},
"5a71e4f48dc32e001207fb26": {
"mod_sight_rear": [
"5a71e0fb8dc32e00094b97f2"
],
"mod_sight_front": [
"5a71e0048dc32e000c52ecc8"
],
"mod_scope": [
"5a32aa8bc4a2826c6e06d737"
]
},
"5dcbd56fdbd3d91b3e5468d5": { "5dcbd56fdbd3d91b3e5468d5": {
"mod_pistol_grip": [ "mod_pistol_grip": [
"5c48a2c22e221602b313fb6c" "5c48a2c22e221602b313fb6c"
@ -314,6 +292,28 @@
"5dfa3d2b0dee1b22f862eade" "5dfa3d2b0dee1b22f862eade"
] ]
}, },
"5a7ae0c351dfba0017554310": {
"mod_barrel": [
"5a6b5b8a8dc32e001207faf3"
],
"mod_reciever": [
"5a71e4f48dc32e001207fb26"
],
"mod_magazine": [
"5a7ad2e851dfba0016153692"
]
},
"5a71e4f48dc32e001207fb26": {
"mod_sight_rear": [
"5a71e0fb8dc32e00094b97f2"
],
"mod_sight_front": [
"5a71e0048dc32e000c52ecc8"
],
"mod_scope": [
"5a32aa8bc4a2826c6e06d737"
]
},
"606587252535c57a13424cfd": { "606587252535c57a13424cfd": {
"mod_pistol_grip": [ "mod_pistol_grip": [
"57af48872459771f0b2ebf11" "57af48872459771f0b2ebf11"
@ -396,26 +396,26 @@
], ],
"Pockets": [ "Pockets": [
"590c678286f77426c9660122", "590c678286f77426c9660122",
"63a39fd1c9b3aa4b61683efb",
"5c1e2a1e86f77431ea0ea84c", "5c1e2a1e86f77431ea0ea84c",
"5df8a6a186f77412640e2e80", "5df8a6a186f77412640e2e80",
"63a39fd1c9b3aa4b61683efb",
"5710c24ad2720bc3458b45a3", "5710c24ad2720bc3458b45a3",
"59148f8286f7741b951ea113", "59148f8286f7741b951ea113",
"5938144586f77473c2087145", "5938144586f77473c2087145",
"62a09ec84f842e1bd12da3f2",
"5df8a72c86f77412640e2e83", "5df8a72c86f77412640e2e83",
"62a09ec84f842e1bd12da3f2",
"5c94bbff86f7747ee735c08f", "5c94bbff86f7747ee735c08f",
"5d80c88d86f77440556dbf07", "5d80c88d86f77440556dbf07",
"5938603e86f77435642354f4",
"591afe0186f77431bd616a11", "591afe0186f77431bd616a11",
"5938603e86f77435642354f4",
"5df8a77486f77412672a1e3f", "5df8a77486f77412672a1e3f",
"593858c486f774253a24cb52", "593858c486f774253a24cb52",
"637b60c3b7afa97bfc3d7001", "637b60c3b7afa97bfc3d7001",
"63a39df18a56922e82001f25", "63a39df18a56922e82001f25",
"5938504186f7740991483f30", "5938504186f7740991483f30",
"591383f186f7744a4c5edcf3", "591383f186f7744a4c5edcf3",
"5ad5d49886f77455f9731921",
"57a349b2245977762b199ec7", "57a349b2245977762b199ec7",
"5ad5d49886f77455f9731921",
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
"5fca13ca637ee0341a484f46", "5fca13ca637ee0341a484f46",
"5937ee6486f77408994ba448", "5937ee6486f77408994ba448",
@ -429,15 +429,15 @@
"5e42c83786f7742a021fdf3c", "5e42c83786f7742a021fdf3c",
"5ad5ccd186f774446d5706e9", "5ad5ccd186f774446d5706e9",
"5a0ea69f86f7741cd5406619", "5a0ea69f86f7741cd5406619",
"59136e1e86f774432f15d133",
"63a3a93f8a56922e82001f5d", "63a3a93f8a56922e82001f5d",
"61a64428a8c6aa1b795f0ba1", "61a64428a8c6aa1b795f0ba1",
"59136e1e86f774432f15d133",
"5913877a86f774432f15d444", "5913877a86f774432f15d444",
"5a0dc95c86f77452440fc675", "5a0dc95c86f77452440fc675",
"5d80c6c586f77440351beef1",
"591382d986f774465a6413a7", "591382d986f774465a6413a7",
"5c1d0f4986f7744bb01837fa", "5d80c6c586f77440351beef1",
"5913915886f774123603c392", "5913915886f774123603c392",
"5c1d0f4986f7744bb01837fa",
"5a0f075686f7745bcc42ee12", "5a0f075686f7745bcc42ee12",
"5938994586f774523a425196", "5938994586f774523a425196",
"61aa5aed32a4743c3453d319", "61aa5aed32a4743c3453d319",
@ -460,8 +460,8 @@
"5ed515e03a40a50460332579", "5ed515e03a40a50460332579",
"5d80cb8786f774405611c7d9", "5d80cb8786f774405611c7d9",
"5ed5160a87bb8443d10680b5", "5ed5160a87bb8443d10680b5",
"59136a4486f774447a1ed172",
"5780cf692459777de4559321", "5780cf692459777de4559321",
"59136a4486f774447a1ed172",
"5780d07a2459777de4559324", "5780d07a2459777de4559324",
"5c0e533786f7747fa23f4d47", "5c0e533786f7747fa23f4d47",
"5ad5d20586f77449be26d877", "5ad5d20586f77449be26d877",
@ -527,7 +527,12 @@
"5da5cdcd86f774529238fb9b", "5da5cdcd86f774529238fb9b",
"62a9cb937377a65d7b070cef", "62a9cb937377a65d7b070cef",
"5a0ec70e86f7742c0b518fba", "5a0ec70e86f7742c0b518fba",
"63a39f6e64283b5e9c56b289" "63a39f6e64283b5e9c56b289",
"5ed51652f6c34d2cc26336a1",
"5a0f0f5886f7741c4e32a472",
"637b620db7afa97bfc3d7009",
"5a0eeb1a86f774688b70aa5c",
"5a144dfd86f77445cb5a0982"
], ],
"Backpack": [], "Backpack": [],
"SecuredContainer": [ "SecuredContainer": [
@ -2606,16 +2611,16 @@
"mod_sight_rear": 100, "mod_sight_rear": 100,
"mod_sight_front": 69, "mod_sight_front": 69,
"mod_tactical_000": 100, "mod_tactical_000": 100,
"mod_mount_001": 26, "mod_mount_001": 27,
"mod_mount_002": 0, "mod_mount_002": 0,
"mod_mount": 17, "mod_mount": 16,
"mod_muzzle": 33, "mod_muzzle": 32,
"mod_foregrip": 100, "mod_foregrip": 100,
"mod_stock_002": 100, "mod_stock_002": 100,
"mod_stock": 39, "mod_stock": 39,
"mod_pistol_grip": 38, "mod_pistol_grip": 38,
"mod_tactical": 62, "mod_tactical": 61,
"mod_mount_000": 57, "mod_mount_000": 56,
"mod_flashlight": 100 "mod_flashlight": 100
} }
}, },

View File

@ -154,7 +154,8 @@
"56dff338d2720bbd668b4569": 1, "56dff338d2720bbd668b4569": 1,
"56dff2ced2720bb4668b4567": 1, "56dff2ced2720bb4668b4567": 1,
"56dff4a2d2720bbd668b456a": 1, "56dff4a2d2720bbd668b456a": 1,
"56dff026d2720bb8668b4567": 1 "56dff026d2720bb8668b4567": 1,
"56dfef82d2720bbd668b4567": 1
}, },
"Caliber762x39": { "Caliber762x39": {
"5656d7c34bdc2d9d198b4587": 1 "5656d7c34bdc2d9d198b4587": 1
@ -186,7 +187,8 @@
"5c0d5ae286f7741e46554302": 1 "5c0d5ae286f7741e46554302": 1
}, },
"Caliber9x39": { "Caliber9x39": {
"5c0d668f86f7747ccb7f13b2": 1 "5c0d668f86f7747ccb7f13b2": 1,
"5c0d688c86f77413ae3407b2": 1
} }
}, },
"mods": { "mods": {
@ -628,7 +630,27 @@
"57372bd3245977670b7cd243", "57372bd3245977670b7cd243",
"61bf83814088ec1a363d7097", "61bf83814088ec1a363d7097",
"61a64492ba05ef10d62adcc1", "61a64492ba05ef10d62adcc1",
"5a0eb38b86f774153b320eb0" "5a0eb38b86f774153b320eb0",
"59e35cbb86f7741778269d83",
"5bc9c049d4351e44f824d360",
"5d80cbd886f77470855c26c2",
"5f745ee30acaeb0d490d8c5b",
"573474f924597738002c6174",
"577e1c9d2459773cd707c525",
"5913611c86f77479e0084092",
"5737292724597765e5728562",
"5d03794386f77420415576f5",
"5a0ec6d286f7742c0b518fb5",
"5a144dfd86f77445cb5a0982",
"57372ac324597767001bc261",
"62a0a043cf4a99369e2624a5",
"5da5cdcd86f774529238fb9b",
"5a0ee30786f774023b6ee08f",
"5c1260dc86f7746b106e8748",
"5da743f586f7744014504f72",
"5672cb304bdc2dc2088b456a",
"61aa5aed32a4743c3453d319",
"5d6fc78386f77449d825f9dc"
], ],
"SecuredContainer": [ "SecuredContainer": [
"59e77a2386f7742ee578960a", "59e77a2386f7742ee578960a",
@ -2640,7 +2662,7 @@
"Eyewear": 0, "Eyewear": 0,
"ArmBand": 0, "ArmBand": 0,
"TacticalVest": 0, "TacticalVest": 0,
"Backpack": 91, "Backpack": 92,
"FirstPrimaryWeapon": 100, "FirstPrimaryWeapon": 100,
"SecondPrimaryWeapon": 100, "SecondPrimaryWeapon": 100,
"Holster": 0, "Holster": 0,

View File

@ -447,7 +447,14 @@
"5d40419286f774318526545f", "5d40419286f774318526545f",
"5751a89d24597722aa0e8db0", "5751a89d24597722aa0e8db0",
"5c06782b86f77426df5407d2", "5c06782b86f77426df5407d2",
"57347c77245977448d35f6e2" "57347c77245977448d35f6e2",
"59faf98186f774067b6be103",
"5909e99886f7740c983b9984",
"5e2af00086f7746d3f3c33f7",
"5e2af02c86f7746d420957d4",
"56742c284bdc2d98058b456d",
"5b43575a86f77424f443fe62",
"59faf7ca86f7740dbe19f6c2"
], ],
"SecuredContainer": [ "SecuredContainer": [
"5e99711486f7744bfc4af328", "5e99711486f7744bfc4af328",
@ -2527,9 +2534,9 @@
"equipment": { "equipment": {
"Headwear": 0, "Headwear": 0,
"Earpiece": 26, "Earpiece": 26,
"FaceCover": 23, "FaceCover": 24,
"ArmorVest": 0, "ArmorVest": 0,
"Eyewear": 32, "Eyewear": 31,
"ArmBand": 0, "ArmBand": 0,
"TacticalVest": 0, "TacticalVest": 0,
"Backpack": 100, "Backpack": 100,

View File

@ -109,8 +109,8 @@
}, },
"Earpiece": {}, "Earpiece": {},
"FaceCover": { "FaceCover": {
"60a7ad2a2198820d95707a2e": 1, "60a7ad3a0c5cb24b0134664a": 1,
"60a7ad3a0c5cb24b0134664a": 1 "60a7ad2a2198820d95707a2e": 1
}, },
"ArmorVest": {}, "ArmorVest": {},
"Eyewear": {}, "Eyewear": {},
@ -140,8 +140,8 @@
}, },
"Ammo": { "Ammo": {
"Caliber12g": { "Caliber12g": {
"5d6e68b3a4b9361bca7e50b5": 1,
"5d6e68d1a4b93622fe60e845": 1, "5d6e68d1a4b93622fe60e845": 1,
"5d6e68b3a4b9361bca7e50b5": 1,
"5d6e68a8a4b9360b6c0d54e2": 1, "5d6e68a8a4b9360b6c0d54e2": 1,
"5d6e6806a4b936088465b17e": 1, "5d6e6806a4b936088465b17e": 1,
"5c0d591486f7744c505b416f": 1, "5c0d591486f7744c505b416f": 1,
@ -164,12 +164,12 @@
"57a9b9ce2459770ee926038d" "57a9b9ce2459770ee926038d"
], ],
"mod_handguard": [ "mod_handguard": [
"6086b5731246154cad35d6c7", "58272b392459774b4c7b3ccd",
"58272b392459774b4c7b3ccd" "6086b5731246154cad35d6c7"
], ],
"mod_pistol_grip": [ "mod_pistol_grip": [
"5649ae4a4bdc2d1b2b8b4588", "5649ade84bdc2d1b2b8b4587",
"5649ade84bdc2d1b2b8b4587" "5649ae4a4bdc2d1b2b8b4588"
], ],
"mod_muzzle": [ "mod_muzzle": [
"58272d7f2459774f6311ddfd", "58272d7f2459774f6311ddfd",
@ -182,27 +182,14 @@
"5cf8f3b0d7f00c00217872ef" "5cf8f3b0d7f00c00217872ef"
] ]
}, },
"6086b5731246154cad35d6c7": { "58272b392459774b4c7b3ccd": {
"mod_mount_001": [ "mod_scope": [
"6086b5392535c57a13424d70" "591c4efa86f7741030027726"
], ],
"mod_mount_002": [ "mod_tactical_001": [
"6086b5392535c57a13424d70"
],
"mod_mount_003": [
"6086b5392535c57a13424d70"
]
},
"6086b5392535c57a13424d70": {
"mod_tactical": [
"5a5f1ce64f39f90b401987bc" "5a5f1ce64f39f90b401987bc"
] ]
}, },
"57616ca52459773c69055192": {
"mod_stock": [
"5a0c59791526d8dba737bba7"
]
},
"583990e32459771419544dd2": { "583990e32459771419544dd2": {
"mod_pistol_grip": [ "mod_pistol_grip": [
"5649ae4a4bdc2d1b2b8b4588" "5649ae4a4bdc2d1b2b8b4588"
@ -259,14 +246,27 @@
"57fd23e32459772d0805bcf1" "57fd23e32459772d0805bcf1"
] ]
}, },
"58272b392459774b4c7b3ccd": { "6086b5731246154cad35d6c7": {
"mod_scope": [ "mod_mount_001": [
"591c4efa86f7741030027726" "6086b5392535c57a13424d70"
], ],
"mod_tactical_001": [ "mod_mount_002": [
"6086b5392535c57a13424d70"
],
"mod_mount_003": [
"6086b5392535c57a13424d70"
]
},
"6086b5392535c57a13424d70": {
"mod_tactical": [
"5a5f1ce64f39f90b401987bc" "5a5f1ce64f39f90b401987bc"
] ]
}, },
"57616ca52459773c69055192": {
"mod_stock": [
"5a0c59791526d8dba737bba7"
]
},
"5beed0f50db834001c062b12": { "5beed0f50db834001c062b12": {
"mod_pistol_grip": [ "mod_pistol_grip": [
"5beec8ea0db834001a6f9dbf" "5beec8ea0db834001a6f9dbf"
@ -358,8 +358,8 @@
"5710c24ad2720bc3458b45a3", "5710c24ad2720bc3458b45a3",
"5a0c27731526d80618476ac4", "5a0c27731526d80618476ac4",
"5ed515e03a40a50460332579", "5ed515e03a40a50460332579",
"5755383e24597772cb798966",
"5aaa4194e5b5b055d06310a5", "5aaa4194e5b5b055d06310a5",
"5755383e24597772cb798966",
"5a966f51a2750c00156aacf6", "5a966f51a2750c00156aacf6",
"55d482194bdc2d1d4e8b456b", "55d482194bdc2d1d4e8b456b",
"5c94bbff86f7747ee735c08f" "5c94bbff86f7747ee735c08f"
@ -375,23 +375,23 @@
"5913915886f774123603c392", "5913915886f774123603c392",
"5df8a77486f77412672a1e3f", "5df8a77486f77412672a1e3f",
"5937ee6486f77408994ba448", "5937ee6486f77408994ba448",
"5938144586f77473c2087145", "5d235b4d86f7742e017bc88a",
"5a13ef0686f7746e5a411744",
"591383f186f7744a4c5edcf3", "591383f186f7744a4c5edcf3",
"5a0ee4b586f7743698200d22", "5a0ee4b586f7743698200d22",
"5a13ef0686f7746e5a411744", "5938144586f77473c2087145",
"5d235b4d86f7742e017bc88a",
"5df8a72c86f77412640e2e83",
"63a39f6e64283b5e9c56b289", "63a39f6e64283b5e9c56b289",
"63a39cb1c9b3aa4b61683ee2", "5df8a72c86f77412640e2e83",
"5734758f24597738025ee253", "5734758f24597738025ee253",
"63a39cb1c9b3aa4b61683ee2",
"59faf7ca86f7740dbe19f6c2", "59faf7ca86f7740dbe19f6c2",
"63a39dfe3901f439517cafba", "63a39dfe3901f439517cafba",
"59136a4486f774447a1ed172", "59136a4486f774447a1ed172",
"593858c486f774253a24cb52", "593858c486f774253a24cb52",
"5780cf722459777a5108b9a1", "5780cf722459777a5108b9a1",
"5a144dfd86f77445cb5a0982",
"5c0d591486f7744c505b416f", "5c0d591486f7744c505b416f",
"59136e1e86f774432f15d133", "59136e1e86f774432f15d133",
"5a144dfd86f77445cb5a0982",
"5e54f62086f774219b0f1937", "5e54f62086f774219b0f1937",
"5780d0652459777df90dcb74", "5780d0652459777df90dcb74",
"5d6e6911a4b9361bd5780d52", "5d6e6911a4b9361bd5780d52",
@ -406,25 +406,25 @@
"573478bc24597738002c6175", "573478bc24597738002c6175",
"591ae8f986f77406f854be45", "591ae8f986f77406f854be45",
"5780d07a2459777de4559324", "5780d07a2459777de4559324",
"63a71e781031ac76fe773c7d",
"61a64428a8c6aa1b795f0ba1", "61a64428a8c6aa1b795f0ba1",
"63a71e781031ac76fe773c7d",
"5d80c88d86f77440556dbf07", "5d80c88d86f77440556dbf07",
"5d6e68dea4b9361bcc29e659", "5d6e68dea4b9361bcc29e659",
"544fb3f34bdc2d03748b456a", "544fb3f34bdc2d03748b456a",
"5938603e86f77435642354f4", "5938603e86f77435642354f4",
"63a39f18c2d53c2c6839c1d3", "63a39f18c2d53c2c6839c1d3",
"5ad7242b86f7740a6a3abd43",
"5a0eecf686f7740350630097",
"591382d986f774465a6413a7", "591382d986f774465a6413a7",
"5ad7242b86f7740a6a3abd43",
"59e3658a86f7741776641ac4", "59e3658a86f7741776641ac4",
"5913611c86f77479e0084092", "5913611c86f77479e0084092",
"5a0eecf686f7740350630097",
"63a39e1d234195315d4020bd", "63a39e1d234195315d4020bd",
"591afe0186f77431bd616a11", "591afe0186f77431bd616a11",
"63a71eb5b7f4570d3a29316b", "63a71eb5b7f4570d3a29316b",
"5a0ea69f86f7741cd5406619", "5a0ea69f86f7741cd5406619",
"61aa81fcb225ac1ead7957c3", "61aa81fcb225ac1ead7957c3",
"5a0ec70e86f7742c0b518fba",
"62987dfc402c7f69bf010923", "62987dfc402c7f69bf010923",
"5a0ec70e86f7742c0b518fba",
"63a39f08cd6db0635c197600", "63a39f08cd6db0635c197600",
"5af0548586f7743a532b7e99", "5af0548586f7743a532b7e99",
"5d235a5986f77443f6329bc6", "5d235a5986f77443f6329bc6",
@ -481,7 +481,13 @@
"5c1d0f4986f7744bb01837fa", "5c1d0f4986f7744bb01837fa",
"5a13ee1986f774794d4c14cd", "5a13ee1986f774794d4c14cd",
"5d80cbd886f77470855c26c2", "5d80cbd886f77470855c26c2",
"5d80cb3886f77440556dbf09" "5d80cb3886f77440556dbf09",
"5d8e0db586f7744450412a42",
"5ad5cfbd86f7742c825d6104",
"5d8e15b686f774445103b190",
"5a0f0f5886f7741c4e32a472",
"5d947d3886f774447b415893",
"5a13f24186f77410e57c5626"
], ],
"Backpack": [ "Backpack": [
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
@ -535,9 +541,9 @@
"5a0eee1486f77402aa773226" "5a0eee1486f77402aa773226"
], ],
"SecuredContainer": [ "SecuredContainer": [
"5d6e68b3a4b9361bca7e50b5",
"56dff061d2720bb5668b4567",
"5d6e68d1a4b93622fe60e845", "5d6e68d1a4b93622fe60e845",
"56dff061d2720bb5668b4567",
"5d6e68b3a4b9361bca7e50b5",
"5d6e68a8a4b9360b6c0d54e2", "5d6e68a8a4b9360b6c0d54e2",
"5c0d5e4486f77478390952fe", "5c0d5e4486f77478390952fe",
"5d6e6806a4b936088465b17e", "5d6e6806a4b936088465b17e",
@ -2601,15 +2607,15 @@
"mod_stock": 100, "mod_stock": 100,
"mod_magazine": 100, "mod_magazine": 100,
"mod_charge": 33, "mod_charge": 33,
"mod_scope": 87,
"mod_foregrip": 46,
"mod_tactical_000": 36,
"mod_tactical_001": 43,
"mod_tactical_002": 0,
"mod_tactical": 100,
"mod_mount_001": 100, "mod_mount_001": 100,
"mod_mount_002": 100, "mod_mount_002": 100,
"mod_mount_003": 100, "mod_mount_003": 100,
"mod_tactical": 100,
"mod_scope": 87,
"mod_foregrip": 46,
"mod_tactical_000": 35,
"mod_tactical_001": 44,
"mod_tactical_002": 0,
"mod_stock_001": 100, "mod_stock_001": 100,
"mod_mount": 100, "mod_mount": 100,
"mod_sight_front": 0 "mod_sight_front": 0

File diff suppressed because it is too large Load Diff

View File

@ -109,16 +109,16 @@
"5a43957686f7742a2c2f11b0": 1 "5a43957686f7742a2c2f11b0": 1
}, },
"Earpiece": { "Earpiece": {
"628e4e576d783146b124c64d": 1, "5645bcc04bdc2d363b8b4572": 1,
"5645bcc04bdc2d363b8b4572": 1 "628e4e576d783146b124c64d": 1
}, },
"FaceCover": { "FaceCover": {
"62a61bbf8ec41a51b34758d2": 1 "62a61bbf8ec41a51b34758d2": 1
}, },
"ArmorVest": {}, "ArmorVest": {},
"Eyewear": { "Eyewear": {
"62a61c988ec41a51b34758d5": 1, "603409c80ca681766b6a0fb2": 1,
"603409c80ca681766b6a0fb2": 1 "62a61c988ec41a51b34758d5": 1
}, },
"ArmBand": {}, "ArmBand": {},
"TacticalVest": { "TacticalVest": {
@ -129,9 +129,9 @@
"5fbcc1d9016cce60e8341ab3": 1 "5fbcc1d9016cce60e8341ab3": 1
}, },
"SecondPrimaryWeapon": { "SecondPrimaryWeapon": {
"5e81ebcd8e146c7080625e15": 1,
"5a7828548dc32e5a9c28b516": 1, "5a7828548dc32e5a9c28b516": 1,
"6275303a9f372d6ea97f9ec7": 1 "6275303a9f372d6ea97f9ec7": 1,
"5e81ebcd8e146c7080625e15": 1
}, },
"Holster": { "Holster": {
"5f36a0e5fbf956000b716b65": 1 "5f36a0e5fbf956000b716b65": 1
@ -151,16 +151,16 @@
"619636be6db0f2477964e710": 1, "619636be6db0f2477964e710": 1,
"5fd20ff893a8961fc660a954": 1 "5fd20ff893a8961fc660a954": 1
}, },
"Caliber40x46": { "Caliber12g": {
"5ede474b0c226a66f5402622": 1, "5d6e6911a4b9361bd5780d52": 1
"5f0c892565703e5c461894e9": 1
}, },
"Caliber1143x23ACP": { "Caliber1143x23ACP": {
"5efb0cabfb3e451d70735af5": 1, "5efb0cabfb3e451d70735af5": 1,
"5e81f423763d9f754677bf2e": 1 "5e81f423763d9f754677bf2e": 1
}, },
"Caliber12g": { "Caliber40x46": {
"5d6e6911a4b9361bd5780d52": 1 "5f0c892565703e5c461894e9": 1,
"5ede474b0c226a66f5402622": 1
} }
}, },
"mods": { "mods": {
@ -246,15 +246,36 @@
"57d17c5e2459775a5c57d17d" "57d17c5e2459775a5c57d17d"
] ]
}, },
"5e81ebcd8e146c7080625e15": { "5a7828548dc32e5a9c28b516": {
"mod_pistol_grip": [ "mod_barrel": [
"571659bb2459771fb2755a12" "5a787fdfc5856700142fdd9a"
], ],
"mod_handguard": [
"5a788089c5856700142fdd9c"
],
"mod_stock": [
"5bfe86a20db834001d23e8f7"
],
"mod_mount": [
"5a7893c1c585673f2b5c374d"
],
"mod_magazine": [
"5a7882dcc5856700177af662"
]
},
"5bfe86a20db834001d23e8f7": {
"mod_stock": [
"5bfe86bd0db83400232fe959"
]
},
"5a7893c1c585673f2b5c374d": {
"mod_scope": [ "mod_scope": [
"6284bd5f95250a29bc628a30" "5a33b2c9c4a282000c5a9511"
], ]
"patron_in_weapon": [ },
"5ede474b0c226a66f5402622" "5a33b2c9c4a282000c5a9511": {
"mod_scope": [
"5a32aa8bc4a2826c6e06d737"
] ]
}, },
"5f36a0e5fbf956000b716b65": { "5f36a0e5fbf956000b716b65": {
@ -288,38 +309,6 @@
"5f3e78a7fbf956000b716b8e" "5f3e78a7fbf956000b716b8e"
] ]
}, },
"5a7828548dc32e5a9c28b516": {
"mod_barrel": [
"5a787fdfc5856700142fdd9a"
],
"mod_handguard": [
"5a788089c5856700142fdd9c"
],
"mod_stock": [
"5bfe86a20db834001d23e8f7"
],
"mod_mount": [
"5a7893c1c585673f2b5c374d"
],
"mod_magazine": [
"5a7882dcc5856700177af662"
]
},
"5bfe86a20db834001d23e8f7": {
"mod_stock": [
"5bfe86bd0db83400232fe959"
]
},
"5a7893c1c585673f2b5c374d": {
"mod_scope": [
"5a33b2c9c4a282000c5a9511"
]
},
"5a33b2c9c4a282000c5a9511": {
"mod_scope": [
"5a32aa8bc4a2826c6e06d737"
]
},
"6275303a9f372d6ea97f9ec7": { "6275303a9f372d6ea97f9ec7": {
"mod_pistol_grip": [ "mod_pistol_grip": [
"5bb20e18d4351e00320205d5" "5bb20e18d4351e00320205d5"
@ -353,28 +342,39 @@
"camora_005": [ "camora_005": [
"5f0c892565703e5c461894e9" "5f0c892565703e5c461894e9"
] ]
},
"5e81ebcd8e146c7080625e15": {
"mod_pistol_grip": [
"571659bb2459771fb2755a12"
],
"mod_scope": [
"6284bd5f95250a29bc628a30"
],
"patron_in_weapon": [
"5ede474b0c226a66f5402622"
]
} }
}, },
"items": { "items": {
"TacticalVest": [ "TacticalVest": [
"5c6d46132e221601da357d56", "5c6d46132e221601da357d56",
"5ede474b0c226a66f5402622",
"5ef3448ab37dfd6af863525c",
"544fb45d4bdc2dee738b4568", "544fb45d4bdc2dee738b4568",
"619256e5f8af2c1a4e1f5d92", "619256e5f8af2c1a4e1f5d92",
"5d1340cad7ad1a0b0b249869", "5d1340cad7ad1a0b0b249869",
"5f0c892565703e5c461894e9" "5f0c892565703e5c461894e9",
"5ef3448ab37dfd6af863525c",
"5ede474b0c226a66f5402622"
], ],
"Pockets": [ "Pockets": [
"5ede474b0c226a66f5402622",
"5d6e6911a4b9361bd5780d52", "5d6e6911a4b9361bd5780d52",
"5ef3448ab37dfd6af863525c", "5ef3448ab37dfd6af863525c",
"58d3db5386f77426186285a0", "58d3db5386f77426186285a0",
"5913915886f774123603c392",
"5f0c892565703e5c461894e9",
"5ede474b0c226a66f5402622",
"544fb3f34bdc2d03748b456a", "544fb3f34bdc2d03748b456a",
"5448be9a4bdc2dfd2f8b456a", "5448be9a4bdc2dfd2f8b456a",
"57514643245977207f2c2d09", "57514643245977207f2c2d09",
"5913915886f774123603c392",
"5f0c892565703e5c461894e9",
"5672c92d4bdc2d180f8b4567", "5672c92d4bdc2d180f8b4567",
"5755383e24597772cb798966", "5755383e24597772cb798966",
"57a349b2245977762b199ec7", "57a349b2245977762b199ec7",
@ -382,18 +382,18 @@
"5df8a6a186f77412640e2e80", "5df8a6a186f77412640e2e80",
"5780cf692459777de4559321", "5780cf692459777de4559321",
"5780d0532459777a5108b9a2", "5780d0532459777a5108b9a2",
"5a0ee76686f7743698200d5c",
"5e42c83786f7742a021fdf3c", "5e42c83786f7742a021fdf3c",
"5938144586f77473c2087145", "5a0ee76686f7743698200d5c",
"5c1d0dc586f7744baf2e7b79", "5c1d0dc586f7744baf2e7b79",
"5938144586f77473c2087145",
"5780cf942459777df90dcb72", "5780cf942459777df90dcb72",
"5913651986f774432f15d132", "5913651986f774432f15d132",
"544fb37f4bdc2dee738b4567", "544fb37f4bdc2dee738b4567",
"5c94bbff86f7747ee735c08f",
"5938603e86f77435642354f4", "5938603e86f77435642354f4",
"5c94bbff86f7747ee735c08f",
"63a39ce4cd6db0635c1975fa", "63a39ce4cd6db0635c1975fa",
"5e42c81886f7742a01529f57",
"591afe0186f77431bd616a11", "591afe0186f77431bd616a11",
"5e42c81886f7742a01529f57",
"63a39e1d234195315d4020bd", "63a39e1d234195315d4020bd",
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
"5ad5d20586f77449be26d877", "5ad5d20586f77449be26d877",
@ -464,16 +464,21 @@
"63a39fd1c9b3aa4b61683efb", "63a39fd1c9b3aa4b61683efb",
"5a145d4786f7744cbb6f4a12", "5a145d4786f7744cbb6f4a12",
"5d95d6fa86f77424484aa5e9", "5d95d6fa86f77424484aa5e9",
"62987e26a77ec735f90a2995" "62987e26a77ec735f90a2995",
"5ad5d64486f774079b080af8",
"5d80c60f86f77440373c4ece",
"5a0eeb8e86f77461257ed71a",
"59136a4486f774447a1ed172",
"5d8e3ecc86f774414c78d05e"
], ],
"Backpack": [], "Backpack": [],
"SecuredContainer": [ "SecuredContainer": [
"619636be6db0f2477964e710", "619636be6db0f2477964e710",
"5ede474b0c226a66f5402622",
"5efb0cabfb3e451d70735af5",
"5d6e6911a4b9361bd5780d52", "5d6e6911a4b9361bd5780d52",
"5efb0cabfb3e451d70735af5",
"5fd20ff893a8961fc660a954", "5fd20ff893a8961fc660a954",
"5f0c892565703e5c461894e9", "5f0c892565703e5c461894e9",
"5ede474b0c226a66f5402622",
"5e81f423763d9f754677bf2e" "5e81f423763d9f754677bf2e"
], ],
"SpecialLoot": [] "SpecialLoot": []
@ -2427,7 +2432,7 @@
"equipment": { "equipment": {
"Headwear": 100, "Headwear": 100,
"Earpiece": 100, "Earpiece": 100,
"FaceCover": 50, "FaceCover": 49,
"ArmorVest": 0, "ArmorVest": 0,
"Eyewear": 100, "Eyewear": 100,
"ArmBand": 0, "ArmBand": 0,

View File

@ -115,8 +115,8 @@
"628bc7fb408e2b2e9c0801b1": 1 "628bc7fb408e2b2e9c0801b1": 1
}, },
"FirstPrimaryWeapon": { "FirstPrimaryWeapon": {
"5df8ce05b11454561e39243b": 1,
"5bfea6e90db834001b7347f3": 1, "5bfea6e90db834001b7347f3": 1,
"5df8ce05b11454561e39243b": 1,
"5a367e5dc4a282000e49738f": 1 "5a367e5dc4a282000e49738f": 1
}, },
"SecondPrimaryWeapon": { "SecondPrimaryWeapon": {
@ -135,8 +135,8 @@
}, },
"Ammo": { "Ammo": {
"Caliber762x51": { "Caliber762x51": {
"58dd3ad986f77403051cba8f": 1,
"5a6086ea4f39f99cd479502f": 1, "5a6086ea4f39f99cd479502f": 1,
"58dd3ad986f77403051cba8f": 1,
"5e023e53d4353e3302577c4c": 1, "5e023e53d4353e3302577c4c": 1,
"5efb0c1bd79ff02a1f5e68d9": 1 "5efb0c1bd79ff02a1f5e68d9": 1
}, },
@ -188,79 +188,56 @@
} }
}, },
"mods": { "mods": {
"5df8ce05b11454561e39243b": { "5bfea6e90db834001b7347f3": {
"mod_pistol_grip": [ "mod_stock": [
"57af48872459771f0b2ebf11" "5cde739cd7f00c0010373bd3"
], ],
"mod_barrel": [
"5bfebc320db8340019668d79"
],
"mod_mount": [
"5cde7b43d7f00c000d36b93e"
],
"mod_magazine": [
"5d25a6538abbc306c62e630d"
]
},
"5cde739cd7f00c0010373bd3": {
"mod_stock": [ "mod_stock": [
"5649be884bdc2d79388b4577" "5649be884bdc2d79388b4577"
], ],
"mod_reciever": [ "mod_pistol_grip": [
"5df8e4080b92095fd441e594" "5a339805c4a2826c6e06d73d"
], ],
"mod_charge": [ "mod_handguard": [
"5df8e085bb49d91fb446d6a8" "5cde7afdd7f00c000d36b89d"
],
"mod_magazine": [
"5df8f541c41b2312ea3335e3"
] ]
}, },
"5649be884bdc2d79388b4577": { "5649be884bdc2d79388b4577": {
"mod_stock_000": [ "mod_stock_000": [
"5fc2369685fd526b824a5713", "5d4406a8a4b9361e4f6eb8b7",
"5d135ecbd7ad1a21c176542e", "5d135ecbd7ad1a21c176542e",
"5d4406a8a4b9361e4f6eb8b7" "5fc2369685fd526b824a5713"
] ]
}, },
"5df8e4080b92095fd441e594": { "5bfebc320db8340019668d79": {
"mod_scope": [
"618bab21526131765025ab3f"
],
"mod_barrel": [
"5df917564a9f347bc92edca3"
],
"mod_handguard": [
"5df916dfbb49d91fb446d6b9"
],
"mod_sight_rear": [
"5dfa3d7ac41b2312ea33362a"
]
},
"618bab21526131765025ab3f": {
"mod_scope": [
"618ba27d9008e4636a67f61d"
],
"mod_mount": [
"618ba92152ecee1505530bd3"
]
},
"618ba92152ecee1505530bd3": {
"mod_scope": [
"5a32aa8bc4a2826c6e06d737"
]
},
"5df917564a9f347bc92edca3": {
"mod_muzzle": [ "mod_muzzle": [
"6130c43c67085e45ef1405a1" "5d1f819086f7744b355c219b"
],
"mod_gas_block": [
"5dfa3d45dfc58d14537c20b0"
] ]
}, },
"6130c43c67085e45ef1405a1": { "5d1f819086f7744b355c219b": {
"mod_muzzle": [ "mod_muzzle": [
"5dfa3d2b0dee1b22f862eade" "5cff9e84d7ad1a049e54ed55"
] ]
}, },
"5df916dfbb49d91fb446d6b9": { "5cde7b43d7f00c000d36b93e": {
"mod_tactical": [ "mod_scope": [
"544909bb4bdc2d6f028b4577" "5aa66a9be5b5b0214e506e89"
], ]
"mod_sight_front": [ },
"5dfa3d950dee1b22f862eae0" "5aa66a9be5b5b0214e506e89": {
], "mod_scope": [
"mod_foregrip": [ "61714eec290d254f5e6b2ffc"
"57cffcd624597763133760c5"
] ]
}, },
"5447a9cd4bdc2dbd208b4567": { "5447a9cd4bdc2dbd208b4567": {
@ -364,49 +341,72 @@
"5cadd919ae921500126a77f3" "5cadd919ae921500126a77f3"
] ]
}, },
"5bfea6e90db834001b7347f3": { "5df8ce05b11454561e39243b": {
"mod_stock": [ "mod_pistol_grip": [
"5cde739cd7f00c0010373bd3" "57af48872459771f0b2ebf11"
], ],
"mod_barrel": [
"5bfebc320db8340019668d79"
],
"mod_mount": [
"5cde7b43d7f00c000d36b93e"
],
"mod_magazine": [
"5d25a6538abbc306c62e630d"
]
},
"5cde739cd7f00c0010373bd3": {
"mod_stock": [ "mod_stock": [
"5649be884bdc2d79388b4577" "5649be884bdc2d79388b4577"
], ],
"mod_pistol_grip": [ "mod_reciever": [
"5a339805c4a2826c6e06d73d" "5df8e4080b92095fd441e594"
],
"mod_charge": [
"5df8e085bb49d91fb446d6a8"
],
"mod_magazine": [
"5df8f541c41b2312ea3335e3"
]
},
"5df8e4080b92095fd441e594": {
"mod_scope": [
"618bab21526131765025ab3f"
],
"mod_barrel": [
"5df917564a9f347bc92edca3"
], ],
"mod_handguard": [ "mod_handguard": [
"5cde7afdd7f00c000d36b89d" "5df916dfbb49d91fb446d6b9"
],
"mod_sight_rear": [
"5dfa3d7ac41b2312ea33362a"
] ]
}, },
"5bfebc320db8340019668d79": { "618bab21526131765025ab3f": {
"mod_muzzle": [
"5d1f819086f7744b355c219b"
]
},
"5d1f819086f7744b355c219b": {
"mod_muzzle": [
"5cff9e84d7ad1a049e54ed55"
]
},
"5cde7b43d7f00c000d36b93e": {
"mod_scope": [ "mod_scope": [
"5aa66a9be5b5b0214e506e89" "618ba27d9008e4636a67f61d"
],
"mod_mount": [
"618ba92152ecee1505530bd3"
] ]
}, },
"5aa66a9be5b5b0214e506e89": { "618ba92152ecee1505530bd3": {
"mod_scope": [ "mod_scope": [
"61714eec290d254f5e6b2ffc" "5a32aa8bc4a2826c6e06d737"
]
},
"5df917564a9f347bc92edca3": {
"mod_muzzle": [
"6130c43c67085e45ef1405a1"
],
"mod_gas_block": [
"5dfa3d45dfc58d14537c20b0"
]
},
"6130c43c67085e45ef1405a1": {
"mod_muzzle": [
"5dfa3d2b0dee1b22f862eade"
]
},
"5df916dfbb49d91fb446d6b9": {
"mod_tactical": [
"544909bb4bdc2d6f028b4577"
],
"mod_sight_front": [
"5dfa3d950dee1b22f862eae0"
],
"mod_foregrip": [
"57cffcd624597763133760c5"
] ]
}, },
"5a367e5dc4a282000e49738f": { "5a367e5dc4a282000e49738f": {
@ -480,9 +480,9 @@
}, },
"items": { "items": {
"TacticalVest": [ "TacticalVest": [
"5df8f541c41b2312ea3335e3",
"5d1340b3d7ad1a0b52682ed7",
"5d25a6538abbc306c62e630d", "5d25a6538abbc306c62e630d",
"5d1340b3d7ad1a0b52682ed7",
"5df8f541c41b2312ea3335e3",
"5a3501acc4a282000d72293a", "5a3501acc4a282000d72293a",
"59c1383d86f774290a37e0ca" "59c1383d86f774290a37e0ca"
], ],
@ -493,21 +493,21 @@
"5df8a77486f77412672a1e3f" "5df8a77486f77412672a1e3f"
], ],
"Backpack": [ "Backpack": [
"5649ed104bdc2d3d1c8b458b",
"5d0375ff86f774186372f685", "5d0375ff86f774186372f685",
"590c31c586f774245e3141b2", "590c31c586f774245e3141b2",
"59e3596386f774176c10a2a2", "59e3596386f774176c10a2a2",
"590a3efd86f77437d351a25b", "590a3efd86f77437d351a25b",
"5d0379a886f77420407aa271", "5d0379a886f77420407aa271",
"5649ed104bdc2d3d1c8b458b",
"5913611c86f77479e0084092", "5913611c86f77479e0084092",
"59136a4486f774447a1ed172", "59136a4486f774447a1ed172",
"5737339e2459776af261abeb",
"5c06779c86f77426e00dd782",
"573478bc24597738002c6175",
"62a0a098de7ac8199358053b", "62a0a098de7ac8199358053b",
"5c06782b86f77426df5407d2", "5c06782b86f77426df5407d2",
"5d1b2ffd86f77425243e8d17", "5d1b2ffd86f77425243e8d17",
"5c94bbff86f7747ee735c08f", "5c94bbff86f7747ee735c08f",
"5737339e2459776af261abeb",
"5c06779c86f77426e00dd782",
"573478bc24597738002c6175",
"5937ee6486f77408994ba448", "5937ee6486f77408994ba448",
"590a3c0a86f774385a33c450", "590a3c0a86f774385a33c450",
"5e2af51086f7746d3f3c3402", "5e2af51086f7746d3f3c3402",
@ -524,48 +524,48 @@
"5d1b3f2d86f774253763b735", "5d1b3f2d86f774253763b735",
"5780cda02459777b272ede61", "5780cda02459777b272ede61",
"57372fc52459776998772ca1", "57372fc52459776998772ca1",
"5a0eecf686f7740350630097",
"573726d824597765d96be361", "573726d824597765d96be361",
"5f745ee30acaeb0d490d8c5b", "5f745ee30acaeb0d490d8c5b",
"5e2af22086f7746d3f3c33fa", "5e2af22086f7746d3f3c33fa",
"590c346786f77423e50ed342", "590c346786f77423e50ed342",
"59e35cbb86f7741778269d83", "59e35cbb86f7741778269d83",
"5938603e86f77435642354f4", "5a0eecf686f7740350630097",
"57347cd0245977445a2d6ff1", "57347cd0245977445a2d6ff1",
"5e54f62086f774219b0f1937", "5e54f62086f774219b0f1937",
"62a09cb7a04c0c5c6e0a84f8", "62a09cb7a04c0c5c6e0a84f8",
"5938603e86f77435642354f4",
"61bf7b6302b3924be92fa8c3", "61bf7b6302b3924be92fa8c3",
"593aa4be86f77457f56379f8",
"59148f8286f7741b951ea113",
"5e2af37686f774755a234b65", "5e2af37686f774755a234b65",
"619cbf476b8a1b37a54eebf8", "619cbf476b8a1b37a54eebf8",
"5c1265fc86f7743f896a21c2", "5c1265fc86f7743f896a21c2",
"5d1b313086f77425227d1678", "5d1b313086f77425227d1678",
"593aa4be86f77457f56379f8",
"59148f8286f7741b951ea113",
"57372e4a24597768553071c2", "57372e4a24597768553071c2",
"5e2aee0a86f774755a234b62", "5e2aee0a86f774755a234b62",
"5938994586f774523a425196", "5938994586f774523a425196",
"573475fb24597737fb1379e1",
"57347c93245977448d35f6e3",
"5bc9c377d4351e3bac12251b", "5bc9c377d4351e3bac12251b",
"5d1c819a86f774771b0acd6c", "5d1c819a86f774771b0acd6c",
"573475fb24597737fb1379e1",
"57347c93245977448d35f6e3",
"591382d986f774465a6413a7",
"5bc9c049d4351e44f824d360", "5bc9c049d4351e44f824d360",
"619cc01e0a7c3a1a2731940c", "619cc01e0a7c3a1a2731940c",
"5672cb304bdc2dc2088b456a", "5672cb304bdc2dc2088b456a",
"591382d986f774465a6413a7",
"56742c284bdc2d98058b456d", "56742c284bdc2d98058b456d",
"5e2af4a786f7746d3f3c3400", "5e2af4a786f7746d3f3c3400",
"5e2af47786f7746d404f3aaa", "5e2af47786f7746d404f3aaa",
"57372deb245977685d4159b3", "57372deb245977685d4159b3",
"63a39e1d234195315d4020bd", "63a39e1d234195315d4020bd",
"573725b0245977612125bae2",
"59e35de086f7741778269d84",
"5d95d6be86f77424444eb3a7", "5d95d6be86f77424444eb3a7",
"5ad5d7d286f77450166e0a89", "5ad5d7d286f77450166e0a89",
"573725b0245977612125bae2",
"59e35de086f7741778269d84",
"5b43575a86f77424f443fe62", "5b43575a86f77424f443fe62",
"59faf7ca86f7740dbe19f6c2", "59faf7ca86f7740dbe19f6c2",
"59136f6f86f774447a1ed173",
"5737273924597765dd374461", "5737273924597765dd374461",
"591383f186f7744a4c5edcf3", "591383f186f7744a4c5edcf3",
"59136f6f86f774447a1ed173",
"57a349b2245977762b199ec7", "57a349b2245977762b199ec7",
"5914578086f774123569ffa4", "5914578086f774123569ffa4",
"5d80ca9086f774403a401e40", "5d80ca9086f774403a401e40",
@ -592,14 +592,14 @@
"5da5cdcd86f774529238fb9b", "5da5cdcd86f774529238fb9b",
"5a13f35286f77413ef1436b0", "5a13f35286f77413ef1436b0",
"5d235b4d86f7742e017bc88a", "5d235b4d86f7742e017bc88a",
"57372db0245977685d4159b2",
"590c2e1186f77425357b6124", "590c2e1186f77425357b6124",
"57372db0245977685d4159b2",
"57372bd3245977670b7cd243", "57372bd3245977670b7cd243",
"5c12619186f7743f871c8a32",
"61aa5ba8018e9821b7368da9",
"60b0f561c4449e4cb624c1d7", "60b0f561c4449e4cb624c1d7",
"5d6fc78386f77449d825f9dc", "5d6fc78386f77449d825f9dc",
"5733279d245977289b77ec24", "5733279d245977289b77ec24",
"5c12619186f7743f871c8a32",
"61aa5ba8018e9821b7368da9",
"59e35ef086f7741777737012", "59e35ef086f7741777737012",
"5e2af02c86f7746d420957d4", "5e2af02c86f7746d420957d4",
"5672c92d4bdc2d180f8b4567", "5672c92d4bdc2d180f8b4567",
@ -653,16 +653,16 @@
"5bc9b9ecd4351e3bac122519", "5bc9b9ecd4351e3bac122519",
"59e3556c86f7741776641ac2", "59e3556c86f7741776641ac2",
"5780cfa52459777dfb276eb1", "5780cfa52459777dfb276eb1",
"5eff09cd30a7dc22fd1ddfed",
"59136e1e86f774432f15d133", "59136e1e86f774432f15d133",
"5ad5db3786f7743568421cce", "5ad5db3786f7743568421cce",
"5eff09cd30a7dc22fd1ddfed",
"590a3cd386f77436f20848cb", "590a3cd386f77436f20848cb",
"63a71e781031ac76fe773c7d", "63a71e781031ac76fe773c7d",
"63a39df18a56922e82001f25", "63a39df18a56922e82001f25",
"5d80cb3886f77440556dbf09", "5d80cb3886f77440556dbf09",
"5d80c95986f77440351beef3", "5d80c95986f77440351beef3",
"63a39fc0af870e651d58e6ae",
"5d1b3a5d86f774252167ba22", "5d1b3a5d86f774252167ba22",
"63a39fc0af870e651d58e6ae",
"5a0ee4b586f7743698200d22", "5a0ee4b586f7743698200d22",
"590a3d9c86f774385926e510", "590a3d9c86f774385926e510",
"590c2c9c86f774245b1f03f2", "590c2c9c86f774245b1f03f2",
@ -681,10 +681,10 @@
"5a144bdb86f7741d374bbde0", "5a144bdb86f7741d374bbde0",
"5ede7a8229445733cb4c18e2", "5ede7a8229445733cb4c18e2",
"59e3658a86f7741776641ac4", "59e3658a86f7741776641ac4",
"590a386e86f77429692b27ab",
"5e2af29386f7746d4159f077", "5e2af29386f7746d4159f077",
"5a0ee34586f774023b6ee092", "590a386e86f77429692b27ab",
"5d80c78786f774403a401e3e", "5d80c78786f774403a401e3e",
"5a0ee34586f774023b6ee092",
"5a13ef7e86f7741290491063", "5a13ef7e86f7741290491063",
"5737256c2459776125652acd", "5737256c2459776125652acd",
"5e2af4d286f7746d4159f07a", "5e2af4d286f7746d4159f07a",
@ -785,8 +785,8 @@
"57372c89245977685d4159b1", "57372c89245977685d4159b1",
"5ad7247386f7747487619dc3", "5ad7247386f7747487619dc3",
"63a39dfe3901f439517cafba", "63a39dfe3901f439517cafba",
"5c1d0efb86f7744baf2e7b7b",
"5a0ea64786f7741707720468", "5a0ea64786f7741707720468",
"5c1d0efb86f7744baf2e7b7b",
"5d1b385e86f774252167b98a", "5d1b385e86f774252167b98a",
"5d8e15b686f774445103b190", "5d8e15b686f774445103b190",
"5d80c88d86f77440556dbf07", "5d80c88d86f77440556dbf07",
@ -809,13 +809,23 @@
"590c5bbd86f774785762df04", "590c5bbd86f774785762df04",
"60b0f7057897d47c5b04ab94", "60b0f7057897d47c5b04ab94",
"59387a4986f77401cc236e62", "59387a4986f77401cc236e62",
"5d80c6fc86f774403a401e3c" "5d80c6fc86f774403a401e3c",
"5d0378d486f77420421a5ff4",
"63a39ce4cd6db0635c1975fa",
"5a0f0f5886f7741c4e32a472",
"5d63d33b86f7746ea9275524",
"5c12620d86f7743f8b198b72",
"5da743f586f7744014504f72",
"5d40419286f774318526545f",
"5d947d4e86f774447b415895",
"57372e73245977685d4159b4",
"5d235a5986f77443f6329bc6"
], ],
"SecuredContainer": [ "SecuredContainer": [
"58dd3ad986f77403051cba8f", "5a6086ea4f39f99cd479502f",
"54527ac44bdc2d36668b4567", "54527ac44bdc2d36668b4567",
"56d59d3ad2720bdb418b4577", "56d59d3ad2720bdb418b4577",
"5a6086ea4f39f99cd479502f", "58dd3ad986f77403051cba8f",
"5e023e53d4353e3302577c4c", "5e023e53d4353e3302577c4c",
"5efb0c1bd79ff02a1f5e68d9", "5efb0c1bd79ff02a1f5e68d9",
"60194943740c5d77f6705eea", "60194943740c5d77f6705eea",
@ -2841,19 +2851,19 @@
}, },
"mods": { "mods": {
"mod_magazine": 100, "mod_magazine": 100,
"mod_stock_000": 100,
"mod_scope": 75,
"mod_sight_rear": 78,
"mod_muzzle": 78,
"mod_tactical": 89,
"mod_mount_000": 50,
"mod_mount_002": 0,
"mod_sight_front": 78,
"mod_foregrip": 88,
"mod_mount_001": 0,
"mod_tactical_000": 0,
"mod_mount": 100, "mod_mount": 100,
"mod_stock": 100, "mod_stock": 100,
"mod_stock_000": 100,
"mod_mount_000": 50,
"mod_mount_001": 0,
"mod_mount_002": 0,
"mod_tactical_000": 0,
"mod_sight_front": 78,
"mod_foregrip": 88,
"mod_muzzle": 78,
"mod_scope": 75,
"mod_sight_rear": 78,
"mod_tactical": 89,
"mod_mount_003": 0, "mod_mount_003": 0,
"mod_mount_004": 0, "mod_mount_004": 0,
"mod_scope_000": 100, "mod_scope_000": 100,

View File

@ -430,7 +430,10 @@
"62a09cfe4f842e1bd12da3e4", "62a09cfe4f842e1bd12da3e4",
"590de7e986f7741b096e5f32", "590de7e986f7741b096e5f32",
"5d235a5986f77443f6329bc6", "5d235a5986f77443f6329bc6",
"5bc9bdb8d4351e003562b8a1" "5bc9bdb8d4351e003562b8a1",
"59e3658a86f7741776641ac4",
"5734758f24597738025ee253",
"5bc9bc53d4351e00367fbcee"
], ],
"SecuredContainer": [ "SecuredContainer": [
"56dff061d2720bb5668b4567", "56dff061d2720bb5668b4567",
@ -2397,16 +2400,16 @@
"equipment": { "equipment": {
"Headwear": 83, "Headwear": 83,
"Earpiece": 0, "Earpiece": 0,
"FaceCover": 17, "FaceCover": 16,
"ArmorVest": 76, "ArmorVest": 77,
"Eyewear": 62, "Eyewear": 62,
"ArmBand": 0, "ArmBand": 0,
"TacticalVest": 100, "TacticalVest": 100,
"Backpack": 23, "Backpack": 24,
"FirstPrimaryWeapon": 100, "FirstPrimaryWeapon": 100,
"SecondPrimaryWeapon": 0, "SecondPrimaryWeapon": 0,
"Holster": 0, "Holster": 0,
"Scabbard": 5, "Scabbard": 6,
"Pockets": 100, "Pockets": 100,
"SecuredContainer": 100 "SecuredContainer": 100
}, },
@ -2426,7 +2429,7 @@
"mod_equipment": 15, "mod_equipment": 15,
"mod_sight_front": 0, "mod_sight_front": 0,
"mod_mount_001": 0, "mod_mount_001": 0,
"mod_mount_002": 67, "mod_mount_002": 66,
"mod_mount": 0, "mod_mount": 0,
"mod_nvg": 0, "mod_nvg": 0,
"mod_tactical": 68 "mod_tactical": 68

View File

@ -639,7 +639,20 @@
"5d1b32c186f774252167a530", "5d1b32c186f774252167a530",
"5d40425986f7743185265461", "5d40425986f7743185265461",
"590c595c86f7747884343ad7", "590c595c86f7747884343ad7",
"5734781f24597737e04bf32a" "5734781f24597737e04bf32a",
"5d0377ce86f774186372f689",
"5bc9c049d4351e44f824d360",
"590c2b4386f77425357b6123",
"59faf98186f774067b6be103",
"637b60c3b7afa97bfc3d7001",
"63a0b208f444d32d6f03ea1e",
"5e54f62086f774219b0f1937",
"577e1c9d2459773cd707c525",
"5bc9b720d4351e450201234b",
"590c2d8786f774245b1f03f3",
"590c661e86f7741e566b646a",
"590a3efd86f77437d351a25b",
"573478bc24597738002c6175"
], ],
"SecuredContainer": [ "SecuredContainer": [
"5e023e88277cce2b522ff2b1", "5e023e88277cce2b522ff2b1",
@ -2658,7 +2671,7 @@
"Eyewear": 0, "Eyewear": 0,
"ArmBand": 0, "ArmBand": 0,
"TacticalVest": 100, "TacticalVest": 100,
"Backpack": 88, "Backpack": 87,
"FirstPrimaryWeapon": 100, "FirstPrimaryWeapon": 100,
"SecondPrimaryWeapon": 93, "SecondPrimaryWeapon": 93,
"Holster": 0, "Holster": 0,
@ -2678,11 +2691,11 @@
"mod_tactical_002": 16, "mod_tactical_002": 16,
"mod_tactical_003": 0, "mod_tactical_003": 0,
"mod_scope": 56, "mod_scope": 56,
"mod_tactical_000": 63, "mod_tactical_000": 64,
"mod_nvg": 100, "mod_nvg": 100,
"mod_mount_001": 8, "mod_mount_001": 9,
"mod_stock": 100, "mod_stock": 100,
"mod_mount_002": 72, "mod_mount_002": 71,
"mod_sight_front": 56, "mod_sight_front": 56,
"mod_foregrip": 0, "mod_foregrip": 0,
"mod_charge": 0, "mod_charge": 0,

File diff suppressed because it is too large Load Diff

View File

@ -180,8 +180,8 @@
"5fd4c60f875c30179f5d04c2": 1, "5fd4c60f875c30179f5d04c2": 1,
"5f5f41f56760b4138443b352": 1, "5f5f41f56760b4138443b352": 1,
"61bc85697113f767765c7fe7": 1, "61bc85697113f767765c7fe7": 1,
"60a3c68c37ea821725773ef5": 1,
"60a621c49c197e4e8c4455e6": 1, "60a621c49c197e4e8c4455e6": 1,
"60a3c68c37ea821725773ef5": 1,
"639343fce101f4caa40a4ef3": 1, "639343fce101f4caa40a4ef3": 1,
"628d0618d1ba6e4fa07ce5a4": 1 "628d0618d1ba6e4fa07ce5a4": 1
}, },
@ -1200,6 +1200,11 @@
"5a32aa8bc4a2826c6e06d737" "5a32aa8bc4a2826c6e06d737"
] ]
}, },
"5cf67cadd7f00c065a5abab7": {
"mod_muzzle": [
"5cc9ad73d7f00c000e2579d4"
]
},
"5bb2475ed4351e00853264e3": { "5bb2475ed4351e00853264e3": {
"mod_pistol_grip": [ "mod_pistol_grip": [
"57af48872459771f0b2ebf11" "57af48872459771f0b2ebf11"
@ -1252,11 +1257,6 @@
"5bb20e70d4351e0035629f8f" "5bb20e70d4351e0035629f8f"
] ]
}, },
"5cf67cadd7f00c065a5abab7": {
"mod_muzzle": [
"5cc9ad73d7f00c000e2579d4"
]
},
"5bd70322209c4d00d7167b8f": { "5bd70322209c4d00d7167b8f": {
"mod_muzzle": [ "mod_muzzle": [
"5ba26acdd4351e003562908e" "5ba26acdd4351e003562908e"
@ -1779,13 +1779,13 @@
"5aa2a7e8e5b5b00016327c16", "5aa2a7e8e5b5b00016327c16",
"5df8a72c86f77412640e2e83", "5df8a72c86f77412640e2e83",
"573478bc24597738002c6175", "573478bc24597738002c6175",
"5aaf8a0be5b5b00015693243",
"5ae30bad5acfc400185c2dc4",
"5e00c1ad86f774747333222c", "5e00c1ad86f774747333222c",
"5b7be4575acfc400161d0832", "5b7be4575acfc400161d0832",
"5bed61680db834001d2c45ab", "5bed61680db834001d2c45ab",
"5a16ba61fcdbcb098008728a", "5a16ba61fcdbcb098008728a",
"5b4326435acfc433000ed01d", "5b4326435acfc433000ed01d",
"5aaf8a0be5b5b00015693243",
"5ae30bad5acfc400185c2dc4",
"5b432be65acfc433000ed01f", "5b432be65acfc433000ed01f",
"61c18d83b00456371a66814b", "61c18d83b00456371a66814b",
"5e01ef6886f77445f643baa4", "5e01ef6886f77445f643baa4",
@ -1876,9 +1876,9 @@
"5b7d645e5acfc400170e2f90", "5b7d645e5acfc400170e2f90",
"59ecc3dd86f7746dc827481c", "59ecc3dd86f7746dc827481c",
"5c0e53c886f7747fa54205c7", "5c0e53c886f7747fa54205c7",
"591c4e1186f77410354b316e",
"5ed515ece452db0eb56fc028", "5ed515ece452db0eb56fc028",
"59e7635f86f7742cbf2c1095", "59e7635f86f7742cbf2c1095",
"591c4e1186f77410354b316e",
"5abcd472d8ce8700166032ae", "5abcd472d8ce8700166032ae",
"5c4ee3d62e2216152006f302", "5c4ee3d62e2216152006f302",
"5bb20dadd4351e00367faeff", "5bb20dadd4351e00367faeff",
@ -1890,10 +1890,10 @@
"57cffb66245977632f391a99", "57cffb66245977632f391a99",
"5a16bb52fcdbcb001a3b00dc", "5a16bb52fcdbcb001a3b00dc",
"5943eeeb86f77412d6384f6b", "5943eeeb86f77412d6384f6b",
"5ea17ca01412a1425304d1c0",
"62a5c41e8ec41a51b34739c3",
"5a7b4900e899ef197b331a2a", "5a7b4900e899ef197b331a2a",
"5c05293e0db83400232fff80", "5c05293e0db83400232fff80",
"5ea17ca01412a1425304d1c0",
"62a5c41e8ec41a51b34739c3",
"5e54f62086f774219b0f1937", "5e54f62086f774219b0f1937",
"607d5a891246154cad35d6aa", "607d5a891246154cad35d6aa",
"5bed625c0db834001c062946", "5bed625c0db834001c062946",
@ -1920,12 +1920,12 @@
"611a30addbdd8440277441dc", "611a30addbdd8440277441dc",
"5926f2e086f7745aae644231", "5926f2e086f7745aae644231",
"5ae30db85acfc408fb139a05", "5ae30db85acfc408fb139a05",
"5b40e61f5acfc4001a599bec",
"5a7dbfc1159bd40016548fde", "5a7dbfc1159bd40016548fde",
"6194f5a318a3974e5e7421eb", "6194f5a318a3974e5e7421eb",
"5c503ac82e221602b21d6e9a", "5c503ac82e221602b21d6e9a",
"59e89d0986f77427600d226e", "59e89d0986f77427600d226e",
"62a5c333ec21e50cad3b5dc6", "62a5c333ec21e50cad3b5dc6",
"5b40e61f5acfc4001a599bec",
"62a09cfe4f842e1bd12da3e4", "62a09cfe4f842e1bd12da3e4",
"62a61c988ec41a51b34758d5", "62a61c988ec41a51b34758d5",
"59ccfdba86f7747f2109a587", "59ccfdba86f7747f2109a587",
@ -1978,7 +1978,18 @@
"62e7e7bbe6da9612f743f1e0", "62e7e7bbe6da9612f743f1e0",
"5fb655b748c711690e3a8d5a", "5fb655b748c711690e3a8d5a",
"5a7b4960e899ef197b331a2d", "5a7b4960e899ef197b331a2d",
"5c052a900db834001a66acbd" "5c052a900db834001a66acbd",
"5bb20e70d4351e0035629f8f",
"5b7d68af5acfc400170e30c3",
"5d19cd96d7ad1a4a992c9f52",
"5aa2b9ede5b5b000137b758b",
"59f99a7d86f7745b134aa97b",
"58949dea86f77409483e16a8",
"5cf518cfd7f00c065b422214",
"638db77630c4240f9e06f8b6",
"5c6d11072e2216000e69d2e4",
"637b6251104668754b72f8f9",
"59e7711e86f7746cae05fbe1"
], ],
"SecuredContainer": [ "SecuredContainer": [
"5a3c16fe86f77452b62de32a", "5a3c16fe86f77452b62de32a",
@ -2003,12 +2014,12 @@
"54527ac44bdc2d36668b4567", "54527ac44bdc2d36668b4567",
"5c0d668f86f7747ccb7f13b2", "5c0d668f86f7747ccb7f13b2",
"56dff061d2720bb5668b4567", "56dff061d2720bb5668b4567",
"5c0d5e4486f77478390952fe",
"5c0d5ae286f7741e46554302", "5c0d5ae286f7741e46554302",
"5efb0e16aeb21837e749c7ff", "5efb0e16aeb21837e749c7ff",
"5ba26835d4351e0035628ff5", "5ba26835d4351e0035628ff5",
"57a0e5022459774d1673f889", "57a0e5022459774d1673f889",
"5efb0c1bd79ff02a1f5e68d9", "5efb0c1bd79ff02a1f5e68d9",
"5c0d5e4486f77478390952fe",
"56dfef82d2720bbd668b4567", "56dfef82d2720bbd668b4567",
"5e023e53d4353e3302577c4c", "5e023e53d4353e3302577c4c",
"5fbe3ffdf8b6a877a729ea82", "5fbe3ffdf8b6a877a729ea82",
@ -2077,11 +2088,11 @@
"Ворон", "Ворон",
"Барс", "Барс",
"Крачун", "Крачун",
"Орел",
"Ягуар", "Ягуар",
"Каракурт", "Каракурт",
"Тайпан", "Тайпан",
"Дикобраз", "Дикобраз",
"Орел",
"Гепард", "Гепард",
"Ирбис", "Ирбис",
"Манул" "Манул"
@ -4028,10 +4039,10 @@
"chances": { "chances": {
"equipment": { "equipment": {
"Headwear": 90, "Headwear": 90,
"Earpiece": 53, "Earpiece": 52,
"FaceCover": 64, "FaceCover": 65,
"ArmorVest": 35, "ArmorVest": 35,
"Eyewear": 78, "Eyewear": 77,
"ArmBand": 0, "ArmBand": 0,
"TacticalVest": 100, "TacticalVest": 100,
"Backpack": 46, "Backpack": 46,
@ -4051,11 +4062,11 @@
"mod_sight_front": 85, "mod_sight_front": 85,
"mod_mount_000": 17, "mod_mount_000": 17,
"mod_mount_001": 48, "mod_mount_001": 48,
"mod_mount_002": 14, "mod_mount_002": 15,
"mod_foregrip": 27, "mod_foregrip": 27,
"mod_muzzle": 36, "mod_muzzle": 36,
"mod_mount": 37, "mod_mount": 37,
"mod_tactical_001": 39, "mod_tactical_001": 40,
"mod_reciever": 100, "mod_reciever": 100,
"mod_tactical": 45, "mod_tactical": 45,
"mod_equipment_000": 1, "mod_equipment_000": 1,
@ -4071,11 +4082,11 @@
"mod_tactical_003": 0, "mod_tactical_003": 0,
"mod_handguard": 100, "mod_handguard": 100,
"mod_mount_004": 66, "mod_mount_004": 66,
"mod_equipment": 17, "mod_equipment": 15,
"mod_muzzle_000": 50, "mod_muzzle_000": 47,
"mod_muzzle_001": 0, "mod_muzzle_001": 0,
"mod_pistol_grip": 0, "mod_pistol_grip": 0,
"mod_equipment_002": 10 "mod_equipment_002": 8
} }
}, },
"generation": { "generation": {

View File

@ -414,17 +414,17 @@
"5938504186f7740991483f30", "5938504186f7740991483f30",
"5d80c60f86f77440373c4ece", "5d80c60f86f77440373c4ece",
"5a351711c4a282000b1521a4", "5a351711c4a282000b1521a4",
"59136f6f86f774447a1ed173",
"5d80c88d86f77440556dbf07", "5d80c88d86f77440556dbf07",
"593858c486f774253a24cb52", "593858c486f774253a24cb52",
"59136f6f86f774447a1ed173",
"5ede7a8229445733cb4c18e2", "5ede7a8229445733cb4c18e2",
"593aa4be86f77457f56379f8", "593aa4be86f77457f56379f8",
"590c37d286f77443be3d7827", "590c37d286f77443be3d7827",
"62987da96188c076bc0d8c51", "62987da96188c076bc0d8c51",
"5a0060fc86f7745793204432", "5a0060fc86f7745793204432",
"5a0ea69f86f7741cd5406619", "5a0ea69f86f7741cd5406619",
"5d80c62a86f7744036212b3f",
"5a0dc95c86f77452440fc675", "5a0dc95c86f77452440fc675",
"5d80c62a86f7744036212b3f",
"5780cf7f2459777de4559322", "5780cf7f2459777de4559322",
"5ad5d49886f77455f9731921", "5ad5d49886f77455f9731921",
"5780cf692459777de4559321", "5780cf692459777de4559321",
@ -443,14 +443,14 @@
"5913611c86f77479e0084092", "5913611c86f77479e0084092",
"5780cf942459777df90dcb72", "5780cf942459777df90dcb72",
"5a13ee1986f774794d4c14cd", "5a13ee1986f774794d4c14cd",
"5a0ea64786f7741707720468",
"5c1e2a1e86f77431ea0ea84c", "5c1e2a1e86f77431ea0ea84c",
"5a0ea64786f7741707720468",
"5d80ccdd86f77474f7575e02", "5d80ccdd86f77474f7575e02",
"5a0eed4386f77405112912aa", "5a0eed4386f77405112912aa",
"5a13f35286f77413ef1436b0",
"5a0f0f5886f7741c4e32a472", "5a0f0f5886f7741c4e32a472",
"61a64492ba05ef10d62adcc1", "5a13f35286f77413ef1436b0",
"5a0ee4b586f7743698200d22", "5a0ee4b586f7743698200d22",
"61a64492ba05ef10d62adcc1",
"5d80c8f586f77440373c4ed0", "5d80c8f586f77440373c4ed0",
"590c651286f7741e566b6461", "590c651286f7741e566b6461",
"5d9f1fa686f774726974a992", "5d9f1fa686f774726974a992",
@ -523,8 +523,8 @@
"5c1e2d1f86f77431e9280bee", "5c1e2d1f86f77431e9280bee",
"62987cb98081af308d7558c8", "62987cb98081af308d7558c8",
"5d95d6be86f77424444eb3a7", "5d95d6be86f77424444eb3a7",
"63a39fdf1e21260da44a0256",
"63a71ed21031ac76fe773c7f", "63a71ed21031ac76fe773c7f",
"63a39fdf1e21260da44a0256",
"63a39df18a56922e82001f25", "63a39df18a56922e82001f25",
"5a0eecf686f7740350630097", "5a0eecf686f7740350630097",
"5a0ee34586f774023b6ee092", "5a0ee34586f774023b6ee092",
@ -565,7 +565,12 @@
"62a9cb937377a65d7b070cef", "62a9cb937377a65d7b070cef",
"5a0f068686f7745b0d4ea242", "5a0f068686f7745b0d4ea242",
"62a0a16d0b9d3c46de5b6e97", "62a0a16d0b9d3c46de5b6e97",
"5780d07a2459777de4559324" "5780d07a2459777de4559324",
"5a145d7b86f7744cbb6f4a13",
"5913651986f774432f15d132",
"59148f8286f7741b951ea113",
"5ed515ece452db0eb56fc028",
"5c0e531286f7747fa54205c2"
], ],
"Backpack": [], "Backpack": [],
"SecuredContainer": [ "SecuredContainer": [
@ -2586,7 +2591,7 @@
"equipment": { "equipment": {
"Headwear": 24, "Headwear": 24,
"Earpiece": 0, "Earpiece": 0,
"FaceCover": 14, "FaceCover": 15,
"ArmorVest": 0, "ArmorVest": 0,
"Eyewear": 0, "Eyewear": 0,
"ArmBand": 0, "ArmBand": 0,
@ -2611,13 +2616,13 @@
"mod_stock": 100, "mod_stock": 100,
"mod_charge": 0, "mod_charge": 0,
"mod_reciever": 100, "mod_reciever": 100,
"mod_mount_000": 21, "mod_mount_000": 20,
"mod_tactical": 0, "mod_tactical": 0,
"mod_sight_rear": 48, "mod_sight_rear": 47,
"mod_sight_front": 32, "mod_sight_front": 32,
"mod_mount_001": 74, "mod_mount_001": 71,
"mod_mount_002": 100, "mod_mount_002": 100,
"mod_foregrip": 21 "mod_foregrip": 20
} }
}, },
"generation": { "generation": {

View File

@ -632,11 +632,11 @@
"mod_muzzle": [ "mod_muzzle": [
"5a0d63621526d8dba31fe3bf" "5a0d63621526d8dba31fe3bf"
], ],
"mod_magazine": [
"59d625f086f774661516605d"
],
"mod_mount_000": [ "mod_mount_000": [
"5a7c74b3e899ef0014332c29" "5a7c74b3e899ef0014332c29"
],
"mod_magazine": [
"59d625f086f774661516605d"
] ]
}, },
"628b9c37a733087d0d7fe84b": { "628b9c37a733087d0d7fe84b": {
@ -982,19 +982,7 @@
"57347ca924597744596b4e71", "57347ca924597744596b4e71",
"5d1b2ffd86f77425243e8d17", "5d1b2ffd86f77425243e8d17",
"590a386e86f77429692b27ab", "590a386e86f77429692b27ab",
"5672cb124bdc2d1a0f8b4568",
"59e36c6f86f774176c10a2a7",
"63a39fdf1e21260da44a0256",
"5938504186f7740991483f30",
"5e2af4d286f7746d4159f07a", "5e2af4d286f7746d4159f07a",
"5d6fc78386f77449d825f9dc",
"59e35de086f7741778269d84",
"63a39cb1c9b3aa4b61683ee2",
"5d1b313086f77425227d1678",
"57347c2e24597744902c94a1",
"5938994586f774523a425196",
"5d1b3f2d86f774253763b735",
"590a3d9c86f774385926e510",
"619cbf476b8a1b37a54eebf8", "619cbf476b8a1b37a54eebf8",
"590c35a486f774273531c822", "590c35a486f774273531c822",
"5672cb304bdc2dc2088b456a", "5672cb304bdc2dc2088b456a",
@ -1010,16 +998,28 @@
"5734758f24597738025ee253", "5734758f24597738025ee253",
"590c5a7286f7747884343aea", "590c5a7286f7747884343aea",
"5d0377ce86f774186372f689", "5d0377ce86f774186372f689",
"5d1b313086f77425227d1678",
"57347c2e24597744902c94a1",
"5c10c8fd86f7743d7d706df3", "5c10c8fd86f7743d7d706df3",
"56742c324bdc2d150f8b456d", "5672cb124bdc2d1a0f8b4568",
"5c06779c86f77426e00dd782", "59e36c6f86f774176c10a2a7",
"5734779624597737e04bf329", "63a39fdf1e21260da44a0256",
"590c5c9f86f77477c91c36e7", "5938504186f7740991483f30",
"5d6fc78386f77449d825f9dc",
"59e35de086f7741778269d84",
"63a39cb1c9b3aa4b61683ee2",
"5938994586f774523a425196",
"5d1b3f2d86f774253763b735",
"590a3d9c86f774385926e510",
"577e1c9d2459773cd707c525", "577e1c9d2459773cd707c525",
"5c13cef886f774072e618e82", "5c13cef886f774072e618e82",
"5c06782b86f77426df5407d2", "5c06782b86f77426df5407d2",
"590a3efd86f77437d351a25b", "590a3efd86f77437d351a25b",
"56742c324bdc2d150f8b456d",
"59148f8286f7741b951ea113", "59148f8286f7741b951ea113",
"5c06779c86f77426e00dd782",
"5734779624597737e04bf329",
"590c5c9f86f77477c91c36e7",
"590a373286f774287540368b", "590a373286f774287540368b",
"60391b0fb847c71012789415", "60391b0fb847c71012789415",
"57a349b2245977762b199ec7", "57a349b2245977762b199ec7",
@ -1028,19 +1028,21 @@
"56742c284bdc2d98058b456d", "56742c284bdc2d98058b456d",
"59e35cbb86f7741778269d83", "59e35cbb86f7741778269d83",
"5780cda02459777b272ede61", "5780cda02459777b272ede61",
"5e2af02c86f7746d420957d4",
"5d03775b86f774203e7e0c4b",
"590a391c86f774385a33c404", "590a391c86f774385a33c404",
"5734770f24597738025ee254",
"62987c658081af308d7558c6",
"5e2af41e86f774755a234b67", "5e2af41e86f774755a234b67",
"5780d0652459777df90dcb74", "5780d0652459777df90dcb74",
"5e2af02c86f7746d420957d4",
"5d03775b86f774203e7e0c4b",
"5734770f24597738025ee254",
"62987c658081af308d7558c6",
"59e361e886f774176c10a2a5", "59e361e886f774176c10a2a5",
"590de71386f774347051a052", "590de71386f774347051a052",
"591383f186f7744a4c5edcf3", "591383f186f7744a4c5edcf3",
"5a0ea69f86f7741cd5406619", "5a0ea69f86f7741cd5406619",
"590c346786f77423e50ed342", "590c346786f77423e50ed342",
"5914578086f774123569ffa4", "5914578086f774123569ffa4",
"5e2af51086f7746d3f3c3402",
"59e366c186f7741778269d85",
"5d0375ff86f774186372f685", "5d0375ff86f774186372f685",
"5d1b304286f774253763a528", "5d1b304286f774253763a528",
"62987e26a77ec735f90a2995", "62987e26a77ec735f90a2995",
@ -1049,8 +1051,6 @@
"5780cfa52459777dfb276eb1", "5780cfa52459777dfb276eb1",
"5d03794386f77420415576f5", "5d03794386f77420415576f5",
"6389c70ca33d8c4cdf4932c6", "6389c70ca33d8c4cdf4932c6",
"5e2af51086f7746d3f3c3402",
"59e366c186f7741778269d85",
"5bc9bc53d4351e00367fbcee", "5bc9bc53d4351e00367fbcee",
"5c05308086f7746b2101e90b", "5c05308086f7746b2101e90b",
"5d1b3a5d86f774252167ba22", "5d1b3a5d86f774252167ba22",
@ -1058,41 +1058,41 @@
"5c13cd2486f774072c757944", "5c13cd2486f774072c757944",
"5d0378d486f77420421a5ff4", "5d0378d486f77420421a5ff4",
"59e3596386f774176c10a2a2", "59e3596386f774176c10a2a2",
"5d40412b86f7743cb332ac3a",
"5d1b2fa286f77425227d1674",
"59136e1e86f774432f15d133",
"5d6fc87386f77449db3db94e", "5d6fc87386f77449db3db94e",
"59faff1d86f7746c51718c9c", "59faff1d86f7746c51718c9c",
"62a9cb937377a65d7b070cef", "62a9cb937377a65d7b070cef",
"5bc9b355d4351e6d1509862a", "5bc9b355d4351e6d1509862a",
"5733279d245977289b77ec24", "5733279d245977289b77ec24",
"5d40412b86f7743cb332ac3a",
"5d1b2fa286f77425227d1674",
"59136e1e86f774432f15d133",
"5d235b4d86f7742e017bc88a", "5d235b4d86f7742e017bc88a",
"591382d986f774465a6413a7",
"5ad5d49886f77455f9731921",
"5d1b2f3f86f774252167a52c", "5d1b2f3f86f774252167a52c",
"5780d0532459777a5108b9a2", "5780d0532459777a5108b9a2",
"61a64492ba05ef10d62adcc1", "61a64492ba05ef10d62adcc1",
"5a0eee1486f77402aa773226", "591382d986f774465a6413a7",
"5ad5d49886f77455f9731921",
"59e3606886f77417674759a5", "59e3606886f77417674759a5",
"61bf7b6302b3924be92fa8c3", "61bf7b6302b3924be92fa8c3",
"63a39f18c2d53c2c6839c1d3", "63a39f18c2d53c2c6839c1d3",
"5d1b32c186f774252167a530", "5d1b32c186f774252167a530",
"5a0eee1486f77402aa773226",
"5e54f62086f774219b0f1937",
"59e3658a86f7741776641ac4",
"62a0a043cf4a99369e2624a5", "62a0a043cf4a99369e2624a5",
"62a09ee4cf4a99369e262453", "62a09ee4cf4a99369e262453",
"5ad5d20586f77449be26d877", "5ad5d20586f77449be26d877",
"5938603e86f77435642354f4", "5938603e86f77435642354f4",
"5e54f62086f774219b0f1937",
"59e3658a86f7741776641ac4",
"5e2aef7986f7746d3f3c33f5", "5e2aef7986f7746d3f3c33f5",
"59faf98186f774067b6be103", "59faf98186f774067b6be103",
"593858c486f774253a24cb52", "593858c486f774253a24cb52",
"62a09e73af34e73a266d932a", "62a09e73af34e73a266d932a",
"590c2c9c86f774245b1f03f2", "590c2c9c86f774245b1f03f2",
"63a0b208f444d32d6f03ea1e",
"573474f924597738002c6174", "573474f924597738002c6174",
"63a0b208f444d32d6f03ea1e",
"5b4335ba86f7744d2837a264", "5b4335ba86f7744d2837a264",
"5d0376a486f7747d8050965c",
"59e3647686f774176a362507", "59e3647686f774176a362507",
"5d0376a486f7747d8050965c",
"5ed515e03a40a50460332579", "5ed515e03a40a50460332579",
"62a08f4c4f842e1bd12d9d62", "62a08f4c4f842e1bd12d9d62",
"5e54f6af86f7742199090bf3", "5e54f6af86f7742199090bf3",
@ -1113,8 +1113,8 @@
"5d1b317c86f7742523398392", "5d1b317c86f7742523398392",
"5913611c86f77479e0084092", "5913611c86f77479e0084092",
"5a13ee1986f774794d4c14cd", "5a13ee1986f774794d4c14cd",
"60391afc25aff57af81f7085",
"5d4041f086f7743cac3f22a7", "5d4041f086f7743cac3f22a7",
"60391afc25aff57af81f7085",
"590c595c86f7747884343ad7", "590c595c86f7747884343ad7",
"62a0a0bb621468534a797ad5", "62a0a0bb621468534a797ad5",
"5a0ee34586f774023b6ee092", "5a0ee34586f774023b6ee092",
@ -1140,9 +1140,9 @@
"62987dfc402c7f69bf010923", "62987dfc402c7f69bf010923",
"5d63d33b86f7746ea9275524", "5d63d33b86f7746ea9275524",
"5c1d0efb86f7744baf2e7b7b", "5c1d0efb86f7744baf2e7b7b",
"5d40425986f7743185265461",
"56742c2e4bdc2d95058b456d", "56742c2e4bdc2d95058b456d",
"62a091170b9d3c46de5b6cf2", "62a091170b9d3c46de5b6cf2",
"5d40425986f7743185265461",
"61a6444b8c141d68246e2d2f", "61a6444b8c141d68246e2d2f",
"5c1d0d6d86f7744bb2683e1f", "5c1d0d6d86f7744bb2683e1f",
"5c0e530286f7747fa1419862", "5c0e530286f7747fa1419862",
@ -1155,10 +1155,10 @@
"5c0e533786f7747fa23f4d47", "5c0e533786f7747fa23f4d47",
"5a0dc95c86f77452440fc675", "5a0dc95c86f77452440fc675",
"5a144dfd86f77445cb5a0982", "5a144dfd86f77445cb5a0982",
"5e2af29386f7746d4159f077",
"5af04b6486f774195a3ebb49", "5af04b6486f774195a3ebb49",
"5da5cdcd86f774529238fb9b", "5da5cdcd86f774529238fb9b",
"5ed515c8d380ab312177c0fa", "5ed515c8d380ab312177c0fa",
"5e2af29386f7746d4159f077",
"590c2e1186f77425357b6124", "590c2e1186f77425357b6124",
"590c645c86f77412b01304d9", "590c645c86f77412b01304d9",
"590c2d8786f774245b1f03f3", "590c2d8786f774245b1f03f3",
@ -1192,8 +1192,8 @@
"5448ba0b4bdc2d02308b456c", "5448ba0b4bdc2d02308b456c",
"62a0a098de7ac8199358053b", "62a0a098de7ac8199358053b",
"5c052f6886f7746b1e3db148", "5c052f6886f7746b1e3db148",
"5a0ee76686f7743698200d5c",
"5c1e2d1f86f77431e9280bee", "5c1e2d1f86f77431e9280bee",
"5a0ee76686f7743698200d5c",
"5c1d0c5f86f7744bb2683cf0", "5c1d0c5f86f7744bb2683cf0",
"5e2af37686f774755a234b65", "5e2af37686f774755a234b65",
"5d9f1fa686f774726974a992", "5d9f1fa686f774726974a992",
@ -1264,7 +1264,14 @@
"63a39f6e64283b5e9c56b289", "63a39f6e64283b5e9c56b289",
"59136f6f86f774447a1ed173", "59136f6f86f774447a1ed173",
"63a397d3af870e651d58e65b", "63a397d3af870e651d58e65b",
"5a13f46386f7741dd7384b04" "5a13f46386f7741dd7384b04",
"5a13f24186f77410e57c5626",
"5a0eb38b86f774153b320eb0",
"5a1452ee86f7746f33111763",
"5a0ee72c86f77436955d3435",
"5d8e0e0e86f774321140eb56",
"62987cb98081af308d7558c8",
"5c1e495a86f7743109743dfb"
], ],
"SecuredContainer": [ "SecuredContainer": [
"5c925fa22e221601da359b7b", "5c925fa22e221601da359b7b",
@ -1277,10 +1284,10 @@
"5e81f423763d9f754677bf2e", "5e81f423763d9f754677bf2e",
"56dff026d2720bb8668b4567", "56dff026d2720bb8668b4567",
"56dff3afd2720bba668b4567", "56dff3afd2720bba668b4567",
"5a3c16fe86f77452b62de32a",
"56dff061d2720bb5668b4567", "56dff061d2720bb5668b4567",
"5c0d5e4486f77478390952fe", "5a3c16fe86f77452b62de32a",
"5efb0da7a29a85116f6ea05f", "5efb0da7a29a85116f6ea05f",
"5c0d5e4486f77478390952fe",
"5efb0e16aeb21837e749c7ff", "5efb0e16aeb21837e749c7ff",
"56d59d3ad2720bdb418b4577", "56d59d3ad2720bdb418b4577",
"57a0dfb82459774d3078b56c", "57a0dfb82459774d3078b56c",
@ -3320,14 +3327,14 @@
"mod_muzzle": 100, "mod_muzzle": 100,
"mod_reciever": 100, "mod_reciever": 100,
"mod_sight_rear": 64, "mod_sight_rear": 64,
"mod_scope": 11, "mod_scope": 10,
"mod_mount_000": 31, "mod_mount_000": 31,
"mod_mount_002": 24, "mod_mount_002": 24,
"mod_mount": 10, "mod_mount": 10,
"mod_sight_front": 50, "mod_sight_front": 49,
"mod_mount_001": 46, "mod_mount_001": 47,
"mod_tactical": 5, "mod_tactical": 5,
"mod_foregrip": 14, "mod_foregrip": 13,
"mod_mount_003": 0, "mod_mount_003": 0,
"mod_tactical_000": 9, "mod_tactical_000": 9,
"mod_stock_000": 100, "mod_stock_000": 100,

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -114,6 +114,7 @@
"modloader-missing_package_json": "В моде (%s) отсутствует package.json", "modloader-missing_package_json": "В моде (%s) отсутствует package.json",
"modloader-missing_package_json_property": "В моде {{modName}} файл package.json требует следующее свойство: {{prop}} ", "modloader-missing_package_json_property": "В моде {{modName}} файл package.json требует следующее свойство: {{prop}} ",
"modloader-mod_incompatible": "Загрузчик модов: Мод (%s) несовместим, он должен наследовать как минимум один из интерфейсов: IPostAkiLoadMod, IPostDBLoadMod, IPreAkiLoadMod", "modloader-mod_incompatible": "Загрузчик модов: Мод (%s) несовместим, он должен наследовать как минимум один из интерфейсов: IPostAkiLoadMod, IPostDBLoadMod, IPreAkiLoadMod",
"modloader-async_mod_error": "Загрузчик модов: Ошибка при загрузке асинхронного мода: %s",
"modloader-no_mods_loaded": "Были обнаружены ошибки в модах, МОДЫ НЕ БУДУТ ЗАГРУЖЕНЫ", "modloader-no_mods_loaded": "Были обнаружены ошибки в модах, МОДЫ НЕ БУДУТ ЗАГРУЖЕНЫ",
"modloader-outdated_akiversion_field": "Мод %s не совместим с текущей версией AKI. Возможны проблемы - поддержки не будет!", "modloader-outdated_akiversion_field": "Мод %s не совместим с текущей версией AKI. Возможны проблемы - поддержки не будет!",
"modloader-outdated_dependency": "Мод {{mod}} требует {{modDependency}} версии {{requiredVersion}}. Текущая установленная версия - {{currentVersion}}", "modloader-outdated_dependency": "Мод {{mod}} требует {{modDependency}} версии {{requiredVersion}}. Текущая установленная версия - {{currentVersion}}",
@ -134,6 +135,7 @@
"quest-compare_operator_unhandled": "loyaltyRequirementCheck() оператор %s не обрабатывается, возврат к значению false по умолчанию", "quest-compare_operator_unhandled": "loyaltyRequirementCheck() оператор %s не обрабатывается, возврат к значению false по умолчанию",
"quest-item_not_found_in_inventory": "changeItemStack() Предмет с _id: %s не найден в инвентаре", "quest-item_not_found_in_inventory": "changeItemStack() Предмет с _id: %s не найден в инвентаре",
"quest-no_skill_found": "Навык %s не найден", "quest-no_skill_found": "Навык %s не найден",
"quest-handover_wrong_item": "Невозможно сдать предмет для задания {{questId}}, ожидаемый tpl: {{requiredTpl}}, но передан: {{handedInTpl}}",
"quest-reward_type_not_handled": "Тип награды за квест: {{rewardType}} не обработан для квеста: {{questId}} название: {{questName}}", "quest-reward_type_not_handled": "Тип награды за квест: {{rewardType}} не обработан для квеста: {{questId}} название: {{questName}}",
"ragfair-invalid_player_offer_request": "Невозможно разместить предложение, запрос недействителен", "ragfair-invalid_player_offer_request": "Невозможно разместить предложение, запрос недействителен",
"ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Не получилось найти barterScheme для предмета с id: {{itemId}} tpl: {{tpl}} на {{name}}", "ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Не получилось найти barterScheme для предмета с id: {{itemId}} tpl: {{tpl}} на {{name}}",

View File

@ -121,11 +121,17 @@ export class InraidController
pmcData = this.inRaidHelper.setInventory(sessionID, pmcData, offraidData.profile); pmcData = this.inRaidHelper.setInventory(sessionID, pmcData, offraidData.profile);
this.healthHelper.saveVitality(pmcData, offraidData.health, sessionID); this.healthHelper.saveVitality(pmcData, offraidData.health, sessionID);
// remove inventory if player died and send insurance items // Remove inventory if player died and send insurance items
// TODO: dump of prapor/therapist dialogues that are sent when you die in lab with insurance.
if (insuranceEnabled) if (insuranceEnabled)
{ {
this.insuranceService.storeLostGear(pmcData, offraidData, preRaidGear, sessionID); this.insuranceService.storeLostGear(pmcData, offraidData, preRaidGear, sessionID, isDead);
}
else
{
if (locationName === "Laboratory")
{
// TODO: dump of prapor/therapist dialogues that are sent when you die in lab with insured items
}
} }
if (isDead) if (isDead)
@ -164,8 +170,8 @@ export class InraidController
{ {
for (const questItem of postRaidSaveRequest.profile.Stats.CarriedQuestItems) for (const questItem of postRaidSaveRequest.profile.Stats.CarriedQuestItems)
{ {
const findItemConditionId = this.questHelper.getFindItemIdForQuestHandIn(questItem); const findItemConditionIds = this.questHelper.getFindItemIdForQuestHandIn(questItem);
this.profileHelper.resetProfileQuestCondition(sessionID, findItemConditionId); this.profileHelper.resetProfileQuestCondition(sessionID, findItemConditionIds);
} }
pmcData.Stats.CarriedQuestItems = []; pmcData.Stats.CarriedQuestItems = [];

View File

@ -100,7 +100,7 @@ export class InventoryController
return this.httpResponseUtil.appendErrorToOutput(output, this.localisationService.getText("inventory-edit_trader_item"), 228); return this.httpResponseUtil.appendErrorToOutput(output, this.localisationService.getText("inventory-edit_trader_item"), 228);
} }
this.inventoryHelper.moveItemInternal(items.from, moveRequest); this.inventoryHelper.moveItemInternal(pmcData, items.from, moveRequest);
} }
else else
{ {
@ -436,17 +436,25 @@ export class InventoryController
}; };
} }
public bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse /**
* Bind an inventory item to the quick access menu at bottom of player screen
* @param pmcData Player profile
* @param bindRequest Reqeust object
* @param sessionID Session id
* @returns IItemEventRouterResponse
*/
public bindItem(pmcData: IPmcData, bindRequest: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse
{ {
for (const index in pmcData.Inventory.fastPanel) for (const index in pmcData.Inventory.fastPanel)
{ {
if (pmcData.Inventory.fastPanel[index] === body.item) if (pmcData.Inventory.fastPanel[index] === bindRequest.item)
{ {
pmcData.Inventory.fastPanel[index] = ""; pmcData.Inventory.fastPanel[index] = "";
} }
} }
pmcData.Inventory.fastPanel[body.index] = body.item; pmcData.Inventory.fastPanel[bindRequest.index] = bindRequest.item;
return this.eventOutputHolder.getOutput(sessionID); return this.eventOutputHolder.getOutput(sessionID);
} }

View File

@ -192,6 +192,11 @@ export class BotGenerator
// Simulate bot looking like a Player scav with the pmc name in brackets // Simulate bot looking like a Player scav with the pmc name in brackets
if (botRole === "assault" && this.randomUtil.getChance100(this.botConfig.chanceAssaultScavHasPlayerScavName)) if (botRole === "assault" && this.randomUtil.getChance100(this.botConfig.chanceAssaultScavHasPlayerScavName))
{ {
if (isPlayerScav)
{
return name;
}
const pmcNames = [...this.databaseServer.getTables().bots.types["usec"].firstName, ...this.databaseServer.getTables().bots.types["bear"].firstName]; const pmcNames = [...this.databaseServer.getTables().bots.types["usec"].firstName, ...this.databaseServer.getTables().bots.types["bear"].firstName];
return `${name} (${this.randomUtil.getArrayValue(pmcNames)})`; return `${name} (${this.randomUtil.getArrayValue(pmcNames)})`;

View File

@ -460,41 +460,40 @@ export class BotWeaponGenerator
/** /**
* Fill existing magazines to full, while replacing their contents with specified ammo * Fill existing magazines to full, while replacing their contents with specified ammo
* @param weaponMods * @param weaponMods Weapon with children
* @param magazine * @param magazine Magazine item
* @param ammoTpl * @param cartridgeTpl Cartridge to insert into magazine
*/ */
protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void protected fillExistingMagazines(weaponMods: Item[], magazine: Item, cartridgeTpl: string): void
{ {
const modTemplate = this.itemHelper.getItem(magazine._tpl)[1]; const magazineTemplate = this.itemHelper.getItem(magazine._tpl)[1];
if (!modTemplate) if (!magazineTemplate)
{ {
this.logger.error(this.localisationService.getText("bot-unable_to_find_magazine_item", magazine._tpl)); this.logger.error(this.localisationService.getText("bot-unable_to_find_magazine_item", magazine._tpl));
return; return;
} }
const parentItem = this.itemHelper.getItem(modTemplate._parent)[1]; const parentItem = this.itemHelper.getItem(magazineTemplate._parent)[1];
const fullStackSize = modTemplate._props.Cartridges[0]._max_count;
// the revolver shotgun uses a magazine with chambers, not cartridges ("camora_xxx") // the revolver shotgun uses a magazine with chambers, not cartridges ("camora_xxx")
// Exchange of the camora ammo is not necessary we could also just check for stackSize > 0 here // Exchange of the camora ammo is not necessary we could also just check for stackSize > 0 here
// and remove the else // and remove the else
if (this.botWeaponGeneratorHelper.magazineIsCylinderRelated(parentItem._name)) if (this.botWeaponGeneratorHelper.magazineIsCylinderRelated(parentItem._name))
{ {
this.fillCamorasWithAmmo(weaponMods, magazine._id, ammoTpl); this.fillCamorasWithAmmo(weaponMods, magazine._id, cartridgeTpl);
} }
else else
{ {
this.addOrUpdateMagazinesChildWithAmmo(weaponMods, magazine, ammoTpl, fullStackSize); this.addOrUpdateMagazinesChildWithAmmo(weaponMods, magazine, cartridgeTpl, magazineTemplate);
} }
} }
/** /**
* Add desired ammo tpl as item to weaponmods array, placed as child to UBGL * Add desired ammo tpl as item to weaponmods array, placed as child to UBGL
* @param weaponMods * @param weaponMods Weapon with children
* @param ubglMod * @param ubglMod UBGL item
* @param ubglAmmoTpl * @param ubglAmmoTpl Grenade ammo tpl
*/ */
protected fillUbgl(weaponMods: Item[], ubglMod: Item, ubglAmmoTpl: string): void protected fillUbgl(weaponMods: Item[], ubglMod: Item, ubglAmmoTpl: string): void
{ {
@ -510,30 +509,29 @@ export class BotWeaponGenerator
/** /**
* Add cartridge item to weapon Item array, if it already exists, update * Add cartridge item to weapon Item array, if it already exists, update
* @param weaponMods Weapon items array to amend * @param weaponWithMods Weapon items array to amend
* @param magazine magazine item details we're adding cartridges to * @param magazine magazine item details we're adding cartridges to
* @param chosenAmmo cartridge to put into the magazine * @param chosenAmmoTpl cartridge to put into the magazine
* @param newStackSize how many cartridges should go into the magazine * @param newStackSize how many cartridges should go into the magazine
* @param magazineTemplate magazines db template
*/ */
protected addOrUpdateMagazinesChildWithAmmo(weaponMods: Item[], magazine: Item, chosenAmmo: string, newStackSize: number): void protected addOrUpdateMagazinesChildWithAmmo(weaponWithMods: Item[], magazine: Item, chosenAmmoTpl: string, magazineTemplate: ITemplateItem): void
{ {
const magazineCartridgeChildItem = weaponMods.find(m => m.parentId === magazine._id && m.slotId === "cartridges"); const magazineCartridgeChildItem = weaponWithMods.find(m => m.parentId === magazine._id && m.slotId === "cartridges");
if (!magazineCartridgeChildItem) // magazine doesn't have a child item with the ammo inside it, create one if (magazineCartridgeChildItem)
{ {
weaponMods.push({ // Easier to delete and create below instaed of modifying existing item
_id: this.hashUtil.generate(), weaponWithMods = weaponWithMods.slice(weaponWithMods.indexOf(magazineCartridgeChildItem), 1);
_tpl: chosenAmmo,
parentId: magazine._id,
slotId: "cartridges",
upd:
{ StackObjectsCount: newStackSize }
});
}
else // magazine has cartridge stack, amend details
{
magazineCartridgeChildItem._tpl = chosenAmmo;
magazineCartridgeChildItem.upd = { "StackObjectsCount": newStackSize };
} }
// Create array with just magazine
const magazineWithCartridges = [magazine];
// Add full cartridge child items to above array
this.itemHelper.fillMagazineWithCartridge(magazineWithCartridges, magazineTemplate, chosenAmmoTpl, 1);
// Replace existing magazine with above array of mag + cartridge stacks
weaponWithMods.splice(weaponWithMods.indexOf(magazine), 1, ...magazineWithCartridges);
} }
/** /**

View File

@ -54,6 +54,15 @@ export class LocationGenerator
this.locationConfig = this.configServer.getConfig(ConfigTypes.LOCATION); this.locationConfig = this.configServer.getConfig(ConfigTypes.LOCATION);
} }
/**
* Choose loot to put into a static container
* @param containerIn
* @param staticForced
* @param staticLootDist
* @param staticAmmoDist
* @param locationName Name of the map to generate static loot for
* @returns IStaticContainerProps
*/
public generateContainerLoot( public generateContainerLoot(
containerIn: IStaticContainerProps, containerIn: IStaticContainerProps,
staticForced: IStaticForcedProps[], staticForced: IStaticForcedProps[],
@ -102,6 +111,7 @@ export class LocationGenerator
// Draw random loot // Draw random loot
// money spawn more than once in container // money spawn more than once in container
let failedToFitCount = 0;
const locklist = [Money.ROUBLES, Money.DOLLARS, Money.EUROS]; const locklist = [Money.ROUBLES, Money.DOLLARS, Money.EUROS];
const tplsDraw = itemDistribution.draw(numberItems, false, locklist); const tplsDraw = itemDistribution.draw(numberItems, false, locklist);
const tpls = tplsForced.concat(tplsDraw); const tpls = tplsForced.concat(tplsDraw);
@ -112,10 +122,20 @@ export class LocationGenerator
const width = created.width; const width = created.width;
const height = created.height; const height = created.height;
// look for open slot to put chosen item into
const result = this.containerHelper.findSlotForItem(container2D, width, height); const result = this.containerHelper.findSlotForItem(container2D, width, height);
if (!result.success) if (!result.success)
{ {
break; // 2 attempts to fit an item, container is probably full, stop trying to add more
if (failedToFitCount >= this.locationConfig.fitLootIntoContainerAttempts)
{
break;
}
// Can't fit item, skip
failedToFitCount++;
continue;
} }
container2D = this.containerHelper.fillContainerMapWithItem(container2D, result.x, result.y, width, height, result.rotation); container2D = this.containerHelper.fillContainerMapWithItem(container2D, result.x, result.y, width, height, result.rotation);
@ -130,6 +150,7 @@ export class LocationGenerator
container.Items.push(item); container.Items.push(item);
} }
} }
return container; return container;
} }
@ -455,23 +476,18 @@ export class LocationGenerator
// it can handle revolver ammo (it's not restructured to be used here yet.) // it can handle revolver ammo (it's not restructured to be used here yet.)
// General: Make a WeaponController for Ragfair preset stuff and the generating weapons and ammo stuff from // General: Make a WeaponController for Ragfair preset stuff and the generating weapons and ammo stuff from
// BotGenerator // BotGenerator
const mag = items.filter(x => x.slotId === "mod_magazine")[0]; const magazine = items.filter(x => x.slotId === "mod_magazine")[0];
// some weapon presets come without magazine; only fill the mag if it exists // some weapon presets come without magazine; only fill the mag if it exists
if (mag) if (magazine)
{ {
const weapTemplate = this.itemHelper.getItem(rootItem._tpl)[1]; const magTemplate = this.itemHelper.getItem(magazine._tpl)[1];
// we can't use weaponTemplate's "_props.ammoCaliber" directly since there's a weapon ("weapon_zmz_pp-9_9x18pmm")
// with non-existing ammoCaliber: Caliber9x18PMM -> We get the Caliber from the weapons' default ammo // Create array with just magazine
const defAmmoTemplate = this.itemHelper.getItem(weapTemplate._props.defAmmo)[1]; const magazineWithCartridges = [magazine];
const magTemplate = this.itemHelper.getItem(mag._tpl)[1]; this.itemHelper.fillMagazineWithRandomCartridge(magazineWithCartridges, magTemplate, staticAmmoDist);
items.push(
this.itemHelper.createRandomMagCartridges( // Replace existing magazine with above array
magTemplate, items.splice(items.indexOf(magazine), 1, ...magazineWithCartridges);
mag._id,
staticAmmoDist,
defAmmoTemplate._props.Caliber
)
);
} }
const size = this.itemHelper.getItemSize(items, rootItem._id); const size = this.itemHelper.getItemSize(items, rootItem._id);
@ -485,7 +501,12 @@ export class LocationGenerator
} }
else if (this.itemHelper.isOfBaseclass(tpl, BaseClasses.MAGAZINE)) else if (this.itemHelper.isOfBaseclass(tpl, BaseClasses.MAGAZINE))
{ {
items.push(this.itemHelper.createRandomMagCartridges(itemTemplate, items[0]._id, staticAmmoDist)); // Create array with just magazine
const magazineWithCartridges = [items[0]];
this.itemHelper.fillMagazineWithRandomCartridge(magazineWithCartridges, itemTemplate, staticAmmoDist);
// Replace existing magazine with above array
items.splice(items.indexOf(items[0]), 1, ...magazineWithCartridges);
} }
return { return {

View File

@ -323,12 +323,9 @@ export class InRaidHelper
public deleteInventory(pmcData: IPmcData, sessionID: string): void public deleteInventory(pmcData: IPmcData, sessionID: string): void
{ {
const toDelete = []; const toDelete = [];
const itemsInPocketsRigBackpack = this.getBaseItemsInRigPocketAndBackpack(pmcData);
const lootItemIds = itemsInPocketsRigBackpack.map(x => x._id);
for (const item of pmcData.Inventory.items) for (const item of pmcData.Inventory.items)
{ {
if (this.isItemKeptAfterDeath(pmcData, item, lootItemIds)) if (this.isItemKeptAfterDeath(pmcData, item))
{ {
continue; continue;
} }
@ -340,20 +337,9 @@ export class InRaidHelper
toDelete.push(item._id); toDelete.push(item._id);
} }
// Remove items in pockets if (item.slotId.startsWith("pocket"))
if (item.slotId === "Pockets")
{ {
for (const itemInPocket of pmcData.Inventory.items.filter(x => x.parentId === item._id)) toDelete.push(item._id);
{
// Don't delete items in special slots
// Can be special slot 1, 2 or 3
if (itemInPocket.slotId.includes("SpecialSlot"))
{
continue;
}
toDelete.push(itemInPocket._id);
}
} }
} }
@ -388,22 +374,27 @@ export class InRaidHelper
* Does the provided items slotId mean its kept on the player after death * Does the provided items slotId mean its kept on the player after death
* @pmcData Player profile * @pmcData Player profile
* @itemToCheck Item to check should be kept * @itemToCheck Item to check should be kept
* @lootItemTpls Array of item Ids that are inside player rig/backpack/pocket
* @returns true if item is kept after death * @returns true if item is kept after death
*/ */
protected isItemKeptAfterDeath(pmcData: IPmcData, itemToCheck: Item, lootItemIds: string[]): boolean protected isItemKeptAfterDeath(pmcData: IPmcData, itemToCheck: Item): boolean
{ {
// No parentid means its a base inventory item, always keep
if (!itemToCheck.parentId)
{
return true;
}
// Is item equipped on player // Is item equipped on player
if (itemToCheck.parentId === pmcData.Inventory.equipment) if (itemToCheck.parentId === pmcData.Inventory.equipment)
{ {
// Check slot id against config, true = delete, false = keep // Check slot id against config, true = delete, false = keep, undefined = delete
const keep = !this.lostOnDeathConfig.equipment[itemToCheck.slotId]; const discard = this.lostOnDeathConfig.equipment[itemToCheck.slotId];
if (keep === undefined) if (discard === undefined)
{ {
return false; return false;
} }
return keep; return !discard;
} }
// Is quest item + quest item not lost on death // Is quest item + quest item not lost on death
@ -412,8 +403,8 @@ export class InRaidHelper
return true; return true;
} }
// Is loot item + not lost on death // special slots are always kept after death
if (!this.lostOnDeathConfig.loot && lootItemIds.includes(itemToCheck._id)) if (itemToCheck.slotId?.includes("SpecialSlot") && this.lostOnDeathConfig.specialSlotItems)
{ {
return true; return true;
} }

View File

@ -849,31 +849,34 @@ export class InventoryHelper
/** /**
* Internal helper function to move item within the same profile_f. * Internal helper function to move item within the same profile_f.
*/ */
public moveItemInternal(inventoryItems: Item[], body: IInventoryMoveRequestData): void public moveItemInternal(pmcData: IPmcData, inventoryItems: Item[], moveRequest: IInventoryMoveRequestData): void
{ {
this.handleCartridges(inventoryItems, body); this.handleCartridges(inventoryItems, moveRequest);
for (const inventoryItem of inventoryItems) for (const inventoryItem of inventoryItems)
{ {
// Find item we want to 'move' // Find item we want to 'move'
if (inventoryItem._id && inventoryItem._id === body.item) if (inventoryItem._id && inventoryItem._id === moveRequest.item)
{ {
this.logger.debug(`${body.Action} item: ${body.item} from slotid: ${inventoryItem.slotId} to container: ${body.to.container}`); this.logger.debug(`${moveRequest.Action} item: ${moveRequest.item} from slotid: ${inventoryItem.slotId} to container: ${moveRequest.to.container}`);
// don't move shells from camora to cartridges (happens when loading shells into mts-255 revolver shotgun) // don't move shells from camora to cartridges (happens when loading shells into mts-255 revolver shotgun)
if (inventoryItem.slotId.includes("camora_") && body.to.container === "cartridges") if (inventoryItem.slotId.includes("camora_") && moveRequest.to.container === "cartridges")
{ {
this.logger.warning(this.localisationService.getText("inventory-invalid_move_to_container", {slotId: inventoryItem.slotId, container: body.to.container})); this.logger.warning(this.localisationService.getText("inventory-invalid_move_to_container", {slotId: inventoryItem.slotId, container: moveRequest.to.container}));
return; return;
} }
// Edit items details to match its new location // Edit items details to match its new location
inventoryItem.parentId = body.to.id; inventoryItem.parentId = moveRequest.to.id;
inventoryItem.slotId = body.to.container; inventoryItem.slotId = moveRequest.to.container;
if ("location" in body.to) this.updateFastPanelBinding(pmcData, inventoryItem);
if ("location" in moveRequest.to)
{ {
inventoryItem.location = body.to.location; inventoryItem.location = moveRequest.to.location;
} }
else else
{ {
@ -887,6 +890,32 @@ export class InventoryHelper
} }
} }
/**
* Update fast panel bindings when an item is moved into a container that doesnt allow quick slot access
* @param pmcData Player profile
* @param itemBeingMoved item being moved
*/
protected updateFastPanelBinding(pmcData: IPmcData, itemBeingMoved: Item): void
{
// Find matching itemid in fast panel
for (const itemKey in pmcData.Inventory.fastPanel)
{
if (pmcData.Inventory.fastPanel[itemKey] === itemBeingMoved._id)
{
// Get moved items parent
const itemParent = pmcData.Inventory.items.find(x => x._id === itemBeingMoved.parentId);
// Empty out id if item is moved to a container other than pocket/rig
if (itemParent && !(itemParent.slotId?.startsWith("Pockets") || itemParent.slotId === "TacticalVest"))
{
pmcData.Inventory.fastPanel[itemKey] = "";
}
break;
}
}
}
/** /**
* Internal helper function to handle cartridges in inventory if any of them exist. * Internal helper function to handle cartridges in inventory if any of them exist.
*/ */

View File

@ -663,9 +663,9 @@ class ItemHelper
/** /**
* WARNING, SLOW. Recursively loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do * WARNING, SLOW. Recursively loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do
* @param {string} tpl * @param {string} tpl Items tpl to check parents of
* @param {Array} tplsToCheck * @param {Array} tplsToCheck Tpl values to check if parents of item match
* @returns boolean * @returns boolean Match found
*/ */
public doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean public doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean
{ {
@ -702,9 +702,9 @@ class ItemHelper
} }
/** /**
* Return true if item is a quest item * Check if item is quest item
* @param {string} tpl * @param tpl Items tpl to check quest status of
* @returns boolean * @returns true if item is flagged as quest item
*/ */
public isQuestItem(tpl: string): boolean public isQuestItem(tpl: string): boolean
{ {
@ -720,7 +720,7 @@ class ItemHelper
/** /**
* Get the inventory size of an item * Get the inventory size of an item
* @param items * @param items Item with children
* @param rootItemId * @param rootItemId
* @returns ItemSize object (width and height) * @returns ItemSize object (width and height)
*/ */
@ -770,8 +770,8 @@ class ItemHelper
/** /**
* Get a random cartridge from an items Filter property * Get a random cartridge from an items Filter property
* @param item * @param item Db item template to look up Cartridge filter values from
* @returns * @returns Caliber of cartridge
*/ */
public getRandomCompatibleCaliberTemplateId(item: ITemplateItem): string public getRandomCompatibleCaliberTemplateId(item: ITemplateItem): string
{ {
@ -816,22 +816,71 @@ class ItemHelper
} }
} }
public createRandomMagCartridges( /**
* Add child items (cartridges) to a magazine
* @param magazine Magazine to add child items to
* @param magTemplate Db template of magazine
* @param staticAmmoDist Cartridge distribution
* @param caliber Caliber of cartridge to add to magazine
* @param minSizePercent % the magazine must be filled to
*/
public fillMagazineWithRandomCartridge(
magazine: Item[],
magTemplate: ITemplateItem, magTemplate: ITemplateItem,
parentId: string, staticAmmoDist: Record<string, IStaticAmmoDetails[]>,
staticAmmoDist: Record<string, caliber: string = undefined,
IStaticAmmoDetails[]>, minSizePercent = 0.25
caliber: string = undefined ): void
): Item
{ {
// no caliber defined, choose one
if (!caliber) if (!caliber)
{ {
caliber = this.getRandomValidCaliber(magTemplate); caliber = this.getRandomValidCaliber(magTemplate);
} }
const ammoTpl = this.drawAmmoTpl(caliber, staticAmmoDist);
const maxCount = magTemplate._props.Cartridges[0]._max_count; // Chose a randomly weighted cartridge that fits
const stackCount = this.randomUtil.getInt(Math.round(0.25 * maxCount), maxCount); const cartridgeTpl = this.drawAmmoTpl(caliber, staticAmmoDist);
return this.createCartridges(parentId, ammoTpl, stackCount, 0); this.fillMagazineWithCartridge(magazine, magTemplate, cartridgeTpl, minSizePercent);
}
/**
* Add child items to a magazine of a specific cartridge
* @param magazine Magazine to add child items to
* @param magTemplate Db template of magazine
* @param cartridgeTpl Cartridge to add to magazine
* @param minSizePercent % the magazine must be filled to
*/
public fillMagazineWithCartridge(
magazine: Item[],
magTemplate: ITemplateItem,
cartridgeTpl: string,
minSizePercent = 0.25
): void
{
// Get cartrdge properties and max allowed stack size
const cartridgeDetails = this.getItem(cartridgeTpl);
const cartridgeMaxStackSize = cartridgeDetails[1]._props.StackMaxSize;
// Get max number of cartridges in magazine, choose random value between min/max
const magazineCartridgeMaxCount = magTemplate._props.Cartridges[0]._max_count;
const stackCount = this.randomUtil.getInt(Math.round(minSizePercent * magazineCartridgeMaxCount), magazineCartridgeMaxCount);
// Loop over cartridge count and add stacks to magazine
let currentStoredCartridgeCount = 0;
let location = 0;
while (currentStoredCartridgeCount < stackCount)
{
// Get stack size of cartridges
const cartridgeCountToAdd = (stackCount <= cartridgeMaxStackSize)
? stackCount
: cartridgeMaxStackSize;
// Add cartridge item object into items array
magazine.push(this.createCartridges(magazine[0]._id, cartridgeTpl, cartridgeCountToAdd, location));
currentStoredCartridgeCount += cartridgeCountToAdd;
location ++;
}
} }
protected getRandomValidCaliber(magTemplate: ITemplateItem): string protected getRandomValidCaliber(magTemplate: ITemplateItem): string

View File

@ -29,16 +29,32 @@ export class ProfileHelper
) )
{ } { }
public resetProfileQuestCondition(sessionID: string, conditionId: string): void /**
* Remove/reset started quest condtions in player profile
* @param sessionID Session id
* @param conditionIds Condition ids that need to be reset/removed
*/
public resetProfileQuestCondition(sessionID: string, conditionIds: string[]): void
{ {
// Get all quests in progress
const startedQuests = this.getPmcProfile(sessionID).Quests.filter(q => q.status === QuestStatus.Started); const startedQuests = this.getPmcProfile(sessionID).Quests.filter(q => q.status === QuestStatus.Started);
for (const quest of startedQuests) for (const quest of startedQuests)
{ {
const index = quest.completedConditions.indexOf(conditionId); let matchingConditionId: string;
for (const conditionId of conditionIds)
{
if (quest.completedConditions.includes(conditionId))
{
matchingConditionId = conditionId;
break;
}
}
// Find index of condition in array
const index = quest.completedConditions.indexOf(matchingConditionId);
if (index > -1) if (index > -1)
{ {
// Remove condition
quest.completedConditions.splice(index, 1); quest.completedConditions.splice(index, 1);
} }
} }

View File

@ -706,16 +706,19 @@ export class QuestHelper
* @param itemTpl item tpl to look for * @param itemTpl item tpl to look for
* @returns 'FindItem' condition id * @returns 'FindItem' condition id
*/ */
public getFindItemIdForQuestHandIn(itemTpl: string): string public getFindItemIdForQuestHandIn(itemTpl: string): string[]
{ {
const result: string[] = [];
for (const quest of this.getQuestsFromDb()) for (const quest of this.getQuestsFromDb())
{ {
const condition = quest.conditions.AvailableForFinish.find(c => c._parent === "FindItem" && c._props?.target?.includes(itemTpl)); const condition = quest.conditions.AvailableForFinish.find(c => c._parent === "FindItem" && c._props?.target?.includes(itemTpl));
if (condition) if (condition)
{ {
return condition._props.id; result.push(condition._props.id);
} }
} }
return result;
} }
/** /**

View File

@ -147,12 +147,9 @@ export interface Inventory
sortingTable: string sortingTable: string
questRaidItems: string questRaidItems: string
questStashItems: string questStashItems: string
fastPanel: FastPanel fastPanel: Record<string, string>
} }
export interface FastPanel
{ }
export interface Skills export interface Skills
{ {
Common: Common[] Common: Common[]

View File

@ -14,6 +14,8 @@ export interface ILocationConfig extends IBaseConfig
openZones: Record<string, string[]> openZones: Record<string, string[]>
/** Key = map id, value = item tpls that should only have one forced loot spawn position */ /** Key = map id, value = item tpls that should only have one forced loot spawn position */
forcedLootSingleSpawnById: Record<string, string[]> forcedLootSingleSpawnById: Record<string, string[]>
/** How many attempts should be taken to fit an item into a container before giving up */
fitLootIntoContainerAttempts: number;
} }
export interface IFixEmptyBotWavesSettings export interface IFixEmptyBotWavesSettings

View File

@ -4,7 +4,7 @@ export interface ILostOnDeathConfig extends IBaseConfig
{ {
kind: "aki-lostondeath" kind: "aki-lostondeath"
equipment: Equipment equipment: Equipment
loot: boolean specialSlotItems: boolean;
questItems: boolean questItems: boolean
} }

View File

@ -177,11 +177,12 @@ export class InsuranceService
* @param offraidData post-raid request object * @param offraidData post-raid request object
* @param preRaidGear gear player wore prior to raid * @param preRaidGear gear player wore prior to raid
* @param sessionID Session id * @param sessionID Session id
* @param playerDied did the player die in raid
*/ */
public storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void public storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string, playerDied: boolean): void
{ {
const preRaidGearHash: Record<string, Item> = {}; const preRaidGearHash: Record<string, Item> = {};
const offRaidGearHash = {}; const offRaidGearHash: Record<string, Item> = {};
const gears = []; const gears = [];
// Build a hash table to reduce loops // Build a hash table to reduce loops
@ -198,13 +199,13 @@ export class InsuranceService
for (const insuredItem of pmcData.InsuredItems) for (const insuredItem of pmcData.InsuredItems)
{ {
// Check insured item was on player during raid
if (preRaidGearHash[insuredItem.itemId]) if (preRaidGearHash[insuredItem.itemId])
{ {
// This item exists in preRaidGear, meaning we brought it into the raid... // This item exists in preRaidGear, meaning we brought it into the raid
// Check if we brought it out of the raid // Check if item missing OR player died with item on
if (!offRaidGearHash[insuredItem.itemId]) if (!offRaidGearHash[insuredItem.itemId] || playerDied)
{ {
// We didn't bring this item out! We must've lost it.
gears.push({ gears.push({
"pmcData": pmcData, "pmcData": pmcData,
"insuredItem": insuredItem, "insuredItem": insuredItem,
@ -215,6 +216,7 @@ export class InsuranceService
} }
} }
// Process all insured items lost in-raid
for (const gear of gears) for (const gear of gears)
{ {
this.addGearToSend(gear.pmcData, gear.insuredItem, gear.item, gear.sessionID); this.addGearToSend(gear.pmcData, gear.insuredItem, gear.item, gear.sessionID);

View File

@ -2,26 +2,39 @@ import "reflect-metadata";
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { BotDifficultyHelper } from "@spt-aki/helpers/BotDifficultyHelper"; import { BotDifficultyHelper } from "@spt-aki/helpers/BotDifficultyHelper";
import { BotHelper } from "@spt-aki/helpers/BotHelper";
import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes"; import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
import { RandomUtil } from "@spt-aki/utils/RandomUtil";
import { MockHelper } from "./common/MockHelper"; import { MockHelper } from "./common/MockHelper";
import { TestHelper } from "./common/TestHelper"; import { TestHelper } from "./common/TestHelper";
const testHelper = new TestHelper();
const mockHelper = new MockHelper(); const mockHelper = new MockHelper();
let testHelper: TestHelper;
let logger: ILogger;
let jsonUtil: JsonUtil;
let randomUtil: RandomUtil;
let configServer: ConfigServer;
let localisationService: LocalisationService;
let databaseServer: DatabaseServer;
let botHelper: BotHelper;
const logger = testHelper.getTestLogger(); describe("BotHelper", () => {
beforeAll(async () => {
testHelper = await TestHelper.fetchTestHelper();
logger = testHelper.getTestLogger();
jsonUtil = testHelper.getTestJsonUtil();
randomUtil = testHelper.getTestRandomUtil();
configServer = testHelper.getTestConfigServer();
localisationService = testHelper.getTestLocalisationService();
databaseServer = testHelper.getTestDatabaseServer();
botHelper = testHelper.getTestBotHelper();
})
const jsonUtil = testHelper.getTestJsonUtil();
const randomUtil = testHelper.getTestRandomUtil();
const configServer = testHelper.getTestConfigServer();
const botHelper = testHelper.getTestBotHelper();
const localisationService = testHelper.getTestLocalisationService();
const databaseServer = testHelper.getTestDatabaseServer();
describe("BotHelper", () =>
{
let botDifficultyHelper: BotDifficultyHelper; let botDifficultyHelper: BotDifficultyHelper;
beforeEach(() => beforeEach(() =>
{ {

View File

@ -2,25 +2,36 @@ import "reflect-metadata";
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { BotHelper } from "@spt-aki/helpers/BotHelper"; import { BotHelper } from "@spt-aki/helpers/BotHelper";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
import { RandomUtil } from "@spt-aki/utils/RandomUtil";
import { TestHelper } from "./common/TestHelper"; import { TestHelper } from "./common/TestHelper";
const testHelper = new TestHelper(); let testHelper: TestHelper;
let logger: ILogger;
let jsonUtil: JsonUtil;
let randomUtil: RandomUtil;
let configServer: ConfigServer;
let localisationService: LocalisationService;
let databaseServer: DatabaseServer;
const logger = testHelper.getTestLogger();
const jsonUtil = testHelper.getTestJsonUtil(); describe("BotHelper", () => {
const randomUtil = testHelper.getTestRandomUtil(); beforeAll(async () => {
const configServer = testHelper.getTestConfigServer(); testHelper = await TestHelper.fetchTestHelper();
logger = testHelper.getTestLogger();
jsonUtil = testHelper.getTestJsonUtil();
randomUtil = testHelper.getTestRandomUtil();
configServer = testHelper.getTestConfigServer();
localisationService = testHelper.getTestLocalisationService();
databaseServer = testHelper.getTestDatabaseServer();
})
const localisationService = testHelper.getTestLocalisationService();
const databaseServer = testHelper.getTestDatabaseServer();
describe("BotHelper", () =>
{
let helper: BotHelper; let helper: BotHelper;
beforeEach(() => beforeEach(() => {
{
helper = new BotHelper(logger, jsonUtil, databaseServer, randomUtil, localisationService, configServer); helper = new BotHelper(logger, jsonUtil, databaseServer, randomUtil, localisationService, configServer);
}); });

View File

@ -3,23 +3,36 @@ import "reflect-metadata";
import { RepairHelper } from "@spt-aki/helpers/RepairHelper"; import { RepairHelper } from "@spt-aki/helpers/RepairHelper";
import { Item } from "@spt-aki/models/eft/common/tables/IItem"; import { Item } from "@spt-aki/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt-aki/models/eft/common/tables/ITemplateItem"; import { ITemplateItem } from "@spt-aki/models/eft/common/tables/ITemplateItem";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
import { RandomUtil } from "@spt-aki/utils/RandomUtil";
import { TestHelper } from "./common/TestHelper"; import { TestHelper } from "./common/TestHelper";
const testHelper = new TestHelper(); let testHelper: TestHelper;
let logger: ILogger;
let jsonUtil: JsonUtil;
let randomUtil: RandomUtil;
let configServer: ConfigServer;
let localisationService: LocalisationService;
let databaseServer: DatabaseServer;
let helper: RepairHelper;
const logger = testHelper.getTestLogger(); describe("BotHelper", () => {
const jsonUtil = testHelper.getTestJsonUtil(); beforeAll(async () => {
const randomUtil = testHelper.getTestRandomUtil(); testHelper = await TestHelper.fetchTestHelper();
const configServer = testHelper.getTestConfigServer(); logger = testHelper.getTestLogger();
jsonUtil = testHelper.getTestJsonUtil();
randomUtil = testHelper.getTestRandomUtil();
configServer = testHelper.getTestConfigServer();
localisationService = testHelper.getTestLocalisationService();
databaseServer = testHelper.getTestDatabaseServer();
})
const databaseServer = testHelper.getTestDatabaseServer(); beforeEach(() => {
describe("BotHelper", () =>
{
let helper: RepairHelper;
beforeEach(() =>
{
helper = new RepairHelper( helper = new RepairHelper(
logger, logger,
jsonUtil, jsonUtil,

View File

@ -22,8 +22,7 @@ import { VFS } from "@spt-aki/utils/VFS";
import { MockHelper } from "./MockHelper"; import { MockHelper } from "./MockHelper";
import WinstonLogger from "./__mocks__/WinstonLogger"; import WinstonLogger from "./__mocks__/WinstonLogger";
export class TestHelper export class TestHelper {
{
logger: ILogger; logger: ILogger;
asyncQueue: AsyncQueue; asyncQueue: AsyncQueue;
uuidGenerator: UUidGenerator; uuidGenerator: UUidGenerator;
@ -45,10 +44,27 @@ export class TestHelper
itemBaseClassService: ItemBaseClassService; itemBaseClassService: ItemBaseClassService;
botHelper: BotHelper; botHelper: BotHelper;
constructor() public static async fetchTestHelper() {
{ const initTestHelper = new TestHelper();
const mockHelper = new MockHelper(); const mockHelper = new MockHelper();
const dbImporter = new DatabaseImporter(
initTestHelper.logger,
initTestHelper.vfs,
initTestHelper.jsonUtil,
initTestHelper.localisationService,
initTestHelper.databaseServer,
mockHelper.getMockImageRouter().object,
initTestHelper.encodingUtil,
initTestHelper.hashUtil,
initTestHelper.importerUtil
);
await dbImporter.onLoad();
return initTestHelper
}
constructor() {
this.logger = new WinstonLogger(); this.logger = new WinstonLogger();
this.asyncQueue = new AsyncQueue(); this.asyncQueue = new AsyncQueue();
this.uuidGenerator = new UUidGenerator(); this.uuidGenerator = new UUidGenerator();
@ -68,10 +84,6 @@ export class TestHelper
this.encodingUtil = new EncodingUtil(); this.encodingUtil = new EncodingUtil();
this.importerUtil = new ImporterUtil(this.vfs, this.jsonUtil); this.importerUtil = new ImporterUtil(this.vfs, this.jsonUtil);
const dbImporter = new DatabaseImporter(this.logger, this.vfs, this.jsonUtil, this.localisationService, this.databaseServer, mockHelper.getMockImageRouter().object, this.encodingUtil, this.hashUtil, this.importerUtil);
dbImporter.onLoad();
this.handbookHelper = new HandbookHelper(this.databaseServer); this.handbookHelper = new HandbookHelper(this.databaseServer);
this.itemBaseClassService = new ItemBaseClassService(this.logger, this.localisationService, this.databaseServer); this.itemBaseClassService = new ItemBaseClassService(this.logger, this.localisationService, this.databaseServer);
this.itemHelper = new ItemHelper(this.logger, this.hashUtil, this.jsonUtil, this.randomUtil, this.objectId, this.mathUtil, this.databaseServer, this.handbookHelper, this.itemBaseClassService, this.localisationService, this.localeService); this.itemHelper = new ItemHelper(this.logger, this.hashUtil, this.jsonUtil, this.randomUtil, this.objectId, this.mathUtil, this.databaseServer, this.handbookHelper, this.itemBaseClassService, this.localisationService, this.localeService);

View File

@ -7,10 +7,14 @@ import { BaseClasses } from "@spt-aki/models/enums/BaseClasses";
import { Money } from "@spt-aki/models/enums/Money"; import { Money } from "@spt-aki/models/enums/Money";
import { TestHelper } from "../common/TestHelper"; import { TestHelper } from "../common/TestHelper";
const testHelper = new TestHelper(); let testHelper: TestHelper;
describe("test text", () => describe("test text", () =>
{ {
beforeAll(async () => {
testHelper = await TestHelper.fetchTestHelper();
})
let itemHelper: ItemHelper; let itemHelper: ItemHelper;
beforeEach(() => beforeEach(() =>
{ {