mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 05:50:44 -05:00
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts: # project/assets/database/bots/types/assault.json # project/assets/database/bots/types/bossknight.json # project/assets/database/bots/types/bosszryachiy.json # project/assets/database/bots/types/followerzryachiy.json
This commit is contained in:
commit
fc606ee540
10
.drone.yml
10
.drone.yml
@ -27,7 +27,7 @@ steps:
|
||||
- cd ./project
|
||||
- pnpm install
|
||||
|
||||
- name: Run Rome
|
||||
- name: Run Biome
|
||||
image: registry.sp-tarkov.com/spt/pnpm:7.25.1
|
||||
commands:
|
||||
- cd ./project
|
||||
@ -84,7 +84,7 @@ steps:
|
||||
- cd ./project
|
||||
- pnpm install
|
||||
|
||||
- name: Run Rome
|
||||
- name: Run Biome
|
||||
image: registry.sp-tarkov.com/spt/pnpm:7.25.1
|
||||
commands:
|
||||
- cd ./project
|
||||
@ -102,7 +102,7 @@ steps:
|
||||
# - cd ./project
|
||||
# - pnpm run test:coverage
|
||||
# depends_on:
|
||||
# - Run Rome
|
||||
# - Run Biome
|
||||
# when:
|
||||
# event:
|
||||
# - push
|
||||
@ -128,7 +128,7 @@ steps:
|
||||
-Dsonar.javascript.lcov.reportPaths=./project/coverage/lcov.info
|
||||
depends_on:
|
||||
# - Jest coverage
|
||||
- Run Rome
|
||||
- Run Biome
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
@ -165,7 +165,7 @@ steps:
|
||||
-Dsonar.projectVersion=$DRONE_TAG
|
||||
depends_on:
|
||||
# - Jest coverage
|
||||
- Run Rome
|
||||
- Run Biome
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"extends": "@parcel/config-default",
|
||||
"transformers": {
|
||||
"*.pjs": ["@parcel/transformer-js"]
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ WORKDIR /app
|
||||
COPY package.json .
|
||||
RUN yarn
|
||||
|
||||
COPY .parcelrc tsconfig.json tsconfig.base.json ./
|
||||
COPY tsconfig.json tsconfig.base.json ./
|
||||
COPY src ./src
|
||||
RUN yarn test:comp-linux
|
||||
|
||||
|
@ -780,6 +780,7 @@
|
||||
"Backpack": 35,
|
||||
"FaceCover": 5
|
||||
},
|
||||
"randomisedWeaponModSlots": [],
|
||||
"mods": {
|
||||
"mod_barrel": 20,
|
||||
"mod_bipod": 10,
|
||||
|
@ -747,7 +747,7 @@
|
||||
"Exploration": {
|
||||
"maxExtracts": 10,
|
||||
"specificExits": {
|
||||
"probability": 0.5,
|
||||
"probability": 0.4,
|
||||
"passageRequirementWhitelist": [
|
||||
"None",
|
||||
"TransferItem",
|
||||
@ -846,7 +846,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"bodyPartProb": 0.2,
|
||||
"bodyPartProb": 0.15,
|
||||
"bodyParts": [{
|
||||
"key": "Head",
|
||||
"relativeProbability": 1,
|
||||
@ -1052,8 +1052,8 @@
|
||||
"minDist": 10,
|
||||
"maxKills": 40,
|
||||
"minKills": 15,
|
||||
"maxBossKills": 30,
|
||||
"minBossKills": 15,
|
||||
"maxBossKills": 10,
|
||||
"minBossKills": 5,
|
||||
"maxPmcKills": 15,
|
||||
"minPmcKills": 10,
|
||||
"weaponRequirementProb": 0,
|
||||
@ -1206,7 +1206,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"bodyPartProb": 0.4,
|
||||
"bodyPartProb": 0.25,
|
||||
"bodyParts": [{
|
||||
"key": "Head",
|
||||
"relativeProbability": 1,
|
||||
@ -1232,8 +1232,8 @@
|
||||
"minDist": 10,
|
||||
"maxKills": 40,
|
||||
"minKills": 20,
|
||||
"maxBossKills": 20,
|
||||
"minBossKills": 10,
|
||||
"maxBossKills": 14,
|
||||
"minBossKills": 7,
|
||||
"maxPmcKills": 25,
|
||||
"minPmcKills": 10,
|
||||
"weaponRequirementProb": 0,
|
||||
|
@ -1,20 +1,20 @@
|
||||
{
|
||||
"appearance": {
|
||||
"body": {
|
||||
"5d5e7e7586f77427997cfb7f": 1,
|
||||
"5d5e7e8386f774393602d6fa": 1,
|
||||
"5df8a10486f77412672a1e3a": 1,
|
||||
"5e4bb3ee86f77406975c934e": 1,
|
||||
"5e9da1d086f774054a667134": 1,
|
||||
"5fd1eb3fbe3b7107d66cb645": 1
|
||||
"5d5e7e7586f77427997cfb7f": 9,
|
||||
"5d5e7e8386f774393602d6fa": 4,
|
||||
"5df8a10486f77412672a1e3a": 10,
|
||||
"5e4bb3ee86f77406975c934e": 4,
|
||||
"5e9da1d086f774054a667134": 8,
|
||||
"5fd1eb3fbe3b7107d66cb645": 9
|
||||
},
|
||||
"feet": {
|
||||
"5cc2e5d014c02e15d53d9c03": 1,
|
||||
"5d28af7886f77429275dba25": 1,
|
||||
"5d5e7f4986f7746956659f8a": 1,
|
||||
"5f5e410c6bdad616ad46d60b": 1,
|
||||
"5f5e41366760b4138443b343": 1,
|
||||
"5f5e41576760b4138443b344": 1
|
||||
"5cc2e5d014c02e15d53d9c03": 8,
|
||||
"5d28af7886f77429275dba25": 9,
|
||||
"5d5e7f4986f7746956659f8a": 8,
|
||||
"5f5e410c6bdad616ad46d60b": 4,
|
||||
"5f5e41366760b4138443b343": 10,
|
||||
"5f5e41576760b4138443b344": 5
|
||||
},
|
||||
"hands": [
|
||||
"5df8eac086f77412640e2ea7",
|
||||
@ -2040,28 +2040,46 @@
|
||||
"standingForKill": 0
|
||||
},
|
||||
"firstName": [
|
||||
"Картавый",
|
||||
"Сырок",
|
||||
"Дальневосточный",
|
||||
"Мутко",
|
||||
"Базарыч",
|
||||
"Кореш",
|
||||
"Лобстер",
|
||||
"Балкан",
|
||||
"Логан",
|
||||
"Подружка",
|
||||
"Васек",
|
||||
"Оливье",
|
||||
"Хардбас",
|
||||
"Шнырь",
|
||||
"Ярик",
|
||||
"Ден",
|
||||
"Гарри",
|
||||
"Кулек",
|
||||
"Андрюша",
|
||||
"Анимешник",
|
||||
"Баба Яга",
|
||||
"Балкан",
|
||||
"Бастурма",
|
||||
"Базарыч",
|
||||
"Чёткий",
|
||||
"Дальневосточный",
|
||||
"Дементий",
|
||||
"Дэн",
|
||||
"Димон",
|
||||
"Друг Дамирки",
|
||||
"Гамлет",
|
||||
"Гарри Поттер",
|
||||
"Грустный",
|
||||
"Хардбас",
|
||||
"Картавый",
|
||||
"Кел Гоблин",
|
||||
"Киллада",
|
||||
"Кореш",
|
||||
"Кощей",
|
||||
"Космонавт",
|
||||
"Кроссфитер",
|
||||
"Кулёк",
|
||||
"Лобстер",
|
||||
"Логан",
|
||||
"Михалыч",
|
||||
"Мутко",
|
||||
"Огород",
|
||||
"Пашка",
|
||||
"Оливье",
|
||||
"Подружка",
|
||||
"Шмыга",
|
||||
"Баба",
|
||||
"Михалыч"
|
||||
"Шнур",
|
||||
"Сырок",
|
||||
"Улётный",
|
||||
"Васёк",
|
||||
"Ярик",
|
||||
"Кулек",
|
||||
"Шнырь"
|
||||
],
|
||||
"generation": {
|
||||
"items": {
|
||||
@ -2216,9 +2234,9 @@
|
||||
"56dff2ced2720bb4668b4567": 1
|
||||
},
|
||||
"Caliber556x45NATO": {
|
||||
"54527a984bdc2d4e668b4567": 1,
|
||||
"54527ac44bdc2d36668b4567": 1,
|
||||
"59e6920f86f77411d82aa167": 1
|
||||
"54527a984bdc2d4e668b4567": 6,
|
||||
"54527ac44bdc2d36668b4567": 5,
|
||||
"59e6920f86f77411d82aa167": 2
|
||||
},
|
||||
"Caliber57x28": {
|
||||
"5cc80f38e4a949001152b560": 1
|
||||
@ -2230,22 +2248,22 @@
|
||||
"59e0d99486f7744a32234762": 1
|
||||
},
|
||||
"Caliber762x51": {
|
||||
"58dd3ad986f77403051cba8f": 1,
|
||||
"5a6086ea4f39f99cd479502f": 1,
|
||||
"5a608bf24f39f98ffc77720e": 1,
|
||||
"58dd3ad986f77403051cba8f": 2,
|
||||
"5a6086ea4f39f99cd479502f": 3,
|
||||
"5a608bf24f39f98ffc77720e": 2,
|
||||
"5e023e53d4353e3302577c4c": 1
|
||||
},
|
||||
"Caliber9x18PM": {
|
||||
"573719762459775a626ccbc1": 1
|
||||
},
|
||||
"Caliber9x19PARA": {
|
||||
"56d59d3ad2720bdb418b4577": 1,
|
||||
"5c925fa22e221601da359b7b": 1,
|
||||
"5efb0da7a29a85116f6ea05f": 1
|
||||
"56d59d3ad2720bdb418b4577": 53,
|
||||
"5c925fa22e221601da359b7b": 16,
|
||||
"5efb0da7a29a85116f6ea05f": 4
|
||||
},
|
||||
"Caliber9x21": {
|
||||
"5a26abfac4a28232980eabff": 1,
|
||||
"5a26ac0ec4a28200741e1e18": 1
|
||||
"5a26abfac4a28232980eabff": 3,
|
||||
"5a26ac0ec4a28200741e1e18": 8
|
||||
},
|
||||
"Caliber9x39": {
|
||||
"5c0d668f86f7747ccb7f13b2": 1
|
||||
@ -2254,108 +2272,108 @@
|
||||
"equipment": {
|
||||
"ArmBand": {},
|
||||
"ArmorVest": {
|
||||
"5648a7494bdc2d9d488b4583": 1,
|
||||
"5ab8e79e86f7742d8b372e78": 1,
|
||||
"5b44d22286f774172b0c9de8": 1,
|
||||
"5c0e51be86f774598e797894": 1,
|
||||
"5648a7494bdc2d9d488b4583": 4,
|
||||
"5ab8e79e86f7742d8b372e78": 2,
|
||||
"5b44d22286f774172b0c9de8": 3,
|
||||
"5c0e51be86f774598e797894": 4,
|
||||
"5c0e53c886f7747fa54205c7": 1,
|
||||
"5c0e57ba86f7747fa141986d": 1,
|
||||
"5c0e5bab86f77461f55ed1f3": 1,
|
||||
"5c0e57ba86f7747fa141986d": 4,
|
||||
"5c0e5bab86f77461f55ed1f3": 3,
|
||||
"5c0e625a86f7742d77340f62": 1,
|
||||
"5c0e655586f774045612eeb2": 1,
|
||||
"5ca2151486f774244a3b8d30": 1,
|
||||
"5ca2151486f774244a3b8d30": 2,
|
||||
"5fd4c474dd870108a754b241": 1,
|
||||
"609e8540d5c319764c2bc2e9": 1,
|
||||
"609e8540d5c319764c2bc2e9": 2,
|
||||
"63737f448b28897f2802b874": 1
|
||||
},
|
||||
"Backpack": {
|
||||
"545cdae64bdc2d39198b4568": 1,
|
||||
"5ca20d5986f774331e7c9602": 1,
|
||||
"5f5e467b0bc58666c37e7821": 1,
|
||||
"545cdae64bdc2d39198b4568": 2,
|
||||
"5ca20d5986f774331e7c9602": 2,
|
||||
"5f5e467b0bc58666c37e7821": 3,
|
||||
"6034d103ca006d2dca39b3f0": 1,
|
||||
"6038d614d10cbf667352dd44": 1,
|
||||
"60a272cc93ef783291411d8e": 1,
|
||||
"60a2828e8689911a226117f9": 1,
|
||||
"618cfae774bb2d036a049e7c": 1,
|
||||
"619cf0335771dd3c390269ae": 1,
|
||||
"62a1b7fbc30cfa1d366af586": 1
|
||||
"6038d614d10cbf667352dd44": 4,
|
||||
"60a272cc93ef783291411d8e": 2,
|
||||
"60a2828e8689911a226117f9": 7,
|
||||
"618cfae774bb2d036a049e7c": 5,
|
||||
"619cf0335771dd3c390269ae": 3,
|
||||
"62a1b7fbc30cfa1d366af586": 3
|
||||
},
|
||||
"Earpiece": {
|
||||
"5645bcc04bdc2d363b8b4572": 1,
|
||||
"5aa2ba71e5b5b000137b758f": 1,
|
||||
"5b432b965acfc47a8774094e": 1,
|
||||
"5e4d34ca86f774264f758330": 1,
|
||||
"6033fa48ffd42c541047f728": 1
|
||||
"5645bcc04bdc2d363b8b4572": 5,
|
||||
"5aa2ba71e5b5b000137b758f": 5,
|
||||
"5b432b965acfc47a8774094e": 5,
|
||||
"5e4d34ca86f774264f758330": 5,
|
||||
"6033fa48ffd42c541047f728": 7
|
||||
},
|
||||
"Eyewear": {
|
||||
"557ff21e4bdc2d89578b4586": 1,
|
||||
"59e770b986f7742cbd762754": 1,
|
||||
"5b432be65acfc433000ed01f": 1,
|
||||
"603409c80ca681766b6a0fb2": 1,
|
||||
"61c18d83b00456371a66814b": 1
|
||||
"557ff21e4bdc2d89578b4586": 12,
|
||||
"59e770b986f7742cbd762754": 13,
|
||||
"5b432be65acfc433000ed01f": 10,
|
||||
"603409c80ca681766b6a0fb2": 4,
|
||||
"61c18d83b00456371a66814b": 4
|
||||
},
|
||||
"FaceCover": {
|
||||
"572b7fa524597762b747ce82": 1,
|
||||
"5ab8f39486f7745cd93a1cca": 1,
|
||||
"5ab8f4ff86f77431c60d91ba": 1,
|
||||
"5b432f3d5acfc4704b4a1dfb": 1,
|
||||
"5fd8d28367cb5e077335170f": 1,
|
||||
"572b7fa524597762b747ce82": 2,
|
||||
"5ab8f39486f7745cd93a1cca": 3,
|
||||
"5ab8f4ff86f77431c60d91ba": 6,
|
||||
"5b432f3d5acfc4704b4a1dfb": 19,
|
||||
"5fd8d28367cb5e077335170f": 2,
|
||||
"60363c0c92ec1c31037959f5": 1
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"5447a9cd4bdc2dbd208b4567": 1,
|
||||
"576165642459773c7a400233": 1,
|
||||
"57c44b372459772d2b39b8ce": 1,
|
||||
"5447a9cd4bdc2dbd208b4567": 2,
|
||||
"576165642459773c7a400233": 3,
|
||||
"57c44b372459772d2b39b8ce": 2,
|
||||
"587e02ff24597743df3deaeb": 1,
|
||||
"59984ab886f7743e98271174": 1,
|
||||
"5a367e5dc4a282000e49738f": 1,
|
||||
"5a367e5dc4a282000e49738f": 3,
|
||||
"5a7828548dc32e5a9c28b516": 1,
|
||||
"5aafa857e5b5b00018480968": 1,
|
||||
"5ac4cd105acfc40016339859": 1,
|
||||
"5ac66cb05acfc40198510a10": 1,
|
||||
"5aafa857e5b5b00018480968": 2,
|
||||
"5ac4cd105acfc40016339859": 2,
|
||||
"5ac66cb05acfc40198510a10": 2,
|
||||
"5ba26383d4351e00334c93d9": 1,
|
||||
"5cc82d76e24e8d00134b4b83": 1,
|
||||
"5dcbd56fdbd3d91b3e5468d5": 1,
|
||||
"5e00903ae9dc277128008b87": 1,
|
||||
"5cc82d76e24e8d00134b4b83": 2,
|
||||
"5dcbd56fdbd3d91b3e5468d5": 2,
|
||||
"5e00903ae9dc277128008b87": 3,
|
||||
"5f2a9575926fd9352339381f": 1,
|
||||
"5fbcc1d9016cce60e8341ab3": 1,
|
||||
"5fc3f2d5900b1d5091531e57": 1,
|
||||
"5fbcc1d9016cce60e8341ab3": 3,
|
||||
"5fc3f2d5900b1d5091531e57": 3,
|
||||
"60339954d62c9b14ed777c06": 1,
|
||||
"618428466ef05c2ce828f218": 1,
|
||||
"623063e994fc3f7b302a9696": 1,
|
||||
"628b9c37a733087d0d7fe84b": 1,
|
||||
"62e14904c2699c0ec93adc47": 1,
|
||||
"628b9c37a733087d0d7fe84b": 2,
|
||||
"62e14904c2699c0ec93adc47": 4,
|
||||
"62e7c4fba689e8c9c50dfc38": 1
|
||||
},
|
||||
"Headwear": {
|
||||
"5645bc214bdc2d363b8b4571": 1,
|
||||
"5645bc214bdc2d363b8b4571": 2,
|
||||
"5a154d5cfcdbcb001a3b00da": 1,
|
||||
"5aa2b8d7e5b5b00014028f4a": 1,
|
||||
"5aa2ba19e5b5b00014028f4e": 1,
|
||||
"5aa7d193e5b5b000171d063f": 1,
|
||||
"5aa7e4a4e5b5b000137b76f2": 1,
|
||||
"5ac8d6885acfc400180ae7b0": 1,
|
||||
"5b40e1525acfc4771e1c6611": 1,
|
||||
"5b40e2bc5acfc40016388216": 1,
|
||||
"5b40e3f35acfc40016388218": 1,
|
||||
"5b40e4035acfc47a87740943": 1,
|
||||
"5b432d215acfc4771e1c6624": 1,
|
||||
"5aa2b8d7e5b5b00014028f4a": 5,
|
||||
"5aa2ba19e5b5b00014028f4e": 6,
|
||||
"5aa7d193e5b5b000171d063f": 3,
|
||||
"5aa7e4a4e5b5b000137b76f2": 2,
|
||||
"5ac8d6885acfc400180ae7b0": 2,
|
||||
"5b40e1525acfc4771e1c6611": 3,
|
||||
"5b40e2bc5acfc40016388216": 2,
|
||||
"5b40e3f35acfc40016388218": 3,
|
||||
"5b40e4035acfc47a87740943": 2,
|
||||
"5b432d215acfc4771e1c6624": 2,
|
||||
"5ea17ca01412a1425304d1c0": 1,
|
||||
"5f60b34a41e30a4ab12a6947": 1,
|
||||
"5f60b34a41e30a4ab12a6947": 2,
|
||||
"60361b5a9a15b10d96792291": 1,
|
||||
"6040de02647ad86262233012": 1,
|
||||
"61bca7cda0eae612383adf57": 1
|
||||
"61bca7cda0eae612383adf57": 4
|
||||
},
|
||||
"Holster": {
|
||||
"56d59856d2720bd8418b456a": 1,
|
||||
"59f98b4986f7746f546d2cef": 1,
|
||||
"5a17f98cfcdbcb0980087290": 1,
|
||||
"56d59856d2720bd8418b456a": 3,
|
||||
"59f98b4986f7746f546d2cef": 2,
|
||||
"5a17f98cfcdbcb0980087290": 2,
|
||||
"5b1fa9b25acfc40018633c01": 1,
|
||||
"5cadc190ae921500103bb3b6": 1,
|
||||
"5e81c3cbac2bb513793cdc75": 1,
|
||||
"602a9740da11d6478d5a06dc": 1,
|
||||
"5cadc190ae921500103bb3b6": 3,
|
||||
"5e81c3cbac2bb513793cdc75": 25,
|
||||
"602a9740da11d6478d5a06dc": 2,
|
||||
"6193a720f8ee7e52e42109ed": 1,
|
||||
"63088377b5cd696784087147": 1
|
||||
"63088377b5cd696784087147": 5
|
||||
},
|
||||
"Pockets": {
|
||||
"5af99e9186f7747c447120b8": 1
|
||||
@ -2366,19 +2384,19 @@
|
||||
"5c0a794586f77461c458f892": 1
|
||||
},
|
||||
"TacticalVest": {
|
||||
"544a5caa4bdc2d1a388b4568": 1,
|
||||
"544a5caa4bdc2d1a388b4568": 2,
|
||||
"5648a69d4bdc2ded0b8b457b": 1,
|
||||
"5929a2a086f7744f4b234d43": 1,
|
||||
"5d5d85c586f774279a21cbdb": 1,
|
||||
"5e9db13186f7742f845ee9d3": 1,
|
||||
"5f5f41f56760b4138443b352": 1,
|
||||
"5fd4c60f875c30179f5d04c2": 1,
|
||||
"5929a2a086f7744f4b234d43": 5,
|
||||
"5d5d85c586f774279a21cbdb": 5,
|
||||
"5e9db13186f7742f845ee9d3": 4,
|
||||
"5f5f41f56760b4138443b352": 5,
|
||||
"5fd4c60f875c30179f5d04c2": 2,
|
||||
"603648ff5a45383c122086ac": 1,
|
||||
"6040dd4ddcf9592f401632d2": 1,
|
||||
"60a621c49c197e4e8c4455e6": 1,
|
||||
"6040dd4ddcf9592f401632d2": 2,
|
||||
"60a621c49c197e4e8c4455e6": 10,
|
||||
"60a6220e953894617404b00a": 1,
|
||||
"61bc85697113f767765c7fe7": 1,
|
||||
"61bcc89aef0f505f0c6cd0fc": 1,
|
||||
"61bc85697113f767765c7fe7": 2,
|
||||
"61bcc89aef0f505f0c6cd0fc": 3,
|
||||
"639343fce101f4caa40a4ef3": 1
|
||||
}
|
||||
},
|
||||
@ -2678,26 +2696,32 @@
|
||||
"5c07dd120db834001c39092d"
|
||||
],
|
||||
"Pockets": [
|
||||
"63076701a987397c0816d21b",
|
||||
"5e32f56fcb6d5863cc5e5ee4",
|
||||
"5a17fb03fcdbcbcae668728f",
|
||||
"5aaa5e60e5b5b000140293d6",
|
||||
"602286df23506e50807090c6",
|
||||
"5e81c4ca763d9f754677befa",
|
||||
"5e32f56fcb6d5863cc5e5ee4",
|
||||
"5df8f535bb49d91fb446d6b0",
|
||||
"617fd91e5539a84ec44ce155",
|
||||
"5a718b548dc32e000d46d262",
|
||||
"59e0d99486f7744a32234762",
|
||||
"59f99a7d86f7745b134aa97b",
|
||||
"5a718da68dc32e000d46d264",
|
||||
"5cadc2e0ae9215051e1c21e7",
|
||||
"5df8f535bb49d91fb446d6b0",
|
||||
"617fd91e5539a84ec44ce155",
|
||||
"5a718b548dc32e000d46d262",
|
||||
"56d59948d2720bb7418b4582",
|
||||
"63076701a987397c0816d21b",
|
||||
"5a17fb03fcdbcbcae668728f",
|
||||
"5aaa5e60e5b5b000140293d6",
|
||||
"602286df23506e50807090c6",
|
||||
"5448be9a4bdc2dfd2f8b456a",
|
||||
"56d59948d2720bb7418b4582",
|
||||
"5d6e6911a4b9361bd5780d52",
|
||||
"6193d3149fb0c665d5490e32",
|
||||
"618a431df1eb8e24b8741deb",
|
||||
"5b7bef1e5acfc43d82528402",
|
||||
"630e1adbbd357927e4007c09"
|
||||
"630e1adbbd357927e4007c09",
|
||||
"560d5e524bdc2d25448b4571",
|
||||
"5c0d591486f7744c505b416f",
|
||||
"5448c1d04bdc2dff2f8b4569",
|
||||
"5d6e68c4a4b9361b93413f79",
|
||||
"5d3eb5eca4b9363b1f22f8e4",
|
||||
"5d6e6869a4b9361c140bcfde"
|
||||
],
|
||||
"SecuredContainer": [
|
||||
"56d59d3ad2720bdb418b4577",
|
||||
@ -4032,10 +4056,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"lastName": [
|
||||
"Поттер",
|
||||
"Яга"
|
||||
],
|
||||
"lastName": [],
|
||||
"skills": {
|
||||
"Common": {
|
||||
"BotReload": {
|
||||
|
@ -1,32 +1,32 @@
|
||||
{
|
||||
"appearance": {
|
||||
"body": {
|
||||
"5cc2e59214c02e000f16684e": 1,
|
||||
"5cde9f337d6c8b0474535da8": 1,
|
||||
"5d28ad6986f77429275dba22": 1,
|
||||
"5d28ad7286f7742926686182": 1,
|
||||
"5df8a10486f77412672a1e3a": 1,
|
||||
"5e4bb3ee86f77406975c934e": 1,
|
||||
"5e9da1d086f774054a667134": 1,
|
||||
"5fd1eb3fbe3b7107d66cb645": 1,
|
||||
"5fd22d311add82653b5a704c": 1,
|
||||
"618d1af10a5a59657e5f56f3": 1,
|
||||
"619238266c614e6d15792bca": 1,
|
||||
"637df28ac22da5bb8d046935": 1,
|
||||
"64a2edba08d26f8d62049c06": 1
|
||||
"5cc2e59214c02e000f16684e": 697,
|
||||
"5cde9f337d6c8b0474535da8": 714,
|
||||
"5d28ad6986f77429275dba22": 708,
|
||||
"5d28ad7286f7742926686182": 716,
|
||||
"5df8a10486f77412672a1e3a": 756,
|
||||
"5e4bb3ee86f77406975c934e": 735,
|
||||
"5e9da1d086f774054a667134": 728,
|
||||
"5fd1eb3fbe3b7107d66cb645": 702,
|
||||
"5fd22d311add82653b5a704c": 711,
|
||||
"618d1af10a5a59657e5f56f3": 691,
|
||||
"619238266c614e6d15792bca": 700,
|
||||
"637df28ac22da5bb8d046935": 742,
|
||||
"64a2edba08d26f8d62049c06": 664
|
||||
},
|
||||
"feet": {
|
||||
"5cc2e5d014c02e15d53d9c03": 1,
|
||||
"5cde9fb87d6c8b0474535da9": 1,
|
||||
"5d28af3486f774292364a6e7": 1,
|
||||
"5df8a15186f77412640e2e6a": 1,
|
||||
"5f5e410c6bdad616ad46d60b": 1,
|
||||
"5f5e41366760b4138443b343": 1,
|
||||
"5f5e41576760b4138443b344": 1,
|
||||
"61922589bb2cea6f7a22d964": 1,
|
||||
"6193be546e5968395b260157": 1,
|
||||
"637df25a1e688345e1097bd4": 1,
|
||||
"64a2e970a74bb33d140e6dc5": 1
|
||||
"5cc2e5d014c02e15d53d9c03": 213,
|
||||
"5cde9fb87d6c8b0474535da9": 201,
|
||||
"5d28af3486f774292364a6e7": 192,
|
||||
"5df8a15186f77412640e2e6a": 213,
|
||||
"5f5e410c6bdad616ad46d60b": 201,
|
||||
"5f5e41366760b4138443b343": 200,
|
||||
"5f5e41576760b4138443b344": 198,
|
||||
"61922589bb2cea6f7a22d964": 195,
|
||||
"6193be546e5968395b260157": 213,
|
||||
"637df25a1e688345e1097bd4": 197,
|
||||
"64a2e970a74bb33d140e6dc5": 209
|
||||
},
|
||||
"hands": [
|
||||
"5e4bb49586f77406a313ec5a",
|
||||
@ -2532,117 +2532,117 @@
|
||||
"inventory": {
|
||||
"Ammo": {
|
||||
"Caliber1143x23ACP": {
|
||||
"5e81f423763d9f754677bf2e": 1,
|
||||
"5efb0d4f4bc50b58e81710f3": 1,
|
||||
"5efb0fc6aeb21837e749c801": 1
|
||||
"5e81f423763d9f754677bf2e": 119,
|
||||
"5efb0d4f4bc50b58e81710f3": 78,
|
||||
"5efb0fc6aeb21837e749c801": 7
|
||||
},
|
||||
"Caliber12g": {
|
||||
"560d5e524bdc2d25448b4571": 5,
|
||||
"58820d1224597753c90aeb13": 2,
|
||||
"5d6e6772a4b936088465b17c": 4,
|
||||
"5d6e67fba4b9361bc73bc779": 4,
|
||||
"5d6e6806a4b936088465b17e": 3,
|
||||
"5d6e6869a4b9361c140bcfde": 1,
|
||||
"5d6e6891a4b9361bd473feea": 1,
|
||||
"5d6e689ca4b9361bc8618956": 1,
|
||||
"5d6e68b3a4b9361bca7e50b5": 1,
|
||||
"5d6e68d1a4b93622fe60e845": 1,
|
||||
"5d6e68dea4b9361bcc29e659": 1,
|
||||
"5d6e68e6a4b9361c140bcfe0": 1,
|
||||
"5d6e6911a4b9361bd5780d52": 1
|
||||
"560d5e524bdc2d25448b4571": 10943,
|
||||
"58820d1224597753c90aeb13": 2684,
|
||||
"5d6e6772a4b936088465b17c": 101,
|
||||
"5d6e67fba4b9361bc73bc779": 3098,
|
||||
"5d6e6806a4b936088465b17e": 2797,
|
||||
"5d6e6869a4b9361c140bcfde": 1589,
|
||||
"5d6e6891a4b9361bd473feea": 1525,
|
||||
"5d6e689ca4b9361bc8618956": 253,
|
||||
"5d6e68b3a4b9361bca7e50b5": 631,
|
||||
"5d6e68d1a4b93622fe60e845": 90,
|
||||
"5d6e68dea4b9361bcc29e659": 465,
|
||||
"5d6e68e6a4b9361c140bcfe0": 291,
|
||||
"5d6e6911a4b9361bd5780d52": 25
|
||||
},
|
||||
"Caliber20g": {
|
||||
"5a38ebd9c4a282000d722a5b": 1,
|
||||
"5d6e695fa4b936359b35d852": 1,
|
||||
"5d6e69b9a4b9361bc8618958": 1,
|
||||
"5d6e69c7a4b9360b6c0d54e4": 1,
|
||||
"5d6e6a05a4b93618084f58d0": 1,
|
||||
"5d6e6a42a4b9364f07165f52": 1,
|
||||
"5d6e6a53a4b9361bd473feec": 1,
|
||||
"5d6e6a5fa4b93614ec501745": 1
|
||||
"5a38ebd9c4a282000d722a5b": 5792,
|
||||
"5d6e695fa4b936359b35d852": 1622,
|
||||
"5d6e69b9a4b9361bc8618958": 460,
|
||||
"5d6e69c7a4b9360b6c0d54e4": 628,
|
||||
"5d6e6a05a4b93618084f58d0": 451,
|
||||
"5d6e6a42a4b9364f07165f52": 493,
|
||||
"5d6e6a53a4b9361bd473feec": 1636,
|
||||
"5d6e6a5fa4b93614ec501745": 340
|
||||
},
|
||||
"Caliber23x75": {
|
||||
"5e85a9a6eacf8c039e4e2ac1": 1
|
||||
},
|
||||
"Caliber366TKM": {
|
||||
"59e6542b86f77411dc52a77a": 44,
|
||||
"59e655cb86f77411dc52a77b": 20,
|
||||
"59e6658b86f77411d949b250": 31,
|
||||
"5f0596629e22f464da6bbdd9": 8
|
||||
"59e6542b86f77411dc52a77a": 4600,
|
||||
"59e655cb86f77411dc52a77b": 2355,
|
||||
"59e6658b86f77411d949b250": 1568,
|
||||
"5f0596629e22f464da6bbdd9": 101
|
||||
},
|
||||
"Caliber545x39": {
|
||||
"56dfef82d2720bbd668b4567": 1,
|
||||
"56dff061d2720bb5668b4567": 1,
|
||||
"56dff0bed2720bb0668b4567": 1,
|
||||
"56dff216d2720bbd668b4568": 1,
|
||||
"56dff2ced2720bb4668b4567": 1,
|
||||
"56dff338d2720bbd668b4569": 1,
|
||||
"56dff3afd2720bba668b4567": 1,
|
||||
"56dff421d2720b5f5a8b4567": 1,
|
||||
"56dff4a2d2720bbd668b456a": 1,
|
||||
"56dff4ecd2720b5f5a8b4568": 1
|
||||
"56dfef82d2720bbd668b4567": 132,
|
||||
"56dff061d2720bb5668b4567": 30,
|
||||
"56dff0bed2720bb0668b4567": 886,
|
||||
"56dff216d2720bbd668b4568": 1075,
|
||||
"56dff2ced2720bb4668b4567": 112,
|
||||
"56dff338d2720bbd668b4569": 857,
|
||||
"56dff3afd2720bba668b4567": 3638,
|
||||
"56dff421d2720b5f5a8b4567": 1059,
|
||||
"56dff4a2d2720bbd668b456a": 895,
|
||||
"56dff4ecd2720b5f5a8b4568": 557
|
||||
},
|
||||
"Caliber556x45NATO": {
|
||||
"54527a984bdc2d4e668b4567": 4,
|
||||
"54527ac44bdc2d36668b4567": 1,
|
||||
"59e68f6f86f7746c9f75e846": 1,
|
||||
"59e6906286f7746c9f75e847": 1,
|
||||
"59e6918f86f7746c9f75e849": 1,
|
||||
"59e6920f86f77411d82aa167": 1,
|
||||
"59e6927d86f77411da468256": 1,
|
||||
"5c0d5ae286f7741e46554302": 3
|
||||
"54527a984bdc2d4e668b4567": 276,
|
||||
"54527ac44bdc2d36668b4567": 24,
|
||||
"59e68f6f86f7746c9f75e846": 306,
|
||||
"59e6906286f7746c9f75e847": 76,
|
||||
"59e6918f86f7746c9f75e849": 445,
|
||||
"59e6920f86f77411d82aa167": 620,
|
||||
"59e6927d86f77411da468256": 405,
|
||||
"5c0d5ae286f7741e46554302": 140
|
||||
},
|
||||
"Caliber762x25TT": {
|
||||
"5735fdcd2459776445391d61": 1,
|
||||
"5735ff5c245977640e39ba7e": 1,
|
||||
"573601b42459776410737435": 1,
|
||||
"573602322459776445391df1": 1,
|
||||
"5736026a245977644601dc61": 1,
|
||||
"573603562459776430731618": 1,
|
||||
"573603c924597764442bd9cb": 1
|
||||
"5735fdcd2459776445391d61": 1165,
|
||||
"5735ff5c245977640e39ba7e": 610,
|
||||
"573601b42459776410737435": 677,
|
||||
"573602322459776445391df1": 246,
|
||||
"5736026a245977644601dc61": 1698,
|
||||
"573603562459776430731618": 227,
|
||||
"573603c924597764442bd9cb": 642
|
||||
},
|
||||
"Caliber762x39": {
|
||||
"5656d7c34bdc2d9d198b4587": 2,
|
||||
"59e4cf5286f7741778269d8a": 2,
|
||||
"59e4d3d286f774176a36250a": 1,
|
||||
"64b7af5a8532cf95ee0a0dbd": 1,
|
||||
"64b7af734b75259c590fa895": 1
|
||||
"5656d7c34bdc2d9d198b4587": 630,
|
||||
"59e4cf5286f7741778269d8a": 991,
|
||||
"59e4d3d286f774176a36250a": 1362,
|
||||
"64b7af5a8532cf95ee0a0dbd": 1385,
|
||||
"64b7af734b75259c590fa895": 670
|
||||
},
|
||||
"Caliber762x51": {
|
||||
"5e023e53d4353e3302577c4c": 15,
|
||||
"5e023e6e34d52a55c3304f71": 10,
|
||||
"5e023e88277cce2b522ff2b1": 10
|
||||
"5e023e53d4353e3302577c4c": 1238,
|
||||
"5e023e6e34d52a55c3304f71": 961,
|
||||
"5e023e88277cce2b522ff2b1": 57
|
||||
},
|
||||
"Caliber762x54R": {
|
||||
"5887431f2459777e1612938f": 1,
|
||||
"5e023cf8186a883be655e54f": 1,
|
||||
"64b8f7968532cf95ee0a0dbf": 1,
|
||||
"64b8f7b5389d7ffd620ccba2": 1,
|
||||
"64b8f7c241772715af0f9c3d": 1
|
||||
"5887431f2459777e1612938f": 21,
|
||||
"5e023cf8186a883be655e54f": 10,
|
||||
"64b8f7968532cf95ee0a0dbf": 202,
|
||||
"64b8f7b5389d7ffd620ccba2": 130,
|
||||
"64b8f7c241772715af0f9c3d": 139
|
||||
},
|
||||
"Caliber9x18PM": {
|
||||
"573718ba2459775a75491131": 1,
|
||||
"573719762459775a626ccbc1": 1,
|
||||
"573719df2459775a626ccbc2": 1,
|
||||
"57371aab2459775a77142f22": 1,
|
||||
"57371b192459775a9f58a5e0": 1,
|
||||
"57371e4124597760ff7b25f1": 1,
|
||||
"57371eb62459776125652ac1": 1,
|
||||
"57371f2b24597761224311f1": 1,
|
||||
"57371f8d24597761006c6a81": 1,
|
||||
"5737201124597760fc4431f1": 1,
|
||||
"5737207f24597760ff7b25f2": 1,
|
||||
"573720e02459776143012541": 1,
|
||||
"57372140245977611f70ee91": 1,
|
||||
"5737218f245977612125ba51": 1
|
||||
"573718ba2459775a75491131": 209,
|
||||
"573719762459775a626ccbc1": 1641,
|
||||
"573719df2459775a626ccbc2": 22,
|
||||
"57371aab2459775a77142f22": 33,
|
||||
"57371b192459775a9f58a5e0": 261,
|
||||
"57371e4124597760ff7b25f1": 420,
|
||||
"57371eb62459776125652ac1": 584,
|
||||
"57371f2b24597761224311f1": 342,
|
||||
"57371f8d24597761006c6a81": 222,
|
||||
"5737201124597760fc4431f1": 319,
|
||||
"5737207f24597760ff7b25f2": 168,
|
||||
"573720e02459776143012541": 72,
|
||||
"57372140245977611f70ee91": 20,
|
||||
"5737218f245977612125ba51": 272
|
||||
},
|
||||
"Caliber9x19PARA": {
|
||||
"56d59d3ad2720bdb418b4577": 1,
|
||||
"58864a4f2459770fcc257101": 1,
|
||||
"5c3df7d588a4501f290594e5": 1,
|
||||
"5efb0da7a29a85116f6ea05f": 1,
|
||||
"5efb0e16aeb21837e749c7ff": 1,
|
||||
"64b7bbb74b75259c590fa897": 1
|
||||
"56d59d3ad2720bdb418b4577": 2877,
|
||||
"58864a4f2459770fcc257101": 2749,
|
||||
"5c3df7d588a4501f290594e5": 898,
|
||||
"5efb0da7a29a85116f6ea05f": 4,
|
||||
"5efb0e16aeb21837e749c7ff": 118,
|
||||
"64b7bbb74b75259c590fa897": 874
|
||||
},
|
||||
"Caliber9x21": {
|
||||
"5a26abfac4a28232980eabff": 1
|
||||
@ -2651,191 +2651,191 @@
|
||||
"equipment": {
|
||||
"ArmBand": {},
|
||||
"ArmorVest": {
|
||||
"5648a7494bdc2d9d488b4583": 3,
|
||||
"59e7635f86f7742cbf2c1095": 3,
|
||||
"5ab8e4ed86f7742d8e50c7fa": 2,
|
||||
"5ab8e79e86f7742d8b372e78": 1,
|
||||
"5b44d22286f774172b0c9de8": 3,
|
||||
"5c0e53c886f7747fa54205c7": 2,
|
||||
"5c0e5edb86f77461f55ed1f7": 3,
|
||||
"5df8a2ca86f7740bfe6df777": 3,
|
||||
"607f20859ee58b18e41ecd90": 1,
|
||||
"609e8540d5c319764c2bc2e9": 2,
|
||||
"62a09d79de7ac81993580530": 1,
|
||||
"64be79e2bf8412471d0d9bcc": 1
|
||||
"5648a7494bdc2d9d488b4583": 898,
|
||||
"59e7635f86f7742cbf2c1095": 2334,
|
||||
"5ab8e4ed86f7742d8e50c7fa": 731,
|
||||
"5ab8e79e86f7742d8b372e78": 85,
|
||||
"5b44d22286f774172b0c9de8": 191,
|
||||
"5c0e53c886f7747fa54205c7": 352,
|
||||
"5c0e5edb86f77461f55ed1f7": 795,
|
||||
"5df8a2ca86f7740bfe6df777": 1127,
|
||||
"607f20859ee58b18e41ecd90": 23,
|
||||
"609e8540d5c319764c2bc2e9": 95,
|
||||
"62a09d79de7ac81993580530": 286,
|
||||
"64be79e2bf8412471d0d9bcc": 279
|
||||
},
|
||||
"Backpack": {
|
||||
"544a5cde4bdc2d39388b456b": 9,
|
||||
"56e335e4d2720b6c058b456d": 4,
|
||||
"56e33634d2720bd8058b456b": 10,
|
||||
"56e33680d2720be2748b4576": 12,
|
||||
"59e763f286f7742ee57895da": 5,
|
||||
"5ab8ee7786f7742d8f33f0b9": 5,
|
||||
"5ab8f04f86f774585f4237d8": 12,
|
||||
"5f5e45cc5021ce62144be7aa": 4,
|
||||
"60a2828e8689911a226117f9": 5
|
||||
"544a5cde4bdc2d39388b456b": 2054,
|
||||
"56e335e4d2720b6c058b456d": 1208,
|
||||
"56e33634d2720bd8058b456b": 3015,
|
||||
"56e33680d2720be2748b4576": 4124,
|
||||
"59e763f286f7742ee57895da": 236,
|
||||
"5ab8ee7786f7742d8f33f0b9": 673,
|
||||
"5ab8f04f86f774585f4237d8": 470,
|
||||
"5f5e45cc5021ce62144be7aa": 1679,
|
||||
"60a2828e8689911a226117f9": 109
|
||||
},
|
||||
"Earpiece": {},
|
||||
"Eyewear": {
|
||||
"557ff21e4bdc2d89578b4586": 3,
|
||||
"59e770b986f7742cbd762754": 2,
|
||||
"5aa2b923e5b5b000137b7589": 2,
|
||||
"5aa2b986e5b5b00014028f4c": 3,
|
||||
"5aa2b9aee5b5b00015693121": 2,
|
||||
"5b432be65acfc433000ed01f": 3,
|
||||
"5d6d2ef3a4b93618084f58bd": 2,
|
||||
"603409c80ca681766b6a0fb2": 1,
|
||||
"61c18d83b00456371a66814b": 1,
|
||||
"62a09e410b9d3c46de5b6e78": 1
|
||||
"557ff21e4bdc2d89578b4586": 1777,
|
||||
"59e770b986f7742cbd762754": 1469,
|
||||
"5aa2b923e5b5b000137b7589": 540,
|
||||
"5aa2b986e5b5b00014028f4c": 1821,
|
||||
"5aa2b9aee5b5b00015693121": 1169,
|
||||
"5b432be65acfc433000ed01f": 747,
|
||||
"5d6d2ef3a4b93618084f58bd": 323,
|
||||
"603409c80ca681766b6a0fb2": 179,
|
||||
"61c18d83b00456371a66814b": 117,
|
||||
"62a09e410b9d3c46de5b6e78": 106
|
||||
},
|
||||
"FaceCover": {
|
||||
"572b7f1624597762ae139822": 10,
|
||||
"572b7fa524597762b747ce82": 10,
|
||||
"59e7715586f7742ee5789605": 10,
|
||||
"5ab8f39486f7745cd93a1cca": 8,
|
||||
"5ab8f4ff86f77431c60d91ba": 5,
|
||||
"5b4326435acfc433000ed01d": 10,
|
||||
"5b432b2f5acfc4771e1c6622": 10,
|
||||
"5b432b6c5acfc4001a599bf0": 6,
|
||||
"5b432c305acfc40019478128": 10,
|
||||
"5b432f3d5acfc4704b4a1dfb": 10,
|
||||
"5bd073a586f7747e6f135799": 7,
|
||||
"5e54f76986f7740366043752": 3,
|
||||
"5e54f79686f7744022011103": 1,
|
||||
"5e71f6be86f77429f2683c44": 1,
|
||||
"60363c0c92ec1c31037959f5": 10,
|
||||
"62a09e08de7ac81993580532": 1,
|
||||
"62a5c2c98ec41a51b34739c0": 1,
|
||||
"62a5c333ec21e50cad3b5dc6": 1,
|
||||
"62a5c41e8ec41a51b34739c3": 1
|
||||
"572b7f1624597762ae139822": 2542,
|
||||
"572b7fa524597762b747ce82": 5011,
|
||||
"59e7715586f7742ee5789605": 4294,
|
||||
"5ab8f39486f7745cd93a1cca": 338,
|
||||
"5ab8f4ff86f77431c60d91ba": 623,
|
||||
"5b4326435acfc433000ed01d": 1493,
|
||||
"5b432b2f5acfc4771e1c6622": 94,
|
||||
"5b432b6c5acfc4001a599bf0": 206,
|
||||
"5b432c305acfc40019478128": 596,
|
||||
"5b432f3d5acfc4704b4a1dfb": 537,
|
||||
"5bd073a586f7747e6f135799": 267,
|
||||
"5e54f76986f7740366043752": 97,
|
||||
"5e54f79686f7744022011103": 74,
|
||||
"5e71f6be86f77429f2683c44": 16,
|
||||
"60363c0c92ec1c31037959f5": 416,
|
||||
"62a09e08de7ac81993580532": 66,
|
||||
"62a5c2c98ec41a51b34739c0": 90,
|
||||
"62a5c333ec21e50cad3b5dc6": 144,
|
||||
"62a5c41e8ec41a51b34739c3": 121
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"5447a9cd4bdc2dbd208b4567": 1,
|
||||
"54491c4f4bdc2db1078b4568": 61,
|
||||
"5580223e4bdc2d1c128b457f": 4,
|
||||
"5644bd2b4bdc2d3b4c8b4572": 10,
|
||||
"56dee2bdd2720bc8328b4567": 80,
|
||||
"574d967124597745970e7c94": 56,
|
||||
"576165642459773c7a400233": 80,
|
||||
"57d14d2524597714373db789": 16,
|
||||
"57dc2fa62459775949412633": 41,
|
||||
"587e02ff24597743df3deaeb": 37,
|
||||
"59d6088586f774275f37482f": 22,
|
||||
"59e6152586f77473dc057aa1": 83,
|
||||
"59e6687d86f77411d949b251": 61,
|
||||
"59f9cabd86f7743a10721f46": 49,
|
||||
"59ff346386f77477562ff5e2": 12,
|
||||
"5a38e6bac4a2826c6e06d79b": 78,
|
||||
"5a7828548dc32e5a9c28b516": 1,
|
||||
"5ab8e9fcd8ce870019439434": 4,
|
||||
"5ac4cd105acfc40016339859": 32,
|
||||
"5ac66d725acfc43b321d4b60": 1,
|
||||
"5ac66d9b5acfc4001633997a": 9,
|
||||
"5ae08f0a5acfc408fb1398a1": 4,
|
||||
"5bf3e03b0db834001d2c4a9c": 4,
|
||||
"5bf3e0490db83400196199af": 7,
|
||||
"5bfd297f0db834001a669119": 5,
|
||||
"5c07c60e0db834002330051f": 33,
|
||||
"5c501a4d2e221602b412b540": 27,
|
||||
"5d2f0d8048f0356c925bc3b0": 1,
|
||||
"5de652c31b7e3716273428be": 17,
|
||||
"5e00903ae9dc277128008b87": 1,
|
||||
"5e848cc2988a8701445df1e8": 1,
|
||||
"5e870397991fd70db46995c8": 29,
|
||||
"5ea03f7400685063ec28bfa8": 11,
|
||||
"606dae0ab0e443224b421bb7": 57,
|
||||
"60db29ce99594040e04c4a27": 4,
|
||||
"61f7c9e189e6fb1a5e3ea78d": 32,
|
||||
"6259b864ebedf17603599e88": 1,
|
||||
"643ea5b23db6f9f57107d9fd": 1
|
||||
"5447a9cd4bdc2dbd208b4567": 22,
|
||||
"54491c4f4bdc2db1078b4568": 2513,
|
||||
"5580223e4bdc2d1c128b457f": 850,
|
||||
"5644bd2b4bdc2d3b4c8b4572": 208,
|
||||
"56dee2bdd2720bc8328b4567": 2569,
|
||||
"574d967124597745970e7c94": 1051,
|
||||
"576165642459773c7a400233": 2099,
|
||||
"57d14d2524597714373db789": 390,
|
||||
"57dc2fa62459775949412633": 1183,
|
||||
"587e02ff24597743df3deaeb": 707,
|
||||
"59d6088586f774275f37482f": 384,
|
||||
"59e6152586f77473dc057aa1": 2202,
|
||||
"59e6687d86f77411d949b251": 1685,
|
||||
"59f9cabd86f7743a10721f46": 1388,
|
||||
"59ff346386f77477562ff5e2": 254,
|
||||
"5a38e6bac4a2826c6e06d79b": 2983,
|
||||
"5a7828548dc32e5a9c28b516": 249,
|
||||
"5ab8e9fcd8ce870019439434": 104,
|
||||
"5ac4cd105acfc40016339859": 700,
|
||||
"5ac66d725acfc43b321d4b60": 64,
|
||||
"5ac66d9b5acfc4001633997a": 148,
|
||||
"5ae08f0a5acfc408fb1398a1": 79,
|
||||
"5bf3e03b0db834001d2c4a9c": 176,
|
||||
"5bf3e0490db83400196199af": 254,
|
||||
"5bfd297f0db834001a669119": 324,
|
||||
"5c07c60e0db834002330051f": 695,
|
||||
"5c501a4d2e221602b412b540": 702,
|
||||
"5d2f0d8048f0356c925bc3b0": 28,
|
||||
"5de652c31b7e3716273428be": 928,
|
||||
"5e00903ae9dc277128008b87": 32,
|
||||
"5e848cc2988a8701445df1e8": 2,
|
||||
"5e870397991fd70db46995c8": 829,
|
||||
"5ea03f7400685063ec28bfa8": 537,
|
||||
"606dae0ab0e443224b421bb7": 1235,
|
||||
"60db29ce99594040e04c4a27": 866,
|
||||
"61f7c9e189e6fb1a5e3ea78d": 301,
|
||||
"6259b864ebedf17603599e88": 51,
|
||||
"643ea5b23db6f9f57107d9fd": 33
|
||||
},
|
||||
"Headwear": {
|
||||
"572b7d8524597762b472f9d1": 1,
|
||||
"572b7fa124597762b472f9d2": 1,
|
||||
"59e7708286f7742cbd762753": 1,
|
||||
"59e770f986f7742cbe3164ef": 1,
|
||||
"59e7711e86f7746cae05fbe1": 1,
|
||||
"59ef13ca86f77445fd0e2483": 1,
|
||||
"5a43943586f77416ad2f06e2": 1,
|
||||
"5a43957686f7742a2c2f11b0": 1,
|
||||
"5a7c4850e899ef00150be885": 1,
|
||||
"5aa2a7e8e5b5b00016327c16": 1,
|
||||
"5aa2b87de5b5b00016327c25": 1,
|
||||
"5aa2b89be5b5b0001569311f": 1,
|
||||
"5aa2b8d7e5b5b00014028f4a": 1,
|
||||
"5aa2b9ede5b5b000137b758b": 1,
|
||||
"5aa2ba19e5b5b00014028f4e": 1,
|
||||
"5aa2ba46e5b5b000137b758d": 1,
|
||||
"5aa7cfc0e5b5b00015693143": 1,
|
||||
"5aa7d03ae5b5b00016327db5": 1,
|
||||
"5ab8f20c86f7745cdb629fb2": 1,
|
||||
"5b4329075acfc400153b78ff": 1,
|
||||
"5bd073c986f7747f627e796c": 1,
|
||||
"5c06c6a80db834001b735491": 1,
|
||||
"5c08f87c0db8340019124324": 1,
|
||||
"5c0d2727d174af02a012cf58": 1,
|
||||
"5df8a58286f77412631087ed": 1,
|
||||
"5ea05cf85ad9772e6624305d": 1,
|
||||
"5f60e6403b85f6263c14558c": 1,
|
||||
"5f60e7788adaa7100c3adb49": 1,
|
||||
"5f60e784f2bcbb675b00dac7": 1,
|
||||
"603618feffd42c541047f771": 1,
|
||||
"603619720ca681766b6a0fc4": 1,
|
||||
"60361a7497633951dc245eb4": 1,
|
||||
"60361b0b5a45383c122086a1": 1,
|
||||
"60361b5a9a15b10d96792291": 1,
|
||||
"6040de02647ad86262233012": 1,
|
||||
"60b52e5bc7d8103275739d67": 1,
|
||||
"60bf74184a63fc79b60c57f6": 1,
|
||||
"61c18db6dfd64163ea78fbb4": 1
|
||||
"572b7d8524597762b472f9d1": 2053,
|
||||
"572b7fa124597762b472f9d2": 2967,
|
||||
"59e7708286f7742cbd762753": 2429,
|
||||
"59e770f986f7742cbe3164ef": 2492,
|
||||
"59e7711e86f7746cae05fbe1": 807,
|
||||
"59ef13ca86f77445fd0e2483": 5,
|
||||
"5a43943586f77416ad2f06e2": 29,
|
||||
"5a43957686f7742a2c2f11b0": 35,
|
||||
"5a7c4850e899ef00150be885": 634,
|
||||
"5aa2a7e8e5b5b00016327c16": 254,
|
||||
"5aa2b87de5b5b00016327c25": 218,
|
||||
"5aa2b89be5b5b0001569311f": 514,
|
||||
"5aa2b8d7e5b5b00014028f4a": 1182,
|
||||
"5aa2b9ede5b5b000137b758b": 450,
|
||||
"5aa2ba19e5b5b00014028f4e": 763,
|
||||
"5aa2ba46e5b5b000137b758d": 269,
|
||||
"5aa7cfc0e5b5b00015693143": 205,
|
||||
"5aa7d03ae5b5b00016327db5": 507,
|
||||
"5ab8f20c86f7745cdb629fb2": 709,
|
||||
"5b4329075acfc400153b78ff": 475,
|
||||
"5bd073c986f7747f627e796c": 79,
|
||||
"5c06c6a80db834001b735491": 934,
|
||||
"5c08f87c0db8340019124324": 145,
|
||||
"5c0d2727d174af02a012cf58": 232,
|
||||
"5df8a58286f77412631087ed": 1366,
|
||||
"5ea05cf85ad9772e6624305d": 437,
|
||||
"5f60e6403b85f6263c14558c": 105,
|
||||
"5f60e7788adaa7100c3adb49": 210,
|
||||
"5f60e784f2bcbb675b00dac7": 264,
|
||||
"603618feffd42c541047f771": 179,
|
||||
"603619720ca681766b6a0fc4": 430,
|
||||
"60361a7497633951dc245eb4": 569,
|
||||
"60361b0b5a45383c122086a1": 394,
|
||||
"60361b5a9a15b10d96792291": 604,
|
||||
"6040de02647ad86262233012": 300,
|
||||
"60b52e5bc7d8103275739d67": 163,
|
||||
"60bf74184a63fc79b60c57f6": 76,
|
||||
"61c18db6dfd64163ea78fbb4": 290
|
||||
},
|
||||
"Holster": {
|
||||
"5448bd6b4bdc2dfc2f8b4569": 1,
|
||||
"56d59856d2720bd8418b456a": 1,
|
||||
"56e0598dd2720bb5668b45a6": 1,
|
||||
"571a12c42459771f627b58a0": 1,
|
||||
"576a581d2459771e7b1bc4f1": 1,
|
||||
"579204f224597773d619e051": 1,
|
||||
"59f98b4986f7746f546d2cef": 1,
|
||||
"5a17f98cfcdbcb0980087290": 1,
|
||||
"5e81c3cbac2bb513793cdc75": 1,
|
||||
"602a9740da11d6478d5a06dc": 1,
|
||||
"624c2e8614da335f1e034d8c": 1,
|
||||
"64748cb8de82c85eaf0a273a": 1
|
||||
"5448bd6b4bdc2dfc2f8b4569": 526,
|
||||
"56d59856d2720bd8418b456a": 125,
|
||||
"56e0598dd2720bb5668b45a6": 96,
|
||||
"571a12c42459771f627b58a0": 1027,
|
||||
"576a581d2459771e7b1bc4f1": 324,
|
||||
"579204f224597773d619e051": 138,
|
||||
"59f98b4986f7746f546d2cef": 3,
|
||||
"5a17f98cfcdbcb0980087290": 27,
|
||||
"5e81c3cbac2bb513793cdc75": 63,
|
||||
"602a9740da11d6478d5a06dc": 4,
|
||||
"624c2e8614da335f1e034d8c": 26,
|
||||
"64748cb8de82c85eaf0a273a": 2
|
||||
},
|
||||
"Pockets": {
|
||||
"557ffd194bdc2d28148b457f": 1
|
||||
},
|
||||
"Scabbard": {
|
||||
"54491bb74bdc2d09088b4567": 5,
|
||||
"57e26ea924597715ca604a09": 5,
|
||||
"57e26fc7245977162a14b800": 5,
|
||||
"5bc9c1e2d4351e00367fbcf0": 1,
|
||||
"5c07df7f0db834001b73588a": 2
|
||||
"54491bb74bdc2d09088b4567": 897,
|
||||
"57e26ea924597715ca604a09": 5906,
|
||||
"57e26fc7245977162a14b800": 16315,
|
||||
"5bc9c1e2d4351e00367fbcf0": 316,
|
||||
"5c07df7f0db834001b73588a": 303
|
||||
},
|
||||
"SecondPrimaryWeapon": {},
|
||||
"SecuredContainer": {
|
||||
"5c0a794586f77461c458f892": 1
|
||||
},
|
||||
"TacticalVest": {
|
||||
"572b7adb24597762ae139821": 2,
|
||||
"5929a2a086f7744f4b234d43": 2,
|
||||
"592c2d1a86f7746dbe2af32a": 2,
|
||||
"59e7643b86f7742cbf2c109a": 2,
|
||||
"5ab8dab586f77441cd04f2a2": 2,
|
||||
"5c0e446786f7742013381639": 1,
|
||||
"5c0e6a1586f77404597b4965": 2,
|
||||
"5ca20abf86f77418567a43f2": 2,
|
||||
"5d5d646386f7742797261fd9": 1,
|
||||
"5e4abfed86f77406a2713cf7": 2,
|
||||
"5fd4c4fa16cac650092f6771": 2,
|
||||
"5fd4c5477a8d854fa0105061": 2,
|
||||
"5fd4c60f875c30179f5d04c2": 2,
|
||||
"6034cf5fffd42c541047f72e": 2,
|
||||
"6034d0230ca681766b6a0fb5": 2,
|
||||
"603648ff5a45383c122086ac": 2,
|
||||
"6040dd4ddcf9592f401632d2": 2,
|
||||
"64be7110bf597ba84a0a41ea": 1
|
||||
"572b7adb24597762ae139821": 7097,
|
||||
"5929a2a086f7744f4b234d43": 1460,
|
||||
"592c2d1a86f7746dbe2af32a": 103,
|
||||
"59e7643b86f7742cbf2c109a": 3576,
|
||||
"5ab8dab586f77441cd04f2a2": 757,
|
||||
"5c0e446786f7742013381639": 909,
|
||||
"5c0e6a1586f77404597b4965": 145,
|
||||
"5ca20abf86f77418567a43f2": 1298,
|
||||
"5d5d646386f7742797261fd9": 678,
|
||||
"5e4abfed86f77406a2713cf7": 1488,
|
||||
"5fd4c4fa16cac650092f6771": 794,
|
||||
"5fd4c5477a8d854fa0105061": 6558,
|
||||
"5fd4c60f875c30179f5d04c2": 129,
|
||||
"6034cf5fffd42c541047f72e": 2147,
|
||||
"6034d0230ca681766b6a0fb5": 495,
|
||||
"603648ff5a45383c122086ac": 1213,
|
||||
"6040dd4ddcf9592f401632d2": 415,
|
||||
"64be7110bf597ba84a0a41ea": 1924
|
||||
}
|
||||
},
|
||||
"items": {
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -386,7 +386,7 @@
|
||||
"DEFAULT_BEAR_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_ENEMY_BEAR": true,
|
||||
"DEFAULT_ENEMY_USEC": true,
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Warn",
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_USEC_BEHAVIOUR": "Attack",
|
||||
"DIST_TO_ENEMY_YO_CAN_HEAL": 130,
|
||||
"DIST_TO_FOUND_SQRT": 400,
|
||||
@ -897,7 +897,7 @@
|
||||
"DEFAULT_BEAR_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_ENEMY_BEAR": true,
|
||||
"DEFAULT_ENEMY_USEC": true,
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Warn",
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_USEC_BEHAVIOUR": "Attack",
|
||||
"DIST_TO_ENEMY_YO_CAN_HEAL": 130,
|
||||
"DIST_TO_FOUND_SQRT": 400,
|
||||
@ -1408,7 +1408,7 @@
|
||||
"DEFAULT_BEAR_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_ENEMY_BEAR": true,
|
||||
"DEFAULT_ENEMY_USEC": true,
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Warn",
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_USEC_BEHAVIOUR": "Attack",
|
||||
"DIST_TO_ENEMY_YO_CAN_HEAL": 130,
|
||||
"DIST_TO_FOUND_SQRT": 400,
|
||||
@ -1919,7 +1919,7 @@
|
||||
"DEFAULT_BEAR_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_ENEMY_BEAR": true,
|
||||
"DEFAULT_ENEMY_USEC": true,
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Warn",
|
||||
"DEFAULT_SAVAGE_BEHAVIOUR": "Attack",
|
||||
"DEFAULT_USEC_BEHAVIOUR": "Attack",
|
||||
"DIST_TO_ENEMY_YO_CAN_HEAL": 130,
|
||||
"DIST_TO_FOUND_SQRT": 400,
|
||||
@ -2253,18 +2253,18 @@
|
||||
"inventory": {
|
||||
"Ammo": {
|
||||
"Caliber762x39": {
|
||||
"5656d7c34bdc2d9d198b4587": 1,
|
||||
"59e0d99486f7744a32234762": 1,
|
||||
"64b7af5a8532cf95ee0a0dbd": 1
|
||||
"5656d7c34bdc2d9d198b4587": 410,
|
||||
"59e0d99486f7744a32234762": 165,
|
||||
"64b7af5a8532cf95ee0a0dbd": 386
|
||||
},
|
||||
"Caliber762x51": {
|
||||
"5a6086ea4f39f99cd479502f": 1,
|
||||
"5a608bf24f39f98ffc77720e": 1,
|
||||
"5e023e53d4353e3302577c4c": 1
|
||||
"5a6086ea4f39f99cd479502f": 166,
|
||||
"5a608bf24f39f98ffc77720e": 211,
|
||||
"5e023e53d4353e3302577c4c": 2440
|
||||
},
|
||||
"Caliber9x19PARA": {
|
||||
"56d59d3ad2720bdb418b4577": 1,
|
||||
"64b7bbb74b75259c590fa897": 1
|
||||
"56d59d3ad2720bdb418b4577": 1891,
|
||||
"64b7bbb74b75259c590fa897": 1887
|
||||
}
|
||||
},
|
||||
"equipment": {
|
||||
@ -2274,20 +2274,20 @@
|
||||
"Earpiece": {},
|
||||
"Eyewear": {},
|
||||
"FaceCover": {
|
||||
"5c1a1e3f2e221602b66cc4c2": 1,
|
||||
"62963c18dbc8ab5f0d382d0b": 1
|
||||
"5c1a1e3f2e221602b66cc4c2": 2,
|
||||
"62963c18dbc8ab5f0d382d0b": 1887
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"5dcbd56fdbd3d91b3e5468d5": 1,
|
||||
"606587252535c57a13424cfd": 1,
|
||||
"6165ac306ef05c2ce828ef74": 1
|
||||
"5dcbd56fdbd3d91b3e5468d5": 1376,
|
||||
"606587252535c57a13424cfd": 961,
|
||||
"6165ac306ef05c2ce828ef74": 1441
|
||||
},
|
||||
"Headwear": {
|
||||
"5a43957686f7742a2c2f11b0": 1
|
||||
},
|
||||
"Holster": {
|
||||
"5a7ae0c351dfba0017554310": 1,
|
||||
"5b1fa9b25acfc40018633c01": 1
|
||||
"5a7ae0c351dfba0017554310": 2369,
|
||||
"5b1fa9b25acfc40018633c01": 1409
|
||||
},
|
||||
"Pockets": {
|
||||
"5af99e9186f7747c447120b8": 1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -305,7 +305,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -786,7 +786,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -1267,7 +1267,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -1748,7 +1748,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -2178,8 +2178,8 @@
|
||||
"5fc382a9d724d907e2077dab": 1
|
||||
},
|
||||
"Caliber9x21": {
|
||||
"5a269f97c4a282000b151807": 1,
|
||||
"5a26abfac4a28232980eabff": 1
|
||||
"5a269f97c4a282000b151807": 13,
|
||||
"5a26abfac4a28232980eabff": 968
|
||||
}
|
||||
},
|
||||
"equipment": {
|
||||
@ -2192,8 +2192,8 @@
|
||||
"63626d904aa74b8fe30ab426": 1
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"5c46fbd72e2216398b5a8c9c": 1,
|
||||
"627e14b21713922ded6f2c15": 1
|
||||
"5c46fbd72e2216398b5a8c9c": 968,
|
||||
"627e14b21713922ded6f2c15": 13
|
||||
},
|
||||
"Headwear": {
|
||||
"636270263f2495c26f00b007": 1
|
||||
@ -2206,8 +2206,8 @@
|
||||
},
|
||||
"Scabbard": {},
|
||||
"SecondPrimaryWeapon": {
|
||||
"57dc2fa62459775949412633": 1,
|
||||
"5ba26383d4351e00334c93d9": 1
|
||||
"57dc2fa62459775949412633": 968,
|
||||
"5ba26383d4351e00334c93d9": 13
|
||||
},
|
||||
"SecuredContainer": {
|
||||
"5c0a794586f77461c458f892": 1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
"5fb53d0b7b5d1342ee24bd64": 1
|
||||
},
|
||||
"feet": {
|
||||
"5fb535bd1c69e5198e234125": 1,
|
||||
"5fb535bd1c69e5198e234125": 5,
|
||||
"5fb535cf1c69e5198e234126": 1
|
||||
},
|
||||
"hands": [
|
||||
@ -315,7 +315,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -793,7 +793,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -1271,7 +1271,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -1749,7 +1749,7 @@
|
||||
"DIST_LAY_CHECK": 11,
|
||||
"DIST_TO_COVER_TO_LAY": 3.5,
|
||||
"DIST_TO_COVER_TO_LAY_SQRT": 12.25,
|
||||
"IF_NO_ENEMY": true,
|
||||
"IF_NO_ENEMY": false,
|
||||
"LAY_AIM": 0.6,
|
||||
"LAY_CHANCE_DANGER": 40,
|
||||
"MAX_CAN_LAY_DIST": 200,
|
||||
@ -2169,12 +2169,12 @@
|
||||
"54527a984bdc2d4e668b4567": 1
|
||||
},
|
||||
"Caliber762x51": {
|
||||
"5a6086ea4f39f99cd479502f": 1,
|
||||
"5e023e53d4353e3302577c4c": 1
|
||||
"5a6086ea4f39f99cd479502f": 13,
|
||||
"5e023e53d4353e3302577c4c": 45
|
||||
},
|
||||
"Caliber762x54R": {
|
||||
"560d61e84bdc2da74d8b4571": 1,
|
||||
"5887431f2459777e1612938f": 1
|
||||
"560d61e84bdc2da74d8b4571": 92,
|
||||
"5887431f2459777e1612938f": 145
|
||||
},
|
||||
"Caliber9x19PARA": {
|
||||
"56d59d3ad2720bdb418b4577": 1
|
||||
@ -2183,23 +2183,23 @@
|
||||
"equipment": {
|
||||
"ArmBand": {},
|
||||
"ArmorVest": {
|
||||
"5e4abb5086f77406975c9342": 1,
|
||||
"5fd4c474dd870108a754b241": 1
|
||||
"5e4abb5086f77406975c9342": 13,
|
||||
"5fd4c474dd870108a754b241": 9
|
||||
},
|
||||
"Backpack": {},
|
||||
"Earpiece": {},
|
||||
"Eyewear": {},
|
||||
"FaceCover": {
|
||||
"5ab8f4ff86f77431c60d91ba": 1,
|
||||
"5b432b2f5acfc4771e1c6622": 1,
|
||||
"635267ab3c89e2112001f826": 1
|
||||
"5ab8f4ff86f77431c60d91ba": 1506,
|
||||
"5b432b2f5acfc4771e1c6622": 1584,
|
||||
"635267ab3c89e2112001f826": 997
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"55801eed4bdc2d89578b4588": 1,
|
||||
"5bfea6e90db834001b7347f3": 1,
|
||||
"5c46fbd72e2216398b5a8c9c": 1,
|
||||
"5df8ce05b11454561e39243b": 1,
|
||||
"6176aca650224f204c1da3fb": 1
|
||||
"55801eed4bdc2d89578b4588": 2465,
|
||||
"5bfea6e90db834001b7347f3": 20,
|
||||
"5c46fbd72e2216398b5a8c9c": 1564,
|
||||
"5df8ce05b11454561e39243b": 13,
|
||||
"6176aca650224f204c1da3fb": 25
|
||||
},
|
||||
"Headwear": {},
|
||||
"Holster": {},
|
||||
@ -2208,17 +2208,17 @@
|
||||
},
|
||||
"Scabbard": {},
|
||||
"SecondPrimaryWeapon": {
|
||||
"5447a9cd4bdc2dbd208b4567": 1,
|
||||
"57dc2fa62459775949412633": 1,
|
||||
"59984ab886f7743e98271174": 1
|
||||
"5447a9cd4bdc2dbd208b4567": 90,
|
||||
"57dc2fa62459775949412633": 1873,
|
||||
"59984ab886f7743e98271174": 1133
|
||||
},
|
||||
"SecuredContainer": {
|
||||
"5c0a794586f77461c458f892": 1
|
||||
},
|
||||
"TacticalVest": {
|
||||
"544a5caa4bdc2d1a388b4568": 1,
|
||||
"61bcc89aef0f505f0c6cd0fc": 1,
|
||||
"63611865ba5b90db0c0399d1": 1
|
||||
"544a5caa4bdc2d1a388b4568": 18,
|
||||
"61bcc89aef0f505f0c6cd0fc": 59,
|
||||
"63611865ba5b90db0c0399d1": 4010
|
||||
}
|
||||
},
|
||||
"items": {
|
||||
|
@ -1,30 +1,30 @@
|
||||
{
|
||||
"appearance": {
|
||||
"body": {
|
||||
"5cc2e59214c02e000f16684e": 1,
|
||||
"5cde9f337d6c8b0474535da8": 1,
|
||||
"5d28ad6986f77429275dba22": 1,
|
||||
"5d28ad7286f7742926686182": 1,
|
||||
"5df8a10486f77412672a1e3a": 1,
|
||||
"5e4bb3ee86f77406975c934e": 1,
|
||||
"5e9da1d086f774054a667134": 1,
|
||||
"5fd1eb3fbe3b7107d66cb645": 1,
|
||||
"5fd22d311add82653b5a704c": 1,
|
||||
"618d1af10a5a59657e5f56f3": 1,
|
||||
"619238266c614e6d15792bca": 1,
|
||||
"637df28ac22da5bb8d046935": 1
|
||||
"5cc2e59214c02e000f16684e": 44,
|
||||
"5cde9f337d6c8b0474535da8": 47,
|
||||
"5d28ad6986f77429275dba22": 39,
|
||||
"5d28ad7286f7742926686182": 52,
|
||||
"5df8a10486f77412672a1e3a": 40,
|
||||
"5e4bb3ee86f77406975c934e": 35,
|
||||
"5e9da1d086f774054a667134": 61,
|
||||
"5fd1eb3fbe3b7107d66cb645": 42,
|
||||
"5fd22d311add82653b5a704c": 42,
|
||||
"618d1af10a5a59657e5f56f3": 38,
|
||||
"619238266c614e6d15792bca": 46,
|
||||
"637df28ac22da5bb8d046935": 38
|
||||
},
|
||||
"feet": {
|
||||
"5cc2e5d014c02e15d53d9c03": 1,
|
||||
"5cde9fb87d6c8b0474535da9": 1,
|
||||
"5d28af3486f774292364a6e7": 1,
|
||||
"5df8a15186f77412640e2e6a": 1,
|
||||
"5f5e410c6bdad616ad46d60b": 1,
|
||||
"5f5e41366760b4138443b343": 1,
|
||||
"5f5e41576760b4138443b344": 1,
|
||||
"61922589bb2cea6f7a22d964": 1,
|
||||
"6193be546e5968395b260157": 1,
|
||||
"637df25a1e688345e1097bd4": 1
|
||||
"5cc2e5d014c02e15d53d9c03": 70,
|
||||
"5cde9fb87d6c8b0474535da9": 58,
|
||||
"5d28af3486f774292364a6e7": 65,
|
||||
"5df8a15186f77412640e2e6a": 53,
|
||||
"5f5e410c6bdad616ad46d60b": 73,
|
||||
"5f5e41366760b4138443b343": 64,
|
||||
"5f5e41576760b4138443b344": 86,
|
||||
"61922589bb2cea6f7a22d964": 48,
|
||||
"6193be546e5968395b260157": 83,
|
||||
"637df25a1e688345e1097bd4": 65
|
||||
},
|
||||
"hands": [
|
||||
"5fd78fe9e3bfcf6cab4c9f54",
|
||||
@ -2179,26 +2179,26 @@
|
||||
"inventory": {
|
||||
"Ammo": {
|
||||
"Caliber12g": {
|
||||
"560d5e524bdc2d25448b4571": 1,
|
||||
"5d6e6806a4b936088465b17e": 1,
|
||||
"5d6e6891a4b9361bd473feea": 1,
|
||||
"5d6e68dea4b9361bcc29e659": 1,
|
||||
"5d6e6911a4b9361bd5780d52": 1
|
||||
"560d5e524bdc2d25448b4571": 181,
|
||||
"5d6e6806a4b936088465b17e": 44,
|
||||
"5d6e6891a4b9361bd473feea": 12,
|
||||
"5d6e68dea4b9361bcc29e659": 26,
|
||||
"5d6e6911a4b9361bd5780d52": 19
|
||||
},
|
||||
"Caliber20g": {
|
||||
"5a38ebd9c4a282000d722a5b": 1
|
||||
},
|
||||
"Caliber366TKM": {
|
||||
"59e6542b86f77411dc52a77a": 1,
|
||||
"5f0596629e22f464da6bbdd9": 1
|
||||
"59e6542b86f77411dc52a77a": 3,
|
||||
"5f0596629e22f464da6bbdd9": 17
|
||||
},
|
||||
"Caliber545x39": {
|
||||
"56dff3afd2720bba668b4567": 1
|
||||
},
|
||||
"Caliber556x45NATO": {
|
||||
"54527a984bdc2d4e668b4567": 1,
|
||||
"54527ac44bdc2d36668b4567": 1,
|
||||
"5c0d5ae286f7741e46554302": 1
|
||||
"54527a984bdc2d4e668b4567": 25,
|
||||
"54527ac44bdc2d36668b4567": 7,
|
||||
"5c0d5ae286f7741e46554302": 4
|
||||
},
|
||||
"Caliber762x25TT": {
|
||||
"5736026a245977644601dc61": 1
|
||||
@ -2207,8 +2207,8 @@
|
||||
"5656d7c34bdc2d9d198b4587": 1
|
||||
},
|
||||
"Caliber762x51": {
|
||||
"5e023e53d4353e3302577c4c": 1,
|
||||
"5e023e6e34d52a55c3304f71": 1
|
||||
"5e023e53d4353e3302577c4c": 29,
|
||||
"5e023e6e34d52a55c3304f71": 39
|
||||
},
|
||||
"Caliber9x18PM": {
|
||||
"573719762459775a626ccbc1": 1
|
||||
@ -2220,86 +2220,86 @@
|
||||
"equipment": {
|
||||
"ArmBand": {},
|
||||
"ArmorVest": {
|
||||
"5648a7494bdc2d9d488b4583": 1,
|
||||
"59e7635f86f7742cbf2c1095": 1,
|
||||
"5ab8e4ed86f7742d8e50c7fa": 1,
|
||||
"5ab8e79e86f7742d8b372e78": 1,
|
||||
"5b44d22286f774172b0c9de8": 1,
|
||||
"5c0e53c886f7747fa54205c7": 1,
|
||||
"5c0e5edb86f77461f55ed1f7": 1,
|
||||
"5df8a2ca86f7740bfe6df777": 1,
|
||||
"609e8540d5c319764c2bc2e9": 1
|
||||
"5648a7494bdc2d9d488b4583": 28,
|
||||
"59e7635f86f7742cbf2c1095": 37,
|
||||
"5ab8e4ed86f7742d8e50c7fa": 21,
|
||||
"5ab8e79e86f7742d8b372e78": 23,
|
||||
"5b44d22286f774172b0c9de8": 30,
|
||||
"5c0e53c886f7747fa54205c7": 22,
|
||||
"5c0e5edb86f77461f55ed1f7": 36,
|
||||
"5df8a2ca86f7740bfe6df777": 43,
|
||||
"609e8540d5c319764c2bc2e9": 28
|
||||
},
|
||||
"Backpack": {
|
||||
"61b9e1aaef9a1b5d6a79899a": 1
|
||||
},
|
||||
"Earpiece": {},
|
||||
"Eyewear": {
|
||||
"5aa2b923e5b5b000137b7589": 1,
|
||||
"5aa2b9aee5b5b00015693121": 1,
|
||||
"5c1a1cc52e221602b3136e3d": 1,
|
||||
"5d6d2ef3a4b93618084f58bd": 1,
|
||||
"603409c80ca681766b6a0fb2": 1
|
||||
"5aa2b923e5b5b000137b7589": 31,
|
||||
"5aa2b9aee5b5b00015693121": 35,
|
||||
"5c1a1cc52e221602b3136e3d": 15,
|
||||
"5d6d2ef3a4b93618084f58bd": 22,
|
||||
"603409c80ca681766b6a0fb2": 20
|
||||
},
|
||||
"FaceCover": {
|
||||
"5c1a1e3f2e221602b66cc4c2": 1
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"54491c4f4bdc2db1078b4568": 1,
|
||||
"5644bd2b4bdc2d3b4c8b4572": 1,
|
||||
"56dee2bdd2720bc8328b4567": 1,
|
||||
"574d967124597745970e7c94": 1,
|
||||
"576165642459773c7a400233": 1,
|
||||
"57d14d2524597714373db789": 1,
|
||||
"57dc2fa62459775949412633": 1,
|
||||
"587e02ff24597743df3deaeb": 1,
|
||||
"59d6088586f774275f37482f": 1,
|
||||
"59e6152586f77473dc057aa1": 1,
|
||||
"59e6687d86f77411d949b251": 1,
|
||||
"59f9cabd86f7743a10721f46": 1,
|
||||
"59ff346386f77477562ff5e2": 1,
|
||||
"5a38e6bac4a2826c6e06d79b": 1,
|
||||
"5ac4cd105acfc40016339859": 1,
|
||||
"5ac66d9b5acfc4001633997a": 1,
|
||||
"5c07c60e0db834002330051f": 1,
|
||||
"5c501a4d2e221602b412b540": 1,
|
||||
"606dae0ab0e443224b421bb7": 1
|
||||
"54491c4f4bdc2db1078b4568": 10,
|
||||
"5644bd2b4bdc2d3b4c8b4572": 6,
|
||||
"56dee2bdd2720bc8328b4567": 24,
|
||||
"574d967124597745970e7c94": 99,
|
||||
"576165642459773c7a400233": 47,
|
||||
"57d14d2524597714373db789": 11,
|
||||
"57dc2fa62459775949412633": 49,
|
||||
"587e02ff24597743df3deaeb": 97,
|
||||
"59d6088586f774275f37482f": 35,
|
||||
"59e6152586f77473dc057aa1": 46,
|
||||
"59e6687d86f77411d949b251": 40,
|
||||
"59f9cabd86f7743a10721f46": 39,
|
||||
"59ff346386f77477562ff5e2": 15,
|
||||
"5a38e6bac4a2826c6e06d79b": 22,
|
||||
"5ac4cd105acfc40016339859": 32,
|
||||
"5ac66d9b5acfc4001633997a": 14,
|
||||
"5c07c60e0db834002330051f": 36,
|
||||
"5c501a4d2e221602b412b540": 17,
|
||||
"606dae0ab0e443224b421bb7": 26
|
||||
},
|
||||
"Headwear": {
|
||||
"5a43943586f77416ad2f06e2": 1,
|
||||
"5a43957686f7742a2c2f11b0": 1
|
||||
"5a43943586f77416ad2f06e2": 337,
|
||||
"5a43957686f7742a2c2f11b0": 328
|
||||
},
|
||||
"Holster": {
|
||||
"56d59856d2720bd8418b456a": 1,
|
||||
"56e0598dd2720bb5668b45a6": 1,
|
||||
"571a12c42459771f627b58a0": 1,
|
||||
"576a581d2459771e7b1bc4f1": 1,
|
||||
"579204f224597773d619e051": 1,
|
||||
"5a17f98cfcdbcb0980087290": 1
|
||||
"56d59856d2720bd8418b456a": 148,
|
||||
"56e0598dd2720bb5668b45a6": 58,
|
||||
"571a12c42459771f627b58a0": 133,
|
||||
"576a581d2459771e7b1bc4f1": 275,
|
||||
"579204f224597773d619e051": 10,
|
||||
"5a17f98cfcdbcb0980087290": 41
|
||||
},
|
||||
"Pockets": {
|
||||
"557ffd194bdc2d28148b457f": 1
|
||||
},
|
||||
"Scabbard": {
|
||||
"54491bb74bdc2d09088b4567": 1,
|
||||
"57e26ea924597715ca604a09": 1,
|
||||
"57e26fc7245977162a14b800": 1,
|
||||
"5bc9c1e2d4351e00367fbcf0": 1
|
||||
"54491bb74bdc2d09088b4567": 91,
|
||||
"57e26ea924597715ca604a09": 215,
|
||||
"57e26fc7245977162a14b800": 233,
|
||||
"5bc9c1e2d4351e00367fbcf0": 8
|
||||
},
|
||||
"SecondPrimaryWeapon": {},
|
||||
"SecuredContainer": {
|
||||
"5c0a794586f77461c458f892": 1
|
||||
},
|
||||
"TacticalVest": {
|
||||
"592c2d1a86f7746dbe2af32a": 1,
|
||||
"59e7643b86f7742cbf2c109a": 1,
|
||||
"5ab8dab586f77441cd04f2a2": 1,
|
||||
"5c0e446786f7742013381639": 1,
|
||||
"5c0e6a1586f77404597b4965": 1,
|
||||
"5d5d646386f7742797261fd9": 1,
|
||||
"5e4abfed86f77406a2713cf7": 1,
|
||||
"5fd4c60f875c30179f5d04c2": 1,
|
||||
"6040dd4ddcf9592f401632d2": 1
|
||||
"592c2d1a86f7746dbe2af32a": 11,
|
||||
"59e7643b86f7742cbf2c109a": 391,
|
||||
"5ab8dab586f77441cd04f2a2": 25,
|
||||
"5c0e446786f7742013381639": 70,
|
||||
"5c0e6a1586f77404597b4965": 18,
|
||||
"5d5d646386f7742797261fd9": 64,
|
||||
"5e4abfed86f77406a2713cf7": 22,
|
||||
"5fd4c60f875c30179f5d04c2": 14,
|
||||
"6040dd4ddcf9592f401632d2": 50
|
||||
}
|
||||
},
|
||||
"items": {
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,13 +0,0 @@
|
||||
module.exports = {
|
||||
presets: [
|
||||
[
|
||||
"@babel/preset-env",
|
||||
{
|
||||
targets: {
|
||||
node: "current"
|
||||
}
|
||||
}
|
||||
],
|
||||
"@babel/preset-typescript"
|
||||
]
|
||||
};
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "./node_modules/rome/configuration_schema.json",
|
||||
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
||||
"linter": {
|
||||
"enabled": true,
|
||||
"rules": {
|
@ -12,7 +12,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"check:circular": "madge --circular --extensions ts ./src/",
|
||||
"lint": "rome ci src --formatter-enabled=false --max-diagnostics=200",
|
||||
"lint": "biome ci src --formatter-enabled=false --max-diagnostics=200",
|
||||
"lint:fix": "eslint --fix --ext .ts src/**",
|
||||
"test:run": "jest --colors --runInBand",
|
||||
"test:coverage": "jest --coverage --maxWorkers=1 --no-cache",
|
||||
@ -42,8 +42,7 @@
|
||||
"ws": "8.14.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "7.23.2",
|
||||
"@babel/preset-typescript": "7.23.2",
|
||||
"@biomejs/biome": "1.3.3",
|
||||
"@jest/globals": "29.7.0",
|
||||
"@pnpm/exe": "8.9.0",
|
||||
"@swc/cli": "0.1.62",
|
||||
@ -67,7 +66,6 @@
|
||||
"pkg": "5.8.1",
|
||||
"pkg-fetch": "3.5.2",
|
||||
"resedit": "2.0.0",
|
||||
"rome": "12.1.3",
|
||||
"ts-jest": "29.1.1",
|
||||
"ts-node-dev": "2.0.0",
|
||||
"tsconfig-paths": "4.2.0",
|
||||
|
@ -1,5 +0,0 @@
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
export const TYPES: {[name:string]: symbol} = {
|
||||
PROGRAM: Symbol.for("PROGRAM"),
|
||||
APP: Symbol.for("APP")
|
||||
};
|
@ -4,6 +4,7 @@ import { HideoutController } from "@spt-aki/controllers/HideoutController";
|
||||
import { OnUpdate } from "@spt-aki/di/OnUpdate";
|
||||
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
|
||||
import { IHandleQTEEventRequestData } from "@spt-aki/models/eft/hideout/IHandleQTEEventRequestData";
|
||||
import { IHideoutCancelProductionRequestData } from "@spt-aki/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||
import { IHideoutContinuousProductionStartRequestData } from "@spt-aki/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||
import { IHideoutImproveAreaRequestData } from "@spt-aki/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||
import { IHideoutPutItemInRequestData } from "@spt-aki/models/eft/hideout/IHideoutPutItemInRequestData";
|
||||
@ -129,6 +130,14 @@ export class HideoutCallbacks implements OnUpdate
|
||||
return this.hideoutController.improveArea(sessionId, pmcData, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle client/game/profile/items/moving - HideoutCancelProductionCommand
|
||||
*/
|
||||
public cancelProduction(pmcData: IPmcData, request: IHideoutCancelProductionRequestData, sessionId: string): IItemEventRouterResponse
|
||||
{
|
||||
return this.hideoutController.cancelProduction(sessionId, pmcData, request);
|
||||
}
|
||||
|
||||
public async onUpdate(timeSinceLastRun: number): Promise<boolean>
|
||||
{
|
||||
if (timeSinceLastRun > this.hideoutConfig.runIntervalSeconds)
|
||||
|
@ -12,6 +12,7 @@ import { Upd } from "@spt-aki/models/eft/common/tables/IItem";
|
||||
import { HideoutUpgradeCompleteRequestData } from "@spt-aki/models/eft/hideout/HideoutUpgradeCompleteRequestData";
|
||||
import { IHandleQTEEventRequestData } from "@spt-aki/models/eft/hideout/IHandleQTEEventRequestData";
|
||||
import { IHideoutArea, Stage } from "@spt-aki/models/eft/hideout/IHideoutArea";
|
||||
import { IHideoutCancelProductionRequestData } from "@spt-aki/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||
import { IHideoutContinuousProductionStartRequestData } from "@spt-aki/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||
import { IHideoutImproveAreaRequestData } from "@spt-aki/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||
import { IHideoutProduction } from "@spt-aki/models/eft/hideout/IHideoutProduction";
|
||||
@ -125,7 +126,6 @@ export class HideoutController
|
||||
}
|
||||
|
||||
const hideoutData = this.databaseServer.getTables().hideout.areas.find(area => area.type === request.areaType);
|
||||
|
||||
if (!hideoutData)
|
||||
{
|
||||
this.logger.error(this.localisationService.getText("hideout-unable_to_find_area_in_database", request.areaType));
|
||||
@ -133,7 +133,6 @@ export class HideoutController
|
||||
}
|
||||
|
||||
const ctime = hideoutData.stages[hideoutArea.level + 1].constructionTime;
|
||||
|
||||
if (ctime > 0)
|
||||
{
|
||||
const timestamp = this.timeUtil.getTimestamp();
|
||||
@ -734,8 +733,8 @@ export class HideoutController
|
||||
area.lastRecipe = request.recipeId;
|
||||
counterHoursCrafting.value = hoursCrafting;
|
||||
|
||||
// Delete production now it's complete
|
||||
delete pmcData.Hideout.Production[prodId];
|
||||
// Null production data now it's complete - will be cleaned up later by update() process
|
||||
pmcData.Hideout.Production[prodId] = null;
|
||||
};
|
||||
|
||||
// Remove the old production from output object before its sent to client
|
||||
@ -814,7 +813,9 @@ export class HideoutController
|
||||
|
||||
const callback = () =>
|
||||
{
|
||||
delete pmcData.Hideout.Production[prodId];
|
||||
|
||||
// Null production data now it's complete - will be cleaned up later by update() process
|
||||
pmcData.Hideout.Production[prodId] = null;
|
||||
};
|
||||
|
||||
return this.inventoryHelper.addItem(pmcData, newReq, output, sessionID, callback, true);
|
||||
@ -832,7 +833,6 @@ export class HideoutController
|
||||
return this.hideoutHelper.registerProduction(pmcData, request, sessionID);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get quick time event list for hideout
|
||||
* // TODO - implement this
|
||||
@ -909,8 +909,8 @@ export class HideoutController
|
||||
/**
|
||||
* Handle client/game/profile/items/moving - HideoutImproveArea
|
||||
* @param sessionId Session id
|
||||
* @param pmcData profile to improve area in
|
||||
* @param request improve area request data
|
||||
* @param pmcData Profile to improve area in
|
||||
* @param request Improve area request data
|
||||
*/
|
||||
public improveArea(sessionId: string, pmcData: IPmcData, request: IHideoutImproveAreaRequestData): IItemEventRouterResponse
|
||||
{
|
||||
@ -980,6 +980,34 @@ export class HideoutController
|
||||
return output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle client/game/profile/items/moving HideoutCancelProductionCommand
|
||||
* @param sessionId Session id
|
||||
* @param pmcData Profile with craft to cancel
|
||||
* @param request Cancel production request data
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
public cancelProduction(sessionId: string, pmcData: IPmcData, request: IHideoutCancelProductionRequestData): IItemEventRouterResponse
|
||||
{
|
||||
const output = this.eventOutputHolder.getOutput(sessionId);
|
||||
|
||||
const craftToCancel = pmcData.Hideout.Production[request.recipeId];
|
||||
if (!craftToCancel)
|
||||
{
|
||||
const errorMessage = `Unable to find craft ${request.recipeId} to cancel`;
|
||||
this.logger.error(errorMessage);
|
||||
|
||||
return this.httpResponse.appendErrorToOutput(output, errorMessage);
|
||||
}
|
||||
|
||||
// Null out production data so client gets informed when response send back
|
||||
pmcData.Hideout.Production[request.recipeId] = null;
|
||||
|
||||
// TODO - handle timestamp somehow?
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called every x seconds as part of onUpdate event
|
||||
*/
|
||||
|
@ -185,7 +185,6 @@ import { RagfairServer } from "@spt-aki/servers/RagfairServer";
|
||||
import { SaveServer } from "@spt-aki/servers/SaveServer";
|
||||
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
|
||||
import { AkiHttpListener } from "@spt-aki/servers/http/AkiHttpListener";
|
||||
import { HttpBufferHandler } from "@spt-aki/servers/http/HttpBufferHandler";
|
||||
import { BotEquipmentFilterService } from "@spt-aki/services/BotEquipmentFilterService";
|
||||
import { BotEquipmentModPoolService } from "@spt-aki/services/BotEquipmentModPoolService";
|
||||
import { BotGenerationCacheService } from "@spt-aki/services/BotGenerationCacheService";
|
||||
@ -630,8 +629,6 @@ export class Container
|
||||
depContainer.register<RagfairServer>("RagfairServer", RagfairServer);
|
||||
depContainer.register<SaveServer>("SaveServer", SaveServer, { lifecycle: Lifecycle.Singleton });
|
||||
depContainer.register<ConfigServer>("ConfigServer", ConfigServer, { lifecycle: Lifecycle.Singleton });
|
||||
depContainer.register<HttpBufferHandler>("HttpBufferHandler", HttpBufferHandler, {lifecycle: Lifecycle.Singleton});
|
||||
|
||||
}
|
||||
|
||||
private static registerControllers(depContainer: DependencyContainer): void
|
||||
|
@ -185,7 +185,7 @@ export class BotEquipmentModGenerator
|
||||
const botWeaponSightWhitelist = this.botEquipmentFilterService.getBotWeaponSightWhitelist(botEquipmentRole);
|
||||
const randomisationSettings = this.botHelper.getBotRandomizationDetails(botLevel, botEquipConfig);
|
||||
|
||||
// Iterate over mod pool and choose mods to add to item
|
||||
// Iterate over mod pool and choose mods to attach
|
||||
const sortedModKeys = this.sortModKeys(Object.keys(compatibleModsPool));
|
||||
for (const modSlot of sortedModKeys)
|
||||
{
|
||||
@ -204,7 +204,7 @@ export class BotEquipmentModGenerator
|
||||
continue;
|
||||
}
|
||||
|
||||
const isRandomisableSlot = randomisationSettings?.randomisedWeaponModSlots?.includes(modSlot);
|
||||
const isRandomisableSlot = randomisationSettings?.randomisedWeaponModSlots?.includes(modSlot) ?? false;
|
||||
const modToAdd = this.chooseModToPutIntoSlot(modSlot, isRandomisableSlot, botWeaponSightWhitelist, botEquipBlacklist, compatibleModsPool, weapon, ammoTpl, parentTemplate);
|
||||
|
||||
// Compatible mod not found
|
||||
@ -213,13 +213,12 @@ export class BotEquipmentModGenerator
|
||||
continue;
|
||||
}
|
||||
|
||||
const modToAddTemplate = modToAdd[1];
|
||||
|
||||
if (!this.isModValidForSlot(modToAdd, modsParentSlot, modSlot, parentTemplate))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
const modToAddTemplate = modToAdd[1];
|
||||
// Skip adding mod to weapon if type limit reached
|
||||
if (this.botWeaponModLimitService.weaponModHasReachedLimit(botEquipmentRole, modToAddTemplate, modLimits, parentTemplate, weapon))
|
||||
{
|
||||
@ -386,13 +385,20 @@ export class BotEquipmentModGenerator
|
||||
const sortedKeys: string[] = [];
|
||||
const modRecieverKey = "mod_reciever";
|
||||
const modMount001Key = "mod_mount_001";
|
||||
const modGasBLockKey = "mod_gas_block";
|
||||
const modGasBlockKey = "mod_gas_block";
|
||||
const modPistolGrip = "mod_pistol_grip";
|
||||
const modStockKey = "mod_stock";
|
||||
const modBarrelKey = "mod_barrel";
|
||||
const modHandguardKey = "mod_handguard";
|
||||
const modMountKey = "mod_mount";
|
||||
const modScopeKey = "mod_scope";
|
||||
|
||||
if (unsortedKeys.includes(modHandguardKey))
|
||||
{
|
||||
sortedKeys.push(modHandguardKey);
|
||||
unsortedKeys.splice(unsortedKeys.indexOf(modHandguardKey), 1);
|
||||
}
|
||||
|
||||
if (unsortedKeys.includes(modBarrelKey))
|
||||
{
|
||||
sortedKeys.push(modBarrelKey);
|
||||
@ -417,10 +423,10 @@ export class BotEquipmentModGenerator
|
||||
unsortedKeys.splice(unsortedKeys.indexOf(modPistolGrip), 1);
|
||||
}
|
||||
|
||||
if (unsortedKeys.includes(modGasBLockKey))
|
||||
if (unsortedKeys.includes(modGasBlockKey))
|
||||
{
|
||||
sortedKeys.push(modGasBLockKey);
|
||||
unsortedKeys.splice(unsortedKeys.indexOf(modGasBLockKey), 1);
|
||||
sortedKeys.push(modGasBlockKey);
|
||||
unsortedKeys.splice(unsortedKeys.indexOf(modGasBlockKey), 1);
|
||||
}
|
||||
|
||||
if (unsortedKeys.includes(modStockKey))
|
||||
@ -555,6 +561,7 @@ export class BotEquipmentModGenerator
|
||||
if (!modCompatibilityResult.incompatible)
|
||||
{
|
||||
found = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -528,10 +528,11 @@ export class BotLootGenerator
|
||||
// only add if no upd or stack objects exist - preserves existing stack count
|
||||
if (!ammoItem.upd?.StackObjectsCount)
|
||||
{
|
||||
const minStackSize = itemTemplate._props.StackMinRandom;
|
||||
const maxStackSize = itemTemplate._props.StackMaxSize;
|
||||
const randomSize = itemTemplate._props.StackMaxSize === 1
|
||||
? 1
|
||||
: this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
|
||||
|
||||
ammoItem.upd = { "StackObjectsCount": this.randomUtil.getInt(minStackSize, maxStackSize) };
|
||||
ammoItem.upd = { StackObjectsCount: randomSize };
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -660,12 +660,16 @@ export class LocationGenerator
|
||||
|
||||
// Item array to return
|
||||
const itemWithMods: Item[] = [];
|
||||
|
||||
|
||||
// Money/Ammo - don't rely on items in spawnPoint.template.Items so we can randomise it ourselves
|
||||
if (this.itemHelper.isOfBaseclass(chosenTpl, BaseClasses.MONEY) || this.itemHelper.isOfBaseclass(chosenTpl, BaseClasses.AMMO))
|
||||
{
|
||||
const itemTemplate = this.itemHelper.getItem(chosenTpl)[1];
|
||||
const stackCount = this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
|
||||
|
||||
const stackCount = itemTemplate._props.StackMaxSize === 1
|
||||
? 1
|
||||
: this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
|
||||
|
||||
itemWithMods.push(
|
||||
{
|
||||
_id: this.objectId.generate(),
|
||||
@ -777,7 +781,10 @@ export class LocationGenerator
|
||||
|
||||
if (this.itemHelper.isOfBaseclass(tpl, BaseClasses.MONEY) || this.itemHelper.isOfBaseclass(tpl, BaseClasses.AMMO))
|
||||
{
|
||||
const stackCount = this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
|
||||
// Edge case - some ammos e.g. flares or M406 grenades shouldn't be stacked
|
||||
const stackCount = itemTemplate._props.StackMaxSize === 1
|
||||
? 1
|
||||
: this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
|
||||
items[0].upd = { StackObjectsCount: stackCount };
|
||||
}
|
||||
// No spawn point, use default template
|
||||
|
@ -248,16 +248,17 @@ export class BotGeneratorHelper
|
||||
|
||||
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
||||
const equippedItems = items.map(i => this.databaseServer.getTables().templates.items[i._tpl]);
|
||||
const itemToEquip = this.itemHelper.getItem(tplToCheck);
|
||||
const item = this.itemHelper.getItem(tplToCheck);
|
||||
const itemToCheck = item[1];
|
||||
|
||||
if (!itemToEquip[0])
|
||||
if (!item[0])
|
||||
{
|
||||
this.logger.warning(this.localisationService.getText("bot-invalid_item_compatibility_check", {itemTpl: tplToCheck, slot: equipmentSlot}));
|
||||
}
|
||||
|
||||
if (!itemToEquip[1]?._props)
|
||||
if (!itemToCheck._props)
|
||||
{
|
||||
this.logger.warning(this.localisationService.getText("bot-compatibility_check_missing_props", {id: itemToEquip[1]._id, name: itemToEquip[1]._name, slot: equipmentSlot}));
|
||||
this.logger.warning(this.localisationService.getText("bot-compatibility_check_missing_props", {id: itemToCheck._id, name: itemToCheck._name, slot: equipmentSlot}));
|
||||
}
|
||||
|
||||
// Does an equipped item have a property that blocks the desired item - check for prop "BlocksX" .e.g BlocksEarpiece / BlocksFaceCover
|
||||
@ -265,7 +266,7 @@ export class BotGeneratorHelper
|
||||
if (blockingItem)
|
||||
{
|
||||
//this.logger.warning(`1 incompatibility found between - ${itemToEquip[1]._name} and ${blockingItem._name} - ${equipmentSlot}`);
|
||||
return { incompatible: true, reason: `${tplToCheck} ${itemToEquip[1]._name} in slot: ${equipmentSlot} blocked by: ${blockingItem._id} ${blockingItem._name}` };
|
||||
return { incompatible: true, reason: `${tplToCheck} ${itemToCheck._name} in slot: ${equipmentSlot} blocked by: ${blockingItem._id} ${blockingItem._name}` };
|
||||
}
|
||||
|
||||
// Check if any of the current inventory templates have the incoming item defined as incompatible
|
||||
@ -273,11 +274,11 @@ export class BotGeneratorHelper
|
||||
if (blockingItem)
|
||||
{
|
||||
//this.logger.warning(`2 incompatibility found between - ${itemToEquip[1]._name} and ${blockingItem._props.Name} - ${equipmentSlot}`);
|
||||
return { incompatible: true, reason: `${tplToCheck} ${itemToEquip[1]._name} in slot: ${equipmentSlot} blocked by: ${blockingItem._id} ${blockingItem._name}` };
|
||||
return { incompatible: true, reason: `${tplToCheck} ${itemToCheck._name} in slot: ${equipmentSlot} blocked by: ${blockingItem._id} ${blockingItem._name}` };
|
||||
}
|
||||
|
||||
// Check if the incoming item has any inventory items defined as incompatible
|
||||
const blockingInventoryItem = items.find(x => itemToEquip[1]._props[`Blocks${x.slotId}`] || itemToEquip[1]._props.ConflictingItems?.includes(x._tpl));
|
||||
const blockingInventoryItem = items.find(x => itemToCheck._props.ConflictingItems?.includes(x._tpl));
|
||||
if (blockingInventoryItem)
|
||||
{
|
||||
//this.logger.warning(`3 incompatibility found between - ${itemToEquip[1]._name} and ${blockingInventoryItem._tpl} - ${equipmentSlot}`)
|
||||
|
@ -227,6 +227,11 @@ export class HideoutHelper
|
||||
for (const prodId in pmcData.Hideout.Production)
|
||||
{
|
||||
const craft = pmcData.Hideout.Production[prodId];
|
||||
if (!craft)
|
||||
{
|
||||
// Craft value is null, get rid of it (could be from cancelling craft that needs cleaning up)
|
||||
delete pmcData.Hideout.Production[prodId];
|
||||
}
|
||||
|
||||
// Craft complete, skip processing (Don't skip continious crafts like bitcoin farm)
|
||||
if (craft.Progress >= craft.ProductionTime && prodId !== HideoutHelper.bitcoinFarm)
|
||||
|
@ -45,7 +45,7 @@ export class WeightedRandomHelper
|
||||
{
|
||||
if (items.length !== weights.length)
|
||||
{
|
||||
throw new Error("Items and weights must be of the same size");
|
||||
throw new Error("Items and weight inputs must be of the same length");
|
||||
}
|
||||
|
||||
if (!items.length)
|
||||
|
@ -383,7 +383,7 @@ export interface Productive
|
||||
ProductionTime?: number
|
||||
GivenItemsInStart?: string[]
|
||||
Interrupted?: boolean
|
||||
/** Used in hideout prodiction.json */
|
||||
/** Used in hideout production.json */
|
||||
needFuelForAllProductionTime?: boolean
|
||||
/** Used when sending data to client */
|
||||
NeedFuelForAllProductionTime?: boolean
|
||||
|
@ -0,0 +1,6 @@
|
||||
export interface IHideoutCancelProductionRequestData
|
||||
{
|
||||
Action: "HideoutCancelProductionCommand"
|
||||
recipeId: string
|
||||
timestamp: number
|
||||
}
|
@ -10,5 +10,6 @@ export enum HideoutEventActions
|
||||
HIDEOUT_CONTINUOUS_PRODUCTION_START = "HideoutContinuousProductionStart",
|
||||
HIDEOUT_TAKE_PRODUCTION = "HideoutTakeProduction",
|
||||
HIDEOUT_RECORD_SHOOTING_RANGE_POINTS = "RecordShootingRangePoints",
|
||||
HIDEOUT_IMPROVE_AREA = "HideoutImproveArea"
|
||||
HIDEOUT_IMPROVE_AREA = "HideoutImproveArea",
|
||||
HIDEOUT_CANCEL_PRODUCTION_COMMAND = "HideoutCancelProductionCommand"
|
||||
}
|
@ -153,8 +153,14 @@ export class EventOutputHolder
|
||||
{
|
||||
for (const productionKey in productions)
|
||||
{
|
||||
// Skip completed
|
||||
const production = productions[productionKey];
|
||||
if (!production)
|
||||
{
|
||||
// Could be cancelled production, skip item to save processing
|
||||
continue;
|
||||
}
|
||||
|
||||
// Skip completed
|
||||
if (!production.inProgress)
|
||||
{
|
||||
continue;
|
||||
|
@ -29,7 +29,8 @@ export class HideoutItemEventRouter extends ItemEventRouterDefinition
|
||||
new HandledRoute(HideoutEventActions.HIDEOUT_CONTINUOUS_PRODUCTION_START, false),
|
||||
new HandledRoute(HideoutEventActions.HIDEOUT_TAKE_PRODUCTION, false),
|
||||
new HandledRoute(HideoutEventActions.HIDEOUT_RECORD_SHOOTING_RANGE_POINTS, false),
|
||||
new HandledRoute(HideoutEventActions.HIDEOUT_IMPROVE_AREA, false)
|
||||
new HandledRoute(HideoutEventActions.HIDEOUT_IMPROVE_AREA, false),
|
||||
new HandledRoute(HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND, false)
|
||||
];
|
||||
}
|
||||
|
||||
@ -59,6 +60,8 @@ export class HideoutItemEventRouter extends ItemEventRouterDefinition
|
||||
return this.hideoutCallbacks.recordShootingRangePoints(pmcData, body, sessionID);
|
||||
case HideoutEventActions.HIDEOUT_IMPROVE_AREA:
|
||||
return this.hideoutCallbacks.improveArea(pmcData, body, sessionID);
|
||||
case HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND:
|
||||
return this.hideoutCallbacks.cancelProduction(pmcData, body, sessionID);
|
||||
}
|
||||
}
|
||||
}
|
@ -192,11 +192,11 @@ export class SaveServer
|
||||
for (const callback in this.onBeforeSaveCallbacks)
|
||||
{
|
||||
const previous = this.profiles[sessionID];
|
||||
try
|
||||
try
|
||||
{
|
||||
this.profiles[sessionID] = this.onBeforeSaveCallbacks[callback](this.profiles[sessionID]);
|
||||
}
|
||||
catch (error)
|
||||
catch (error)
|
||||
{
|
||||
this.logger.error(this.localisationService.getText("profile_save_callback_error", { callback, error }));
|
||||
this.profiles[sessionID] = previous;
|
||||
@ -210,7 +210,7 @@ export class SaveServer
|
||||
this.saveMd5[sessionID] = String(fmd5);
|
||||
// save profile to disk
|
||||
this.vfs.writeFile(filePath, jsonProfile);
|
||||
this.logger.info(this.localisationService.getText("profile_saved", sessionID));
|
||||
this.logger.debug(this.localisationService.getText("profile_saved", sessionID), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ import { inject, injectAll, injectable } from "tsyringe";
|
||||
import { Serializer } from "@spt-aki/di/Serializer";
|
||||
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
|
||||
import { HttpRouter } from "@spt-aki/routers/HttpRouter";
|
||||
import { HttpBufferHandler } from "@spt-aki/servers/http/HttpBufferHandler";
|
||||
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
|
||||
import { LocalisationService } from "@spt-aki/services/LocalisationService";
|
||||
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
|
||||
@ -22,20 +21,18 @@ export class AkiHttpListener implements IHttpListener
|
||||
@inject("RequestsLogger") protected requestsLogger: ILogger,
|
||||
@inject("JsonUtil") protected jsonUtil: JsonUtil,
|
||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||
@inject("HttpBufferHandler") protected httpBufferHandler: HttpBufferHandler
|
||||
@inject("LocalisationService") protected localisationService: LocalisationService
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
public canHandle(_: string, req: IncomingMessage): boolean
|
||||
public canHandle(_: string, req: IncomingMessage): boolean
|
||||
{
|
||||
return req.method === "GET" || req.method === "PUT" || req.method === "POST";
|
||||
return ["GET", "PUT", "POST"].includes(req.method);
|
||||
}
|
||||
|
||||
public handle(sessionId: string, req: IncomingMessage, resp: ServerResponse): void
|
||||
{
|
||||
// TODO: cleanup into interface IVerbHandler
|
||||
switch (req.method)
|
||||
{
|
||||
case "GET":
|
||||
@ -44,63 +41,68 @@ export class AkiHttpListener implements IHttpListener
|
||||
this.sendResponse(sessionId, req, resp, null, response);
|
||||
break;
|
||||
}
|
||||
// these are handled almost identically.
|
||||
case "POST":
|
||||
{
|
||||
req.on("data", (data: any) =>
|
||||
{
|
||||
const value = (req.headers["debug"] === "1") ? data.toString() : zlib.inflateSync(data);
|
||||
const response = this.getResponse(sessionId, req, value);
|
||||
this.sendResponse(sessionId, req, resp, value, response);
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "PUT":
|
||||
{
|
||||
req.on("data", (data) =>
|
||||
// Data can come in chunks. Notably, if someone saves their profile (which can be
|
||||
// kinda big), on a slow connection. We need to re-assemble the entire http payload
|
||||
// before processing it.
|
||||
|
||||
const requestLength = parseInt(req.headers["content-length"]);
|
||||
const buffer = Buffer.alloc(requestLength);
|
||||
let written = 0;
|
||||
|
||||
req.on("data", (data: any) =>
|
||||
{
|
||||
// receive data
|
||||
if ("expect" in req.headers)
|
||||
{
|
||||
const requestLength = parseInt(req.headers["content-length"]);
|
||||
|
||||
if (!this.httpBufferHandler.putInBuffer(req.headers.sessionid, data, requestLength))
|
||||
{
|
||||
resp.writeContinue();
|
||||
}
|
||||
}
|
||||
data.copy(buffer, written, 0);
|
||||
written += data.length;
|
||||
});
|
||||
|
||||
req.on("end", async () =>
|
||||
|
||||
req.on("end", () =>
|
||||
{
|
||||
const data = this.httpBufferHandler.getFromBuffer(sessionId);
|
||||
this.httpBufferHandler.resetBuffer(sessionId);
|
||||
|
||||
let value = zlib.inflateSync(data);
|
||||
if (!value)
|
||||
// Contrary to reasonable expectations, the content-encoding is _not_ actually used to
|
||||
// determine if the payload is compressed. All PUT requests are, and POST requests without
|
||||
// debug = 1 are as well. This should be fixed.
|
||||
// let compressed = req.headers["content-encoding"] === "deflate";
|
||||
const compressed = req.method === "PUT" || req.headers["debug"] !== "1";
|
||||
|
||||
const value = compressed ? zlib.inflateSync(buffer) : buffer;
|
||||
if (req.headers["debug"] === "1")
|
||||
{
|
||||
value = data;
|
||||
this.logger.debug(value.toString(), true);
|
||||
}
|
||||
|
||||
const response = this.getResponse(sessionId, req, value);
|
||||
this.sendResponse(sessionId, req, resp, value, response);
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
|
||||
this.logger.warning(this.localisationService.getText("unknown_request"));
|
||||
this.logger.warning(`${this.localisationService.getText("unknown_request")}: ${req.method}`);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Send http response to the client
|
||||
* @param sessionID Player id
|
||||
* @param req Incoming request
|
||||
* @param resp Outgoing response
|
||||
* @param body Buffer
|
||||
* @param output Server generated response data
|
||||
*/
|
||||
public sendResponse(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: Buffer, output: string): void
|
||||
{
|
||||
const info = this.getBodyInfo(body);
|
||||
let handled = false;
|
||||
|
||||
// Check if this is a debug request, if so just send the raw response without transformation.
|
||||
if (req.headers["debug"] === "1")
|
||||
// Check if this is a debug request, if so just send the raw response without transformation
|
||||
if (req.headers["debug"] === "1")
|
||||
{
|
||||
this.sendJson(resp, output, sessionID);
|
||||
}
|
||||
@ -127,7 +129,7 @@ export class AkiHttpListener implements IHttpListener
|
||||
this.requestsLogger.info(`RESPONSE=${this.jsonUtil.serialize(log)}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public getResponse(sessionID: string, req: IncomingMessage, body: Buffer): string
|
||||
{
|
||||
const info = this.getBodyInfo(body, req.url);
|
||||
@ -141,7 +143,7 @@ export class AkiHttpListener implements IHttpListener
|
||||
const log = new Request(req.method, new RequestData(req.url, req.headers, data));
|
||||
this.requestsLogger.info(`REQUEST=${this.jsonUtil.serialize(log)}`);
|
||||
}
|
||||
|
||||
|
||||
let output = this.httpRouter.getResponse(req, info, sessionID);
|
||||
/* route doesn't exist or response is not properly set up */
|
||||
if (!output)
|
||||
@ -192,10 +194,10 @@ class Request
|
||||
public type: string,
|
||||
public req: RequestData
|
||||
)
|
||||
{}
|
||||
{}
|
||||
}
|
||||
|
||||
class Response
|
||||
class Response
|
||||
{
|
||||
constructor(
|
||||
public type: string,
|
||||
|
@ -1,36 +0,0 @@
|
||||
import { injectable } from "tsyringe";
|
||||
|
||||
@injectable()
|
||||
export class HttpBufferHandler
|
||||
{
|
||||
|
||||
protected buffers = {};
|
||||
|
||||
public resetBuffer(sessionID: string): void
|
||||
{
|
||||
this.buffers[sessionID] = undefined;
|
||||
}
|
||||
|
||||
public putInBuffer(sessionID: any, data: any, bufLength: number): boolean
|
||||
{
|
||||
if (this.buffers[sessionID] === undefined || this.buffers[sessionID].allocated !== bufLength)
|
||||
{
|
||||
this.buffers[sessionID] = {
|
||||
written: 0,
|
||||
allocated: bufLength,
|
||||
buffer: Buffer.alloc(bufLength)
|
||||
};
|
||||
}
|
||||
|
||||
const buf = this.buffers[sessionID];
|
||||
|
||||
data.copy(buf.buffer, buf.written, 0);
|
||||
buf.written += data.length;
|
||||
return buf.written === buf.allocated;
|
||||
}
|
||||
|
||||
public getFromBuffer(sessionID: string): any
|
||||
{
|
||||
return this.buffers[sessionID].buffer;
|
||||
}
|
||||
}
|
@ -465,7 +465,7 @@ export class FenceService
|
||||
}
|
||||
|
||||
/**
|
||||
* Get stack size ofr a singular item (no mods)
|
||||
* Get stack size of a singular item (no mods)
|
||||
* @param itemDbDetails item being added to fence
|
||||
* @returns Stack size
|
||||
*/
|
||||
@ -478,11 +478,12 @@ export class FenceService
|
||||
return this.randomUtil.getInt(overrideValues.min, overrideValues.max);
|
||||
}
|
||||
|
||||
// Fence doesn't sell ammo by default, but handle it as players mod fence
|
||||
if (this.itemHelper.isOfBaseclass(itemDbDetails._id, BaseClasses.AMMO))
|
||||
{
|
||||
// No override, use stack max size from item db
|
||||
return this.randomUtil.getInt(1, itemDbDetails._props.StackMaxSize);
|
||||
return itemDbDetails._props.StackMaxSize === 1
|
||||
? 1
|
||||
: this.randomUtil.getInt(itemDbDetails._props.StackMinRandom, itemDbDetails._props.StackMaxRandom);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user