mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-12 15:50:42 -05:00
Squashed 22 commits in an attempt to fix Gitea object bloat
This commit is contained in:
parent
e25f38c9f6
commit
3d849b427b
@ -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)
|
||||
[![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
|
||||
|
||||
- NodeJS (with npm)
|
||||
|
@ -1,16 +1,16 @@
|
||||
{
|
||||
"looseLootMultiplier": {
|
||||
"bigmap": 1.2,
|
||||
"bigmap": 1,
|
||||
"develop": 1,
|
||||
"factory4_day": 1.2,
|
||||
"factory4_night": 1.2,
|
||||
"interchange": 1.2,
|
||||
"factory4_day": 1,
|
||||
"factory4_night": 1,
|
||||
"interchange": 1,
|
||||
"laboratory": 1,
|
||||
"rezervbase": 1.2,
|
||||
"shoreline": 1.2,
|
||||
"woods": 1.3,
|
||||
"rezervbase": 1,
|
||||
"shoreline": 1,
|
||||
"woods": 1,
|
||||
"hideout": 0,
|
||||
"lighthouse": 1.2,
|
||||
"lighthouse": 1,
|
||||
"privatearea": 1,
|
||||
"suburbs": 1,
|
||||
"tarkovstreets": 1,
|
||||
@ -288,8 +288,8 @@
|
||||
"laboratory": [{
|
||||
"sptId": "sptBearLabsZoneFloor1NormalSpawn",
|
||||
"BossName": "sptBear",
|
||||
"BossChance": 15,
|
||||
"BossZone": "BotZoneFloor1",
|
||||
"BossChance": 15,
|
||||
"BossZone": "BotZoneFloor1",
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "1",
|
||||
"BossEscortDifficult": "normal",
|
||||
@ -309,7 +309,7 @@
|
||||
"sptId": "sptBearLabsZoneFloor2NormalSpawn",
|
||||
"BossChance": 15,
|
||||
"BossName": "sptBear",
|
||||
"BossZone": "BotZoneFloor2",
|
||||
"BossZone": "BotZoneFloor2",
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "1",
|
||||
"BossEscortDifficult": "normal",
|
||||
@ -407,7 +407,7 @@
|
||||
"RandomTimeSpawn": false
|
||||
}
|
||||
],
|
||||
"interchange": [{
|
||||
"interchange": [{
|
||||
"sptId": "sptBearInterchangeNormalSpawn",
|
||||
"BossName": "sptBear",
|
||||
"BossChance": 15,
|
||||
@ -447,7 +447,8 @@
|
||||
}
|
||||
],
|
||||
"RandomTimeSpawn": false
|
||||
}]
|
||||
}
|
||||
]
|
||||
},
|
||||
"normal": {
|
||||
"factory4_day": [{
|
||||
@ -645,5 +646,6 @@
|
||||
"fixEmptyBotWavesSettings": {
|
||||
"enabled": true,
|
||||
"ignoreMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"]
|
||||
}
|
||||
},
|
||||
"fitLootIntoContainerAttempts": 2
|
||||
}
|
||||
|
@ -13,8 +13,9 @@
|
||||
"FirstPrimaryWeapon": true,
|
||||
"SecondPrimaryWeapon": true,
|
||||
"Scabbard": false,
|
||||
"Pockets": false,
|
||||
"SecuredContainer": false
|
||||
},
|
||||
"loot": true,
|
||||
"questItems": true
|
||||
"questItems": true,
|
||||
"specialSlotItems": false
|
||||
}
|
||||
|
@ -583,7 +583,7 @@
|
||||
"max": 2
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 2
|
||||
"labsAccessCardChancePercent": 3
|
||||
},
|
||||
"2": {
|
||||
"botTypeForLoot": "assault",
|
||||
@ -648,7 +648,7 @@
|
||||
"max": 2
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 5
|
||||
"labsAccessCardChancePercent": 6
|
||||
},
|
||||
"3": {
|
||||
"botTypeForLoot": "assault",
|
||||
@ -713,7 +713,7 @@
|
||||
"max": 2
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 10
|
||||
"labsAccessCardChancePercent": 11
|
||||
},
|
||||
"4": {
|
||||
"botTypeForLoot": "assault",
|
||||
@ -778,7 +778,7 @@
|
||||
"max": 3
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 15
|
||||
"labsAccessCardChancePercent": 17
|
||||
},
|
||||
"5": {
|
||||
"botTypeForLoot": "assault",
|
||||
@ -843,7 +843,7 @@
|
||||
"max": 3
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 20
|
||||
"labsAccessCardChancePercent": 22
|
||||
},
|
||||
"6": {
|
||||
"botTypeForLoot": "assault",
|
||||
@ -908,7 +908,7 @@
|
||||
"max": 4
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 25
|
||||
"labsAccessCardChancePercent": 27
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -125,8 +125,8 @@
|
||||
"Ammo": {
|
||||
"Caliber556x45NATO": {
|
||||
"59e690b686f7746c9f75e848": 1,
|
||||
"59e6906286f7746c9f75e847": 1,
|
||||
"5c0d5ae286f7741e46554302": 1,
|
||||
"59e6906286f7746c9f75e847": 1,
|
||||
"59e6920f86f77411d82aa167": 1
|
||||
},
|
||||
"Caliber762x25TT": {
|
||||
@ -425,17 +425,17 @@
|
||||
"62987dfc402c7f69bf010923",
|
||||
"5926c3b286f774640d189b6b",
|
||||
"6193d3149fb0c665d5490e32",
|
||||
"5eff09cd30a7dc22fd1ddfed",
|
||||
"5c0548ae0db834001966a3c2",
|
||||
"59faff1d86f7746c51718c9c",
|
||||
"5eff09cd30a7dc22fd1ddfed",
|
||||
"602286df23506e50807090c6",
|
||||
"5df8f541c41b2312ea3335e3",
|
||||
"5937ee6486f77408994ba448",
|
||||
"5913915886f774123603c392",
|
||||
"5a351711c4a282000b1521a4",
|
||||
"61a64428a8c6aa1b795f0ba1",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"5d80cb3886f77440556dbf09",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"5ad5d20586f77449be26d877",
|
||||
"593858c486f774253a24cb52",
|
||||
"63a39e1d234195315d4020bd",
|
||||
@ -486,7 +486,12 @@
|
||||
"5913877a86f774432f15d444",
|
||||
"5da5cdcd86f774529238fb9b",
|
||||
"63a39c7964283b5e9c56b280",
|
||||
"5d80ccdd86f77474f7575e02"
|
||||
"5d80ccdd86f77474f7575e02",
|
||||
"5a145d4786f7744cbb6f4a12",
|
||||
"61aa5aed32a4743c3453d319",
|
||||
"63a39ce4cd6db0635c1975fa",
|
||||
"5a0ee34586f774023b6ee092",
|
||||
"5a0eebed86f77461230ddb3d"
|
||||
],
|
||||
"Backpack": [
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
@ -546,8 +551,8 @@
|
||||
"5d6e68c4a4b9361b93413f79",
|
||||
"56d59d3ad2720bdb418b4577",
|
||||
"5e81f423763d9f754677bf2e",
|
||||
"59e6906286f7746c9f75e847",
|
||||
"5c0d5ae286f7741e46554302",
|
||||
"59e6906286f7746c9f75e847",
|
||||
"5e023e53d4353e3302577c4c",
|
||||
"5c0d56a986f774449d5de529",
|
||||
"5a608bf24f39f98ffc77720e",
|
||||
@ -2510,9 +2515,9 @@
|
||||
},
|
||||
"chances": {
|
||||
"equipment": {
|
||||
"Headwear": 24,
|
||||
"Headwear": 23,
|
||||
"Earpiece": 0,
|
||||
"FaceCover": 5,
|
||||
"FaceCover": 4,
|
||||
"ArmorVest": 0,
|
||||
"Eyewear": 44,
|
||||
"ArmBand": 0,
|
||||
@ -2529,7 +2534,7 @@
|
||||
"mod_launcher": 0,
|
||||
"mod_muzzle": 51,
|
||||
"mod_reciever": 100,
|
||||
"mod_sight_rear": 25,
|
||||
"mod_sight_rear": 26,
|
||||
"mod_stock": 100,
|
||||
"mod_magazine": 100,
|
||||
"mod_mount_000": 8,
|
||||
@ -2539,13 +2544,13 @@
|
||||
"mod_tactical": 0,
|
||||
"mod_mount_001": 0,
|
||||
"mod_mount_002": 0,
|
||||
"mod_sight_front": 71,
|
||||
"mod_foregrip": 86,
|
||||
"mod_sight_front": 72,
|
||||
"mod_foregrip": 85,
|
||||
"mod_tactical_002": 0,
|
||||
"mod_tactical_000": 0,
|
||||
"mod_tactical_001": 0,
|
||||
"mod_mount": 0,
|
||||
"mod_tactical_003": 60
|
||||
"mod_tactical_003": 64
|
||||
}
|
||||
},
|
||||
"generation": {
|
||||
|
@ -94,8 +94,8 @@
|
||||
"equipment": {
|
||||
"Headwear": {
|
||||
"5a16bb52fcdbcb001a3b00dc": 1,
|
||||
"5c066ef40db834001966a595": 1,
|
||||
"5a43957686f7742a2c2f11b0": 1,
|
||||
"5c066ef40db834001966a595": 1,
|
||||
"5ea17ca01412a1425304d1c0": 1,
|
||||
"5b432d215acfc4771e1c6624": 1,
|
||||
"61bca7cda0eae612383adf57": 1,
|
||||
@ -112,8 +112,8 @@
|
||||
"ArmorVest": {},
|
||||
"Eyewear": {
|
||||
"603409c80ca681766b6a0fb2": 1,
|
||||
"5d6d2e22a4b9361bd5780d05": 1,
|
||||
"5d5fca1ea4b93635fd598c07": 1,
|
||||
"5d6d2e22a4b9361bd5780d05": 1,
|
||||
"61c18d83b00456371a66814b": 1,
|
||||
"5d6d2ef3a4b93618084f58bd": 1,
|
||||
"5aa2b986e5b5b00014028f4c": 1,
|
||||
@ -121,9 +121,9 @@
|
||||
},
|
||||
"ArmBand": {},
|
||||
"TacticalVest": {
|
||||
"5c0e722886f7740458316a57": 1,
|
||||
"544a5caa4bdc2d1a388b4568": 1,
|
||||
"61bc85697113f767765c7fe7": 1,
|
||||
"5c0e722886f7740458316a57": 1,
|
||||
"5c0e746986f7741453628fe5": 1,
|
||||
"5b44cad286f77402a54ae7e5": 1,
|
||||
"5f5f41f56760b4138443b352": 1,
|
||||
@ -135,17 +135,17 @@
|
||||
},
|
||||
"Backpack": {},
|
||||
"FirstPrimaryWeapon": {
|
||||
"5cadfbf7ae92152ac412eeef": 1,
|
||||
"5aafa857e5b5b00018480968": 1
|
||||
"5aafa857e5b5b00018480968": 1,
|
||||
"5cadfbf7ae92152ac412eeef": 1
|
||||
},
|
||||
"SecondPrimaryWeapon": {
|
||||
"59984ab886f7743e98271174": 1
|
||||
},
|
||||
"Holster": {
|
||||
"602a9740da11d6478d5a06dc": 1,
|
||||
"5f36a0e5fbf956000b716b65": 1,
|
||||
"5a17f98cfcdbcb0980087290": 1,
|
||||
"5e81c3cbac2bb513793cdc75": 1,
|
||||
"5f36a0e5fbf956000b716b65": 1,
|
||||
"602a9740da11d6478d5a06dc": 1,
|
||||
"6193a720f8ee7e52e42109ed": 1,
|
||||
"5abccb7dd8ce87001773e277": 1
|
||||
},
|
||||
@ -158,16 +158,9 @@
|
||||
}
|
||||
},
|
||||
"Ammo": {
|
||||
"Caliber127x55": {
|
||||
"5cadf6eeae921500134b2799": 1,
|
||||
"5cadf6ddae9215051e1c23b2": 1
|
||||
},
|
||||
"Caliber9x18PM": {
|
||||
"573719762459775a626ccbc1": 1
|
||||
},
|
||||
"Caliber762x51": {
|
||||
"5a6086ea4f39f99cd479502f": 1,
|
||||
"58dd3ad986f77403051cba8f": 1,
|
||||
"5a6086ea4f39f99cd479502f": 1,
|
||||
"5efb0c1bd79ff02a1f5e68d9": 1
|
||||
},
|
||||
"Caliber9x19PARA": {
|
||||
@ -175,67 +168,19 @@
|
||||
"5c0d56a986f774449d5de529": 1,
|
||||
"5efb0da7a29a85116f6ea05f": 1
|
||||
},
|
||||
"Caliber127x55": {
|
||||
"5cadf6ddae9215051e1c23b2": 1,
|
||||
"5cadf6eeae921500134b2799": 1
|
||||
},
|
||||
"Caliber1143x23ACP": {
|
||||
"5e81f423763d9f754677bf2e": 1,
|
||||
"5efb0cabfb3e451d70735af5": 1
|
||||
},
|
||||
"Caliber9x18PM": {
|
||||
"573719762459775a626ccbc1": 1
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"mod_stock": [
|
||||
"5addc7005acfc4001669f275"
|
||||
@ -247,8 +192,8 @@
|
||||
"5aaf8a0be5b5b00015693243"
|
||||
],
|
||||
"patron_in_weapon": [
|
||||
"5a6086ea4f39f99cd479502f",
|
||||
"58dd3ad986f77403051cba8f",
|
||||
"5a6086ea4f39f99cd479502f",
|
||||
"5efb0c1bd79ff02a1f5e68d9"
|
||||
]
|
||||
},
|
||||
@ -280,13 +225,8 @@
|
||||
},
|
||||
"5addbac75acfc400194dbc56": {
|
||||
"mod_muzzle": [
|
||||
"5c7954d52e221600106f4cc7",
|
||||
"5d026791d7ad1a04a067ea63"
|
||||
]
|
||||
},
|
||||
"5c7954d52e221600106f4cc7": {
|
||||
"mod_muzzle": [
|
||||
"5c7955c22e221644f31bfd5e"
|
||||
"5d026791d7ad1a04a067ea63",
|
||||
"5c7954d52e221600106f4cc7"
|
||||
]
|
||||
},
|
||||
"59984ab886f7743e98271174": {
|
||||
@ -338,6 +278,116 @@
|
||||
"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": {
|
||||
"mod_barrel": [
|
||||
"5e81c519cb2b95385c177551"
|
||||
@ -374,56 +424,6 @@
|
||||
"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": {
|
||||
"mod_barrel": [
|
||||
"6194f017ed0429009f543eaa"
|
||||
@ -455,17 +455,6 @@
|
||||
"6194f3286db0f2477964e67d"
|
||||
]
|
||||
},
|
||||
"5b432d215acfc4771e1c6624": {
|
||||
"mod_nvg": [
|
||||
"5a16b8a9fcdbcb00165aa6ca",
|
||||
"5c0558060db834001b735271"
|
||||
]
|
||||
},
|
||||
"5c0695860db834001b735461": {
|
||||
"mod_nvg": [
|
||||
"5c0696830db834001d23f5da"
|
||||
]
|
||||
},
|
||||
"5caf1691ae92152ac412efb9": {
|
||||
"mod_scope": [
|
||||
"591c4efa86f7741030027726"
|
||||
@ -491,6 +480,17 @@
|
||||
"5abcc328d8ce8700194394f3"
|
||||
]
|
||||
},
|
||||
"5b432d215acfc4771e1c6624": {
|
||||
"mod_nvg": [
|
||||
"5a16b8a9fcdbcb00165aa6ca",
|
||||
"5c0558060db834001b735271"
|
||||
]
|
||||
},
|
||||
"5c0695860db834001b735461": {
|
||||
"mod_nvg": [
|
||||
"5c0696830db834001d23f5da"
|
||||
]
|
||||
},
|
||||
"5ea17ca01412a1425304d1c0": {
|
||||
"mod_nvg": [
|
||||
"5ea18c84ecf1982c7712d9a2"
|
||||
@ -499,25 +499,25 @@
|
||||
},
|
||||
"items": {
|
||||
"TacticalVest": [
|
||||
"5caf1109ae9215753c44119f",
|
||||
"5710c24ad2720bc3458b45a3",
|
||||
"5448be9a4bdc2dfd2f8b456a",
|
||||
"5aaf8a0be5b5b00015693243",
|
||||
"599860ac86f77436b225ed1a",
|
||||
"58d3db5386f77426186285a0"
|
||||
"5710c24ad2720bc3458b45a3",
|
||||
"5caf1109ae9215753c44119f",
|
||||
"58d3db5386f77426186285a0",
|
||||
"5448be9a4bdc2dfd2f8b456a"
|
||||
],
|
||||
"Pockets": [
|
||||
"5a17fb03fcdbcbcae668728f",
|
||||
"602286df23506e50807090c6",
|
||||
"590c678286f77426c9660122",
|
||||
"5df8a77486f77412672a1e3f",
|
||||
"5e81c4ca763d9f754677befa",
|
||||
"5f3e77b26cda304dcc634057",
|
||||
"5938144586f77473c2087145",
|
||||
"602286df23506e50807090c6",
|
||||
"5a17fb03fcdbcbcae668728f",
|
||||
"5df8a77486f77412672a1e3f",
|
||||
"5e81c4ca763d9f754677befa",
|
||||
"6193d3149fb0c665d5490e32",
|
||||
"5c1e2d1f86f77431e9280bee",
|
||||
"5df8a72c86f77412640e2e83",
|
||||
"5913915886f774123603c392",
|
||||
"5df8a72c86f77412640e2e83",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"5df8a6a186f77412640e2e80",
|
||||
"591afe0186f77431bd616a11",
|
||||
@ -528,19 +528,19 @@
|
||||
"5a0ee30786f774023b6ee08f",
|
||||
"5938994586f774523a425196",
|
||||
"5913611c86f77479e0084092",
|
||||
"5a145d4786f7744cbb6f4a12",
|
||||
"5938504186f7740991483f30",
|
||||
"5a145d4786f7744cbb6f4a12",
|
||||
"5937ee6486f77408994ba448",
|
||||
"5c0e531d86f7747fa23f4d42",
|
||||
"5c1e495a86f7743109743dfb",
|
||||
"63a39cb1c9b3aa4b61683ee2",
|
||||
"5ede7a8229445733cb4c18e2",
|
||||
"63a39cb1c9b3aa4b61683ee2",
|
||||
"5913651986f774432f15d132",
|
||||
"5780cfa52459777dfb276eb1",
|
||||
"6391fcf5744e45201147080f",
|
||||
"5780cfa52459777dfb276eb1",
|
||||
"61aa5aed32a4743c3453d319",
|
||||
"63a39f08cd6db0635c197600",
|
||||
"5ad5db3786f7743568421cce",
|
||||
"63a39f08cd6db0635c197600",
|
||||
"5a0eebed86f77461230ddb3d",
|
||||
"5d947d4e86f774447b415895",
|
||||
"5914578086f774123569ffa4",
|
||||
@ -566,12 +566,12 @@
|
||||
"5780cf9e2459777df90dcb73",
|
||||
"59136f6f86f774447a1ed173",
|
||||
"5ad7247386f7747487619dc3",
|
||||
"637b620db7afa97bfc3d7009",
|
||||
"591ae8f986f77406f854be45",
|
||||
"5ed515ece452db0eb56fc028",
|
||||
"637b620db7afa97bfc3d7009",
|
||||
"5a0eff2986f7741fd654e684",
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
"5c0e531286f7747fa54205c2",
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
"63a39e49cd6db0635c1975fc",
|
||||
"59387a4986f77401cc236e62",
|
||||
"593aa4be86f77457f56379f8",
|
||||
@ -644,9 +644,15 @@
|
||||
"61a64428a8c6aa1b795f0ba1",
|
||||
"5a0ee72c86f77436955d3435",
|
||||
"61aa5b518f5e7a39b41416e2",
|
||||
"5a0eec9686f77402ac5c39f2",
|
||||
"59148f8286f7741b951ea113",
|
||||
"5a13ef0686f7746e5a411744"
|
||||
"5a0eec9686f77402ac5c39f2",
|
||||
"5a13ef0686f7746e5a411744",
|
||||
"5fca13ca637ee0341a484f46",
|
||||
"5a13eebd86f7746fd639aa93",
|
||||
"63a39f6e64283b5e9c56b289",
|
||||
"637b60c3b7afa97bfc3d7001",
|
||||
"5d8e0db586f7744450412a42",
|
||||
"5ed51652f6c34d2cc26336a1"
|
||||
],
|
||||
"Backpack": [
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
@ -700,14 +706,14 @@
|
||||
"5a0eee1486f77402aa773226"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"58dd3ad986f77403051cba8f",
|
||||
"5a3c16fe86f77452b62de32a",
|
||||
"5c0d56a986f774449d5de529",
|
||||
"5cadf6ddae9215051e1c23b2",
|
||||
"5e81f423763d9f754677bf2e",
|
||||
"5cadf6eeae921500134b2799",
|
||||
"573719762459775a626ccbc1",
|
||||
"5a6086ea4f39f99cd479502f",
|
||||
"5a3c16fe86f77452b62de32a",
|
||||
"5e81f423763d9f754677bf2e",
|
||||
"5cadf6ddae9215051e1c23b2",
|
||||
"58dd3ad986f77403051cba8f",
|
||||
"5c0d56a986f774449d5de529",
|
||||
"5efb0c1bd79ff02a1f5e68d9",
|
||||
"5efb0cabfb3e451d70735af5",
|
||||
"5efb0da7a29a85116f6ea05f"
|
||||
@ -2944,8 +2950,8 @@
|
||||
"chances": {
|
||||
"equipment": {
|
||||
"Headwear": 100,
|
||||
"Earpiece": 15,
|
||||
"FaceCover": 11,
|
||||
"Earpiece": 16,
|
||||
"FaceCover": 10,
|
||||
"ArmorVest": 0,
|
||||
"Eyewear": 77,
|
||||
"ArmBand": 0,
|
||||
@ -2959,25 +2965,25 @@
|
||||
"SecuredContainer": 100
|
||||
},
|
||||
"mods": {
|
||||
"mod_muzzle": 89,
|
||||
"mod_sight_rear": 61,
|
||||
"mod_magazine": 100,
|
||||
"mod_sight_front": 100,
|
||||
"mod_handguard": 100,
|
||||
"mod_scope": 67,
|
||||
"mod_sight_rear": 61,
|
||||
"mod_mount": 0,
|
||||
"mod_scope": 66,
|
||||
"mod_tactical_000": 0,
|
||||
"mod_tactical_001": 49,
|
||||
"mod_tactical_002": 37,
|
||||
"mod_foregrip": 100,
|
||||
"mod_stock": 84,
|
||||
"mod_nvg": 79,
|
||||
"mod_mount": 0,
|
||||
"mod_tactical_003": 0,
|
||||
"mod_muzzle": 89,
|
||||
"mod_stock": 84,
|
||||
"mod_charge": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_mount_000": 47,
|
||||
"mod_mount_001": 0,
|
||||
"mod_foregrip": 100,
|
||||
"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_001": 0,
|
||||
"mod_equipment_002": 0
|
||||
|
@ -123,8 +123,8 @@
|
||||
"Eyewear": {},
|
||||
"ArmBand": {},
|
||||
"TacticalVest": {
|
||||
"5c0e9f2c86f77432297fe0a3": 1,
|
||||
"5ca20abf86f77418567a43f2": 1
|
||||
"5ca20abf86f77418567a43f2": 1,
|
||||
"5c0e9f2c86f77432297fe0a3": 1
|
||||
},
|
||||
"Backpack": {},
|
||||
"FirstPrimaryWeapon": {
|
||||
@ -148,8 +148,8 @@
|
||||
},
|
||||
"Ammo": {
|
||||
"Caliber545x39": {
|
||||
"56dff026d2720bb8668b4567": 1,
|
||||
"5c0d5e4486f77478390952fe": 1,
|
||||
"56dff026d2720bb8668b4567": 1,
|
||||
"56dff061d2720bb5668b4567": 1
|
||||
},
|
||||
"Caliber762x25TT": {
|
||||
@ -176,8 +176,8 @@
|
||||
"5beec3e30db8340019619424"
|
||||
],
|
||||
"mod_barrel": [
|
||||
"5beec2820db834001b095426",
|
||||
"5beec1bd0db834001e6006f3"
|
||||
"5beec1bd0db834001e6006f3",
|
||||
"5beec2820db834001b095426"
|
||||
],
|
||||
"mod_reciever": [
|
||||
"5beec91a0db834001961942d"
|
||||
@ -199,16 +199,15 @@
|
||||
"5beecbb80db834001d2c465e"
|
||||
]
|
||||
},
|
||||
"5beec2820db834001b095426": {
|
||||
"5beec1bd0db834001e6006f3": {
|
||||
"mod_muzzle": [
|
||||
"564caa3d4bdc2d17108b458e",
|
||||
"5cc9a96cd7f00c011c04e04a"
|
||||
"5beec3420db834001b095429"
|
||||
]
|
||||
},
|
||||
"5beec91a0db834001961942d": {
|
||||
"mod_scope": [
|
||||
"5c0505e00db834001b735073",
|
||||
"584984812459776a704a82a6"
|
||||
"584984812459776a704a82a6",
|
||||
"5c0505e00db834001b735073"
|
||||
],
|
||||
"mod_sight_rear": [
|
||||
"5beec9450db83400970084fd"
|
||||
@ -236,9 +235,10 @@
|
||||
"5c0e842486f77443a74d2976"
|
||||
]
|
||||
},
|
||||
"5beec1bd0db834001e6006f3": {
|
||||
"5beec2820db834001b095426": {
|
||||
"mod_muzzle": [
|
||||
"5beec3420db834001b095429"
|
||||
"564caa3d4bdc2d17108b458e",
|
||||
"5cc9a96cd7f00c011c04e04a"
|
||||
]
|
||||
},
|
||||
"59ff346386f77477562ff5e2": {
|
||||
@ -361,8 +361,8 @@
|
||||
"5780cfa52459777dfb276eb1",
|
||||
"5913877a86f774432f15d444",
|
||||
"62987cb98081af308d7558c8",
|
||||
"5a13f24186f77410e57c5626",
|
||||
"5df8a6a186f77412640e2e80",
|
||||
"5a13f24186f77410e57c5626",
|
||||
"62a9cb937377a65d7b070cef",
|
||||
"591383f186f7744a4c5edcf3",
|
||||
"5780cf942459777df90dcb72",
|
||||
@ -391,8 +391,8 @@
|
||||
"5780cda02459777b272ede61",
|
||||
"5e42c83786f7742a021fdf3c",
|
||||
"591afe0186f77431bd616a11",
|
||||
"5913915886f774123603c392",
|
||||
"5a0eeb8e86f77461257ed71a",
|
||||
"5913915886f774123603c392",
|
||||
"5ad5cfbd86f7742c825d6104",
|
||||
"59136e1e86f774432f15d133",
|
||||
"5e42c81886f7742a01529f57",
|
||||
@ -448,7 +448,15 @@
|
||||
"5a0f006986f7741ffd2fe484",
|
||||
"5a0f045e86f7745b0f0d0e42",
|
||||
"5da743f586f7744014504f72",
|
||||
"62987da96188c076bc0d8c51"
|
||||
"62987da96188c076bc0d8c51",
|
||||
"63a71ed21031ac76fe773c7f",
|
||||
"5d8e0db586f7744450412a42",
|
||||
"5a0eee1486f77402aa773226",
|
||||
"5d80ccdd86f77474f7575e02",
|
||||
"61aa81fcb225ac1ead7957c3",
|
||||
"5d80c93086f7744036212b41",
|
||||
"5a0f068686f7745b0d4ea242",
|
||||
"5751a89d24597722aa0e8db0"
|
||||
],
|
||||
"Backpack": [
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
@ -502,9 +510,9 @@
|
||||
"5a0eee1486f77402aa773226"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"56dff026d2720bb8668b4567",
|
||||
"5736026a245977644601dc61",
|
||||
"5c0d5e4486f77478390952fe",
|
||||
"5736026a245977644601dc61",
|
||||
"56dff026d2720bb8668b4567",
|
||||
"56dff061d2720bb5668b4567",
|
||||
"59e4cf5286f7741778269d8a",
|
||||
"5c925fa22e221601da359b7b",
|
||||
@ -2457,7 +2465,7 @@
|
||||
"FirstPrimaryWeapon": 100,
|
||||
"SecondPrimaryWeapon": 0,
|
||||
"Holster": 100,
|
||||
"Scabbard": 14,
|
||||
"Scabbard": 15,
|
||||
"Pockets": 100,
|
||||
"SecuredContainer": 100
|
||||
},
|
||||
@ -2469,7 +2477,7 @@
|
||||
"mod_stock": 100,
|
||||
"mod_mount_000": 100,
|
||||
"mod_mount_001": 83,
|
||||
"mod_scope": 40,
|
||||
"mod_scope": 39,
|
||||
"mod_foregrip": 9,
|
||||
"mod_tactical_000": 0,
|
||||
"mod_muzzle": 95,
|
||||
|
@ -233,28 +233,6 @@
|
||||
"5a7d9104159bd400134c8c21"
|
||||
]
|
||||
},
|
||||
"5a7ae0c351dfba0017554310": {
|
||||
"mod_barrel": [
|
||||
"5a6b5b8a8dc32e001207faf3"
|
||||
],
|
||||
"mod_reciever": [
|
||||
"5a71e4f48dc32e001207fb26"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5a7ad2e851dfba0016153692"
|
||||
]
|
||||
},
|
||||
"5a71e4f48dc32e001207fb26": {
|
||||
"mod_sight_rear": [
|
||||
"5a71e0fb8dc32e00094b97f2"
|
||||
],
|
||||
"mod_sight_front": [
|
||||
"5a71e0048dc32e000c52ecc8"
|
||||
],
|
||||
"mod_scope": [
|
||||
"5a32aa8bc4a2826c6e06d737"
|
||||
]
|
||||
},
|
||||
"5dcbd56fdbd3d91b3e5468d5": {
|
||||
"mod_pistol_grip": [
|
||||
"5c48a2c22e221602b313fb6c"
|
||||
@ -314,6 +292,28 @@
|
||||
"5dfa3d2b0dee1b22f862eade"
|
||||
]
|
||||
},
|
||||
"5a7ae0c351dfba0017554310": {
|
||||
"mod_barrel": [
|
||||
"5a6b5b8a8dc32e001207faf3"
|
||||
],
|
||||
"mod_reciever": [
|
||||
"5a71e4f48dc32e001207fb26"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5a7ad2e851dfba0016153692"
|
||||
]
|
||||
},
|
||||
"5a71e4f48dc32e001207fb26": {
|
||||
"mod_sight_rear": [
|
||||
"5a71e0fb8dc32e00094b97f2"
|
||||
],
|
||||
"mod_sight_front": [
|
||||
"5a71e0048dc32e000c52ecc8"
|
||||
],
|
||||
"mod_scope": [
|
||||
"5a32aa8bc4a2826c6e06d737"
|
||||
]
|
||||
},
|
||||
"606587252535c57a13424cfd": {
|
||||
"mod_pistol_grip": [
|
||||
"57af48872459771f0b2ebf11"
|
||||
@ -396,26 +396,26 @@
|
||||
],
|
||||
"Pockets": [
|
||||
"590c678286f77426c9660122",
|
||||
"63a39fd1c9b3aa4b61683efb",
|
||||
"5c1e2a1e86f77431ea0ea84c",
|
||||
"5df8a6a186f77412640e2e80",
|
||||
"63a39fd1c9b3aa4b61683efb",
|
||||
"5710c24ad2720bc3458b45a3",
|
||||
"59148f8286f7741b951ea113",
|
||||
"5938144586f77473c2087145",
|
||||
"62a09ec84f842e1bd12da3f2",
|
||||
"5df8a72c86f77412640e2e83",
|
||||
"62a09ec84f842e1bd12da3f2",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"5d80c88d86f77440556dbf07",
|
||||
"5938603e86f77435642354f4",
|
||||
"591afe0186f77431bd616a11",
|
||||
"5938603e86f77435642354f4",
|
||||
"5df8a77486f77412672a1e3f",
|
||||
"593858c486f774253a24cb52",
|
||||
"637b60c3b7afa97bfc3d7001",
|
||||
"63a39df18a56922e82001f25",
|
||||
"5938504186f7740991483f30",
|
||||
"591383f186f7744a4c5edcf3",
|
||||
"5ad5d49886f77455f9731921",
|
||||
"57a349b2245977762b199ec7",
|
||||
"5ad5d49886f77455f9731921",
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
"5fca13ca637ee0341a484f46",
|
||||
"5937ee6486f77408994ba448",
|
||||
@ -429,15 +429,15 @@
|
||||
"5e42c83786f7742a021fdf3c",
|
||||
"5ad5ccd186f774446d5706e9",
|
||||
"5a0ea69f86f7741cd5406619",
|
||||
"59136e1e86f774432f15d133",
|
||||
"63a3a93f8a56922e82001f5d",
|
||||
"61a64428a8c6aa1b795f0ba1",
|
||||
"59136e1e86f774432f15d133",
|
||||
"5913877a86f774432f15d444",
|
||||
"5a0dc95c86f77452440fc675",
|
||||
"5d80c6c586f77440351beef1",
|
||||
"591382d986f774465a6413a7",
|
||||
"5c1d0f4986f7744bb01837fa",
|
||||
"5d80c6c586f77440351beef1",
|
||||
"5913915886f774123603c392",
|
||||
"5c1d0f4986f7744bb01837fa",
|
||||
"5a0f075686f7745bcc42ee12",
|
||||
"5938994586f774523a425196",
|
||||
"61aa5aed32a4743c3453d319",
|
||||
@ -460,8 +460,8 @@
|
||||
"5ed515e03a40a50460332579",
|
||||
"5d80cb8786f774405611c7d9",
|
||||
"5ed5160a87bb8443d10680b5",
|
||||
"59136a4486f774447a1ed172",
|
||||
"5780cf692459777de4559321",
|
||||
"59136a4486f774447a1ed172",
|
||||
"5780d07a2459777de4559324",
|
||||
"5c0e533786f7747fa23f4d47",
|
||||
"5ad5d20586f77449be26d877",
|
||||
@ -527,7 +527,12 @@
|
||||
"5da5cdcd86f774529238fb9b",
|
||||
"62a9cb937377a65d7b070cef",
|
||||
"5a0ec70e86f7742c0b518fba",
|
||||
"63a39f6e64283b5e9c56b289"
|
||||
"63a39f6e64283b5e9c56b289",
|
||||
"5ed51652f6c34d2cc26336a1",
|
||||
"5a0f0f5886f7741c4e32a472",
|
||||
"637b620db7afa97bfc3d7009",
|
||||
"5a0eeb1a86f774688b70aa5c",
|
||||
"5a144dfd86f77445cb5a0982"
|
||||
],
|
||||
"Backpack": [],
|
||||
"SecuredContainer": [
|
||||
@ -2606,16 +2611,16 @@
|
||||
"mod_sight_rear": 100,
|
||||
"mod_sight_front": 69,
|
||||
"mod_tactical_000": 100,
|
||||
"mod_mount_001": 26,
|
||||
"mod_mount_001": 27,
|
||||
"mod_mount_002": 0,
|
||||
"mod_mount": 17,
|
||||
"mod_muzzle": 33,
|
||||
"mod_mount": 16,
|
||||
"mod_muzzle": 32,
|
||||
"mod_foregrip": 100,
|
||||
"mod_stock_002": 100,
|
||||
"mod_stock": 39,
|
||||
"mod_pistol_grip": 38,
|
||||
"mod_tactical": 62,
|
||||
"mod_mount_000": 57,
|
||||
"mod_tactical": 61,
|
||||
"mod_mount_000": 56,
|
||||
"mod_flashlight": 100
|
||||
}
|
||||
},
|
||||
|
@ -154,7 +154,8 @@
|
||||
"56dff338d2720bbd668b4569": 1,
|
||||
"56dff2ced2720bb4668b4567": 1,
|
||||
"56dff4a2d2720bbd668b456a": 1,
|
||||
"56dff026d2720bb8668b4567": 1
|
||||
"56dff026d2720bb8668b4567": 1,
|
||||
"56dfef82d2720bbd668b4567": 1
|
||||
},
|
||||
"Caliber762x39": {
|
||||
"5656d7c34bdc2d9d198b4587": 1
|
||||
@ -186,7 +187,8 @@
|
||||
"5c0d5ae286f7741e46554302": 1
|
||||
},
|
||||
"Caliber9x39": {
|
||||
"5c0d668f86f7747ccb7f13b2": 1
|
||||
"5c0d668f86f7747ccb7f13b2": 1,
|
||||
"5c0d688c86f77413ae3407b2": 1
|
||||
}
|
||||
},
|
||||
"mods": {
|
||||
@ -628,7 +630,27 @@
|
||||
"57372bd3245977670b7cd243",
|
||||
"61bf83814088ec1a363d7097",
|
||||
"61a64492ba05ef10d62adcc1",
|
||||
"5a0eb38b86f774153b320eb0"
|
||||
"5a0eb38b86f774153b320eb0",
|
||||
"59e35cbb86f7741778269d83",
|
||||
"5bc9c049d4351e44f824d360",
|
||||
"5d80cbd886f77470855c26c2",
|
||||
"5f745ee30acaeb0d490d8c5b",
|
||||
"573474f924597738002c6174",
|
||||
"577e1c9d2459773cd707c525",
|
||||
"5913611c86f77479e0084092",
|
||||
"5737292724597765e5728562",
|
||||
"5d03794386f77420415576f5",
|
||||
"5a0ec6d286f7742c0b518fb5",
|
||||
"5a144dfd86f77445cb5a0982",
|
||||
"57372ac324597767001bc261",
|
||||
"62a0a043cf4a99369e2624a5",
|
||||
"5da5cdcd86f774529238fb9b",
|
||||
"5a0ee30786f774023b6ee08f",
|
||||
"5c1260dc86f7746b106e8748",
|
||||
"5da743f586f7744014504f72",
|
||||
"5672cb304bdc2dc2088b456a",
|
||||
"61aa5aed32a4743c3453d319",
|
||||
"5d6fc78386f77449d825f9dc"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"59e77a2386f7742ee578960a",
|
||||
@ -2640,7 +2662,7 @@
|
||||
"Eyewear": 0,
|
||||
"ArmBand": 0,
|
||||
"TacticalVest": 0,
|
||||
"Backpack": 91,
|
||||
"Backpack": 92,
|
||||
"FirstPrimaryWeapon": 100,
|
||||
"SecondPrimaryWeapon": 100,
|
||||
"Holster": 0,
|
||||
|
@ -447,7 +447,14 @@
|
||||
"5d40419286f774318526545f",
|
||||
"5751a89d24597722aa0e8db0",
|
||||
"5c06782b86f77426df5407d2",
|
||||
"57347c77245977448d35f6e2"
|
||||
"57347c77245977448d35f6e2",
|
||||
"59faf98186f774067b6be103",
|
||||
"5909e99886f7740c983b9984",
|
||||
"5e2af00086f7746d3f3c33f7",
|
||||
"5e2af02c86f7746d420957d4",
|
||||
"56742c284bdc2d98058b456d",
|
||||
"5b43575a86f77424f443fe62",
|
||||
"59faf7ca86f7740dbe19f6c2"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"5e99711486f7744bfc4af328",
|
||||
@ -2527,9 +2534,9 @@
|
||||
"equipment": {
|
||||
"Headwear": 0,
|
||||
"Earpiece": 26,
|
||||
"FaceCover": 23,
|
||||
"FaceCover": 24,
|
||||
"ArmorVest": 0,
|
||||
"Eyewear": 32,
|
||||
"Eyewear": 31,
|
||||
"ArmBand": 0,
|
||||
"TacticalVest": 0,
|
||||
"Backpack": 100,
|
||||
|
@ -109,8 +109,8 @@
|
||||
},
|
||||
"Earpiece": {},
|
||||
"FaceCover": {
|
||||
"60a7ad2a2198820d95707a2e": 1,
|
||||
"60a7ad3a0c5cb24b0134664a": 1
|
||||
"60a7ad3a0c5cb24b0134664a": 1,
|
||||
"60a7ad2a2198820d95707a2e": 1
|
||||
},
|
||||
"ArmorVest": {},
|
||||
"Eyewear": {},
|
||||
@ -140,8 +140,8 @@
|
||||
},
|
||||
"Ammo": {
|
||||
"Caliber12g": {
|
||||
"5d6e68b3a4b9361bca7e50b5": 1,
|
||||
"5d6e68d1a4b93622fe60e845": 1,
|
||||
"5d6e68b3a4b9361bca7e50b5": 1,
|
||||
"5d6e68a8a4b9360b6c0d54e2": 1,
|
||||
"5d6e6806a4b936088465b17e": 1,
|
||||
"5c0d591486f7744c505b416f": 1,
|
||||
@ -164,12 +164,12 @@
|
||||
"57a9b9ce2459770ee926038d"
|
||||
],
|
||||
"mod_handguard": [
|
||||
"6086b5731246154cad35d6c7",
|
||||
"58272b392459774b4c7b3ccd"
|
||||
"58272b392459774b4c7b3ccd",
|
||||
"6086b5731246154cad35d6c7"
|
||||
],
|
||||
"mod_pistol_grip": [
|
||||
"5649ae4a4bdc2d1b2b8b4588",
|
||||
"5649ade84bdc2d1b2b8b4587"
|
||||
"5649ade84bdc2d1b2b8b4587",
|
||||
"5649ae4a4bdc2d1b2b8b4588"
|
||||
],
|
||||
"mod_muzzle": [
|
||||
"58272d7f2459774f6311ddfd",
|
||||
@ -182,27 +182,14 @@
|
||||
"5cf8f3b0d7f00c00217872ef"
|
||||
]
|
||||
},
|
||||
"6086b5731246154cad35d6c7": {
|
||||
"mod_mount_001": [
|
||||
"6086b5392535c57a13424d70"
|
||||
"58272b392459774b4c7b3ccd": {
|
||||
"mod_scope": [
|
||||
"591c4efa86f7741030027726"
|
||||
],
|
||||
"mod_mount_002": [
|
||||
"6086b5392535c57a13424d70"
|
||||
],
|
||||
"mod_mount_003": [
|
||||
"6086b5392535c57a13424d70"
|
||||
]
|
||||
},
|
||||
"6086b5392535c57a13424d70": {
|
||||
"mod_tactical": [
|
||||
"mod_tactical_001": [
|
||||
"5a5f1ce64f39f90b401987bc"
|
||||
]
|
||||
},
|
||||
"57616ca52459773c69055192": {
|
||||
"mod_stock": [
|
||||
"5a0c59791526d8dba737bba7"
|
||||
]
|
||||
},
|
||||
"583990e32459771419544dd2": {
|
||||
"mod_pistol_grip": [
|
||||
"5649ae4a4bdc2d1b2b8b4588"
|
||||
@ -259,14 +246,27 @@
|
||||
"57fd23e32459772d0805bcf1"
|
||||
]
|
||||
},
|
||||
"58272b392459774b4c7b3ccd": {
|
||||
"mod_scope": [
|
||||
"591c4efa86f7741030027726"
|
||||
"6086b5731246154cad35d6c7": {
|
||||
"mod_mount_001": [
|
||||
"6086b5392535c57a13424d70"
|
||||
],
|
||||
"mod_tactical_001": [
|
||||
"mod_mount_002": [
|
||||
"6086b5392535c57a13424d70"
|
||||
],
|
||||
"mod_mount_003": [
|
||||
"6086b5392535c57a13424d70"
|
||||
]
|
||||
},
|
||||
"6086b5392535c57a13424d70": {
|
||||
"mod_tactical": [
|
||||
"5a5f1ce64f39f90b401987bc"
|
||||
]
|
||||
},
|
||||
"57616ca52459773c69055192": {
|
||||
"mod_stock": [
|
||||
"5a0c59791526d8dba737bba7"
|
||||
]
|
||||
},
|
||||
"5beed0f50db834001c062b12": {
|
||||
"mod_pistol_grip": [
|
||||
"5beec8ea0db834001a6f9dbf"
|
||||
@ -358,8 +358,8 @@
|
||||
"5710c24ad2720bc3458b45a3",
|
||||
"5a0c27731526d80618476ac4",
|
||||
"5ed515e03a40a50460332579",
|
||||
"5755383e24597772cb798966",
|
||||
"5aaa4194e5b5b055d06310a5",
|
||||
"5755383e24597772cb798966",
|
||||
"5a966f51a2750c00156aacf6",
|
||||
"55d482194bdc2d1d4e8b456b",
|
||||
"5c94bbff86f7747ee735c08f"
|
||||
@ -375,23 +375,23 @@
|
||||
"5913915886f774123603c392",
|
||||
"5df8a77486f77412672a1e3f",
|
||||
"5937ee6486f77408994ba448",
|
||||
"5938144586f77473c2087145",
|
||||
"5d235b4d86f7742e017bc88a",
|
||||
"5a13ef0686f7746e5a411744",
|
||||
"591383f186f7744a4c5edcf3",
|
||||
"5a0ee4b586f7743698200d22",
|
||||
"5a13ef0686f7746e5a411744",
|
||||
"5d235b4d86f7742e017bc88a",
|
||||
"5df8a72c86f77412640e2e83",
|
||||
"5938144586f77473c2087145",
|
||||
"63a39f6e64283b5e9c56b289",
|
||||
"63a39cb1c9b3aa4b61683ee2",
|
||||
"5df8a72c86f77412640e2e83",
|
||||
"5734758f24597738025ee253",
|
||||
"63a39cb1c9b3aa4b61683ee2",
|
||||
"59faf7ca86f7740dbe19f6c2",
|
||||
"63a39dfe3901f439517cafba",
|
||||
"59136a4486f774447a1ed172",
|
||||
"593858c486f774253a24cb52",
|
||||
"5780cf722459777a5108b9a1",
|
||||
"5a144dfd86f77445cb5a0982",
|
||||
"5c0d591486f7744c505b416f",
|
||||
"59136e1e86f774432f15d133",
|
||||
"5a144dfd86f77445cb5a0982",
|
||||
"5e54f62086f774219b0f1937",
|
||||
"5780d0652459777df90dcb74",
|
||||
"5d6e6911a4b9361bd5780d52",
|
||||
@ -406,25 +406,25 @@
|
||||
"573478bc24597738002c6175",
|
||||
"591ae8f986f77406f854be45",
|
||||
"5780d07a2459777de4559324",
|
||||
"63a71e781031ac76fe773c7d",
|
||||
"61a64428a8c6aa1b795f0ba1",
|
||||
"63a71e781031ac76fe773c7d",
|
||||
"5d80c88d86f77440556dbf07",
|
||||
"5d6e68dea4b9361bcc29e659",
|
||||
"544fb3f34bdc2d03748b456a",
|
||||
"5938603e86f77435642354f4",
|
||||
"63a39f18c2d53c2c6839c1d3",
|
||||
"5ad7242b86f7740a6a3abd43",
|
||||
"5a0eecf686f7740350630097",
|
||||
"591382d986f774465a6413a7",
|
||||
"5ad7242b86f7740a6a3abd43",
|
||||
"59e3658a86f7741776641ac4",
|
||||
"5913611c86f77479e0084092",
|
||||
"5a0eecf686f7740350630097",
|
||||
"63a39e1d234195315d4020bd",
|
||||
"591afe0186f77431bd616a11",
|
||||
"63a71eb5b7f4570d3a29316b",
|
||||
"5a0ea69f86f7741cd5406619",
|
||||
"61aa81fcb225ac1ead7957c3",
|
||||
"5a0ec70e86f7742c0b518fba",
|
||||
"62987dfc402c7f69bf010923",
|
||||
"5a0ec70e86f7742c0b518fba",
|
||||
"63a39f08cd6db0635c197600",
|
||||
"5af0548586f7743a532b7e99",
|
||||
"5d235a5986f77443f6329bc6",
|
||||
@ -481,7 +481,13 @@
|
||||
"5c1d0f4986f7744bb01837fa",
|
||||
"5a13ee1986f774794d4c14cd",
|
||||
"5d80cbd886f77470855c26c2",
|
||||
"5d80cb3886f77440556dbf09"
|
||||
"5d80cb3886f77440556dbf09",
|
||||
"5d8e0db586f7744450412a42",
|
||||
"5ad5cfbd86f7742c825d6104",
|
||||
"5d8e15b686f774445103b190",
|
||||
"5a0f0f5886f7741c4e32a472",
|
||||
"5d947d3886f774447b415893",
|
||||
"5a13f24186f77410e57c5626"
|
||||
],
|
||||
"Backpack": [
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
@ -535,9 +541,9 @@
|
||||
"5a0eee1486f77402aa773226"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"5d6e68b3a4b9361bca7e50b5",
|
||||
"56dff061d2720bb5668b4567",
|
||||
"5d6e68d1a4b93622fe60e845",
|
||||
"56dff061d2720bb5668b4567",
|
||||
"5d6e68b3a4b9361bca7e50b5",
|
||||
"5d6e68a8a4b9360b6c0d54e2",
|
||||
"5c0d5e4486f77478390952fe",
|
||||
"5d6e6806a4b936088465b17e",
|
||||
@ -2601,15 +2607,15 @@
|
||||
"mod_stock": 100,
|
||||
"mod_magazine": 100,
|
||||
"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_002": 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_mount": 100,
|
||||
"mod_sight_front": 0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -109,16 +109,16 @@
|
||||
"5a43957686f7742a2c2f11b0": 1
|
||||
},
|
||||
"Earpiece": {
|
||||
"628e4e576d783146b124c64d": 1,
|
||||
"5645bcc04bdc2d363b8b4572": 1
|
||||
"5645bcc04bdc2d363b8b4572": 1,
|
||||
"628e4e576d783146b124c64d": 1
|
||||
},
|
||||
"FaceCover": {
|
||||
"62a61bbf8ec41a51b34758d2": 1
|
||||
},
|
||||
"ArmorVest": {},
|
||||
"Eyewear": {
|
||||
"62a61c988ec41a51b34758d5": 1,
|
||||
"603409c80ca681766b6a0fb2": 1
|
||||
"603409c80ca681766b6a0fb2": 1,
|
||||
"62a61c988ec41a51b34758d5": 1
|
||||
},
|
||||
"ArmBand": {},
|
||||
"TacticalVest": {
|
||||
@ -129,9 +129,9 @@
|
||||
"5fbcc1d9016cce60e8341ab3": 1
|
||||
},
|
||||
"SecondPrimaryWeapon": {
|
||||
"5e81ebcd8e146c7080625e15": 1,
|
||||
"5a7828548dc32e5a9c28b516": 1,
|
||||
"6275303a9f372d6ea97f9ec7": 1
|
||||
"6275303a9f372d6ea97f9ec7": 1,
|
||||
"5e81ebcd8e146c7080625e15": 1
|
||||
},
|
||||
"Holster": {
|
||||
"5f36a0e5fbf956000b716b65": 1
|
||||
@ -151,16 +151,16 @@
|
||||
"619636be6db0f2477964e710": 1,
|
||||
"5fd20ff893a8961fc660a954": 1
|
||||
},
|
||||
"Caliber40x46": {
|
||||
"5ede474b0c226a66f5402622": 1,
|
||||
"5f0c892565703e5c461894e9": 1
|
||||
"Caliber12g": {
|
||||
"5d6e6911a4b9361bd5780d52": 1
|
||||
},
|
||||
"Caliber1143x23ACP": {
|
||||
"5efb0cabfb3e451d70735af5": 1,
|
||||
"5e81f423763d9f754677bf2e": 1
|
||||
},
|
||||
"Caliber12g": {
|
||||
"5d6e6911a4b9361bd5780d52": 1
|
||||
"Caliber40x46": {
|
||||
"5f0c892565703e5c461894e9": 1,
|
||||
"5ede474b0c226a66f5402622": 1
|
||||
}
|
||||
},
|
||||
"mods": {
|
||||
@ -246,15 +246,36 @@
|
||||
"57d17c5e2459775a5c57d17d"
|
||||
]
|
||||
},
|
||||
"5e81ebcd8e146c7080625e15": {
|
||||
"mod_pistol_grip": [
|
||||
"571659bb2459771fb2755a12"
|
||||
"5a7828548dc32e5a9c28b516": {
|
||||
"mod_barrel": [
|
||||
"5a787fdfc5856700142fdd9a"
|
||||
],
|
||||
"mod_handguard": [
|
||||
"5a788089c5856700142fdd9c"
|
||||
],
|
||||
"mod_stock": [
|
||||
"5bfe86a20db834001d23e8f7"
|
||||
],
|
||||
"mod_mount": [
|
||||
"5a7893c1c585673f2b5c374d"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5a7882dcc5856700177af662"
|
||||
]
|
||||
},
|
||||
"5bfe86a20db834001d23e8f7": {
|
||||
"mod_stock": [
|
||||
"5bfe86bd0db83400232fe959"
|
||||
]
|
||||
},
|
||||
"5a7893c1c585673f2b5c374d": {
|
||||
"mod_scope": [
|
||||
"6284bd5f95250a29bc628a30"
|
||||
],
|
||||
"patron_in_weapon": [
|
||||
"5ede474b0c226a66f5402622"
|
||||
"5a33b2c9c4a282000c5a9511"
|
||||
]
|
||||
},
|
||||
"5a33b2c9c4a282000c5a9511": {
|
||||
"mod_scope": [
|
||||
"5a32aa8bc4a2826c6e06d737"
|
||||
]
|
||||
},
|
||||
"5f36a0e5fbf956000b716b65": {
|
||||
@ -288,38 +309,6 @@
|
||||
"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": {
|
||||
"mod_pistol_grip": [
|
||||
"5bb20e18d4351e00320205d5"
|
||||
@ -353,28 +342,39 @@
|
||||
"camora_005": [
|
||||
"5f0c892565703e5c461894e9"
|
||||
]
|
||||
},
|
||||
"5e81ebcd8e146c7080625e15": {
|
||||
"mod_pistol_grip": [
|
||||
"571659bb2459771fb2755a12"
|
||||
],
|
||||
"mod_scope": [
|
||||
"6284bd5f95250a29bc628a30"
|
||||
],
|
||||
"patron_in_weapon": [
|
||||
"5ede474b0c226a66f5402622"
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": {
|
||||
"TacticalVest": [
|
||||
"5c6d46132e221601da357d56",
|
||||
"5ede474b0c226a66f5402622",
|
||||
"5ef3448ab37dfd6af863525c",
|
||||
"544fb45d4bdc2dee738b4568",
|
||||
"619256e5f8af2c1a4e1f5d92",
|
||||
"5d1340cad7ad1a0b0b249869",
|
||||
"5f0c892565703e5c461894e9"
|
||||
"5f0c892565703e5c461894e9",
|
||||
"5ef3448ab37dfd6af863525c",
|
||||
"5ede474b0c226a66f5402622"
|
||||
],
|
||||
"Pockets": [
|
||||
"5ede474b0c226a66f5402622",
|
||||
"5d6e6911a4b9361bd5780d52",
|
||||
"5ef3448ab37dfd6af863525c",
|
||||
"58d3db5386f77426186285a0",
|
||||
"5913915886f774123603c392",
|
||||
"5f0c892565703e5c461894e9",
|
||||
"5ede474b0c226a66f5402622",
|
||||
"544fb3f34bdc2d03748b456a",
|
||||
"5448be9a4bdc2dfd2f8b456a",
|
||||
"57514643245977207f2c2d09",
|
||||
"5913915886f774123603c392",
|
||||
"5f0c892565703e5c461894e9",
|
||||
"5672c92d4bdc2d180f8b4567",
|
||||
"5755383e24597772cb798966",
|
||||
"57a349b2245977762b199ec7",
|
||||
@ -382,18 +382,18 @@
|
||||
"5df8a6a186f77412640e2e80",
|
||||
"5780cf692459777de4559321",
|
||||
"5780d0532459777a5108b9a2",
|
||||
"5a0ee76686f7743698200d5c",
|
||||
"5e42c83786f7742a021fdf3c",
|
||||
"5938144586f77473c2087145",
|
||||
"5a0ee76686f7743698200d5c",
|
||||
"5c1d0dc586f7744baf2e7b79",
|
||||
"5938144586f77473c2087145",
|
||||
"5780cf942459777df90dcb72",
|
||||
"5913651986f774432f15d132",
|
||||
"544fb37f4bdc2dee738b4567",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"5938603e86f77435642354f4",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"63a39ce4cd6db0635c1975fa",
|
||||
"5e42c81886f7742a01529f57",
|
||||
"591afe0186f77431bd616a11",
|
||||
"5e42c81886f7742a01529f57",
|
||||
"63a39e1d234195315d4020bd",
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
"5ad5d20586f77449be26d877",
|
||||
@ -464,16 +464,21 @@
|
||||
"63a39fd1c9b3aa4b61683efb",
|
||||
"5a145d4786f7744cbb6f4a12",
|
||||
"5d95d6fa86f77424484aa5e9",
|
||||
"62987e26a77ec735f90a2995"
|
||||
"62987e26a77ec735f90a2995",
|
||||
"5ad5d64486f774079b080af8",
|
||||
"5d80c60f86f77440373c4ece",
|
||||
"5a0eeb8e86f77461257ed71a",
|
||||
"59136a4486f774447a1ed172",
|
||||
"5d8e3ecc86f774414c78d05e"
|
||||
],
|
||||
"Backpack": [],
|
||||
"SecuredContainer": [
|
||||
"619636be6db0f2477964e710",
|
||||
"5ede474b0c226a66f5402622",
|
||||
"5efb0cabfb3e451d70735af5",
|
||||
"5d6e6911a4b9361bd5780d52",
|
||||
"5efb0cabfb3e451d70735af5",
|
||||
"5fd20ff893a8961fc660a954",
|
||||
"5f0c892565703e5c461894e9",
|
||||
"5ede474b0c226a66f5402622",
|
||||
"5e81f423763d9f754677bf2e"
|
||||
],
|
||||
"SpecialLoot": []
|
||||
@ -2427,7 +2432,7 @@
|
||||
"equipment": {
|
||||
"Headwear": 100,
|
||||
"Earpiece": 100,
|
||||
"FaceCover": 50,
|
||||
"FaceCover": 49,
|
||||
"ArmorVest": 0,
|
||||
"Eyewear": 100,
|
||||
"ArmBand": 0,
|
||||
|
@ -115,8 +115,8 @@
|
||||
"628bc7fb408e2b2e9c0801b1": 1
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"5df8ce05b11454561e39243b": 1,
|
||||
"5bfea6e90db834001b7347f3": 1,
|
||||
"5df8ce05b11454561e39243b": 1,
|
||||
"5a367e5dc4a282000e49738f": 1
|
||||
},
|
||||
"SecondPrimaryWeapon": {
|
||||
@ -135,8 +135,8 @@
|
||||
},
|
||||
"Ammo": {
|
||||
"Caliber762x51": {
|
||||
"58dd3ad986f77403051cba8f": 1,
|
||||
"5a6086ea4f39f99cd479502f": 1,
|
||||
"58dd3ad986f77403051cba8f": 1,
|
||||
"5e023e53d4353e3302577c4c": 1,
|
||||
"5efb0c1bd79ff02a1f5e68d9": 1
|
||||
},
|
||||
@ -188,79 +188,56 @@
|
||||
}
|
||||
},
|
||||
"mods": {
|
||||
"5df8ce05b11454561e39243b": {
|
||||
"mod_pistol_grip": [
|
||||
"57af48872459771f0b2ebf11"
|
||||
"5bfea6e90db834001b7347f3": {
|
||||
"mod_stock": [
|
||||
"5cde739cd7f00c0010373bd3"
|
||||
],
|
||||
"mod_barrel": [
|
||||
"5bfebc320db8340019668d79"
|
||||
],
|
||||
"mod_mount": [
|
||||
"5cde7b43d7f00c000d36b93e"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5d25a6538abbc306c62e630d"
|
||||
]
|
||||
},
|
||||
"5cde739cd7f00c0010373bd3": {
|
||||
"mod_stock": [
|
||||
"5649be884bdc2d79388b4577"
|
||||
],
|
||||
"mod_reciever": [
|
||||
"5df8e4080b92095fd441e594"
|
||||
"mod_pistol_grip": [
|
||||
"5a339805c4a2826c6e06d73d"
|
||||
],
|
||||
"mod_charge": [
|
||||
"5df8e085bb49d91fb446d6a8"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5df8f541c41b2312ea3335e3"
|
||||
"mod_handguard": [
|
||||
"5cde7afdd7f00c000d36b89d"
|
||||
]
|
||||
},
|
||||
"5649be884bdc2d79388b4577": {
|
||||
"mod_stock_000": [
|
||||
"5fc2369685fd526b824a5713",
|
||||
"5d4406a8a4b9361e4f6eb8b7",
|
||||
"5d135ecbd7ad1a21c176542e",
|
||||
"5d4406a8a4b9361e4f6eb8b7"
|
||||
"5fc2369685fd526b824a5713"
|
||||
]
|
||||
},
|
||||
"5df8e4080b92095fd441e594": {
|
||||
"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": {
|
||||
"5bfebc320db8340019668d79": {
|
||||
"mod_muzzle": [
|
||||
"6130c43c67085e45ef1405a1"
|
||||
],
|
||||
"mod_gas_block": [
|
||||
"5dfa3d45dfc58d14537c20b0"
|
||||
"5d1f819086f7744b355c219b"
|
||||
]
|
||||
},
|
||||
"6130c43c67085e45ef1405a1": {
|
||||
"5d1f819086f7744b355c219b": {
|
||||
"mod_muzzle": [
|
||||
"5dfa3d2b0dee1b22f862eade"
|
||||
"5cff9e84d7ad1a049e54ed55"
|
||||
]
|
||||
},
|
||||
"5df916dfbb49d91fb446d6b9": {
|
||||
"mod_tactical": [
|
||||
"544909bb4bdc2d6f028b4577"
|
||||
],
|
||||
"mod_sight_front": [
|
||||
"5dfa3d950dee1b22f862eae0"
|
||||
],
|
||||
"mod_foregrip": [
|
||||
"57cffcd624597763133760c5"
|
||||
"5cde7b43d7f00c000d36b93e": {
|
||||
"mod_scope": [
|
||||
"5aa66a9be5b5b0214e506e89"
|
||||
]
|
||||
},
|
||||
"5aa66a9be5b5b0214e506e89": {
|
||||
"mod_scope": [
|
||||
"61714eec290d254f5e6b2ffc"
|
||||
]
|
||||
},
|
||||
"5447a9cd4bdc2dbd208b4567": {
|
||||
@ -364,49 +341,72 @@
|
||||
"5cadd919ae921500126a77f3"
|
||||
]
|
||||
},
|
||||
"5bfea6e90db834001b7347f3": {
|
||||
"mod_stock": [
|
||||
"5cde739cd7f00c0010373bd3"
|
||||
"5df8ce05b11454561e39243b": {
|
||||
"mod_pistol_grip": [
|
||||
"57af48872459771f0b2ebf11"
|
||||
],
|
||||
"mod_barrel": [
|
||||
"5bfebc320db8340019668d79"
|
||||
],
|
||||
"mod_mount": [
|
||||
"5cde7b43d7f00c000d36b93e"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5d25a6538abbc306c62e630d"
|
||||
]
|
||||
},
|
||||
"5cde739cd7f00c0010373bd3": {
|
||||
"mod_stock": [
|
||||
"5649be884bdc2d79388b4577"
|
||||
],
|
||||
"mod_pistol_grip": [
|
||||
"5a339805c4a2826c6e06d73d"
|
||||
"mod_reciever": [
|
||||
"5df8e4080b92095fd441e594"
|
||||
],
|
||||
"mod_charge": [
|
||||
"5df8e085bb49d91fb446d6a8"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"5df8f541c41b2312ea3335e3"
|
||||
]
|
||||
},
|
||||
"5df8e4080b92095fd441e594": {
|
||||
"mod_scope": [
|
||||
"618bab21526131765025ab3f"
|
||||
],
|
||||
"mod_barrel": [
|
||||
"5df917564a9f347bc92edca3"
|
||||
],
|
||||
"mod_handguard": [
|
||||
"5cde7afdd7f00c000d36b89d"
|
||||
"5df916dfbb49d91fb446d6b9"
|
||||
],
|
||||
"mod_sight_rear": [
|
||||
"5dfa3d7ac41b2312ea33362a"
|
||||
]
|
||||
},
|
||||
"5bfebc320db8340019668d79": {
|
||||
"mod_muzzle": [
|
||||
"5d1f819086f7744b355c219b"
|
||||
]
|
||||
},
|
||||
"5d1f819086f7744b355c219b": {
|
||||
"mod_muzzle": [
|
||||
"5cff9e84d7ad1a049e54ed55"
|
||||
]
|
||||
},
|
||||
"5cde7b43d7f00c000d36b93e": {
|
||||
"618bab21526131765025ab3f": {
|
||||
"mod_scope": [
|
||||
"5aa66a9be5b5b0214e506e89"
|
||||
"618ba27d9008e4636a67f61d"
|
||||
],
|
||||
"mod_mount": [
|
||||
"618ba92152ecee1505530bd3"
|
||||
]
|
||||
},
|
||||
"5aa66a9be5b5b0214e506e89": {
|
||||
"618ba92152ecee1505530bd3": {
|
||||
"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": {
|
||||
@ -480,9 +480,9 @@
|
||||
},
|
||||
"items": {
|
||||
"TacticalVest": [
|
||||
"5df8f541c41b2312ea3335e3",
|
||||
"5d1340b3d7ad1a0b52682ed7",
|
||||
"5d25a6538abbc306c62e630d",
|
||||
"5d1340b3d7ad1a0b52682ed7",
|
||||
"5df8f541c41b2312ea3335e3",
|
||||
"5a3501acc4a282000d72293a",
|
||||
"59c1383d86f774290a37e0ca"
|
||||
],
|
||||
@ -493,21 +493,21 @@
|
||||
"5df8a77486f77412672a1e3f"
|
||||
],
|
||||
"Backpack": [
|
||||
"5649ed104bdc2d3d1c8b458b",
|
||||
"5d0375ff86f774186372f685",
|
||||
"590c31c586f774245e3141b2",
|
||||
"59e3596386f774176c10a2a2",
|
||||
"590a3efd86f77437d351a25b",
|
||||
"5d0379a886f77420407aa271",
|
||||
"5649ed104bdc2d3d1c8b458b",
|
||||
"5913611c86f77479e0084092",
|
||||
"59136a4486f774447a1ed172",
|
||||
"5737339e2459776af261abeb",
|
||||
"5c06779c86f77426e00dd782",
|
||||
"573478bc24597738002c6175",
|
||||
"62a0a098de7ac8199358053b",
|
||||
"5c06782b86f77426df5407d2",
|
||||
"5d1b2ffd86f77425243e8d17",
|
||||
"5c94bbff86f7747ee735c08f",
|
||||
"5737339e2459776af261abeb",
|
||||
"5c06779c86f77426e00dd782",
|
||||
"573478bc24597738002c6175",
|
||||
"5937ee6486f77408994ba448",
|
||||
"590a3c0a86f774385a33c450",
|
||||
"5e2af51086f7746d3f3c3402",
|
||||
@ -524,48 +524,48 @@
|
||||
"5d1b3f2d86f774253763b735",
|
||||
"5780cda02459777b272ede61",
|
||||
"57372fc52459776998772ca1",
|
||||
"5a0eecf686f7740350630097",
|
||||
"573726d824597765d96be361",
|
||||
"5f745ee30acaeb0d490d8c5b",
|
||||
"5e2af22086f7746d3f3c33fa",
|
||||
"590c346786f77423e50ed342",
|
||||
"59e35cbb86f7741778269d83",
|
||||
"5938603e86f77435642354f4",
|
||||
"5a0eecf686f7740350630097",
|
||||
"57347cd0245977445a2d6ff1",
|
||||
"5e54f62086f774219b0f1937",
|
||||
"62a09cb7a04c0c5c6e0a84f8",
|
||||
"5938603e86f77435642354f4",
|
||||
"61bf7b6302b3924be92fa8c3",
|
||||
"593aa4be86f77457f56379f8",
|
||||
"59148f8286f7741b951ea113",
|
||||
"5e2af37686f774755a234b65",
|
||||
"619cbf476b8a1b37a54eebf8",
|
||||
"5c1265fc86f7743f896a21c2",
|
||||
"5d1b313086f77425227d1678",
|
||||
"593aa4be86f77457f56379f8",
|
||||
"59148f8286f7741b951ea113",
|
||||
"57372e4a24597768553071c2",
|
||||
"5e2aee0a86f774755a234b62",
|
||||
"5938994586f774523a425196",
|
||||
"573475fb24597737fb1379e1",
|
||||
"57347c93245977448d35f6e3",
|
||||
"5bc9c377d4351e3bac12251b",
|
||||
"5d1c819a86f774771b0acd6c",
|
||||
"573475fb24597737fb1379e1",
|
||||
"57347c93245977448d35f6e3",
|
||||
"591382d986f774465a6413a7",
|
||||
"5bc9c049d4351e44f824d360",
|
||||
"619cc01e0a7c3a1a2731940c",
|
||||
"5672cb304bdc2dc2088b456a",
|
||||
"591382d986f774465a6413a7",
|
||||
"56742c284bdc2d98058b456d",
|
||||
"5e2af4a786f7746d3f3c3400",
|
||||
"5e2af47786f7746d404f3aaa",
|
||||
"57372deb245977685d4159b3",
|
||||
"63a39e1d234195315d4020bd",
|
||||
"573725b0245977612125bae2",
|
||||
"59e35de086f7741778269d84",
|
||||
"5d95d6be86f77424444eb3a7",
|
||||
"5ad5d7d286f77450166e0a89",
|
||||
"573725b0245977612125bae2",
|
||||
"59e35de086f7741778269d84",
|
||||
"5b43575a86f77424f443fe62",
|
||||
"59faf7ca86f7740dbe19f6c2",
|
||||
"59136f6f86f774447a1ed173",
|
||||
"5737273924597765dd374461",
|
||||
"591383f186f7744a4c5edcf3",
|
||||
"59136f6f86f774447a1ed173",
|
||||
"57a349b2245977762b199ec7",
|
||||
"5914578086f774123569ffa4",
|
||||
"5d80ca9086f774403a401e40",
|
||||
@ -592,14 +592,14 @@
|
||||
"5da5cdcd86f774529238fb9b",
|
||||
"5a13f35286f77413ef1436b0",
|
||||
"5d235b4d86f7742e017bc88a",
|
||||
"57372db0245977685d4159b2",
|
||||
"590c2e1186f77425357b6124",
|
||||
"57372db0245977685d4159b2",
|
||||
"57372bd3245977670b7cd243",
|
||||
"5c12619186f7743f871c8a32",
|
||||
"61aa5ba8018e9821b7368da9",
|
||||
"60b0f561c4449e4cb624c1d7",
|
||||
"5d6fc78386f77449d825f9dc",
|
||||
"5733279d245977289b77ec24",
|
||||
"5c12619186f7743f871c8a32",
|
||||
"61aa5ba8018e9821b7368da9",
|
||||
"59e35ef086f7741777737012",
|
||||
"5e2af02c86f7746d420957d4",
|
||||
"5672c92d4bdc2d180f8b4567",
|
||||
@ -653,16 +653,16 @@
|
||||
"5bc9b9ecd4351e3bac122519",
|
||||
"59e3556c86f7741776641ac2",
|
||||
"5780cfa52459777dfb276eb1",
|
||||
"5eff09cd30a7dc22fd1ddfed",
|
||||
"59136e1e86f774432f15d133",
|
||||
"5ad5db3786f7743568421cce",
|
||||
"5eff09cd30a7dc22fd1ddfed",
|
||||
"590a3cd386f77436f20848cb",
|
||||
"63a71e781031ac76fe773c7d",
|
||||
"63a39df18a56922e82001f25",
|
||||
"5d80cb3886f77440556dbf09",
|
||||
"5d80c95986f77440351beef3",
|
||||
"63a39fc0af870e651d58e6ae",
|
||||
"5d1b3a5d86f774252167ba22",
|
||||
"63a39fc0af870e651d58e6ae",
|
||||
"5a0ee4b586f7743698200d22",
|
||||
"590a3d9c86f774385926e510",
|
||||
"590c2c9c86f774245b1f03f2",
|
||||
@ -681,10 +681,10 @@
|
||||
"5a144bdb86f7741d374bbde0",
|
||||
"5ede7a8229445733cb4c18e2",
|
||||
"59e3658a86f7741776641ac4",
|
||||
"590a386e86f77429692b27ab",
|
||||
"5e2af29386f7746d4159f077",
|
||||
"5a0ee34586f774023b6ee092",
|
||||
"590a386e86f77429692b27ab",
|
||||
"5d80c78786f774403a401e3e",
|
||||
"5a0ee34586f774023b6ee092",
|
||||
"5a13ef7e86f7741290491063",
|
||||
"5737256c2459776125652acd",
|
||||
"5e2af4d286f7746d4159f07a",
|
||||
@ -785,8 +785,8 @@
|
||||
"57372c89245977685d4159b1",
|
||||
"5ad7247386f7747487619dc3",
|
||||
"63a39dfe3901f439517cafba",
|
||||
"5c1d0efb86f7744baf2e7b7b",
|
||||
"5a0ea64786f7741707720468",
|
||||
"5c1d0efb86f7744baf2e7b7b",
|
||||
"5d1b385e86f774252167b98a",
|
||||
"5d8e15b686f774445103b190",
|
||||
"5d80c88d86f77440556dbf07",
|
||||
@ -809,13 +809,23 @@
|
||||
"590c5bbd86f774785762df04",
|
||||
"60b0f7057897d47c5b04ab94",
|
||||
"59387a4986f77401cc236e62",
|
||||
"5d80c6fc86f774403a401e3c"
|
||||
"5d80c6fc86f774403a401e3c",
|
||||
"5d0378d486f77420421a5ff4",
|
||||
"63a39ce4cd6db0635c1975fa",
|
||||
"5a0f0f5886f7741c4e32a472",
|
||||
"5d63d33b86f7746ea9275524",
|
||||
"5c12620d86f7743f8b198b72",
|
||||
"5da743f586f7744014504f72",
|
||||
"5d40419286f774318526545f",
|
||||
"5d947d4e86f774447b415895",
|
||||
"57372e73245977685d4159b4",
|
||||
"5d235a5986f77443f6329bc6"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"58dd3ad986f77403051cba8f",
|
||||
"5a6086ea4f39f99cd479502f",
|
||||
"54527ac44bdc2d36668b4567",
|
||||
"56d59d3ad2720bdb418b4577",
|
||||
"5a6086ea4f39f99cd479502f",
|
||||
"58dd3ad986f77403051cba8f",
|
||||
"5e023e53d4353e3302577c4c",
|
||||
"5efb0c1bd79ff02a1f5e68d9",
|
||||
"60194943740c5d77f6705eea",
|
||||
@ -2841,19 +2851,19 @@
|
||||
},
|
||||
"mods": {
|
||||
"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_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_004": 0,
|
||||
"mod_scope_000": 100,
|
||||
|
@ -430,7 +430,10 @@
|
||||
"62a09cfe4f842e1bd12da3e4",
|
||||
"590de7e986f7741b096e5f32",
|
||||
"5d235a5986f77443f6329bc6",
|
||||
"5bc9bdb8d4351e003562b8a1"
|
||||
"5bc9bdb8d4351e003562b8a1",
|
||||
"59e3658a86f7741776641ac4",
|
||||
"5734758f24597738025ee253",
|
||||
"5bc9bc53d4351e00367fbcee"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"56dff061d2720bb5668b4567",
|
||||
@ -2397,16 +2400,16 @@
|
||||
"equipment": {
|
||||
"Headwear": 83,
|
||||
"Earpiece": 0,
|
||||
"FaceCover": 17,
|
||||
"ArmorVest": 76,
|
||||
"FaceCover": 16,
|
||||
"ArmorVest": 77,
|
||||
"Eyewear": 62,
|
||||
"ArmBand": 0,
|
||||
"TacticalVest": 100,
|
||||
"Backpack": 23,
|
||||
"Backpack": 24,
|
||||
"FirstPrimaryWeapon": 100,
|
||||
"SecondPrimaryWeapon": 0,
|
||||
"Holster": 0,
|
||||
"Scabbard": 5,
|
||||
"Scabbard": 6,
|
||||
"Pockets": 100,
|
||||
"SecuredContainer": 100
|
||||
},
|
||||
@ -2426,7 +2429,7 @@
|
||||
"mod_equipment": 15,
|
||||
"mod_sight_front": 0,
|
||||
"mod_mount_001": 0,
|
||||
"mod_mount_002": 67,
|
||||
"mod_mount_002": 66,
|
||||
"mod_mount": 0,
|
||||
"mod_nvg": 0,
|
||||
"mod_tactical": 68
|
||||
|
@ -639,7 +639,20 @@
|
||||
"5d1b32c186f774252167a530",
|
||||
"5d40425986f7743185265461",
|
||||
"590c595c86f7747884343ad7",
|
||||
"5734781f24597737e04bf32a"
|
||||
"5734781f24597737e04bf32a",
|
||||
"5d0377ce86f774186372f689",
|
||||
"5bc9c049d4351e44f824d360",
|
||||
"590c2b4386f77425357b6123",
|
||||
"59faf98186f774067b6be103",
|
||||
"637b60c3b7afa97bfc3d7001",
|
||||
"63a0b208f444d32d6f03ea1e",
|
||||
"5e54f62086f774219b0f1937",
|
||||
"577e1c9d2459773cd707c525",
|
||||
"5bc9b720d4351e450201234b",
|
||||
"590c2d8786f774245b1f03f3",
|
||||
"590c661e86f7741e566b646a",
|
||||
"590a3efd86f77437d351a25b",
|
||||
"573478bc24597738002c6175"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"5e023e88277cce2b522ff2b1",
|
||||
@ -2658,7 +2671,7 @@
|
||||
"Eyewear": 0,
|
||||
"ArmBand": 0,
|
||||
"TacticalVest": 100,
|
||||
"Backpack": 88,
|
||||
"Backpack": 87,
|
||||
"FirstPrimaryWeapon": 100,
|
||||
"SecondPrimaryWeapon": 93,
|
||||
"Holster": 0,
|
||||
@ -2678,11 +2691,11 @@
|
||||
"mod_tactical_002": 16,
|
||||
"mod_tactical_003": 0,
|
||||
"mod_scope": 56,
|
||||
"mod_tactical_000": 63,
|
||||
"mod_tactical_000": 64,
|
||||
"mod_nvg": 100,
|
||||
"mod_mount_001": 8,
|
||||
"mod_mount_001": 9,
|
||||
"mod_stock": 100,
|
||||
"mod_mount_002": 72,
|
||||
"mod_mount_002": 71,
|
||||
"mod_sight_front": 56,
|
||||
"mod_foregrip": 0,
|
||||
"mod_charge": 0,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -180,8 +180,8 @@
|
||||
"5fd4c60f875c30179f5d04c2": 1,
|
||||
"5f5f41f56760b4138443b352": 1,
|
||||
"61bc85697113f767765c7fe7": 1,
|
||||
"60a3c68c37ea821725773ef5": 1,
|
||||
"60a621c49c197e4e8c4455e6": 1,
|
||||
"60a3c68c37ea821725773ef5": 1,
|
||||
"639343fce101f4caa40a4ef3": 1,
|
||||
"628d0618d1ba6e4fa07ce5a4": 1
|
||||
},
|
||||
@ -1200,6 +1200,11 @@
|
||||
"5a32aa8bc4a2826c6e06d737"
|
||||
]
|
||||
},
|
||||
"5cf67cadd7f00c065a5abab7": {
|
||||
"mod_muzzle": [
|
||||
"5cc9ad73d7f00c000e2579d4"
|
||||
]
|
||||
},
|
||||
"5bb2475ed4351e00853264e3": {
|
||||
"mod_pistol_grip": [
|
||||
"57af48872459771f0b2ebf11"
|
||||
@ -1252,11 +1257,6 @@
|
||||
"5bb20e70d4351e0035629f8f"
|
||||
]
|
||||
},
|
||||
"5cf67cadd7f00c065a5abab7": {
|
||||
"mod_muzzle": [
|
||||
"5cc9ad73d7f00c000e2579d4"
|
||||
]
|
||||
},
|
||||
"5bd70322209c4d00d7167b8f": {
|
||||
"mod_muzzle": [
|
||||
"5ba26acdd4351e003562908e"
|
||||
@ -1779,13 +1779,13 @@
|
||||
"5aa2a7e8e5b5b00016327c16",
|
||||
"5df8a72c86f77412640e2e83",
|
||||
"573478bc24597738002c6175",
|
||||
"5aaf8a0be5b5b00015693243",
|
||||
"5ae30bad5acfc400185c2dc4",
|
||||
"5e00c1ad86f774747333222c",
|
||||
"5b7be4575acfc400161d0832",
|
||||
"5bed61680db834001d2c45ab",
|
||||
"5a16ba61fcdbcb098008728a",
|
||||
"5b4326435acfc433000ed01d",
|
||||
"5aaf8a0be5b5b00015693243",
|
||||
"5ae30bad5acfc400185c2dc4",
|
||||
"5b432be65acfc433000ed01f",
|
||||
"61c18d83b00456371a66814b",
|
||||
"5e01ef6886f77445f643baa4",
|
||||
@ -1876,9 +1876,9 @@
|
||||
"5b7d645e5acfc400170e2f90",
|
||||
"59ecc3dd86f7746dc827481c",
|
||||
"5c0e53c886f7747fa54205c7",
|
||||
"591c4e1186f77410354b316e",
|
||||
"5ed515ece452db0eb56fc028",
|
||||
"59e7635f86f7742cbf2c1095",
|
||||
"591c4e1186f77410354b316e",
|
||||
"5abcd472d8ce8700166032ae",
|
||||
"5c4ee3d62e2216152006f302",
|
||||
"5bb20dadd4351e00367faeff",
|
||||
@ -1890,10 +1890,10 @@
|
||||
"57cffb66245977632f391a99",
|
||||
"5a16bb52fcdbcb001a3b00dc",
|
||||
"5943eeeb86f77412d6384f6b",
|
||||
"5ea17ca01412a1425304d1c0",
|
||||
"62a5c41e8ec41a51b34739c3",
|
||||
"5a7b4900e899ef197b331a2a",
|
||||
"5c05293e0db83400232fff80",
|
||||
"5ea17ca01412a1425304d1c0",
|
||||
"62a5c41e8ec41a51b34739c3",
|
||||
"5e54f62086f774219b0f1937",
|
||||
"607d5a891246154cad35d6aa",
|
||||
"5bed625c0db834001c062946",
|
||||
@ -1920,12 +1920,12 @@
|
||||
"611a30addbdd8440277441dc",
|
||||
"5926f2e086f7745aae644231",
|
||||
"5ae30db85acfc408fb139a05",
|
||||
"5b40e61f5acfc4001a599bec",
|
||||
"5a7dbfc1159bd40016548fde",
|
||||
"6194f5a318a3974e5e7421eb",
|
||||
"5c503ac82e221602b21d6e9a",
|
||||
"59e89d0986f77427600d226e",
|
||||
"62a5c333ec21e50cad3b5dc6",
|
||||
"5b40e61f5acfc4001a599bec",
|
||||
"62a09cfe4f842e1bd12da3e4",
|
||||
"62a61c988ec41a51b34758d5",
|
||||
"59ccfdba86f7747f2109a587",
|
||||
@ -1978,7 +1978,18 @@
|
||||
"62e7e7bbe6da9612f743f1e0",
|
||||
"5fb655b748c711690e3a8d5a",
|
||||
"5a7b4960e899ef197b331a2d",
|
||||
"5c052a900db834001a66acbd"
|
||||
"5c052a900db834001a66acbd",
|
||||
"5bb20e70d4351e0035629f8f",
|
||||
"5b7d68af5acfc400170e30c3",
|
||||
"5d19cd96d7ad1a4a992c9f52",
|
||||
"5aa2b9ede5b5b000137b758b",
|
||||
"59f99a7d86f7745b134aa97b",
|
||||
"58949dea86f77409483e16a8",
|
||||
"5cf518cfd7f00c065b422214",
|
||||
"638db77630c4240f9e06f8b6",
|
||||
"5c6d11072e2216000e69d2e4",
|
||||
"637b6251104668754b72f8f9",
|
||||
"59e7711e86f7746cae05fbe1"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"5a3c16fe86f77452b62de32a",
|
||||
@ -2003,12 +2014,12 @@
|
||||
"54527ac44bdc2d36668b4567",
|
||||
"5c0d668f86f7747ccb7f13b2",
|
||||
"56dff061d2720bb5668b4567",
|
||||
"5c0d5e4486f77478390952fe",
|
||||
"5c0d5ae286f7741e46554302",
|
||||
"5efb0e16aeb21837e749c7ff",
|
||||
"5ba26835d4351e0035628ff5",
|
||||
"57a0e5022459774d1673f889",
|
||||
"5efb0c1bd79ff02a1f5e68d9",
|
||||
"5c0d5e4486f77478390952fe",
|
||||
"56dfef82d2720bbd668b4567",
|
||||
"5e023e53d4353e3302577c4c",
|
||||
"5fbe3ffdf8b6a877a729ea82",
|
||||
@ -2077,11 +2088,11 @@
|
||||
"Ворон",
|
||||
"Барс",
|
||||
"Крачун",
|
||||
"Орел",
|
||||
"Ягуар",
|
||||
"Каракурт",
|
||||
"Тайпан",
|
||||
"Дикобраз",
|
||||
"Орел",
|
||||
"Гепард",
|
||||
"Ирбис",
|
||||
"Манул"
|
||||
@ -4028,10 +4039,10 @@
|
||||
"chances": {
|
||||
"equipment": {
|
||||
"Headwear": 90,
|
||||
"Earpiece": 53,
|
||||
"FaceCover": 64,
|
||||
"Earpiece": 52,
|
||||
"FaceCover": 65,
|
||||
"ArmorVest": 35,
|
||||
"Eyewear": 78,
|
||||
"Eyewear": 77,
|
||||
"ArmBand": 0,
|
||||
"TacticalVest": 100,
|
||||
"Backpack": 46,
|
||||
@ -4051,11 +4062,11 @@
|
||||
"mod_sight_front": 85,
|
||||
"mod_mount_000": 17,
|
||||
"mod_mount_001": 48,
|
||||
"mod_mount_002": 14,
|
||||
"mod_mount_002": 15,
|
||||
"mod_foregrip": 27,
|
||||
"mod_muzzle": 36,
|
||||
"mod_mount": 37,
|
||||
"mod_tactical_001": 39,
|
||||
"mod_tactical_001": 40,
|
||||
"mod_reciever": 100,
|
||||
"mod_tactical": 45,
|
||||
"mod_equipment_000": 1,
|
||||
@ -4071,11 +4082,11 @@
|
||||
"mod_tactical_003": 0,
|
||||
"mod_handguard": 100,
|
||||
"mod_mount_004": 66,
|
||||
"mod_equipment": 17,
|
||||
"mod_muzzle_000": 50,
|
||||
"mod_equipment": 15,
|
||||
"mod_muzzle_000": 47,
|
||||
"mod_muzzle_001": 0,
|
||||
"mod_pistol_grip": 0,
|
||||
"mod_equipment_002": 10
|
||||
"mod_equipment_002": 8
|
||||
}
|
||||
},
|
||||
"generation": {
|
||||
|
@ -414,17 +414,17 @@
|
||||
"5938504186f7740991483f30",
|
||||
"5d80c60f86f77440373c4ece",
|
||||
"5a351711c4a282000b1521a4",
|
||||
"59136f6f86f774447a1ed173",
|
||||
"5d80c88d86f77440556dbf07",
|
||||
"593858c486f774253a24cb52",
|
||||
"59136f6f86f774447a1ed173",
|
||||
"5ede7a8229445733cb4c18e2",
|
||||
"593aa4be86f77457f56379f8",
|
||||
"590c37d286f77443be3d7827",
|
||||
"62987da96188c076bc0d8c51",
|
||||
"5a0060fc86f7745793204432",
|
||||
"5a0ea69f86f7741cd5406619",
|
||||
"5d80c62a86f7744036212b3f",
|
||||
"5a0dc95c86f77452440fc675",
|
||||
"5d80c62a86f7744036212b3f",
|
||||
"5780cf7f2459777de4559322",
|
||||
"5ad5d49886f77455f9731921",
|
||||
"5780cf692459777de4559321",
|
||||
@ -443,14 +443,14 @@
|
||||
"5913611c86f77479e0084092",
|
||||
"5780cf942459777df90dcb72",
|
||||
"5a13ee1986f774794d4c14cd",
|
||||
"5a0ea64786f7741707720468",
|
||||
"5c1e2a1e86f77431ea0ea84c",
|
||||
"5a0ea64786f7741707720468",
|
||||
"5d80ccdd86f77474f7575e02",
|
||||
"5a0eed4386f77405112912aa",
|
||||
"5a13f35286f77413ef1436b0",
|
||||
"5a0f0f5886f7741c4e32a472",
|
||||
"61a64492ba05ef10d62adcc1",
|
||||
"5a13f35286f77413ef1436b0",
|
||||
"5a0ee4b586f7743698200d22",
|
||||
"61a64492ba05ef10d62adcc1",
|
||||
"5d80c8f586f77440373c4ed0",
|
||||
"590c651286f7741e566b6461",
|
||||
"5d9f1fa686f774726974a992",
|
||||
@ -523,8 +523,8 @@
|
||||
"5c1e2d1f86f77431e9280bee",
|
||||
"62987cb98081af308d7558c8",
|
||||
"5d95d6be86f77424444eb3a7",
|
||||
"63a39fdf1e21260da44a0256",
|
||||
"63a71ed21031ac76fe773c7f",
|
||||
"63a39fdf1e21260da44a0256",
|
||||
"63a39df18a56922e82001f25",
|
||||
"5a0eecf686f7740350630097",
|
||||
"5a0ee34586f774023b6ee092",
|
||||
@ -565,7 +565,12 @@
|
||||
"62a9cb937377a65d7b070cef",
|
||||
"5a0f068686f7745b0d4ea242",
|
||||
"62a0a16d0b9d3c46de5b6e97",
|
||||
"5780d07a2459777de4559324"
|
||||
"5780d07a2459777de4559324",
|
||||
"5a145d7b86f7744cbb6f4a13",
|
||||
"5913651986f774432f15d132",
|
||||
"59148f8286f7741b951ea113",
|
||||
"5ed515ece452db0eb56fc028",
|
||||
"5c0e531286f7747fa54205c2"
|
||||
],
|
||||
"Backpack": [],
|
||||
"SecuredContainer": [
|
||||
@ -2586,7 +2591,7 @@
|
||||
"equipment": {
|
||||
"Headwear": 24,
|
||||
"Earpiece": 0,
|
||||
"FaceCover": 14,
|
||||
"FaceCover": 15,
|
||||
"ArmorVest": 0,
|
||||
"Eyewear": 0,
|
||||
"ArmBand": 0,
|
||||
@ -2611,13 +2616,13 @@
|
||||
"mod_stock": 100,
|
||||
"mod_charge": 0,
|
||||
"mod_reciever": 100,
|
||||
"mod_mount_000": 21,
|
||||
"mod_mount_000": 20,
|
||||
"mod_tactical": 0,
|
||||
"mod_sight_rear": 48,
|
||||
"mod_sight_rear": 47,
|
||||
"mod_sight_front": 32,
|
||||
"mod_mount_001": 74,
|
||||
"mod_mount_001": 71,
|
||||
"mod_mount_002": 100,
|
||||
"mod_foregrip": 21
|
||||
"mod_foregrip": 20
|
||||
}
|
||||
},
|
||||
"generation": {
|
||||
|
@ -632,11 +632,11 @@
|
||||
"mod_muzzle": [
|
||||
"5a0d63621526d8dba31fe3bf"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"59d625f086f774661516605d"
|
||||
],
|
||||
"mod_mount_000": [
|
||||
"5a7c74b3e899ef0014332c29"
|
||||
],
|
||||
"mod_magazine": [
|
||||
"59d625f086f774661516605d"
|
||||
]
|
||||
},
|
||||
"628b9c37a733087d0d7fe84b": {
|
||||
@ -982,19 +982,7 @@
|
||||
"57347ca924597744596b4e71",
|
||||
"5d1b2ffd86f77425243e8d17",
|
||||
"590a386e86f77429692b27ab",
|
||||
"5672cb124bdc2d1a0f8b4568",
|
||||
"59e36c6f86f774176c10a2a7",
|
||||
"63a39fdf1e21260da44a0256",
|
||||
"5938504186f7740991483f30",
|
||||
"5e2af4d286f7746d4159f07a",
|
||||
"5d6fc78386f77449d825f9dc",
|
||||
"59e35de086f7741778269d84",
|
||||
"63a39cb1c9b3aa4b61683ee2",
|
||||
"5d1b313086f77425227d1678",
|
||||
"57347c2e24597744902c94a1",
|
||||
"5938994586f774523a425196",
|
||||
"5d1b3f2d86f774253763b735",
|
||||
"590a3d9c86f774385926e510",
|
||||
"619cbf476b8a1b37a54eebf8",
|
||||
"590c35a486f774273531c822",
|
||||
"5672cb304bdc2dc2088b456a",
|
||||
@ -1010,16 +998,28 @@
|
||||
"5734758f24597738025ee253",
|
||||
"590c5a7286f7747884343aea",
|
||||
"5d0377ce86f774186372f689",
|
||||
"5d1b313086f77425227d1678",
|
||||
"57347c2e24597744902c94a1",
|
||||
"5c10c8fd86f7743d7d706df3",
|
||||
"56742c324bdc2d150f8b456d",
|
||||
"5c06779c86f77426e00dd782",
|
||||
"5734779624597737e04bf329",
|
||||
"590c5c9f86f77477c91c36e7",
|
||||
"5672cb124bdc2d1a0f8b4568",
|
||||
"59e36c6f86f774176c10a2a7",
|
||||
"63a39fdf1e21260da44a0256",
|
||||
"5938504186f7740991483f30",
|
||||
"5d6fc78386f77449d825f9dc",
|
||||
"59e35de086f7741778269d84",
|
||||
"63a39cb1c9b3aa4b61683ee2",
|
||||
"5938994586f774523a425196",
|
||||
"5d1b3f2d86f774253763b735",
|
||||
"590a3d9c86f774385926e510",
|
||||
"577e1c9d2459773cd707c525",
|
||||
"5c13cef886f774072e618e82",
|
||||
"5c06782b86f77426df5407d2",
|
||||
"590a3efd86f77437d351a25b",
|
||||
"56742c324bdc2d150f8b456d",
|
||||
"59148f8286f7741b951ea113",
|
||||
"5c06779c86f77426e00dd782",
|
||||
"5734779624597737e04bf329",
|
||||
"590c5c9f86f77477c91c36e7",
|
||||
"590a373286f774287540368b",
|
||||
"60391b0fb847c71012789415",
|
||||
"57a349b2245977762b199ec7",
|
||||
@ -1028,19 +1028,21 @@
|
||||
"56742c284bdc2d98058b456d",
|
||||
"59e35cbb86f7741778269d83",
|
||||
"5780cda02459777b272ede61",
|
||||
"5e2af02c86f7746d420957d4",
|
||||
"5d03775b86f774203e7e0c4b",
|
||||
"590a391c86f774385a33c404",
|
||||
"5734770f24597738025ee254",
|
||||
"62987c658081af308d7558c6",
|
||||
"5e2af41e86f774755a234b67",
|
||||
"5780d0652459777df90dcb74",
|
||||
"5e2af02c86f7746d420957d4",
|
||||
"5d03775b86f774203e7e0c4b",
|
||||
"5734770f24597738025ee254",
|
||||
"62987c658081af308d7558c6",
|
||||
"59e361e886f774176c10a2a5",
|
||||
"590de71386f774347051a052",
|
||||
"591383f186f7744a4c5edcf3",
|
||||
"5a0ea69f86f7741cd5406619",
|
||||
"590c346786f77423e50ed342",
|
||||
"5914578086f774123569ffa4",
|
||||
"5e2af51086f7746d3f3c3402",
|
||||
"59e366c186f7741778269d85",
|
||||
"5d0375ff86f774186372f685",
|
||||
"5d1b304286f774253763a528",
|
||||
"62987e26a77ec735f90a2995",
|
||||
@ -1049,8 +1051,6 @@
|
||||
"5780cfa52459777dfb276eb1",
|
||||
"5d03794386f77420415576f5",
|
||||
"6389c70ca33d8c4cdf4932c6",
|
||||
"5e2af51086f7746d3f3c3402",
|
||||
"59e366c186f7741778269d85",
|
||||
"5bc9bc53d4351e00367fbcee",
|
||||
"5c05308086f7746b2101e90b",
|
||||
"5d1b3a5d86f774252167ba22",
|
||||
@ -1058,41 +1058,41 @@
|
||||
"5c13cd2486f774072c757944",
|
||||
"5d0378d486f77420421a5ff4",
|
||||
"59e3596386f774176c10a2a2",
|
||||
"5d40412b86f7743cb332ac3a",
|
||||
"5d1b2fa286f77425227d1674",
|
||||
"59136e1e86f774432f15d133",
|
||||
"5d6fc87386f77449db3db94e",
|
||||
"59faff1d86f7746c51718c9c",
|
||||
"62a9cb937377a65d7b070cef",
|
||||
"5bc9b355d4351e6d1509862a",
|
||||
"5733279d245977289b77ec24",
|
||||
"5d40412b86f7743cb332ac3a",
|
||||
"5d1b2fa286f77425227d1674",
|
||||
"59136e1e86f774432f15d133",
|
||||
"5d235b4d86f7742e017bc88a",
|
||||
"591382d986f774465a6413a7",
|
||||
"5ad5d49886f77455f9731921",
|
||||
"5d1b2f3f86f774252167a52c",
|
||||
"5780d0532459777a5108b9a2",
|
||||
"61a64492ba05ef10d62adcc1",
|
||||
"5a0eee1486f77402aa773226",
|
||||
"591382d986f774465a6413a7",
|
||||
"5ad5d49886f77455f9731921",
|
||||
"59e3606886f77417674759a5",
|
||||
"61bf7b6302b3924be92fa8c3",
|
||||
"63a39f18c2d53c2c6839c1d3",
|
||||
"5d1b32c186f774252167a530",
|
||||
"5a0eee1486f77402aa773226",
|
||||
"5e54f62086f774219b0f1937",
|
||||
"59e3658a86f7741776641ac4",
|
||||
"62a0a043cf4a99369e2624a5",
|
||||
"62a09ee4cf4a99369e262453",
|
||||
"5ad5d20586f77449be26d877",
|
||||
"5938603e86f77435642354f4",
|
||||
"5e54f62086f774219b0f1937",
|
||||
"59e3658a86f7741776641ac4",
|
||||
"5e2aef7986f7746d3f3c33f5",
|
||||
"59faf98186f774067b6be103",
|
||||
"593858c486f774253a24cb52",
|
||||
"62a09e73af34e73a266d932a",
|
||||
"590c2c9c86f774245b1f03f2",
|
||||
"63a0b208f444d32d6f03ea1e",
|
||||
"573474f924597738002c6174",
|
||||
"63a0b208f444d32d6f03ea1e",
|
||||
"5b4335ba86f7744d2837a264",
|
||||
"5d0376a486f7747d8050965c",
|
||||
"59e3647686f774176a362507",
|
||||
"5d0376a486f7747d8050965c",
|
||||
"5ed515e03a40a50460332579",
|
||||
"62a08f4c4f842e1bd12d9d62",
|
||||
"5e54f6af86f7742199090bf3",
|
||||
@ -1113,8 +1113,8 @@
|
||||
"5d1b317c86f7742523398392",
|
||||
"5913611c86f77479e0084092",
|
||||
"5a13ee1986f774794d4c14cd",
|
||||
"60391afc25aff57af81f7085",
|
||||
"5d4041f086f7743cac3f22a7",
|
||||
"60391afc25aff57af81f7085",
|
||||
"590c595c86f7747884343ad7",
|
||||
"62a0a0bb621468534a797ad5",
|
||||
"5a0ee34586f774023b6ee092",
|
||||
@ -1140,9 +1140,9 @@
|
||||
"62987dfc402c7f69bf010923",
|
||||
"5d63d33b86f7746ea9275524",
|
||||
"5c1d0efb86f7744baf2e7b7b",
|
||||
"5d40425986f7743185265461",
|
||||
"56742c2e4bdc2d95058b456d",
|
||||
"62a091170b9d3c46de5b6cf2",
|
||||
"5d40425986f7743185265461",
|
||||
"61a6444b8c141d68246e2d2f",
|
||||
"5c1d0d6d86f7744bb2683e1f",
|
||||
"5c0e530286f7747fa1419862",
|
||||
@ -1155,10 +1155,10 @@
|
||||
"5c0e533786f7747fa23f4d47",
|
||||
"5a0dc95c86f77452440fc675",
|
||||
"5a144dfd86f77445cb5a0982",
|
||||
"5e2af29386f7746d4159f077",
|
||||
"5af04b6486f774195a3ebb49",
|
||||
"5da5cdcd86f774529238fb9b",
|
||||
"5ed515c8d380ab312177c0fa",
|
||||
"5e2af29386f7746d4159f077",
|
||||
"590c2e1186f77425357b6124",
|
||||
"590c645c86f77412b01304d9",
|
||||
"590c2d8786f774245b1f03f3",
|
||||
@ -1192,8 +1192,8 @@
|
||||
"5448ba0b4bdc2d02308b456c",
|
||||
"62a0a098de7ac8199358053b",
|
||||
"5c052f6886f7746b1e3db148",
|
||||
"5a0ee76686f7743698200d5c",
|
||||
"5c1e2d1f86f77431e9280bee",
|
||||
"5a0ee76686f7743698200d5c",
|
||||
"5c1d0c5f86f7744bb2683cf0",
|
||||
"5e2af37686f774755a234b65",
|
||||
"5d9f1fa686f774726974a992",
|
||||
@ -1264,7 +1264,14 @@
|
||||
"63a39f6e64283b5e9c56b289",
|
||||
"59136f6f86f774447a1ed173",
|
||||
"63a397d3af870e651d58e65b",
|
||||
"5a13f46386f7741dd7384b04"
|
||||
"5a13f46386f7741dd7384b04",
|
||||
"5a13f24186f77410e57c5626",
|
||||
"5a0eb38b86f774153b320eb0",
|
||||
"5a1452ee86f7746f33111763",
|
||||
"5a0ee72c86f77436955d3435",
|
||||
"5d8e0e0e86f774321140eb56",
|
||||
"62987cb98081af308d7558c8",
|
||||
"5c1e495a86f7743109743dfb"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"5c925fa22e221601da359b7b",
|
||||
@ -1277,10 +1284,10 @@
|
||||
"5e81f423763d9f754677bf2e",
|
||||
"56dff026d2720bb8668b4567",
|
||||
"56dff3afd2720bba668b4567",
|
||||
"5a3c16fe86f77452b62de32a",
|
||||
"56dff061d2720bb5668b4567",
|
||||
"5c0d5e4486f77478390952fe",
|
||||
"5a3c16fe86f77452b62de32a",
|
||||
"5efb0da7a29a85116f6ea05f",
|
||||
"5c0d5e4486f77478390952fe",
|
||||
"5efb0e16aeb21837e749c7ff",
|
||||
"56d59d3ad2720bdb418b4577",
|
||||
"57a0dfb82459774d3078b56c",
|
||||
@ -3320,14 +3327,14 @@
|
||||
"mod_muzzle": 100,
|
||||
"mod_reciever": 100,
|
||||
"mod_sight_rear": 64,
|
||||
"mod_scope": 11,
|
||||
"mod_scope": 10,
|
||||
"mod_mount_000": 31,
|
||||
"mod_mount_002": 24,
|
||||
"mod_mount": 10,
|
||||
"mod_sight_front": 50,
|
||||
"mod_mount_001": 46,
|
||||
"mod_sight_front": 49,
|
||||
"mod_mount_001": 47,
|
||||
"mod_tactical": 5,
|
||||
"mod_foregrip": 14,
|
||||
"mod_foregrip": 13,
|
||||
"mod_mount_003": 0,
|
||||
"mod_tactical_000": 9,
|
||||
"mod_stock_000": 100,
|
||||
|
File diff suppressed because it is too large
Load Diff
BIN
project/assets/database/locations/bigmap/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/bigmap/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/factory4_day/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/factory4_day/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/factory4_night/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/factory4_night/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/interchange/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/interchange/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/laboratory/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/laboratory/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/lighthouse/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/lighthouse/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/rezervbase/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/rezervbase/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/shoreline/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/shoreline/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/tarkovstreets/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/tarkovstreets/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/locations/woods/looseLoot.json
(Stored with Git LFS)
BIN
project/assets/database/locations/woods/looseLoot.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/loot/staticAmmo.json
(Stored with Git LFS)
BIN
project/assets/database/loot/staticAmmo.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/loot/staticContainers.json
(Stored with Git LFS)
BIN
project/assets/database/loot/staticContainers.json
(Stored with Git LFS)
Binary file not shown.
BIN
project/assets/database/loot/staticLoot.json
(Stored with Git LFS)
BIN
project/assets/database/loot/staticLoot.json
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -114,6 +114,7 @@
|
||||
"modloader-missing_package_json": "В моде (%s) отсутствует package.json",
|
||||
"modloader-missing_package_json_property": "В моде {{modName}} файл package.json требует следующее свойство: {{prop}} ",
|
||||
"modloader-mod_incompatible": "Загрузчик модов: Мод (%s) несовместим, он должен наследовать как минимум один из интерфейсов: IPostAkiLoadMod, IPostDBLoadMod, IPreAkiLoadMod",
|
||||
"modloader-async_mod_error": "Загрузчик модов: Ошибка при загрузке асинхронного мода: %s",
|
||||
"modloader-no_mods_loaded": "Были обнаружены ошибки в модах, МОДЫ НЕ БУДУТ ЗАГРУЖЕНЫ",
|
||||
"modloader-outdated_akiversion_field": "Мод %s не совместим с текущей версией AKI. Возможны проблемы - поддержки не будет!",
|
||||
"modloader-outdated_dependency": "Мод {{mod}} требует {{modDependency}} версии {{requiredVersion}}. Текущая установленная версия - {{currentVersion}}",
|
||||
@ -134,6 +135,7 @@
|
||||
"quest-compare_operator_unhandled": "loyaltyRequirementCheck() оператор %s не обрабатывается, возврат к значению false по умолчанию",
|
||||
"quest-item_not_found_in_inventory": "changeItemStack() Предмет с _id: %s не найден в инвентаре",
|
||||
"quest-no_skill_found": "Навык %s не найден",
|
||||
"quest-handover_wrong_item": "Невозможно сдать предмет для задания {{questId}}, ожидаемый tpl: {{requiredTpl}}, но передан: {{handedInTpl}}",
|
||||
"quest-reward_type_not_handled": "Тип награды за квест: {{rewardType}} не обработан для квеста: {{questId}} название: {{questName}}",
|
||||
"ragfair-invalid_player_offer_request": "Невозможно разместить предложение, запрос недействителен",
|
||||
"ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Не получилось найти barterScheme для предмета с id: {{itemId}} tpl: {{tpl}} на {{name}}",
|
||||
|
@ -121,11 +121,17 @@ export class InraidController
|
||||
pmcData = this.inRaidHelper.setInventory(sessionID, pmcData, offraidData.profile);
|
||||
this.healthHelper.saveVitality(pmcData, offraidData.health, sessionID);
|
||||
|
||||
// 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.
|
||||
// Remove inventory if player died and send insurance items
|
||||
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)
|
||||
@ -164,8 +170,8 @@ export class InraidController
|
||||
{
|
||||
for (const questItem of postRaidSaveRequest.profile.Stats.CarriedQuestItems)
|
||||
{
|
||||
const findItemConditionId = this.questHelper.getFindItemIdForQuestHandIn(questItem);
|
||||
this.profileHelper.resetProfileQuestCondition(sessionID, findItemConditionId);
|
||||
const findItemConditionIds = this.questHelper.getFindItemIdForQuestHandIn(questItem);
|
||||
this.profileHelper.resetProfileQuestCondition(sessionID, findItemConditionIds);
|
||||
}
|
||||
|
||||
pmcData.Stats.CarriedQuestItems = [];
|
||||
|
@ -100,7 +100,7 @@ export class InventoryController
|
||||
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
|
||||
{
|
||||
@ -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)
|
||||
{
|
||||
if (pmcData.Inventory.fastPanel[index] === body.item)
|
||||
if (pmcData.Inventory.fastPanel[index] === bindRequest.item)
|
||||
{
|
||||
pmcData.Inventory.fastPanel[index] = "";
|
||||
}
|
||||
}
|
||||
|
||||
pmcData.Inventory.fastPanel[body.index] = body.item;
|
||||
pmcData.Inventory.fastPanel[bindRequest.index] = bindRequest.item;
|
||||
|
||||
return this.eventOutputHolder.getOutput(sessionID);
|
||||
}
|
||||
|
||||
|
@ -192,6 +192,11 @@ export class BotGenerator
|
||||
// Simulate bot looking like a Player scav with the pmc name in brackets
|
||||
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];
|
||||
|
||||
return `${name} (${this.randomUtil.getArrayValue(pmcNames)})`;
|
||||
|
@ -460,41 +460,40 @@ export class BotWeaponGenerator
|
||||
|
||||
/**
|
||||
* Fill existing magazines to full, while replacing their contents with specified ammo
|
||||
* @param weaponMods
|
||||
* @param magazine
|
||||
* @param ammoTpl
|
||||
* @param weaponMods Weapon with children
|
||||
* @param magazine Magazine item
|
||||
* @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];
|
||||
if (!modTemplate)
|
||||
const magazineTemplate = this.itemHelper.getItem(magazine._tpl)[1];
|
||||
if (!magazineTemplate)
|
||||
{
|
||||
this.logger.error(this.localisationService.getText("bot-unable_to_find_magazine_item", magazine._tpl));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const parentItem = this.itemHelper.getItem(modTemplate._parent)[1];
|
||||
const fullStackSize = modTemplate._props.Cartridges[0]._max_count;
|
||||
const parentItem = this.itemHelper.getItem(magazineTemplate._parent)[1];
|
||||
|
||||
// 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
|
||||
// and remove the else
|
||||
if (this.botWeaponGeneratorHelper.magazineIsCylinderRelated(parentItem._name))
|
||||
{
|
||||
this.fillCamorasWithAmmo(weaponMods, magazine._id, ammoTpl);
|
||||
this.fillCamorasWithAmmo(weaponMods, magazine._id, cartridgeTpl);
|
||||
}
|
||||
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
|
||||
* @param weaponMods
|
||||
* @param ubglMod
|
||||
* @param ubglAmmoTpl
|
||||
* @param weaponMods Weapon with children
|
||||
* @param ubglMod UBGL item
|
||||
* @param ubglAmmoTpl Grenade ammo tpl
|
||||
*/
|
||||
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
|
||||
* @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 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 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");
|
||||
if (!magazineCartridgeChildItem) // magazine doesn't have a child item with the ammo inside it, create one
|
||||
const magazineCartridgeChildItem = weaponWithMods.find(m => m.parentId === magazine._id && m.slotId === "cartridges");
|
||||
if (magazineCartridgeChildItem)
|
||||
{
|
||||
weaponMods.push({
|
||||
_id: this.hashUtil.generate(),
|
||||
_tpl: chosenAmmo,
|
||||
parentId: magazine._id,
|
||||
slotId: "cartridges",
|
||||
upd:
|
||||
{ StackObjectsCount: newStackSize }
|
||||
});
|
||||
}
|
||||
else // magazine has cartridge stack, amend details
|
||||
{
|
||||
magazineCartridgeChildItem._tpl = chosenAmmo;
|
||||
magazineCartridgeChildItem.upd = { "StackObjectsCount": newStackSize };
|
||||
// Easier to delete and create below instaed of modifying existing item
|
||||
weaponWithMods = weaponWithMods.slice(weaponWithMods.indexOf(magazineCartridgeChildItem), 1);
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -54,6 +54,15 @@ export class LocationGenerator
|
||||
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(
|
||||
containerIn: IStaticContainerProps,
|
||||
staticForced: IStaticForcedProps[],
|
||||
@ -102,6 +111,7 @@ export class LocationGenerator
|
||||
|
||||
// Draw random loot
|
||||
// money spawn more than once in container
|
||||
let failedToFitCount = 0;
|
||||
const locklist = [Money.ROUBLES, Money.DOLLARS, Money.EUROS];
|
||||
const tplsDraw = itemDistribution.draw(numberItems, false, locklist);
|
||||
const tpls = tplsForced.concat(tplsDraw);
|
||||
@ -112,10 +122,20 @@ export class LocationGenerator
|
||||
const width = created.width;
|
||||
const height = created.height;
|
||||
|
||||
// look for open slot to put chosen item into
|
||||
const result = this.containerHelper.findSlotForItem(container2D, width, height);
|
||||
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);
|
||||
@ -130,6 +150,7 @@ export class LocationGenerator
|
||||
container.Items.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
@ -455,23 +476,18 @@ export class LocationGenerator
|
||||
// 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
|
||||
// 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
|
||||
if (mag)
|
||||
if (magazine)
|
||||
{
|
||||
const weapTemplate = this.itemHelper.getItem(rootItem._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
|
||||
const defAmmoTemplate = this.itemHelper.getItem(weapTemplate._props.defAmmo)[1];
|
||||
const magTemplate = this.itemHelper.getItem(mag._tpl)[1];
|
||||
items.push(
|
||||
this.itemHelper.createRandomMagCartridges(
|
||||
magTemplate,
|
||||
mag._id,
|
||||
staticAmmoDist,
|
||||
defAmmoTemplate._props.Caliber
|
||||
)
|
||||
);
|
||||
const magTemplate = this.itemHelper.getItem(magazine._tpl)[1];
|
||||
|
||||
// Create array with just magazine
|
||||
const magazineWithCartridges = [magazine];
|
||||
this.itemHelper.fillMagazineWithRandomCartridge(magazineWithCartridges, magTemplate, staticAmmoDist);
|
||||
|
||||
// Replace existing magazine with above array
|
||||
items.splice(items.indexOf(magazine), 1, ...magazineWithCartridges);
|
||||
}
|
||||
|
||||
const size = this.itemHelper.getItemSize(items, rootItem._id);
|
||||
@ -485,7 +501,12 @@ export class LocationGenerator
|
||||
}
|
||||
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 {
|
||||
|
@ -323,12 +323,9 @@ export class InRaidHelper
|
||||
public deleteInventory(pmcData: IPmcData, sessionID: string): void
|
||||
{
|
||||
const toDelete = [];
|
||||
const itemsInPocketsRigBackpack = this.getBaseItemsInRigPocketAndBackpack(pmcData);
|
||||
const lootItemIds = itemsInPocketsRigBackpack.map(x => x._id);
|
||||
|
||||
for (const item of pmcData.Inventory.items)
|
||||
{
|
||||
if (this.isItemKeptAfterDeath(pmcData, item, lootItemIds))
|
||||
if (this.isItemKeptAfterDeath(pmcData, item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -340,20 +337,9 @@ export class InRaidHelper
|
||||
toDelete.push(item._id);
|
||||
}
|
||||
|
||||
// Remove items in pockets
|
||||
if (item.slotId === "Pockets")
|
||||
if (item.slotId.startsWith("pocket"))
|
||||
{
|
||||
for (const itemInPocket of pmcData.Inventory.items.filter(x => x.parentId === 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);
|
||||
}
|
||||
toDelete.push(item._id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -388,22 +374,27 @@ export class InRaidHelper
|
||||
* Does the provided items slotId mean its kept on the player after death
|
||||
* @pmcData Player profile
|
||||
* @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
|
||||
*/
|
||||
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
|
||||
if (itemToCheck.parentId === pmcData.Inventory.equipment)
|
||||
{
|
||||
// Check slot id against config, true = delete, false = keep
|
||||
const keep = !this.lostOnDeathConfig.equipment[itemToCheck.slotId];
|
||||
if (keep === undefined)
|
||||
// Check slot id against config, true = delete, false = keep, undefined = delete
|
||||
const discard = this.lostOnDeathConfig.equipment[itemToCheck.slotId];
|
||||
if (discard === undefined)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return keep;
|
||||
return !discard;
|
||||
}
|
||||
|
||||
// Is quest item + quest item not lost on death
|
||||
@ -412,8 +403,8 @@ export class InRaidHelper
|
||||
return true;
|
||||
}
|
||||
|
||||
// Is loot item + not lost on death
|
||||
if (!this.lostOnDeathConfig.loot && lootItemIds.includes(itemToCheck._id))
|
||||
// special slots are always kept after death
|
||||
if (itemToCheck.slotId?.includes("SpecialSlot") && this.lostOnDeathConfig.specialSlotItems)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -849,31 +849,34 @@ export class InventoryHelper
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
// 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)
|
||||
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;
|
||||
}
|
||||
|
||||
// Edit items details to match its new location
|
||||
inventoryItem.parentId = body.to.id;
|
||||
inventoryItem.slotId = body.to.container;
|
||||
inventoryItem.parentId = moveRequest.to.id;
|
||||
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
|
||||
{
|
||||
@ -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.
|
||||
*/
|
||||
|
@ -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
|
||||
* @param {string} tpl
|
||||
* @param {Array} tplsToCheck
|
||||
* @returns boolean
|
||||
* @param {string} tpl Items tpl to check parents of
|
||||
* @param {Array} tplsToCheck Tpl values to check if parents of item match
|
||||
* @returns boolean Match found
|
||||
*/
|
||||
public doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean
|
||||
{
|
||||
@ -702,9 +702,9 @@ class ItemHelper
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if item is a quest item
|
||||
* @param {string} tpl
|
||||
* @returns boolean
|
||||
* Check if item is quest item
|
||||
* @param tpl Items tpl to check quest status of
|
||||
* @returns true if item is flagged as quest item
|
||||
*/
|
||||
public isQuestItem(tpl: string): boolean
|
||||
{
|
||||
@ -720,7 +720,7 @@ class ItemHelper
|
||||
|
||||
/**
|
||||
* Get the inventory size of an item
|
||||
* @param items
|
||||
* @param items Item with children
|
||||
* @param rootItemId
|
||||
* @returns ItemSize object (width and height)
|
||||
*/
|
||||
@ -770,8 +770,8 @@ class ItemHelper
|
||||
|
||||
/**
|
||||
* Get a random cartridge from an items Filter property
|
||||
* @param item
|
||||
* @returns
|
||||
* @param item Db item template to look up Cartridge filter values from
|
||||
* @returns Caliber of cartridge
|
||||
*/
|
||||
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,
|
||||
parentId: string,
|
||||
staticAmmoDist: Record<string,
|
||||
IStaticAmmoDetails[]>,
|
||||
caliber: string = undefined
|
||||
): Item
|
||||
staticAmmoDist: Record<string, IStaticAmmoDetails[]>,
|
||||
caliber: string = undefined,
|
||||
minSizePercent = 0.25
|
||||
): void
|
||||
{
|
||||
// no caliber defined, choose one
|
||||
if (!caliber)
|
||||
{
|
||||
caliber = this.getRandomValidCaliber(magTemplate);
|
||||
}
|
||||
const ammoTpl = this.drawAmmoTpl(caliber, staticAmmoDist);
|
||||
const maxCount = magTemplate._props.Cartridges[0]._max_count;
|
||||
const stackCount = this.randomUtil.getInt(Math.round(0.25 * maxCount), maxCount);
|
||||
return this.createCartridges(parentId, ammoTpl, stackCount, 0);
|
||||
|
||||
// Chose a randomly weighted cartridge that fits
|
||||
const cartridgeTpl = this.drawAmmoTpl(caliber, staticAmmoDist);
|
||||
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
|
||||
|
@ -29,20 +29,36 @@ 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);
|
||||
|
||||
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)
|
||||
{
|
||||
// Remove condition
|
||||
quest.completedConditions.splice(index, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all profiles from server
|
||||
|
@ -706,16 +706,19 @@ export class QuestHelper
|
||||
* @param itemTpl item tpl to look for
|
||||
* @returns 'FindItem' condition id
|
||||
*/
|
||||
public getFindItemIdForQuestHandIn(itemTpl: string): string
|
||||
public getFindItemIdForQuestHandIn(itemTpl: string): string[]
|
||||
{
|
||||
const result: string[] = [];
|
||||
for (const quest of this.getQuestsFromDb())
|
||||
{
|
||||
const condition = quest.conditions.AvailableForFinish.find(c => c._parent === "FindItem" && c._props?.target?.includes(itemTpl));
|
||||
if (condition)
|
||||
{
|
||||
return condition._props.id;
|
||||
result.push(condition._props.id);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -147,12 +147,9 @@ export interface Inventory
|
||||
sortingTable: string
|
||||
questRaidItems: string
|
||||
questStashItems: string
|
||||
fastPanel: FastPanel
|
||||
fastPanel: Record<string, string>
|
||||
}
|
||||
|
||||
export interface FastPanel
|
||||
{ }
|
||||
|
||||
export interface Skills
|
||||
{
|
||||
Common: Common[]
|
||||
|
@ -14,6 +14,8 @@ export interface ILocationConfig extends IBaseConfig
|
||||
openZones: Record<string, string[]>
|
||||
/** Key = map id, value = item tpls that should only have one forced loot spawn position */
|
||||
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
|
||||
|
@ -4,7 +4,7 @@ export interface ILostOnDeathConfig extends IBaseConfig
|
||||
{
|
||||
kind: "aki-lostondeath"
|
||||
equipment: Equipment
|
||||
loot: boolean
|
||||
specialSlotItems: boolean;
|
||||
questItems: boolean
|
||||
}
|
||||
|
||||
|
@ -177,11 +177,12 @@ export class InsuranceService
|
||||
* @param offraidData post-raid request object
|
||||
* @param preRaidGear gear player wore prior to raid
|
||||
* @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 offRaidGearHash = {};
|
||||
const offRaidGearHash: Record<string, Item> = {};
|
||||
const gears = [];
|
||||
|
||||
// Build a hash table to reduce loops
|
||||
@ -198,13 +199,13 @@ export class InsuranceService
|
||||
|
||||
for (const insuredItem of pmcData.InsuredItems)
|
||||
{
|
||||
// Check insured item was on player during raid
|
||||
if (preRaidGearHash[insuredItem.itemId])
|
||||
{
|
||||
// This item exists in preRaidGear, meaning we brought it into the raid...
|
||||
// Check if we brought it out of the raid
|
||||
if (!offRaidGearHash[insuredItem.itemId])
|
||||
// This item exists in preRaidGear, meaning we brought it into the raid
|
||||
// Check if item missing OR player died with item on
|
||||
if (!offRaidGearHash[insuredItem.itemId] || playerDied)
|
||||
{
|
||||
// We didn't bring this item out! We must've lost it.
|
||||
gears.push({
|
||||
"pmcData": pmcData,
|
||||
"insuredItem": insuredItem,
|
||||
@ -215,6 +216,7 @@ export class InsuranceService
|
||||
}
|
||||
}
|
||||
|
||||
// Process all insured items lost in-raid
|
||||
for (const gear of gears)
|
||||
{
|
||||
this.addGearToSend(gear.pmcData, gear.insuredItem, gear.item, gear.sessionID);
|
||||
|
@ -2,26 +2,39 @@ import "reflect-metadata";
|
||||
|
||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
||||
import { BotDifficultyHelper } from "@spt-aki/helpers/BotDifficultyHelper";
|
||||
import { BotHelper } from "@spt-aki/helpers/BotHelper";
|
||||
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 { TestHelper } from "./common/TestHelper";
|
||||
|
||||
const testHelper = new TestHelper();
|
||||
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;
|
||||
beforeEach(() =>
|
||||
{
|
||||
|
@ -2,25 +2,36 @@ import "reflect-metadata";
|
||||
|
||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
||||
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";
|
||||
|
||||
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();
|
||||
const randomUtil = testHelper.getTestRandomUtil();
|
||||
const configServer = testHelper.getTestConfigServer();
|
||||
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();
|
||||
})
|
||||
|
||||
const localisationService = testHelper.getTestLocalisationService();
|
||||
|
||||
const databaseServer = testHelper.getTestDatabaseServer();
|
||||
|
||||
describe("BotHelper", () =>
|
||||
{
|
||||
let helper: BotHelper;
|
||||
beforeEach(() =>
|
||||
{
|
||||
beforeEach(() => {
|
||||
helper = new BotHelper(logger, jsonUtil, databaseServer, randomUtil, localisationService, configServer);
|
||||
});
|
||||
|
||||
|
@ -3,23 +3,36 @@ import "reflect-metadata";
|
||||
import { RepairHelper } from "@spt-aki/helpers/RepairHelper";
|
||||
import { Item } from "@spt-aki/models/eft/common/tables/IItem";
|
||||
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";
|
||||
|
||||
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();
|
||||
const randomUtil = testHelper.getTestRandomUtil();
|
||||
const configServer = testHelper.getTestConfigServer();
|
||||
beforeAll(async () => {
|
||||
testHelper = await TestHelper.fetchTestHelper();
|
||||
logger = testHelper.getTestLogger();
|
||||
jsonUtil = testHelper.getTestJsonUtil();
|
||||
randomUtil = testHelper.getTestRandomUtil();
|
||||
configServer = testHelper.getTestConfigServer();
|
||||
localisationService = testHelper.getTestLocalisationService();
|
||||
databaseServer = testHelper.getTestDatabaseServer();
|
||||
})
|
||||
|
||||
const databaseServer = testHelper.getTestDatabaseServer();
|
||||
|
||||
describe("BotHelper", () =>
|
||||
{
|
||||
let helper: RepairHelper;
|
||||
beforeEach(() =>
|
||||
{
|
||||
beforeEach(() => {
|
||||
helper = new RepairHelper(
|
||||
logger,
|
||||
jsonUtil,
|
||||
|
@ -22,8 +22,7 @@ import { VFS } from "@spt-aki/utils/VFS";
|
||||
import { MockHelper } from "./MockHelper";
|
||||
import WinstonLogger from "./__mocks__/WinstonLogger";
|
||||
|
||||
export class TestHelper
|
||||
{
|
||||
export class TestHelper {
|
||||
logger: ILogger;
|
||||
asyncQueue: AsyncQueue;
|
||||
uuidGenerator: UUidGenerator;
|
||||
@ -45,10 +44,27 @@ export class TestHelper
|
||||
itemBaseClassService: ItemBaseClassService;
|
||||
botHelper: BotHelper;
|
||||
|
||||
constructor()
|
||||
{
|
||||
public static async fetchTestHelper() {
|
||||
const initTestHelper = new TestHelper();
|
||||
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.asyncQueue = new AsyncQueue();
|
||||
this.uuidGenerator = new UUidGenerator();
|
||||
@ -68,10 +84,6 @@ export class TestHelper
|
||||
this.encodingUtil = new EncodingUtil();
|
||||
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.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);
|
||||
|
@ -7,10 +7,14 @@ import { BaseClasses } from "@spt-aki/models/enums/BaseClasses";
|
||||
import { Money } from "@spt-aki/models/enums/Money";
|
||||
import { TestHelper } from "../common/TestHelper";
|
||||
|
||||
const testHelper = new TestHelper();
|
||||
let testHelper: TestHelper;
|
||||
|
||||
describe("test text", () =>
|
||||
{
|
||||
beforeAll(async () => {
|
||||
testHelper = await TestHelper.fetchTestHelper();
|
||||
})
|
||||
|
||||
let itemHelper: ItemHelper;
|
||||
beforeEach(() =>
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user