0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 09:50:43 -05:00

Merge branch '3.8.0' into testing-redux

This commit is contained in:
Refringe 2023-11-04 21:12:49 -04:00
commit 98a35f4b47
No known key found for this signature in database
GPG Key ID: 64E03E5F892C6F9E
70 changed files with 33259 additions and 24139 deletions

View File

@ -36,10 +36,14 @@
"crazyAssaultEvent": 15, "crazyAssaultEvent": 15,
"bossBoar": 5, "bossBoar": 5,
"bossBoarSniper": 5, "bossBoarSniper": 5,
"peacefullZryachiyEvent": 5,
"sectactPriestEvent": 20,
"ravangeZryachiyEvent": 25,
"sptUsec": 30, "sptUsec": 30,
"sptBear": 30 "sptBear": 30
}, },
"bosses": ["bossbully", "bossgluhar", "bosskilla", "bosskojaniy", "bosssanitar", "bosstagilla", "bossknight", "bossZryachiy", "bossBoar", "bossBoarSniper"], "bosses": ["bossbully", "bossgluhar", "bosskilla", "bosskojaniy", "bosssanitar", "bosstagilla", "bossknight", "bossZryachiy", "bossBoar", "bossBoarSniper"],
"botsToNotAddPMCsAsEnemiesTo": ["gifter", "peacefullzryachiyevent"],
"durability": { "durability": {
"default": { "default": {
"armor": { "armor": {
@ -432,7 +436,8 @@
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 75,
"laserIsActiveChancePercent": 75 "laserIsActiveChancePercent": 75,
"forceStock": true
}, },
"bossgluhar": { "bossgluhar": {
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
@ -440,13 +445,15 @@
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 45, "lightIsActiveDayChancePercent": 45,
"lightIsActiveNightChancePercent": 95, "lightIsActiveNightChancePercent": 95,
"laserIsActiveChancePercent": 95 "laserIsActiveChancePercent": 95,
"forceStock": true
}, },
"bosskilla": { "bosskilla": {
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 35, "lightIsActiveDayChancePercent": 35,
"lightIsActiveNightChancePercent": 85, "lightIsActiveNightChancePercent": 85,
"laserIsActiveChancePercent": 85 "laserIsActiveChancePercent": 85,
"forceStock": true
}, },
"bosskojaniy": { "bosskojaniy": {
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
@ -468,7 +475,8 @@
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 75,
"laserIsActiveChancePercent": 75 "laserIsActiveChancePercent": 75,
"forceStock": true
}, },
"bossknight": { "bossknight": {
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
@ -476,21 +484,24 @@
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 75,
"laserIsActiveChancePercent": 75 "laserIsActiveChancePercent": 75,
"forceStock": true
}, },
"bosszryachiy": { "bosszryachiy": {
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
"nvgIsActiveChanceNightPercent": 90, "nvgIsActiveChanceNightPercent": 90,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 85, "lightIsActiveNightChancePercent": 85,
"laserIsActiveChancePercent": 85 "laserIsActiveChancePercent": 85,
"forceStock": true
}, },
"bossboar": { "bossboar": {
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
"nvgIsActiveChanceNightPercent": 90, "nvgIsActiveChanceNightPercent": 90,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 85, "lightIsActiveNightChancePercent": 85,
"laserIsActiveChancePercent": 85 "laserIsActiveChancePercent": 85,
"forceStock": true
}, },
"bosstest": {}, "bosstest": {},
"followerbully": { "followerbully": {
@ -547,6 +558,7 @@
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 75,
"laserIsActiveChancePercent": 75, "laserIsActiveChancePercent": 75,
"forceStock": true,
"weaponModLimits": { "weaponModLimits": {
"scopeLimit": 1, "scopeLimit": 1,
"lightLaserLimit": 1 "lightLaserLimit": 1
@ -558,7 +570,8 @@
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 75,
"laserIsActiveChancePercent": 75 "laserIsActiveChancePercent": 75,
"forceStock": true
}, },
"followerzryachiy": { "followerzryachiy": {
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
@ -586,6 +599,7 @@
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 25,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 75,
"laserIsActiveChancePercent": 75, "laserIsActiveChancePercent": 75,
"forceStock": true,
"weaponModLimits": { "weaponModLimits": {
"scopeLimit": 2, "scopeLimit": 2,
"lightLaserLimit": 1 "lightLaserLimit": 1
@ -596,16 +610,16 @@
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
"nvgIsActiveChanceNightPercent": 100, "nvgIsActiveChanceNightPercent": 100,
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 5,
"lightIsActiveNightChancePercent": 85, "lightIsActiveNightChancePercent": 5,
"laserIsActiveChancePercent": 95 "laserIsActiveChancePercent": 95
}, },
"sectantwarrior": { "sectantwarrior": {
"nvgIsActiveChanceDayPercent": 10, "nvgIsActiveChanceDayPercent": 10,
"nvgIsActiveChanceNightPercent": 100, "nvgIsActiveChanceNightPercent": 100,
"faceShieldIsActiveChancePercent": 100, "faceShieldIsActiveChancePercent": 100,
"lightIsActiveDayChancePercent": 25, "lightIsActiveDayChancePercent": 5,
"lightIsActiveNightChancePercent": 75, "lightIsActiveNightChancePercent": 5,
"laserIsActiveChancePercent": 95 "laserIsActiveChancePercent": 95
}, },
"test": {}, "test": {},
@ -616,6 +630,7 @@
"lightIsActiveDayChancePercent": 35, "lightIsActiveDayChancePercent": 35,
"lightIsActiveNightChancePercent": 95, "lightIsActiveNightChancePercent": 95,
"laserIsActiveChancePercent": 95, "laserIsActiveChancePercent": 95,
"forceStock": true,
"weaponModLimits": { "weaponModLimits": {
"scopeLimit": 1, "scopeLimit": 1,
"lightLaserLimit": 1 "lightLaserLimit": 1
@ -780,7 +795,7 @@
"Backpack": 35, "Backpack": 35,
"FaceCover": 5 "FaceCover": 5
}, },
"randomisedWeaponModSlots": [], "randomisedWeaponModSlots": [],
"mods": { "mods": {
"mod_barrel": 20, "mod_barrel": 20,
"mod_bipod": 10, "mod_bipod": 10,
@ -856,8 +871,7 @@
"mod_reciever": ["5d4405aaa4b9361e6a4e6bd3"], "mod_reciever": ["5d4405aaa4b9361e6a4e6bd3"],
"mod_stock": ["5cde739cd7f00c0010373bd3"], "mod_stock": ["5cde739cd7f00c0010373bd3"],
"mod_rear_sight": ["5a0ed824fcdbcb0176308b0d"], "mod_rear_sight": ["5a0ed824fcdbcb0176308b0d"],
"mod_front_sight": ["5a0f096dfcdbcb0176308b15"], "mod_front_sight": ["5a0f096dfcdbcb0176308b15"]
"mod_magazine": ["6241c2c2117ad530666a5108"]
}, },
"cartridge": { "cartridge": {
"Caliber23x75": ["5e85a9f4add9fe03027d9bf1"], "Caliber23x75": ["5e85a9f4add9fe03027d9bf1"],

View File

@ -1,7 +1,7 @@
{ {
"akiVersion": "3.8.0", "akiVersion": "3.8.0",
"projectName": "SPT-AKI", "projectName": "SPT-AKI",
"compatibleTarkovVersion": "0.13.5.26921", "compatibleTarkovVersion": "0.13.9.26921",
"serverName": "SPT Server", "serverName": "SPT Server",
"profileSaveIntervalSeconds": 15, "profileSaveIntervalSeconds": 15,
"sptFriendNickname": "SPT", "sptFriendNickname": "SPT",

View File

@ -1460,6 +1460,8 @@
"minKills": 1, "minKills": 1,
"maxBossKills": 1, "maxBossKills": 1,
"minBossKills": 1, "minBossKills": 1,
"maxPmcKills": 2,
"minPmcKills": 1,
"weaponRequirementProb": 0, "weaponRequirementProb": 0,
"weaponCategoryRequirementProb": 0.3, "weaponCategoryRequirementProb": 0.3,
"weaponCategoryRequirements": [{ "weaponCategoryRequirements": [{
@ -1573,6 +1575,8 @@
"minKills": 3, "minKills": 3,
"maxBossKills": 3, "maxBossKills": 3,
"minBossKills": 1, "minBossKills": 1,
"maxPmcKills": 5,
"minPmcKills": 2,
"weaponRequirementProb": 0, "weaponRequirementProb": 0,
"weaponCategoryRequirementProb": 0.3, "weaponCategoryRequirementProb": 0.3,
"weaponCategoryRequirements": [{ "weaponCategoryRequirements": [{

View File

@ -11,6 +11,13 @@
"kit": 0.6, "kit": 0.6,
"trader": 0.6 "trader": 0.6
}, },
"weaponTreatment": {
"critSuccessChance": 0.10,
"critSuccessAmount": 4,
"critFailureChance": 0.10,
"critFailureAmount": 4,
"pointGainMultiplier": 0.6
},
"repairKit": { "repairKit": {
"armor": { "armor": {
"rarityWeight": { "rarityWeight": {

View File

@ -13,7 +13,7 @@
"62a5c333ec21e50cad3b5dc6": 1500, "62a5c333ec21e50cad3b5dc6": 1500,
"62a5c41e8ec41a51b34739c3": 1500, "62a5c41e8ec41a51b34739c3": 1500,
"635267ab3c89e2112001f826": 1500, "635267ab3c89e2112001f826": 1500,
"5e54f79686f7744022011103": 1500 "5e54f79686f7744022011103": 1500
}, },
"Headwear": { "Headwear": {
"59ef13ca86f77445fd0e2483": 1500 "59ef13ca86f77445fd0e2483": 1500
@ -24,8 +24,8 @@
"63495c500c297e20065a08b1": 10 "63495c500c297e20065a08b1": 10
} }
}, },
"bear": { "bear": {
"FaceCover": { "FaceCover": {
"5bd071d786f7747e707b93a3": 5, "5bd071d786f7747e707b93a3": 5,
"5bd0716d86f774171822ef4b": 5, "5bd0716d86f774171822ef4b": 5,
"5bd06f5d86f77427101ad47c": 5, "5bd06f5d86f77427101ad47c": 5,
@ -35,14 +35,14 @@
"62a5c333ec21e50cad3b5dc6": 5, "62a5c333ec21e50cad3b5dc6": 5,
"62a5c41e8ec41a51b34739c3": 5, "62a5c41e8ec41a51b34739c3": 5,
"635267ab3c89e2112001f826": 5, "635267ab3c89e2112001f826": 5,
"5e54f79686f7744022011103": 5 "5e54f79686f7744022011103": 5
}, },
"Headwear": { "Headwear": {
"59ef13ca86f77445fd0e2483": 25 "59ef13ca86f77445fd0e2483": 25
} }
}, },
"usec": { "usec": {
"FaceCover": { "FaceCover": {
"5bd071d786f7747e707b93a3": 5, "5bd071d786f7747e707b93a3": 5,
"5bd0716d86f774171822ef4b": 5, "5bd0716d86f774171822ef4b": 5,
"5bd06f5d86f77427101ad47c": 5, "5bd06f5d86f77427101ad47c": 5,
@ -52,12 +52,12 @@
"62a5c333ec21e50cad3b5dc6": 5, "62a5c333ec21e50cad3b5dc6": 5,
"62a5c41e8ec41a51b34739c3": 5, "62a5c41e8ec41a51b34739c3": 5,
"635267ab3c89e2112001f826": 5, "635267ab3c89e2112001f826": 5,
"5e54f79686f7744022011103": 5 "5e54f79686f7744022011103": 5
}, },
"Headwear": { "Headwear": {
"59ef13ca86f77445fd0e2483": 25 "59ef13ca86f77445fd0e2483": 25
} }
} }
}, },
"christmas": { "christmas": {
"bossgluhar": { "bossgluhar": {
@ -96,7 +96,7 @@
"5a43957686f7742a2c2f11b0": 3 "5a43957686f7742a2c2f11b0": 3
} }
}, },
"bossboar": { "bossboar": {
"FaceCover": { "FaceCover": {
"5c1a1e3f2e221602b66cc4c2": 1 "5c1a1e3f2e221602b66cc4c2": 1
}, },
@ -132,11 +132,11 @@
"5a43957686f7742a2c2f11b0": 600 "5a43957686f7742a2c2f11b0": 600
} }
}, },
"followerboar": { "followerboar": {
"FaceCover": { "FaceCover": {
"5c1a1e3f2e221602b66cc4c2": 250 "5c1a1e3f2e221602b66cc4c2": 250
}, },
"Headwear": { "Headwear": {
"5a43943586f77416ad2f06e2": 3, "5a43943586f77416ad2f06e2": 3,
"5a43957686f7742a2c2f11b0": 3 "5a43957686f7742a2c2f11b0": 3
} }
@ -231,6 +231,388 @@
} }
} }
}, },
"eventBotMapping": {
"peacefullZryachiyEvent": "bossZryachiy",
"sectactPriestEvent": "sectantPriest",
"ravangeZryachiyEvent": "bossZryachiy",
"arenaFighterEvent": "arenaFighterEvent"
},
"eventBossSpawns": {
"halloween": {
"bigmap": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
],
"interchange": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
],
"lighthouse": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
],
"reservbase": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
],
"shoreline": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
],
"tarkovstreets": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
],
"woods": [{
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "peacefullZryachiyEvent",
"BossName": "peacefullZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": -1,
"TriggerId": "",
"TriggerName": ""
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "5",
"BossEscortDifficult": "normal",
"BossEscortType": "sectactPriestEvent",
"BossName": "sectactPriestEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 25,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 999999,
"TriggerId": "ZryachiyPeaceKill",
"TriggerName": "botEvent"
}, {
"BossChance": 100,
"BossDifficult": "normal",
"BossEscortAmount": "0",
"BossEscortDifficult": "normal",
"BossEscortType": "ravangeZryachiyEvent",
"BossName": "ravangeZryachiyEvent",
"BossPlayer": false,
"BossZone": "",
"Delay": 0,
"ForceSpawn": true,
"IgnoreMaxBots": true,
"RandomTimeSpawn": false,
"Supports": null,
"Time": 99999,
"TriggerId": "SummonComplete",
"TriggerName": "botEvent"
}
]
},
"christmas": {}
},
"gifterSettings": [{ "gifterSettings": [{
"map": "bigmap", "map": "bigmap",
"zones": "ZoneDormitory,ZoneGasStation,ZoneScavBase", "zones": "ZoneDormitory,ZoneGasStation,ZoneScavBase",
@ -271,21 +653,21 @@
], ],
"events": [{ "events": [{
"name": "halloween", "name": "halloween",
"type": "HALLOWEEN", "type": "HALLOWEEN",
"startDay": "24", "startDay": "24",
"startMonth": "10", "startMonth": "10",
"endDay": "4", "endDay": "4",
"endMonth": "11" "endMonth": "11"
}, { }, {
"name": "christmas", "name": "christmas",
"type": "CHRISTMAS", "type": "CHRISTMAS",
"startDay": "7", "startDay": "7",
"startMonth": "12", "startMonth": "12",
"endDay": "31", "endDay": "31",
"endMonth": "12" "endMonth": "12"
}, { }, {
"name": "newyears", "name": "newyears",
"type": "NEW_YEARS", "type": "NEW_YEARS",
"startDay": "1", "startDay": "1",
"startMonth": "1", "startMonth": "1",
"endDay": "7", "endDay": "7",

View File

@ -2073,7 +2073,6 @@
"Оливье", "Оливье",
"Подружка", "Подружка",
"Шмыга", "Шмыга",
"Шнур",
"Сырок", "Сырок",
"Улётный", "Улётный",
"Васёк", "Васёк",

View File

@ -4895,7 +4895,8 @@
"59e89d0986f77427600d226e", "59e89d0986f77427600d226e",
"5649b0fc4bdc2d17108b4588", "5649b0fc4bdc2d17108b4588",
"59d6514b86f774171a068a08", "59d6514b86f774171a068a08",
"5649b2314bdc2d79388b4576" "5649b2314bdc2d79388b4576",
"5cf518cfd7f00c065b422214"
], ],
"patron_in_weapon": [ "patron_in_weapon": [
"56dff3afd2720bba668b4567", "56dff3afd2720bba668b4567",

View File

@ -2005,8 +2005,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2500,
"min": 1000 "min": 2500
}, },
"standingForKill": -0.2 "standingForKill": -0.2
}, },

View File

@ -2287,8 +2287,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2650,
"min": 1000 "min": 2650
}, },
"standingForKill": -0.2 "standingForKill": -0.2
}, },

View File

@ -1989,8 +1989,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1200, "max": 2000,
"min": 1200 "min": 2000
}, },
"standingForKill": -0.2 "standingForKill": -0.2
}, },

View File

@ -2105,8 +2105,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2300,
"min": 1000 "min": 2300
}, },
"standingForKill": 0 "standingForKill": 0
}, },

View File

@ -2051,8 +2051,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1100, "max": 2100,
"min": 1100 "min": 2100
}, },
"standingForKill": -0.2 "standingForKill": -0.2
}, },

View File

@ -2090,8 +2090,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2700,
"min": 1000 "min": 2700
}, },
"standingForKill": -0.2 "standingForKill": -0.2
}, },

View File

@ -2084,8 +2084,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2450,
"min": 1000 "min": 2450
}, },
"standingForKill": -0.2 "standingForKill": -0.2
}, },

View File

@ -2204,7 +2204,9 @@
"Pockets": { "Pockets": {
"60c7272c204bc17802313365": 1 "60c7272c204bc17802313365": 1
}, },
"Scabbard": {}, "Scabbard": {
"5fc64ea372b0dd78d51159dc": 1
},
"SecondPrimaryWeapon": { "SecondPrimaryWeapon": {
"57dc2fa62459775949412633": 968, "57dc2fa62459775949412633": 968,
"5ba26383d4351e00334c93d9": 13 "5ba26383d4351e00334c93d9": 13

View File

@ -1998,8 +1998,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2100,
"min": 1000 "min": 2100
}, },
"standingForKill": -0.05 "standingForKill": -0.05
}, },

View File

@ -2056,8 +2056,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1000, "max": 2100,
"min": 1000 "min": 2100
}, },
"standingForKill": -0.05 "standingForKill": -0.05
}, },

View File

@ -1998,8 +1998,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 200, "max": 250,
"min": 200 "min": 250
}, },
"standingForKill": -0.05 "standingForKill": -0.05
}, },

View File

@ -2159,8 +2159,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 275, "max": 325,
"min": 275 "min": 325
}, },
"standingForKill": -0.05 "standingForKill": -0.05
}, },

View File

@ -2077,8 +2077,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 325, "max": 350,
"min": 325 "min": 350
}, },
"standingForKill": -0.05 "standingForKill": -0.05
}, },

View File

@ -42,7 +42,7 @@
"mod_handguard": 100, "mod_handguard": 100,
"mod_launcher": 0, "mod_launcher": 0,
"mod_magazine": 100, "mod_magazine": 100,
"mod_mount": 93, "mod_mount": 95,
"mod_mount_000": 72, "mod_mount_000": 72,
"mod_mount_001": 97, "mod_mount_001": 97,
"mod_mount_002": 98, "mod_mount_002": 98,
@ -61,7 +61,7 @@
"mod_tactical002": 0, "mod_tactical002": 0,
"mod_tactical_000": 1, "mod_tactical_000": 1,
"mod_tactical_001": 0, "mod_tactical_001": 0,
"mod_tactical_002": 96 "mod_tactical_002": 97
} }
}, },
"difficulty": { "difficulty": {

View File

@ -1997,7 +1997,7 @@
"max": -1, "max": -1,
"min": -1 "min": -1
}, },
"standingForKill": -0.04 "standingForKill": -0.05
}, },
"firstName": [ "firstName": [
"Артур", "Артур",

File diff suppressed because it is too large Load Diff

View File

@ -2031,8 +2031,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 250, "max": 275,
"min": 250 "min": 275
}, },
"standingForKill": 0 "standingForKill": 0
}, },

File diff suppressed because it is too large Load Diff

View File

@ -2072,8 +2072,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 1200, "max": 2900,
"min": 1200 "min": 2900
}, },
"standingForKill": 0 "standingForKill": 0
}, },

File diff suppressed because it is too large Load Diff

View File

@ -2079,8 +2079,8 @@
"min": 0 "min": 0
}, },
"reward": { "reward": {
"max": 600, "max": 800,
"min": 600 "min": 800
}, },
"standingForKill": 0 "standingForKill": 0
}, },

View File

@ -17388,56 +17388,56 @@
} }
}, },
"DiscardLimitsEnabled": true, "DiscardLimitsEnabled": true,
"EventSettings": { "EventSettings": {
"EventActive": true, "EventActive": true,
"EventTime": 420, "EventTime": 390,
"EventWeather": { "EventWeather": {
"Cloudness": 1, "Cloudness": 1,
"Hour": 21, "Hour": 21,
"Minute": 0, "Minute": 0,
"Rain": 0.1, "Rain": 0.1,
"RainRandomness": 0, "RainRandomness": 0,
"ScaterringFogDensity": 0.02, "ScaterringFogDensity": 0.02,
"TopWindDirection": { "TopWindDirection": {
"x": -1, "x": -1,
"y": 0, "y": 0,
"z": 0 "z": 0
},
"Wind": 4,
"WindDirection": 8
}, },
"ExitTimeMultiplier": 3, "Wind": 4,
"StaminaMultiplier": 3, "WindDirection": 8
"SummonFailedWeather": {
"Cloudness": 0,
"Rain": 0,
"RainRandomness": 0,
"ScaterringFogDensity": 0.001,
"TopWindDirection": {
"x": -1,
"y": 0,
"z": 0
},
"Wind": 0,
"WindDirection": 8
},
"SummonSuccessWeather": {
"Cloudness": 0,
"Hour": 6,
"Minute": 10,
"Rain": 0.1,
"RainRandomness": 0,
"ScaterringFogDensity": 0.05,
"TopWindDirection": {
"x": -1,
"y": 0,
"z": 0
},
"Wind": 0.2,
"WindDirection": 8
},
"WeatherChangeTime": 20
}, },
"ExitTimeMultiplier": 3,
"StaminaMultiplier": 3,
"SummonFailedWeather": {
"Cloudness": 0,
"Rain": 0,
"RainRandomness": 0,
"ScaterringFogDensity": 0.001,
"TopWindDirection": {
"x": -1,
"y": 0,
"z": 0
},
"Wind": 0,
"WindDirection": 8
},
"SummonSuccessWeather": {
"Cloudness": 0,
"Hour": 6,
"Minute": 10,
"Rain": 0.1,
"RainRandomness": 0,
"ScaterringFogDensity": 0.05,
"TopWindDirection": {
"x": -1,
"y": 0,
"z": 0
},
"Wind": 0.2,
"WindDirection": 8
},
"WeatherChangeTime": 20
},
"EventType": [ "EventType": [
"None" "None"
], ],

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "复仇Zryachiy的巴拉克拉瓦",
"6530e8587cbfc1e309011e37 ShortName": "复仇巴拉克拉瓦",
"6530e8587cbfc1e309011e37 Description": "一件非常吓人的红脸面具由复仇Zryachiy佩戴。",
"6531119b9afebff7ff0a1769 Name": "复仇Zryachiy的巴拉克拉瓦帽子",
"6531119b9afebff7ff0a1769 ShortName": "复仇巴拉克拉瓦",
"6531119b9afebff7ff0a1769 Description": "一件非常吓人的红脸面具由复仇Zryachiy佩戴。被折叠成了帽子的模样。",
" V-ex_light": "通往军事基地的载具撤离点", " V-ex_light": "通往军事基地的载具撤离点",
" Voip/DisabledForOffline": "VOIP在离线模式中不可用", " Voip/DisabledForOffline": "VOIP在离线模式中不可用",
" kg": "千克", " kg": "千克",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "性能", "EDLSSMode/Performance": "性能",
"EDLSSMode/Quality": "画质", "EDLSSMode/Quality": "画质",
"EDLSSMode/UltraPerformance": "极致性能", "EDLSSMode/UltraPerformance": "极致性能",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "有效射程", "EFFECTIVE DISTANCE": "有效射程",
"EFSR2Mode/Balanced": "均衡", "EFSR2Mode/Balanced": "均衡",
"EFSR2Mode/Off": "关闭", "EFSR2Mode/Off": "关闭",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip Streaming 缓存大小", "MipStreamingBufferSize:": "Mip Streaming 缓存大小",
"Misc": "杂项", "Misc": "杂项",
"MiscDescription": "其他武器使用技能", "MiscDescription": "其他武器使用技能",
"MisfireEffect": "Primal fear",
"Missed in Action": "行动中失踪", "Missed in Action": "行动中失踪",
"Mod": "配件", "Mod": "配件",
"Monitor parameters": "显示器宽高比", "Monitor parameters": "显示器宽高比",
@ -11653,6 +11666,7 @@
"PVE settings": "PVE设置", "PVE settings": "PVE设置",
"Pain": "疼痛", "Pain": "疼痛",
"Painkiller": "止疼药生效中", "Painkiller": "止疼药生效中",
"PanicEffect": "Chilling horror",
"Paramedic": "护理人员", "Paramedic": "护理人员",
"Party is ready. Starting the game...": "队伍准备完毕。正在开始游戏...", "Party is ready. Starting the game...": "队伍准备完毕。正在开始游戏...",
"Penalties": "任务失败的惩罚", "Penalties": "任务失败的惩罚",
@ -11979,6 +11993,7 @@
"Right Hand": "右手", "Right Hand": "右手",
"Right Leg": "右腿", "Right Leg": "右腿",
"RightArm": "右臂", "RightArm": "右臂",
"Ritual": "Ritual",
"Riverside": "河岸", "Riverside": "河岸",
"Rmed": "中", "Rmed": "中",
"Road to Customs": "通往海关的路", "Road to Customs": "通往海关的路",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Kuchařův diář", "64f69b4267e11a7c6206e010 Name": "Kuchařův diář",
"64f69b4267e11a7c6206e010 ShortName": "Diář", "64f69b4267e11a7c6206e010 ShortName": "Diář",
"64f69b4267e11a7c6206e010 Description": "Diář obsahující cenné údaje patřící kuchaři z restaurace Beluga.", "64f69b4267e11a7c6206e010 Description": "Diář obsahující cenné údaje patřící kuchaři z restaurace Beluga.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Kukla Pomstychtivého Zryachiyho",
"6530e8587cbfc1e309011e37 ShortName": "Pomstychtivý",
"6530e8587cbfc1e309011e37 Description": "Zastrašující červená maska, kterou nosí pomstychtivý Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Kukla Pomstychtivého Zryachiyho (složená)",
"6531119b9afebff7ff0a1769 ShortName": "Pomstychtivý",
"6531119b9afebff7ff0a1769 Description": "Zastrašující červená maska, kterou nosí pomstychtivý Zryachiy. Složená tak, aby se dala nosit jako čepice.",
" V-ex_light": "Auto u cesty na vojenskou základnu", " V-ex_light": "Auto u cesty na vojenskou základnu",
" Voip/DisabledForOffline": "VOIP není v offline režimu dostupný", " Voip/DisabledForOffline": "VOIP není v offline režimu dostupný",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "Výkon", "EDLSSMode/Performance": "Výkon",
"EDLSSMode/Quality": "Kvalita", "EDLSSMode/Quality": "Kvalita",
"EDLSSMode/UltraPerformance": "Vysoký výkon", "EDLSSMode/UltraPerformance": "Vysoký výkon",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "EFEKTIVNÍ VZDÁLENOST", "EFFECTIVE DISTANCE": "EFEKTIVNÍ VZDÁLENOST",
"EFSR2Mode/Balanced": "Vyvážené", "EFSR2Mode/Balanced": "Vyvážené",
"EFSR2Mode/Off": "Vypnuto", "EFSR2Mode/Off": "Vypnuto",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Velikost vyrovnávací paměti pro Mip Streaming", "MipStreamingBufferSize:": "Velikost vyrovnávací paměti pro Mip Streaming",
"Misc": "Různé", "Misc": "Různé",
"MiscDescription": "Schopnost manipulace s ruznorodými zbraněmi", "MiscDescription": "Schopnost manipulace s ruznorodými zbraněmi",
"MisfireEffect": "Primal fear",
"Missed in Action": "Ztracen v akci", "Missed in Action": "Ztracen v akci",
"Mod": "Modifikace", "Mod": "Modifikace",
"Monitor parameters": "Nastavení zobrazení", "Monitor parameters": "Nastavení zobrazení",
@ -11653,6 +11666,7 @@
"PVE settings": "Nastavení PVE", "PVE settings": "Nastavení PVE",
"Pain": "Bolest", "Pain": "Bolest",
"Painkiller": "Na analgetikách", "Painkiller": "Na analgetikách",
"PanicEffect": "Chilling horror",
"Paramedic": "Paramedik", "Paramedic": "Paramedik",
"Party is ready. Starting the game...": "Tým je připraven. Zahajuji hru...", "Party is ready. Starting the game...": "Tým je připraven. Zahajuji hru...",
"Penalties": "Sankce za selhání", "Penalties": "Sankce za selhání",
@ -11979,6 +11993,7 @@
"Right Hand": "PRAVÁ RUKA", "Right Hand": "PRAVÁ RUKA",
"Right Leg": "PRAVÁ NOHA", "Right Leg": "PRAVÁ NOHA",
"RightArm": "Pravá paže", "RightArm": "Pravá paže",
"Ritual": "Ritual",
"Riverside": "Břeh řeky", "Riverside": "Břeh řeky",
"Rmed": "Střední", "Rmed": "Střední",
"Road to Customs": "Cesta do Customs", "Road to Customs": "Cesta do Customs",

File diff suppressed because it is too large Load Diff

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Pasamontañas Vengeful de Zryachiy",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "Una intimidante máscara de color rojo, usada por el vengativo Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Pasamontañas Vengeful de Zryachiy (Plegado)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "Una intimidante máscara de color rojo, usada por el vengativo Zryachiy. Plegado para ser utilizado como sombrero.",
" V-ex_light": "Ex-V - Carretera a la Base Militar", " V-ex_light": "Ex-V - Carretera a la Base Militar",
" Voip/DisabledForOffline": "El VoIP no está disponible en el modo Offline.", " Voip/DisabledForOffline": "El VoIP no está disponible en el modo Offline.",
" kg": "kg", " kg": "kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "desempeño", "EDLSSMode/Performance": "desempeño",
"EDLSSMode/Quality": "calidad", "EDLSSMode/Quality": "calidad",
"EDLSSMode/UltraPerformance": "ultra desempeño", "EDLSSMode/UltraPerformance": "ultra desempeño",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "DISTANCIA EFECTIVA", "EFFECTIVE DISTANCE": "DISTANCIA EFECTIVA",
"EFSR2Mode/Balanced": "balanceado", "EFSR2Mode/Balanced": "balanceado",
"EFSR2Mode/Off": "desactivado", "EFSR2Mode/Off": "desactivado",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Tamaño del búfer Mip Streaming", "MipStreamingBufferSize:": "Tamaño del búfer Mip Streaming",
"Misc": "Misceláneos", "Misc": "Misceláneos",
"MiscDescription": "Habilidades manejando diversas armas", "MiscDescription": "Habilidades manejando diversas armas",
"MisfireEffect": "Primal fear",
"Missed in Action": "Desaparecido En Combate", "Missed in Action": "Desaparecido En Combate",
"Mod": "Modificaciones", "Mod": "Modificaciones",
"Monitor parameters": "Parámetros del Monitor", "Monitor parameters": "Parámetros del Monitor",
@ -11653,6 +11666,7 @@
"PVE settings": "Configuración de PvE", "PVE settings": "Configuración de PvE",
"Pain": "Dolor", "Pain": "Dolor",
"Painkiller": "Con analgesia", "Painkiller": "Con analgesia",
"PanicEffect": "Chilling horror",
"Paramedic": "Paramédico", "Paramedic": "Paramédico",
"Party is ready. Starting the game...": "El grupo está listo. Comenzando el juego...", "Party is ready. Starting the game...": "El grupo está listo. Comenzando el juego...",
"Penalties": "Penalizaciones por fallar", "Penalties": "Penalizaciones por fallar",
@ -11979,6 +11993,7 @@
"Right Hand": "MANO DERECHA", "Right Hand": "MANO DERECHA",
"Right Leg": "PIERNA DER.", "Right Leg": "PIERNA DER.",
"RightArm": "Brazo Derecho", "RightArm": "Brazo Derecho",
"Ritual": "Ritual",
"Riverside": "Ribera", "Riverside": "Ribera",
"Rmed": "Media", "Rmed": "Media",
"Road to Customs": "Carretera a Aduanas", "Road to Customs": "Carretera a Aduanas",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Pasamontañas Vengeful de Zryachiy",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "Un pasamontañas intimidante de color rojo, llevado por el vengativo Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Pasamontañas Vengeful de Zryachiy (Plegado)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "Un pasamontañas intimidante de color rojo, llevado por el vengativo Zryachiy. Plegada para ser utilizada como sombrero.",
" V-ex_light": "V-Ex Carretera a la Base Militar", " V-ex_light": "V-Ex Carretera a la Base Militar",
" Voip/DisabledForOffline": "El VoIP no está disponible en el modo Offline", " Voip/DisabledForOffline": "El VoIP no está disponible en el modo Offline",
" kg": "kg", " kg": "kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "desempeño", "EDLSSMode/Performance": "desempeño",
"EDLSSMode/Quality": "calidad", "EDLSSMode/Quality": "calidad",
"EDLSSMode/UltraPerformance": "ultra desempeño", "EDLSSMode/UltraPerformance": "ultra desempeño",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "DISTANCIA EFECTIVA", "EFFECTIVE DISTANCE": "DISTANCIA EFECTIVA",
"EFSR2Mode/Balanced": "Balanceado", "EFSR2Mode/Balanced": "Balanceado",
"EFSR2Mode/Off": "Desactivado", "EFSR2Mode/Off": "Desactivado",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Tamaño del búfer de Mip Streaming", "MipStreamingBufferSize:": "Tamaño del búfer de Mip Streaming",
"Misc": "Miscelánea", "Misc": "Miscelánea",
"MiscDescription": "Habilidad en el manejo de otros tipos de armas.", "MiscDescription": "Habilidad en el manejo de otros tipos de armas.",
"MisfireEffect": "Primal fear",
"Missed in Action": "Desaparecido en Combate (DEC)", "Missed in Action": "Desaparecido en Combate (DEC)",
"Mod": "Modificaciones", "Mod": "Modificaciones",
"Monitor parameters": "Parámetros del monitor", "Monitor parameters": "Parámetros del monitor",
@ -11653,6 +11666,7 @@
"PVE settings": "Configuración de PvE", "PVE settings": "Configuración de PvE",
"Pain": "Dolor", "Pain": "Dolor",
"Painkiller": "Drogado", "Painkiller": "Drogado",
"PanicEffect": "Chilling horror",
"Paramedic": "Médico de combate", "Paramedic": "Médico de combate",
"Party is ready. Starting the game...": "El grupo está listo. Comenzando la partida...", "Party is ready. Starting the game...": "El grupo está listo. Comenzando la partida...",
"Penalties": "Penalizaciones por fallar la misión", "Penalties": "Penalizaciones por fallar la misión",
@ -11979,6 +11993,7 @@
"Right Hand": "MANO DERECHA", "Right Hand": "MANO DERECHA",
"Right Leg": "PIERNA DER.", "Right Leg": "PIERNA DER.",
"RightArm": "Brazo Derecho", "RightArm": "Brazo Derecho",
"Ritual": "Ritual",
"Riverside": "Rivera del Río", "Riverside": "Rivera del Río",
"Rmed": "Media", "Rmed": "Media",
"Road to Customs": "Carretera a Customs", "Road to Customs": "Carretera a Customs",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Journal du chef cuisinier", "64f69b4267e11a7c6206e010 Name": "Journal du chef cuisinier",
"64f69b4267e11a7c6206e010 ShortName": "Journal", "64f69b4267e11a7c6206e010 ShortName": "Journal",
"64f69b4267e11a7c6206e010 Description": "Un journal contenant des informations de valeur appartenant à un chef du restaurant Beluga.", "64f69b4267e11a7c6206e010 Description": "Un journal contenant des informations de valeur appartenant à un chef du restaurant Beluga.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Véhicule vers la base militaire", " V-ex_light": "Véhicule vers la base militaire",
" Voip/DisabledForOffline": "Le VOIP est indisponible en mode hors-ligne", " Voip/DisabledForOffline": "Le VOIP est indisponible en mode hors-ligne",
" kg": "kg", " kg": "kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "Performance", "EDLSSMode/Performance": "Performance",
"EDLSSMode/Quality": "Qualité", "EDLSSMode/Quality": "Qualité",
"EDLSSMode/UltraPerformance": "Ultra performance", "EDLSSMode/UltraPerformance": "Ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "PORTÉE PRATIQUE", "EFFECTIVE DISTANCE": "PORTÉE PRATIQUE",
"EFSR2Mode/Balanced": "Équilibré", "EFSR2Mode/Balanced": "Équilibré",
"EFSR2Mode/Off": "Désactivé", "EFSR2Mode/Off": "Désactivé",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Taille de la mémoire tampon du Mip streaming", "MipStreamingBufferSize:": "Taille de la mémoire tampon du Mip streaming",
"Misc": "Divers", "Misc": "Divers",
"MiscDescription": "Compétence en manipulation des armes diverses", "MiscDescription": "Compétence en manipulation des armes diverses",
"MisfireEffect": "Primal fear",
"Missed in Action": "Disparu au combat", "Missed in Action": "Disparu au combat",
"Mod": "Accessoire d'arme", "Mod": "Accessoire d'arme",
"Monitor parameters": "Paramètres de l'écran", "Monitor parameters": "Paramètres de l'écran",
@ -11653,6 +11666,7 @@
"PVE settings": "Paramètres JcE", "PVE settings": "Paramètres JcE",
"Pain": "Douleur", "Pain": "Douleur",
"Painkiller": "Sous antidouleurs", "Painkiller": "Sous antidouleurs",
"PanicEffect": "Chilling horror",
"Paramedic": "Médecin", "Paramedic": "Médecin",
"Party is ready. Starting the game...": "Groupe Prêt. Lancement de la partie...", "Party is ready. Starting the game...": "Groupe Prêt. Lancement de la partie...",
"Penalties": "Pénalités en cas d'échec", "Penalties": "Pénalités en cas d'échec",
@ -11979,6 +11993,7 @@
"Right Hand": "MAIN DROITE", "Right Hand": "MAIN DROITE",
"Right Leg": "JAMBE DROITE", "Right Leg": "JAMBE DROITE",
"RightArm": "Bras Droit", "RightArm": "Bras Droit",
"Ritual": "Ritual",
"Riverside": "Bord rivière", "Riverside": "Bord rivière",
"Rmed": "Moyenne", "Rmed": "Moyenne",
"Road to Customs": "Route vers les douanes", "Road to Customs": "Route vers les douanes",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Tagebuch des Kochs", "64f69b4267e11a7c6206e010 Name": "Tagebuch des Kochs",
"64f69b4267e11a7c6206e010 ShortName": "Tagebuch", "64f69b4267e11a7c6206e010 ShortName": "Tagebuch",
"64f69b4267e11a7c6206e010 Description": "Tagebuch des Chefkochs vom Restaurant Beluga. Enthält wichtige Daten.", "64f69b4267e11a7c6206e010 Description": "Tagebuch des Chefkochs vom Restaurant Beluga. Enthält wichtige Daten.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Sturmhaube des rachsüchtigen Zryachiy",
"6530e8587cbfc1e309011e37 ShortName": "Rache SH",
"6530e8587cbfc1e309011e37 Description": "Eine furchteinflößende, rote Sturmhaube, getragen vom rachsüchtigen Zyrachiy.",
"6531119b9afebff7ff0a1769 Name": "Sturmhaube des rachsüchtigen Zryachiy",
"6531119b9afebff7ff0a1769 ShortName": "Rache SH",
"6531119b9afebff7ff0a1769 Description": "Eine furchteinflößende, rote Sturmhaube, getragen vom rachsüchtigen Zyrachiy.",
" V-ex_light": "Straße zur Militärbasis V-Ex", " V-ex_light": "Straße zur Militärbasis V-Ex",
" Voip/DisabledForOffline": "VoIP ist im Offline-Modus nicht verfügbar", " Voip/DisabledForOffline": "VoIP ist im Offline-Modus nicht verfügbar",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "performance", "EDLSSMode/Performance": "performance",
"EDLSSMode/Quality": "qualität", "EDLSSMode/Quality": "qualität",
"EDLSSMode/UltraPerformance": "ultra performance", "EDLSSMode/UltraPerformance": "ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "EFFEKTIVE DISTANZ", "EFFECTIVE DISTANCE": "EFFEKTIVE DISTANZ",
"EFSR2Mode/Balanced": "ausgeglichen", "EFSR2Mode/Balanced": "ausgeglichen",
"EFSR2Mode/Off": "aus", "EFSR2Mode/Off": "aus",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip Streaming Puffergröße", "MipStreamingBufferSize:": "Mip Streaming Puffergröße",
"Misc": "Sonstiges", "Misc": "Sonstiges",
"MiscDescription": "Fähigkeit „Waffenhandhabung (sonstige)“.", "MiscDescription": "Fähigkeit „Waffenhandhabung (sonstige)“.",
"MisfireEffect": "Primal fear",
"Missed in Action": "Im Einsatz vermisst", "Missed in Action": "Im Einsatz vermisst",
"Mod": "Mod", "Mod": "Mod",
"Monitor parameters": "Monitoreinstellungen", "Monitor parameters": "Monitoreinstellungen",
@ -11653,6 +11666,7 @@
"PVE settings": "PvE-Einstellungen", "PVE settings": "PvE-Einstellungen",
"Pain": "Schmerzen", "Pain": "Schmerzen",
"Painkiller": "Auf Schmerzmittel", "Painkiller": "Auf Schmerzmittel",
"PanicEffect": "Chilling horror",
"Paramedic": "Sanitäter", "Paramedic": "Sanitäter",
"Party is ready. Starting the game...": "Die Gruppe ist bereit. Das Spiel wird gestartet...", "Party is ready. Starting the game...": "Die Gruppe ist bereit. Das Spiel wird gestartet...",
"Penalties": "Abzug für Fehlschläge", "Penalties": "Abzug für Fehlschläge",
@ -11979,6 +11993,7 @@
"Right Hand": "RECHTE HAND", "Right Hand": "RECHTE HAND",
"Right Leg": "RECHTES BEIN", "Right Leg": "RECHTES BEIN",
"RightArm": "Rechter Arm", "RightArm": "Rechter Arm",
"Ritual": "Ritual",
"Riverside": "Flussufer", "Riverside": "Flussufer",
"Rmed": "Mittel", "Rmed": "Mittel",
"Road to Customs": "Straße zum Zollgelände", "Road to Customs": "Straße zum Zollgelände",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Road to Military Base V-Ex", " V-ex_light": "Road to Military Base V-Ex",
" Voip/DisabledForOffline": "VOIP is unavailable in the offline mode", " Voip/DisabledForOffline": "VOIP is unavailable in the offline mode",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "performance", "EDLSSMode/Performance": "performance",
"EDLSSMode/Quality": "quality", "EDLSSMode/Quality": "quality",
"EDLSSMode/UltraPerformance": "ultra performance", "EDLSSMode/UltraPerformance": "ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "HATÉKONY TÁVOLSÁG", "EFFECTIVE DISTANCE": "HATÉKONY TÁVOLSÁG",
"EFSR2Mode/Balanced": "balanced", "EFSR2Mode/Balanced": "balanced",
"EFSR2Mode/Off": "off", "EFSR2Mode/Off": "off",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip Streaming buffer size", "MipStreamingBufferSize:": "Mip Streaming buffer size",
"Misc": "Egyéb", "Misc": "Egyéb",
"MiscDescription": "Egyéb fegyverek kezelési képességek", "MiscDescription": "Egyéb fegyverek kezelési képességek",
"MisfireEffect": "Primal fear",
"Missed in Action": "Bevetésen közben eltűnt", "Missed in Action": "Bevetésen közben eltűnt",
"Mod": "Kiegészítő", "Mod": "Kiegészítő",
"Monitor parameters": "Megjelenítő paraméterei", "Monitor parameters": "Megjelenítő paraméterei",
@ -11653,6 +11666,7 @@
"PVE settings": "PVE settings", "PVE settings": "PVE settings",
"Pain": "Fájdalom", "Pain": "Fájdalom",
"Painkiller": "Fájdalomcsillapítókon", "Painkiller": "Fájdalomcsillapítókon",
"PanicEffect": "Chilling horror",
"Paramedic": "Mentős", "Paramedic": "Mentős",
"Party is ready. Starting the game...": "The party is ready. Starting the game...", "Party is ready. Starting the game...": "The party is ready. Starting the game...",
"Penalties": "Büntetések kudarc esetén", "Penalties": "Büntetések kudarc esetén",
@ -11979,6 +11993,7 @@
"Right Hand": "JOBB KÉZ", "Right Hand": "JOBB KÉZ",
"Right Leg": "JOBB LÁB", "Right Leg": "JOBB LÁB",
"RightArm": "Jobb kar", "RightArm": "Jobb kar",
"Ritual": "Ritual",
"Riverside": "Riverside", "Riverside": "Riverside",
"Rmed": "Medium", "Rmed": "Medium",
"Road to Customs": "Út a Customs-ba", "Road to Customs": "Út a Customs-ba",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Diario dello chef", "64f69b4267e11a7c6206e010 Name": "Diario dello chef",
"64f69b4267e11a7c6206e010 ShortName": "Diario", "64f69b4267e11a7c6206e010 ShortName": "Diario",
"64f69b4267e11a7c6206e010 Description": "Un diario contenente dati preziosi di uno chef del ristorante Beluga.", "64f69b4267e11a7c6206e010 Description": "Un diario contenente dati preziosi di uno chef del ristorante Beluga.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Passamontagna del vendicativo Zryachiy",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "Una maschera rossa intimidatoria, indossata dal vendicativo Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Passamontagna del vendicativo Zryachiy (piegato)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "Una maschera rossa intimidatoria, indossata dal vendicativo Zryachiy. Ripiegata per essere indossata come cappello.",
" V-ex_light": "Strada per la Base Militare V-Ex", " V-ex_light": "Strada per la Base Militare V-Ex",
" Voip/DisabledForOffline": "VoIP non è disponibile in modalità offline", " Voip/DisabledForOffline": "VoIP non è disponibile in modalità offline",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "prestazioni", "EDLSSMode/Performance": "prestazioni",
"EDLSSMode/Quality": "qualità", "EDLSSMode/Quality": "qualità",
"EDLSSMode/UltraPerformance": "prestazioni ultra", "EDLSSMode/UltraPerformance": "prestazioni ultra",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "DISTANZA EFFETTIVA", "EFFECTIVE DISTANCE": "DISTANZA EFFETTIVA",
"EFSR2Mode/Balanced": "bilanciato", "EFSR2Mode/Balanced": "bilanciato",
"EFSR2Mode/Off": "off", "EFSR2Mode/Off": "off",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Dimensione del buffer Mip Streaming", "MipStreamingBufferSize:": "Dimensione del buffer Mip Streaming",
"Misc": "Vari", "Misc": "Vari",
"MiscDescription": "Abilità di gestione di armi varie", "MiscDescription": "Abilità di gestione di armi varie",
"MisfireEffect": "Primal fear",
"Missed in Action": "Disperso in azione", "Missed in Action": "Disperso in azione",
"Mod": "Modifica", "Mod": "Modifica",
"Monitor parameters": "Parametri del monitor", "Monitor parameters": "Parametri del monitor",
@ -11653,6 +11666,7 @@
"PVE settings": "Impostazioni PVE", "PVE settings": "Impostazioni PVE",
"Pain": "Dolore", "Pain": "Dolore",
"Painkiller": "Sotto antidolorifici", "Painkiller": "Sotto antidolorifici",
"PanicEffect": "Chilling horror",
"Paramedic": "Paramedico", "Paramedic": "Paramedico",
"Party is ready. Starting the game...": "Il gruppo è pronto. Inizio della partita...", "Party is ready. Starting the game...": "Il gruppo è pronto. Inizio della partita...",
"Penalties": "Penalità per il fallimento", "Penalties": "Penalità per il fallimento",
@ -11979,6 +11993,7 @@
"Right Hand": "MANO DESTRA", "Right Hand": "MANO DESTRA",
"Right Leg": "GAMBA DESTRA", "Right Leg": "GAMBA DESTRA",
"RightArm": "Braccio Destro", "RightArm": "Braccio Destro",
"Ritual": "Ritual",
"Riverside": "Sponda del Fiume", "Riverside": "Sponda del Fiume",
"Rmed": "Medio", "Rmed": "Medio",
"Road to Customs": "Strada per Customs", "Road to Customs": "Strada per Customs",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Road to Military Base V-Ex", " V-ex_light": "Road to Military Base V-Ex",
" Voip/DisabledForOffline": "オフラインモードではVOIPは無効です", " Voip/DisabledForOffline": "オフラインモードではVOIPは無効です",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "performance", "EDLSSMode/Performance": "performance",
"EDLSSMode/Quality": "quality", "EDLSSMode/Quality": "quality",
"EDLSSMode/UltraPerformance": "ultra performance", "EDLSSMode/UltraPerformance": "ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "有効射程", "EFFECTIVE DISTANCE": "有効射程",
"EFSR2Mode/Balanced": "balanced", "EFSR2Mode/Balanced": "balanced",
"EFSR2Mode/Off": "オフ", "EFSR2Mode/Off": "オフ",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip ストリーミング バッファサイズ", "MipStreamingBufferSize:": "Mip ストリーミング バッファサイズ",
"Misc": "その他", "Misc": "その他",
"MiscDescription": "その他の武器を扱うスキル", "MiscDescription": "その他の武器を扱うスキル",
"MisfireEffect": "Primal fear",
"Missed in Action": "Missed in Action", "Missed in Action": "Missed in Action",
"Mod": "武器パーツ", "Mod": "武器パーツ",
"Monitor parameters": "モニターパラメーター", "Monitor parameters": "モニターパラメーター",
@ -11653,6 +11666,7 @@
"PVE settings": "PvE 設定", "PVE settings": "PvE 設定",
"Pain": "痛み", "Pain": "痛み",
"Painkiller": "鎮痛効果", "Painkiller": "鎮痛効果",
"PanicEffect": "Chilling horror",
"Paramedic": "パラメディック", "Paramedic": "パラメディック",
"Party is ready. Starting the game...": "グループの準備が完了。ゲーム開始中…", "Party is ready. Starting the game...": "グループの準備が完了。ゲーム開始中…",
"Penalties": "失敗時のペナルティ", "Penalties": "失敗時のペナルティ",
@ -11979,6 +11993,7 @@
"Right Hand": "右手", "Right Hand": "右手",
"Right Leg": "右脚", "Right Leg": "右脚",
"RightArm": "右腕", "RightArm": "右腕",
"Ritual": "Ritual",
"Riverside": "Riverside", "Riverside": "Riverside",
"Rmed": "普通", "Rmed": "普通",
"Road to Customs": "Road to Customs", "Road to Customs": "Road to Customs",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Road to Military Base V-Ex", " V-ex_light": "Road to Military Base V-Ex",
" Voip/DisabledForOffline": "오프라인 모드에서는 VOIP 사용이 불가능합니다", " Voip/DisabledForOffline": "오프라인 모드에서는 VOIP 사용이 불가능합니다",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "성능 우선", "EDLSSMode/Performance": "성능 우선",
"EDLSSMode/Quality": "화질 우선", "EDLSSMode/Quality": "화질 우선",
"EDLSSMode/UltraPerformance": "U\bltra\u00A0성능 우선", "EDLSSMode/UltraPerformance": "U\bltra\u00A0성능 우선",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "유효 사거리", "EFFECTIVE DISTANCE": "유효 사거리",
"EFSR2Mode/Balanced": "밸런스", "EFSR2Mode/Balanced": "밸런스",
"EFSR2Mode/Off": "끄기", "EFSR2Mode/Off": "끄기",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip Streaming 버퍼 크기", "MipStreamingBufferSize:": "Mip Streaming 버퍼 크기",
"Misc": "기타", "Misc": "기타",
"MiscDescription": "기타 무기들을 다루는 기술", "MiscDescription": "기타 무기들을 다루는 기술",
"MisfireEffect": "Primal fear",
"Missed in Action": "작전 중 실종", "Missed in Action": "작전 중 실종",
"Mod": "부품", "Mod": "부품",
"Monitor parameters": "모니터 설정값", "Monitor parameters": "모니터 설정값",
@ -11653,6 +11666,7 @@
"PVE settings": "PvE 설정", "PVE settings": "PvE 설정",
"Pain": "고통", "Pain": "고통",
"Painkiller": "진통제 복용 상태", "Painkiller": "진통제 복용 상태",
"PanicEffect": "Chilling horror",
"Paramedic": "위생병", "Paramedic": "위생병",
"Party is ready. Starting the game...": "파티가 준비되었습니다. 게임을 시작합니다...", "Party is ready. Starting the game...": "파티가 준비되었습니다. 게임을 시작합니다...",
"Penalties": "실패 패널티", "Penalties": "실패 패널티",
@ -11979,6 +11993,7 @@
"Right Hand": "오른손", "Right Hand": "오른손",
"Right Leg": "오른다리", "Right Leg": "오른다리",
"RightArm": "오른팔", "RightArm": "오른팔",
"Ritual": "Ritual",
"Riverside": "Riverside", "Riverside": "Riverside",
"Rmed": "보통", "Rmed": "보통",
"Road to Customs": "Road to Customs", "Road to Customs": "Road to Customs",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Notatnik szefa kuchni", "64f69b4267e11a7c6206e010 Name": "Notatnik szefa kuchni",
"64f69b4267e11a7c6206e010 ShortName": "Notatnik", "64f69b4267e11a7c6206e010 ShortName": "Notatnik",
"64f69b4267e11a7c6206e010 Description": "Notatnik zawierający cenne dane należący do szefa kuchni z restauracji Beluga.", "64f69b4267e11a7c6206e010 Description": "Notatnik zawierający cenne dane należący do szefa kuchni z restauracji Beluga.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Droga do bazy wojskowej: wyjazd", " V-ex_light": "Droga do bazy wojskowej: wyjazd",
" Voip/DisabledForOffline": "VOIP jest niedostępny w trybie offline", " Voip/DisabledForOffline": "VOIP jest niedostępny w trybie offline",
" kg": " kg", " kg": " kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "wydajność", "EDLSSMode/Performance": "wydajność",
"EDLSSMode/Quality": "jakość", "EDLSSMode/Quality": "jakość",
"EDLSSMode/UltraPerformance": "ultra wydajność", "EDLSSMode/UltraPerformance": "ultra wydajność",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "ZASIĘG SKUTECZNY", "EFFECTIVE DISTANCE": "ZASIĘG SKUTECZNY",
"EFSR2Mode/Balanced": "zbalansowane", "EFSR2Mode/Balanced": "zbalansowane",
"EFSR2Mode/Off": "wyłączone", "EFSR2Mode/Off": "wyłączone",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Rozmiar buforu mip streaming:", "MipStreamingBufferSize:": "Rozmiar buforu mip streaming:",
"Misc": "Różne", "Misc": "Różne",
"MiscDescription": "Posługiwanie się różną bronią.", "MiscDescription": "Posługiwanie się różną bronią.",
"MisfireEffect": "Primal fear",
"Missed in Action": "Zaginiony w akcji", "Missed in Action": "Zaginiony w akcji",
"Mod": "Akcesoria", "Mod": "Akcesoria",
"Monitor parameters": "PARAMETRY MONITORA", "Monitor parameters": "PARAMETRY MONITORA",
@ -11653,6 +11666,7 @@
"PVE settings": "Ustawienia PvE", "PVE settings": "Ustawienia PvE",
"Pain": "Ból", "Pain": "Ból",
"Painkiller": "Na lekach przeciwbólowych", "Painkiller": "Na lekach przeciwbólowych",
"PanicEffect": "Chilling horror",
"Paramedic": "Ratownik medyczny", "Paramedic": "Ratownik medyczny",
"Party is ready. Starting the game...": "Drużyna jest gotowa. Rozpoczynanie gry…", "Party is ready. Starting the game...": "Drużyna jest gotowa. Rozpoczynanie gry…",
"Penalties": "Kary za porażkę", "Penalties": "Kary za porażkę",
@ -11979,6 +11993,7 @@
"Right Hand": "PRAWA DŁOŃ", "Right Hand": "PRAWA DŁOŃ",
"Right Leg": "PRAWA NOGA", "Right Leg": "PRAWA NOGA",
"RightArm": "Prawa ręka", "RightArm": "Prawa ręka",
"Ritual": "Ritual",
"Riverside": "Nadrzecze", "Riverside": "Nadrzecze",
"Rmed": "Średnia", "Rmed": "Średnia",
"Road to Customs": "Droga do składu celnego", "Road to Customs": "Droga do składu celnego",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Road to Military Base V-Ex", " V-ex_light": "Road to Military Base V-Ex",
" Voip/DisabledForOffline": "VOIP está desativado no modo offline", " Voip/DisabledForOffline": "VOIP está desativado no modo offline",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "performance", "EDLSSMode/Performance": "performance",
"EDLSSMode/Quality": "qualidade", "EDLSSMode/Quality": "qualidade",
"EDLSSMode/UltraPerformance": "ultra performance", "EDLSSMode/UltraPerformance": "ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "DISTÂNCIA EFETIVA", "EFFECTIVE DISTANCE": "DISTÂNCIA EFETIVA",
"EFSR2Mode/Balanced": "balanceado", "EFSR2Mode/Balanced": "balanceado",
"EFSR2Mode/Off": "desligado", "EFSR2Mode/Off": "desligado",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Tamanho do buffer do Mip Streaming", "MipStreamingBufferSize:": "Tamanho do buffer do Mip Streaming",
"Misc": "Diversos", "Misc": "Diversos",
"MiscDescription": "Habilidade de manuseio com Armas variadas", "MiscDescription": "Habilidade de manuseio com Armas variadas",
"MisfireEffect": "Primal fear",
"Missed in Action": "Perdido em Combate", "Missed in Action": "Perdido em Combate",
"Mod": "Mod", "Mod": "Mod",
"Monitor parameters": "Parâmetros do Monitor", "Monitor parameters": "Parâmetros do Monitor",
@ -11653,6 +11666,7 @@
"PVE settings": "Configurações PVE", "PVE settings": "Configurações PVE",
"Pain": "Dor", "Pain": "Dor",
"Painkiller": "Sob efeito de analgésicos", "Painkiller": "Sob efeito de analgésicos",
"PanicEffect": "Chilling horror",
"Paramedic": "Paramédico", "Paramedic": "Paramédico",
"Party is ready. Starting the game...": "O grupo está pronto. Começando a partida...", "Party is ready. Starting the game...": "O grupo está pronto. Começando a partida...",
"Penalties": "Penalidades por falha", "Penalties": "Penalidades por falha",
@ -11979,6 +11993,7 @@
"Right Hand": "MÃO DIREITA", "Right Hand": "MÃO DIREITA",
"Right Leg": "PERNA DIREITA", "Right Leg": "PERNA DIREITA",
"RightArm": "Braço Direito", "RightArm": "Braço Direito",
"Ritual": "Ritual",
"Riverside": "Margens do rio", "Riverside": "Margens do rio",
"Rmed": "Médio", "Rmed": "Médio",
"Road to Customs": "Road to Customs", "Road to Customs": "Road to Customs",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Дневник шеф-повара", "64f69b4267e11a7c6206e010 Name": "Дневник шеф-повара",
"64f69b4267e11a7c6206e010 ShortName": "Дневник", "64f69b4267e11a7c6206e010 ShortName": "Дневник",
"64f69b4267e11a7c6206e010 Description": "Дневник с записями шеф-повара из ресторана \"Белуга\".", "64f69b4267e11a7c6206e010 Description": "Дневник с записями шеф-повара из ресторана \"Белуга\".",
"64f6f4c5911bcdfe8b03b0dc Name": "Турнирный защищенный контейнер",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Турнир",
"64f6f4c5911bcdfe8b03b0dc Description": "Засекреченная разработка компании TerraGroup - Турнирный защищенный контейнер.",
"6530e8587cbfc1e309011e37 Name": "Балаклава мстящего Зрячего",
"6530e8587cbfc1e309011e37 ShortName": "Мстящий",
"6530e8587cbfc1e309011e37 Description": "Красная балаклава, принадлежащая мстящему Зрячему.",
"6531119b9afebff7ff0a1769 Name": "Балаклава мстящего Зрячего (завернутая)",
"6531119b9afebff7ff0a1769 ShortName": "Мстящий",
"6531119b9afebff7ff0a1769 Description": "Красная балаклава с рисунком черепа, принадлежащая Зрячему. Сложена для ношения в виде шапки.",
" V-ex_light": "А-Выход дорога к военной базе", " V-ex_light": "А-Выход дорога к военной базе",
" Voip/DisabledForOffline": "VOIP недоступен в оффлайн режиме", " Voip/DisabledForOffline": "VOIP недоступен в оффлайн режиме",
" kg": " кг", " kg": " кг",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "производительность", "EDLSSMode/Performance": "производительность",
"EDLSSMode/Quality": "качество", "EDLSSMode/Quality": "качество",
"EDLSSMode/UltraPerformance": "макс. производительность", "EDLSSMode/UltraPerformance": "макс. производительность",
"EEventState/SummonFailed": "провален",
"EEventState/SummonStart": "в процессе",
"EEventState/SummonSuccess": "успешен",
"EFFECTIVE DISTANCE": "ЭФФЕКТИВНАЯ ДАЛЬНОСТЬ", "EFFECTIVE DISTANCE": "ЭФФЕКТИВНАЯ ДАЛЬНОСТЬ",
"EFSR2Mode/Balanced": "баланс", "EFSR2Mode/Balanced": "баланс",
"EFSR2Mode/Off": "выкл", "EFSR2Mode/Off": "выкл",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Размер буфера для Mip Streaming", "MipStreamingBufferSize:": "Размер буфера для Mip Streaming",
"Misc": "Разное", "Misc": "Разное",
"MiscDescription": "Навыки обращения с прочими типами оружия", "MiscDescription": "Навыки обращения с прочими типами оружия",
"MisfireEffect": "Животный страх",
"Missed in Action": "Пропал без вести", "Missed in Action": "Пропал без вести",
"Mod": "Моды", "Mod": "Моды",
"Monitor parameters": "Параметры монитора", "Monitor parameters": "Параметры монитора",
@ -11653,6 +11666,7 @@
"PVE settings": "Настройки PVE", "PVE settings": "Настройки PVE",
"Pain": "Боль", "Pain": "Боль",
"Painkiller": "На болеутоляющих", "Painkiller": "На болеутоляющих",
"PanicEffect": "Леденящий душу ужас",
"Paramedic": "Фельдшер", "Paramedic": "Фельдшер",
"Party is ready. Starting the game...": "Группа готова. Начинаем игру...", "Party is ready. Starting the game...": "Группа готова. Начинаем игру...",
"Penalties": "Штрафы за провал", "Penalties": "Штрафы за провал",
@ -11979,6 +11993,7 @@
"Right Hand": "ПРАВАЯ РУКА", "Right Hand": "ПРАВАЯ РУКА",
"Right Leg": "ПРАВАЯ НОГА", "Right Leg": "ПРАВАЯ НОГА",
"RightArm": "ПР.РУК", "RightArm": "ПР.РУК",
"Ritual": "Ритуал",
"Riverside": "Берег", "Riverside": "Берег",
"Rmed": "Средний", "Rmed": "Средний",
"Road to Customs": "Дорога На Таможню", "Road to Customs": "Дорога На Таможню",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Chef's diary", "64f69b4267e11a7c6206e010 Name": "Chef's diary",
"64f69b4267e11a7c6206e010 ShortName": "Diary", "64f69b4267e11a7c6206e010 ShortName": "Diary",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "Vengeful Zryachiy's balaclava",
"6530e8587cbfc1e309011e37 ShortName": "Vengeful",
"6530e8587cbfc1e309011e37 Description": "An intimidating red face mask, worn by vengeful Zryachiy.",
"6531119b9afebff7ff0a1769 Name": "Vengeful Zryachiy's balaclava (folded)",
"6531119b9afebff7ff0a1769 ShortName": "Vengeful",
"6531119b9afebff7ff0a1769 Description": "An intimidating red face mask, worn by Zryachiy. Folded to be worn as a hat.",
" V-ex_light": "Vozidlo na ceste k vojenskej základni", " V-ex_light": "Vozidlo na ceste k vojenskej základni",
" Voip/DisabledForOffline": "VOIP nie je v offline režime dostupné", " Voip/DisabledForOffline": "VOIP nie je v offline režime dostupné",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "performance", "EDLSSMode/Performance": "performance",
"EDLSSMode/Quality": "quality", "EDLSSMode/Quality": "quality",
"EDLSSMode/UltraPerformance": "ultra performance", "EDLSSMode/UltraPerformance": "ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "ÚČINNÁ VZDIALENOSŤ", "EFFECTIVE DISTANCE": "ÚČINNÁ VZDIALENOSŤ",
"EFSR2Mode/Balanced": "balanced", "EFSR2Mode/Balanced": "balanced",
"EFSR2Mode/Off": "off", "EFSR2Mode/Off": "off",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip Streaming buffer size", "MipStreamingBufferSize:": "Mip Streaming buffer size",
"Misc": "Rôzne", "Misc": "Rôzne",
"MiscDescription": "Zručnosť narábania s rôznymi zbraňami", "MiscDescription": "Zručnosť narábania s rôznymi zbraňami",
"MisfireEffect": "Primal fear",
"Missed in Action": "Stratený v akcii", "Missed in Action": "Stratený v akcii",
"Mod": "Mod", "Mod": "Mod",
"Monitor parameters": "Nastavenie monitora", "Monitor parameters": "Nastavenie monitora",
@ -11653,6 +11666,7 @@
"PVE settings": "PVE settings", "PVE settings": "PVE settings",
"Pain": "Bolesť", "Pain": "Bolesť",
"Painkiller": "Na analgetikách", "Painkiller": "Na analgetikách",
"PanicEffect": "Chilling horror",
"Paramedic": "Záchranár", "Paramedic": "Záchranár",
"Party is ready. Starting the game...": "The party is ready. Starting the game...", "Party is ready. Starting the game...": "The party is ready. Starting the game...",
"Penalties": "Pokuta za nesplnenie", "Penalties": "Pokuta za nesplnenie",
@ -11979,6 +11993,7 @@
"Right Hand": "PRAVÁ RUKA", "Right Hand": "PRAVÁ RUKA",
"Right Leg": "PRAVÁ NOHA", "Right Leg": "PRAVÁ NOHA",
"RightArm": "Pravá ruka", "RightArm": "Pravá ruka",
"Ritual": "Ritual",
"Riverside": "Breh rieky", "Riverside": "Breh rieky",
"Rmed": "Medium", "Rmed": "Medium",
"Road to Customs": "Cesta ku Customs", "Road to Customs": "Cesta ku Customs",

View File

@ -10067,6 +10067,15 @@
"64f69b4267e11a7c6206e010 Name": "Şefin günlüğü", "64f69b4267e11a7c6206e010 Name": "Şefin günlüğü",
"64f69b4267e11a7c6206e010 ShortName": "Günlük", "64f69b4267e11a7c6206e010 ShortName": "Günlük",
"64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.", "64f69b4267e11a7c6206e010 Description": "A diary containing valuable data belonging to a chef from the Beluga restaurant.",
"64f6f4c5911bcdfe8b03b0dc Name": "Tournament secured container",
"64f6f4c5911bcdfe8b03b0dc ShortName": "Tournament",
"64f6f4c5911bcdfe8b03b0dc Description": "A secret TerraGroup invention - the tournament secured container.",
"6530e8587cbfc1e309011e37 Name": "İntikam dolu Zryachiy'nin maskesi",
"6530e8587cbfc1e309011e37 ShortName": "İntikamcı",
"6530e8587cbfc1e309011e37 Description": "İntikam peşindeki Zryachiy'nin taktığı korkutucu kırmızı yüz maskesi.",
"6531119b9afebff7ff0a1769 Name": "İntikam dolu Zryachiy'nin maskesi (katlanmış)",
"6531119b9afebff7ff0a1769 ShortName": "İntikamcı",
"6531119b9afebff7ff0a1769 Description": "İntikam peşindeki Zryachiy'nin taktığı korkutucu kırmızı yüz maskesi. Şapka olarak kullanılmak üzere katlanmıştır.",
" V-ex_light": "Askeri üs Araç çıkışına giden yol", " V-ex_light": "Askeri üs Araç çıkışına giden yol",
" Voip/DisabledForOffline": "VOIP çevrimdışı modda kullanılamaz", " Voip/DisabledForOffline": "VOIP çevrimdışı modda kullanılamaz",
" kg": "Kg", " kg": "Kg",
@ -10603,6 +10612,9 @@
"EDLSSMode/Performance": "performans", "EDLSSMode/Performance": "performans",
"EDLSSMode/Quality": "kalite", "EDLSSMode/Quality": "kalite",
"EDLSSMode/UltraPerformance": "ultra performance", "EDLSSMode/UltraPerformance": "ultra performance",
"EEventState/SummonFailed": "failed",
"EEventState/SummonStart": "in process",
"EEventState/SummonSuccess": "success",
"EFFECTIVE DISTANCE": "ETKİLİ MESAFE", "EFFECTIVE DISTANCE": "ETKİLİ MESAFE",
"EFSR2Mode/Balanced": "dengeli", "EFSR2Mode/Balanced": "dengeli",
"EFSR2Mode/Off": "kapalı", "EFSR2Mode/Off": "kapalı",
@ -11458,6 +11470,7 @@
"MipStreamingBufferSize:": "Mip Streaming arabellek boyutu", "MipStreamingBufferSize:": "Mip Streaming arabellek boyutu",
"Misc": "Çeşitli", "Misc": "Çeşitli",
"MiscDescription": "Çeşitli silah kullanma becerisi", "MiscDescription": "Çeşitli silah kullanma becerisi",
"MisfireEffect": "Primal fear",
"Missed in Action": "Çatışma Kaybı", "Missed in Action": "Çatışma Kaybı",
"Mod": "Mod", "Mod": "Mod",
"Monitor parameters": "Ekran Modu", "Monitor parameters": "Ekran Modu",
@ -11653,6 +11666,7 @@
"PVE settings": "PVE ayarları", "PVE settings": "PVE ayarları",
"Pain": "Ağrı", "Pain": "Ağrı",
"Painkiller": "Ağrı kesici etkisinde", "Painkiller": "Ağrı kesici etkisinde",
"PanicEffect": "Chilling horror",
"Paramedic": "Sıhhiye çavuşu", "Paramedic": "Sıhhiye çavuşu",
"Party is ready. Starting the game...": "Parti hazır. Oyun başlatılıyor...", "Party is ready. Starting the game...": "Parti hazır. Oyun başlatılıyor...",
"Penalties": "Başarısızlık cezaları", "Penalties": "Başarısızlık cezaları",
@ -11979,6 +11993,7 @@
"Right Hand": "SAĞ EL", "Right Hand": "SAĞ EL",
"Right Leg": "SAĞ BACAK", "Right Leg": "SAĞ BACAK",
"RightArm": "Sağ Kol", "RightArm": "Sağ Kol",
"Ritual": "Ritual",
"Riverside": "Nehir kıyısı", "Riverside": "Nehir kıyısı",
"Rmed": "Orta", "Rmed": "Orta",
"Road to Customs": "Gümrük Yolu", "Road to Customs": "Gümrük Yolu",

View File

@ -275,7 +275,7 @@
"pmcresponse-victim_positive_12": "Good kill, I'll get you next time", "pmcresponse-victim_positive_12": "Good kill, I'll get you next time",
"pmcresponse-victim_positive_13": "You had good angles on me", "pmcresponse-victim_positive_13": "You had good angles on me",
"pmcresponse-victim_positive_14": "I'll get you next time", "pmcresponse-victim_positive_14": "I'll get you next time",
"pmcresponse-victim_positive_15": "You really binted my bingos", "pmcresponse-victim_positive_15": "You really binted my bogos :alien:",
"pmcresponse-victim_positive_16": "You're a stone-cold killer. I didn't stand a chance", "pmcresponse-victim_positive_16": "You're a stone-cold killer. I didn't stand a chance",
"pmcresponse-victim_positive_17": "Alright fair that was a good shot", "pmcresponse-victim_positive_17": "Alright fair that was a good shot",
"pmcresponse-victim_positive_18": "Enjoy my loot", "pmcresponse-victim_positive_18": "Enjoy my loot",

View File

@ -92,6 +92,9 @@
"BossName": "bossKnight", "BossName": "bossKnight",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneScavBase", "BossZone": "ZoneScavBase",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": true, "RandomTimeSpawn": true,
"Supports": [ "Supports": [
{ {
@ -116,7 +119,9 @@
"BossEscortType": "followerGluharScout" "BossEscortType": "followerGluharScout"
} }
], ],
"Time": -1 "Time": -1,
"TriggerId": "",
"TriggerName": ""
}, },
{ {
"BossChance": 35, "BossChance": 35,
@ -127,9 +132,14 @@
"BossName": "bossBully", "BossName": "bossBully",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneDormitory", "BossZone": "ZoneDormitory",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": -1 "Time": -1,
"TriggerId": "",
"TriggerName": ""
}, },
{ {
"BossChance": 15, "BossChance": 15,
@ -140,9 +150,14 @@
"BossName": "sectantPriest", "BossName": "sectantPriest",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneScavBase", "BossZone": "ZoneScavBase",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": -1 "Time": -1,
"TriggerId": "",
"TriggerName": ""
}, },
{ {
"BossChance": 5, "BossChance": 5,
@ -153,9 +168,12 @@
"BossName": "arenaFighterEvent", "BossName": "arenaFighterEvent",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneFactoryCenter,ZoneScavBase", "BossZone": "ZoneFactoryCenter,ZoneScavBase",
"Delay": 0,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": -1 "Time": -1,
"TriggerId": "",
"TriggerName": ""
} }
], ],
"BotAssault": 80, "BotAssault": 80,
@ -8140,7 +8158,8 @@
{ {
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Boiler Tanks", "EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": true,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8155,6 +8174,7 @@
"Chance": 50, "Chance": 50,
"Count": 0, "Count": 0,
"EntryPoints": "Boiler Tanks", "EntryPoints": "Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8168,7 +8188,8 @@
{ {
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Boiler Tanks", "EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": true,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8183,6 +8204,7 @@
"Chance": 50, "Chance": 50,
"Count": 0, "Count": 0,
"EntryPoints": "Customs", "EntryPoints": "Customs",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8196,7 +8218,8 @@
{ {
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Customs", "EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": true,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8210,7 +8233,8 @@
{ {
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Boiler Tanks", "EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": true,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8225,6 +8249,7 @@
"Chance": 50, "Chance": 50,
"Count": 0, "Count": 0,
"EntryPoints": "Customs", "EntryPoints": "Customs",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -8239,6 +8264,7 @@
"Chance": 50, "Chance": 50,
"Count": 5000, "Count": 5000,
"EntryPoints": "Customs,Boiler Tanks", "EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 60, "ExfiltrationTime": 60,
"ExfiltrationType": "SharedTimer", "ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f", "Id": "5449016a4bdc2d6f028b456f",
@ -8253,6 +8279,7 @@
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Customs,Boiler Tanks", "EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
"AccessKeys": [], "AccessKeys": [],
"Area": 0.9, "Area": 0.9,
"AveragePlayTime": 15, "AveragePlayTime": 15,
"AveragePlayerLevel": 15, "AveragePlayerLevel": 1,
"Banners": [ "Banners": [
{ {
"id": "5464e0404bdc2d2a708b4567", "id": "5464e0404bdc2d2a708b4567",
@ -70,7 +70,7 @@
], ],
"BossLocationSpawn": [ "BossLocationSpawn": [
{ {
"BossChance": 23, "BossChance": 30,
"BossDifficult": "normal", "BossDifficult": "normal",
"BossEscortAmount": "0", "BossEscortAmount": "0",
"BossEscortDifficult": "normal", "BossEscortDifficult": "normal",
@ -213,6 +213,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "0246436c-7d69-4036-999d-ebcb956970b5", "Id": "0246436c-7d69-4036-999d-ebcb956970b5",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -243,6 +244,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "02e4bb08-990a-487c-a832-5a04582891d4", "Id": "02e4bb08-990a-487c-a832-5a04582891d4",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -273,6 +275,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "03526917-c391-4233-ab31-89f70621c9d4", "Id": "03526917-c391-4233-ab31-89f70621c9d4",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -302,6 +305,7 @@
"Radius": 35 "Radius": 35
} }
}, },
"CorePointId": 1,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "03a779de-ef2d-43e3-a4f3-fdcfed474f05", "Id": "03a779de-ef2d-43e3-a4f3-fdcfed474f05",
"Infiltration": "", "Infiltration": "",
@ -331,6 +335,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "05e75eb3-eb43-46c6-94d3-59e1e9ba4435", "Id": "05e75eb3-eb43-46c6-94d3-59e1e9ba4435",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -360,6 +365,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "0a92f51c-52b4-4e76-b839-f7ce82f2b36b", "Id": "0a92f51c-52b4-4e76-b839-f7ce82f2b36b",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -390,6 +396,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "0e95dd99-d6b7-4562-9813-74d4da9aaf6f", "Id": "0e95dd99-d6b7-4562-9813-74d4da9aaf6f",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -420,6 +427,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "105e5c93-2399-4054-b31d-ec981a66491f", "Id": "105e5c93-2399-4054-b31d-ec981a66491f",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -449,6 +457,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "120a0777-e825-4de7-a855-c3eaa8eba46b", "Id": "120a0777-e825-4de7-a855-c3eaa8eba46b",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -478,6 +487,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "13883982-2ab8-4dd5-a9b4-45e2c6d8e1cc", "Id": "13883982-2ab8-4dd5-a9b4-45e2c6d8e1cc",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -508,6 +518,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "184cc4d8-9007-4769-9798-8e354e9229ec", "Id": "184cc4d8-9007-4769-9798-8e354e9229ec",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -537,6 +548,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "1a5819f2-ff42-4632-af5e-fe5ea8f886fc", "Id": "1a5819f2-ff42-4632-af5e-fe5ea8f886fc",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -567,6 +579,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "1d42b19c-7a5b-4684-9689-b801a89e041c", "Id": "1d42b19c-7a5b-4684-9689-b801a89e041c",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -596,6 +609,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "1facfcfc-9ee5-4638-83b3-117fce7b3303", "Id": "1facfcfc-9ee5-4638-83b3-117fce7b3303",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -625,6 +639,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "22a7740a-5a91-4bca-af36-668342522b42", "Id": "22a7740a-5a91-4bca-af36-668342522b42",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -654,6 +669,7 @@
"Radius": 41.97 "Radius": 41.97
} }
}, },
"CorePointId": 5,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2355be95-341b-46db-90fd-6a383e286e5c", "Id": "2355be95-341b-46db-90fd-6a383e286e5c",
"Infiltration": "", "Infiltration": "",
@ -684,6 +700,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "27da5013-1a81-42db-a71f-312a557af54a", "Id": "27da5013-1a81-42db-a71f-312a557af54a",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -714,6 +731,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2875ed6d-0a92-4473-b641-0616a69f6388", "Id": "2875ed6d-0a92-4473-b641-0616a69f6388",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -744,6 +762,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2984a7ec-f10b-42a8-b466-554f37f9ea3e", "Id": "2984a7ec-f10b-42a8-b466-554f37f9ea3e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -773,6 +792,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2a1f1b80-72be-444d-9d8d-5f645a3fc019", "Id": "2a1f1b80-72be-444d-9d8d-5f645a3fc019",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -802,6 +822,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2a5aad92-b5f9-40c0-a380-460247300227", "Id": "2a5aad92-b5f9-40c0-a380-460247300227",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -831,6 +852,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 3,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2dcddca6-9bd7-4d57-b57d-4c013342190d", "Id": "2dcddca6-9bd7-4d57-b57d-4c013342190d",
"Infiltration": "", "Infiltration": "",
@ -860,6 +882,7 @@
"Radius": 30 "Radius": 30
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2e1843a1-fd2a-4ccd-8b38-747c1a70f228", "Id": "2e1843a1-fd2a-4ccd-8b38-747c1a70f228",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -889,6 +912,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "2eed18b6-9fbb-40de-979f-985f203f251e", "Id": "2eed18b6-9fbb-40de-979f-985f203f251e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -918,6 +942,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "30edcdf0-73e0-4ab5-a9e7-4d24a9a83aa9", "Id": "30edcdf0-73e0-4ab5-a9e7-4d24a9a83aa9",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -947,6 +972,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "336d3c25-9f38-475f-8eb9-db6393f06b6c", "Id": "336d3c25-9f38-475f-8eb9-db6393f06b6c",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -977,6 +1003,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "35e7edfa-5d6c-4512-b3f0-ebb823e076de", "Id": "35e7edfa-5d6c-4512-b3f0-ebb823e076de",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1006,6 +1033,7 @@
"Radius": 30 "Radius": 30
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "38a8fe02-f871-4b79-91e5-69c2c68d1bbc", "Id": "38a8fe02-f871-4b79-91e5-69c2c68d1bbc",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1035,6 +1063,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "3bcd754a-b299-4d63-9d7f-e4d05c2f13e3", "Id": "3bcd754a-b299-4d63-9d7f-e4d05c2f13e3",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1065,6 +1094,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "3dd5759f-3764-491f-be62-82f2db15a699", "Id": "3dd5759f-3764-491f-be62-82f2db15a699",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1095,6 +1125,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "3eed3347-ac2d-429b-870e-6e6bc076e05e", "Id": "3eed3347-ac2d-429b-870e-6e6bc076e05e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1125,6 +1156,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "3f0277ba-5d1f-4e3d-b763-234a33b904e3", "Id": "3f0277ba-5d1f-4e3d-b763-234a33b904e3",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1155,6 +1187,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "4393a80b-14da-4321-86c4-0d45ab6afa67", "Id": "4393a80b-14da-4321-86c4-0d45ab6afa67",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1184,6 +1217,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "4755c538-4ee5-4125-8cd3-885787da7ad5", "Id": "4755c538-4ee5-4125-8cd3-885787da7ad5",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1214,6 +1248,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "47a23e13-9db9-4cc2-8da0-fcbc52d698d8", "Id": "47a23e13-9db9-4cc2-8da0-fcbc52d698d8",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1243,6 +1278,7 @@
"Radius": 30 "Radius": 30
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "4a4e5ee5-a314-4a78-939d-cf3c05818435", "Id": "4a4e5ee5-a314-4a78-939d-cf3c05818435",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1272,6 +1308,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "4bc2255b-75b0-44a3-91ed-c1b35499cbc5", "Id": "4bc2255b-75b0-44a3-91ed-c1b35499cbc5",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1301,6 +1338,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "503cf951-8e80-4ca0-aa2d-993f71a6a4a6", "Id": "503cf951-8e80-4ca0-aa2d-993f71a6a4a6",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1330,6 +1368,7 @@
"Radius": 30 "Radius": 30
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "50560c89-4136-4cfb-b155-485519110c93", "Id": "50560c89-4136-4cfb-b155-485519110c93",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1359,6 +1398,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "57254982-c470-440d-911a-e8854f42398a", "Id": "57254982-c470-440d-911a-e8854f42398a",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1389,6 +1429,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "58eb6051-b050-4ce0-b608-71759c5e05b2", "Id": "58eb6051-b050-4ce0-b608-71759c5e05b2",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1419,6 +1460,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "595f96c9-dcf7-4b89-947c-6f5538176fe2", "Id": "595f96c9-dcf7-4b89-947c-6f5538176fe2",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1448,6 +1490,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 2,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "5a2aaa7e-06d3-438b-a2ee-2781ed753d2d", "Id": "5a2aaa7e-06d3-438b-a2ee-2781ed753d2d",
"Infiltration": "", "Infiltration": "",
@ -1477,6 +1520,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "5be1a535-4865-433c-b645-33c7ff65bd94", "Id": "5be1a535-4865-433c-b645-33c7ff65bd94",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1507,6 +1551,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "5f9f188b-8489-4c06-ae14-ba4ca2a46028", "Id": "5f9f188b-8489-4c06-ae14-ba4ca2a46028",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1536,6 +1581,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "60b47eab-b2a6-4ba2-b30c-fea14a7169bf", "Id": "60b47eab-b2a6-4ba2-b30c-fea14a7169bf",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1565,6 +1611,7 @@
"Radius": 35 "Radius": 35
} }
}, },
"CorePointId": 1,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "6670b804-5f1a-45f1-a462-585cb8619d09", "Id": "6670b804-5f1a-45f1-a462-585cb8619d09",
"Infiltration": "", "Infiltration": "",
@ -1598,6 +1645,7 @@
} }
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "67fb48f8-0359-458b-876c-2e4963cbd14e", "Id": "67fb48f8-0359-458b-876c-2e4963cbd14e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1627,6 +1675,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "683f2734-6398-4b77-9bab-b87f3be35938", "Id": "683f2734-6398-4b77-9bab-b87f3be35938",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1656,6 +1705,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 3,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "68ac9245-633b-4287-a999-2c3028fa8d45", "Id": "68ac9245-633b-4287-a999-2c3028fa8d45",
"Infiltration": "", "Infiltration": "",
@ -1686,6 +1736,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "68f38db1-e55e-4170-9e79-1f9e34e8cdc5", "Id": "68f38db1-e55e-4170-9e79-1f9e34e8cdc5",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1715,6 +1766,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "6d7bf2bb-6211-4495-8509-58ceadea72e0", "Id": "6d7bf2bb-6211-4495-8509-58ceadea72e0",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1744,6 +1796,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "6d97a439-de10-42c5-99ef-6cf92e243aca", "Id": "6d97a439-de10-42c5-99ef-6cf92e243aca",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1777,6 +1830,7 @@
} }
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "6ecc9492-5fbb-43d8-a0c0-8509fa39eb1d", "Id": "6ecc9492-5fbb-43d8-a0c0-8509fa39eb1d",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1806,6 +1860,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "74059b40-4072-495f-a02c-2ffce404d728", "Id": "74059b40-4072-495f-a02c-2ffce404d728",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1836,6 +1891,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "792180b4-c67c-45f6-a5d4-f3973c7e2c9b", "Id": "792180b4-c67c-45f6-a5d4-f3973c7e2c9b",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1865,6 +1921,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "7ea1b4b8-a496-4bc0-bf61-e5ba4f3aa1fa", "Id": "7ea1b4b8-a496-4bc0-bf61-e5ba4f3aa1fa",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1894,6 +1951,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "80532206-b2e1-4578-b559-99eae931a957", "Id": "80532206-b2e1-4578-b559-99eae931a957",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1923,6 +1981,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "8128ea83-0d4f-4e64-b109-5acc9e477b33", "Id": "8128ea83-0d4f-4e64-b109-5acc9e477b33",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1953,6 +2012,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "824c7aed-9a71-4158-91e4-a153c42bbddc", "Id": "824c7aed-9a71-4158-91e4-a153c42bbddc",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -1982,6 +2042,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "8429bed9-52e2-4731-a425-4912db8529a9", "Id": "8429bed9-52e2-4731-a425-4912db8529a9",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2011,6 +2072,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "867576c4-1152-48ad-80bf-a802d7318379", "Id": "867576c4-1152-48ad-80bf-a802d7318379",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2040,6 +2102,7 @@
"Radius": 41.97 "Radius": 41.97
} }
}, },
"CorePointId": 3,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "86ff84ac-edf7-4efd-9643-4bacc59073e7", "Id": "86ff84ac-edf7-4efd-9643-4bacc59073e7",
"Infiltration": "", "Infiltration": "",
@ -2069,6 +2132,7 @@
"Radius": 30 "Radius": 30
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "8df78011-1568-4e66-99b8-5c4ed736b99a", "Id": "8df78011-1568-4e66-99b8-5c4ed736b99a",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2098,6 +2162,7 @@
"Radius": 41.97 "Radius": 41.97
} }
}, },
"CorePointId": 1,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "90da8fb3-422a-46cd-b540-648cde8ee9f3", "Id": "90da8fb3-422a-46cd-b540-648cde8ee9f3",
"Infiltration": "", "Infiltration": "",
@ -2127,6 +2192,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "91ec8f79-6cc4-422d-966f-4cd6a02d5a87", "Id": "91ec8f79-6cc4-422d-966f-4cd6a02d5a87",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2156,6 +2222,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "92822146-7c98-4570-8bde-8d0d042ae3cf", "Id": "92822146-7c98-4570-8bde-8d0d042ae3cf",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2186,6 +2253,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "9507dd40-370d-4d8f-994e-c8f3b456804e", "Id": "9507dd40-370d-4d8f-994e-c8f3b456804e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2219,6 +2287,7 @@
} }
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "990aa5a0-d549-4479-8af2-a196ddb3bb35", "Id": "990aa5a0-d549-4479-8af2-a196ddb3bb35",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2249,6 +2318,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "99840da7-52c4-4f5f-832e-c705e9d07572", "Id": "99840da7-52c4-4f5f-832e-c705e9d07572",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2279,6 +2349,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "99b05e61-8c54-42ad-bb6c-9bd30f38f1e6", "Id": "99b05e61-8c54-42ad-bb6c-9bd30f38f1e6",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2308,6 +2379,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "9dd99893-91c5-4e64-b808-bbe46852022a", "Id": "9dd99893-91c5-4e64-b808-bbe46852022a",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2338,6 +2410,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "9e274f37-1c37-4c56-a763-f0753921744b", "Id": "9e274f37-1c37-4c56-a763-f0753921744b",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2367,6 +2440,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "9f14e22f-3971-4440-8f48-c597cc7d9166", "Id": "9f14e22f-3971-4440-8f48-c597cc7d9166",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2396,6 +2470,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 2,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "a5465833-c434-44d5-9bba-1ce6d8488884", "Id": "a5465833-c434-44d5-9bba-1ce6d8488884",
"Infiltration": "", "Infiltration": "",
@ -2425,6 +2500,7 @@
"Radius": 35 "Radius": 35
} }
}, },
"CorePointId": 3,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "a5a35da1-0545-4774-b5a0-194f4903a9de", "Id": "a5a35da1-0545-4774-b5a0-194f4903a9de",
"Infiltration": "", "Infiltration": "",
@ -2454,6 +2530,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "a5c47219-1ebc-4254-90cb-934d6f9d4790", "Id": "a5c47219-1ebc-4254-90cb-934d6f9d4790",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2484,6 +2561,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "a7c5ae7b-61a6-4f62-b975-46078fd443c6", "Id": "a7c5ae7b-61a6-4f62-b975-46078fd443c6",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2514,6 +2592,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "acdd7189-0c4b-4be6-9e6e-57dbca0f6212", "Id": "acdd7189-0c4b-4be6-9e6e-57dbca0f6212",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2543,6 +2622,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "ad0cbd99-02ee-4ff1-b799-6b50b8a3fa0f", "Id": "ad0cbd99-02ee-4ff1-b799-6b50b8a3fa0f",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2572,6 +2652,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "adee9078-b5a3-4f9e-b384-e984cbea15fc", "Id": "adee9078-b5a3-4f9e-b384-e984cbea15fc",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2601,6 +2682,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "ae4693d5-a309-4cbc-85db-ce8a59cf7ff4", "Id": "ae4693d5-a309-4cbc-85db-ce8a59cf7ff4",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2631,6 +2713,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "af54940c-1d1c-4281-a44d-cb2cf46e436b", "Id": "af54940c-1d1c-4281-a44d-cb2cf46e436b",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2660,6 +2743,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "afacfed6-7a03-418b-9fca-420590d639c0", "Id": "afacfed6-7a03-418b-9fca-420590d639c0",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2689,6 +2773,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "b776e3ed-a02d-4141-8eba-35d4746547ca", "Id": "b776e3ed-a02d-4141-8eba-35d4746547ca",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2718,6 +2803,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 4,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "bbb167e6-da45-42ff-a113-20f605521b02", "Id": "bbb167e6-da45-42ff-a113-20f605521b02",
"Infiltration": "", "Infiltration": "",
@ -2748,6 +2834,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "bc1a8dad-c186-4238-9340-90ac952050e6", "Id": "bc1a8dad-c186-4238-9340-90ac952050e6",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2777,6 +2864,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "bcae7a9f-8b2f-4a4c-9cb0-589d4a227c70", "Id": "bcae7a9f-8b2f-4a4c-9cb0-589d4a227c70",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2806,6 +2894,7 @@
"Radius": 40 "Radius": 40
} }
}, },
"CorePointId": 5,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "bd7f0d51-e000-4dc8-a58f-4bc9081039e3", "Id": "bd7f0d51-e000-4dc8-a58f-4bc9081039e3",
"Infiltration": "", "Infiltration": "",
@ -2835,6 +2924,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "be7bf7f0-6892-4d55-b1af-85492250ea55", "Id": "be7bf7f0-6892-4d55-b1af-85492250ea55",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2864,6 +2954,7 @@
"Radius": 41.97 "Radius": 41.97
} }
}, },
"CorePointId": 4,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "c151498d-5939-4451-a992-c3998d62061a", "Id": "c151498d-5939-4451-a992-c3998d62061a",
"Infiltration": "", "Infiltration": "",
@ -2893,6 +2984,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "c249a42b-3b54-4680-ac4d-2c923ca4f530", "Id": "c249a42b-3b54-4680-ac4d-2c923ca4f530",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2922,6 +3014,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "c2d01ce0-e0e4-41af-8311-44dc5cf38a93", "Id": "c2d01ce0-e0e4-41af-8311-44dc5cf38a93",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2952,6 +3045,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "c3ba287a-9bea-4c28-81a5-650df99b2798", "Id": "c3ba287a-9bea-4c28-81a5-650df99b2798",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -2981,6 +3075,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "c671337f-e58f-4de6-a387-307d877954a3", "Id": "c671337f-e58f-4de6-a387-307d877954a3",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3010,6 +3105,7 @@
"Radius": 50 "Radius": 50
} }
}, },
"CorePointId": 1,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "c949937b-c669-41ab-a5d6-1f93e58d4af8", "Id": "c949937b-c669-41ab-a5d6-1f93e58d4af8",
"Infiltration": "", "Infiltration": "",
@ -3039,6 +3135,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 2,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "cca16615-941d-4b07-a88f-4064628c1581", "Id": "cca16615-941d-4b07-a88f-4064628c1581",
"Infiltration": "", "Infiltration": "",
@ -3072,6 +3169,7 @@
} }
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d2b48374-53d1-45a7-a3d2-5e1fc58a8499", "Id": "d2b48374-53d1-45a7-a3d2-5e1fc58a8499",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3101,6 +3199,7 @@
"Radius": 21.1 "Radius": 21.1
} }
}, },
"CorePointId": 4,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d2bb26d4-959f-478f-92ad-6adedf2dc512", "Id": "d2bb26d4-959f-478f-92ad-6adedf2dc512",
"Infiltration": "", "Infiltration": "",
@ -3131,6 +3230,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d2bc609f-cfaf-421a-8a02-a535e2b25d35", "Id": "d2bc609f-cfaf-421a-8a02-a535e2b25d35",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3161,6 +3261,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d2f072c1-9cdc-4d5e-9102-cd77d9edf626", "Id": "d2f072c1-9cdc-4d5e-9102-cd77d9edf626",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3194,6 +3295,7 @@
} }
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d6564897-4b3e-4b7e-9b56-34cb3b9a235d", "Id": "d6564897-4b3e-4b7e-9b56-34cb3b9a235d",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3224,6 +3326,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d685da1e-6b1e-45fb-8e31-e3a42a382fed", "Id": "d685da1e-6b1e-45fb-8e31-e3a42a382fed",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3254,6 +3357,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d7e47ba9-1862-4070-95de-9a9b2f0e46ff", "Id": "d7e47ba9-1862-4070-95de-9a9b2f0e46ff",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3284,6 +3388,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "d7fc05a2-a7d9-494a-af5c-e092bb560bb9", "Id": "d7fc05a2-a7d9-494a-af5c-e092bb560bb9",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3314,6 +3419,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "da289682-cef5-4ae6-94bb-a2b80705906e", "Id": "da289682-cef5-4ae6-94bb-a2b80705906e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3343,6 +3449,7 @@
"Radius": 27 "Radius": 27
} }
}, },
"CorePointId": 5,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "de479fb9-789f-499b-ac6b-0530fab5235b", "Id": "de479fb9-789f-499b-ac6b-0530fab5235b",
"Infiltration": "", "Infiltration": "",
@ -3372,6 +3479,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "e0f65b5b-c67b-4e15-a102-f92bbdf95f65", "Id": "e0f65b5b-c67b-4e15-a102-f92bbdf95f65",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3402,6 +3510,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "e33e5a4b-4c9e-46f9-b1df-5e9281746f58", "Id": "e33e5a4b-4c9e-46f9-b1df-5e9281746f58",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3431,6 +3540,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "e5cd7bad-0f60-4cc2-bdd9-8a8943232b01", "Id": "e5cd7bad-0f60-4cc2-bdd9-8a8943232b01",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3460,6 +3570,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "e60d8dce-ee35-4b30-9c3a-afddf4c5445e", "Id": "e60d8dce-ee35-4b30-9c3a-afddf4c5445e",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3489,6 +3600,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "efb39132-1eff-4655-8fb0-d795f8f98eb3", "Id": "efb39132-1eff-4655-8fb0-d795f8f98eb3",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3518,6 +3630,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "f0864450-ffa8-4d7e-aa93-59ea6b218641", "Id": "f0864450-ffa8-4d7e-aa93-59ea6b218641",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3548,6 +3661,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "f248ad45-3889-4308-bd40-091b1f6a0492", "Id": "f248ad45-3889-4308-bd40-091b1f6a0492",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3577,6 +3691,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "f3c6d9ee-ca4e-44ca-abdf-0622a8249f1d", "Id": "f3c6d9ee-ca4e-44ca-abdf-0622a8249f1d",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3606,6 +3721,7 @@
"Radius": 41.97 "Radius": 41.97
} }
}, },
"CorePointId": 1,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "f6276290-95d6-4d35-9b1a-53e1db1c08ec", "Id": "f6276290-95d6-4d35-9b1a-53e1db1c08ec",
"Infiltration": "", "Infiltration": "",
@ -3636,6 +3752,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "f8efba5d-56be-4091-b537-c97e88b031f2", "Id": "f8efba5d-56be-4091-b537-c97e88b031f2",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3666,6 +3783,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "fca84a73-902f-4c3e-b0ce-05f4348d2e12", "Id": "fca84a73-902f-4c3e-b0ce-05f4348d2e12",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3696,6 +3814,7 @@
"Radius": 20 "Radius": 20
} }
}, },
"CorePointId": 0,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "ff7de580-4ba2-4d00-bff0-13cb6717091c", "Id": "ff7de580-4ba2-4d00-bff0-13cb6717091c",
"Infiltration": "Factory", "Infiltration": "Factory",
@ -3725,6 +3844,7 @@
"Radius": 30.1 "Radius": 30.1
} }
}, },
"CorePointId": 5,
"DelayToCanSpawnSec": 4, "DelayToCanSpawnSec": 4,
"Id": "ff9c3127-2acd-48fe-a635-b1ab99d0bfa7", "Id": "ff9c3127-2acd-48fe-a635-b1ab99d0bfa7",
"Infiltration": "", "Infiltration": "",
@ -3803,12 +3923,12 @@
"BotSide": "Savage", "BotSide": "Savage",
"SpawnPoints": "BotZone", "SpawnPoints": "BotZone",
"WildSpawnType": "assault", "WildSpawnType": "assault",
"isPlayers": true, "isPlayers": false,
"number": 0, "number": 0,
"slots_max": 4, "slots_max": 2,
"slots_min": 2, "slots_min": 1,
"time_max": 50, "time_max": 100,
"time_min": 15 "time_min": 40
}, },
{ {
"BotPreset": "normal", "BotPreset": "normal",
@ -3818,12 +3938,12 @@
"isPlayers": false, "isPlayers": false,
"number": 1, "number": 1,
"slots_max": 4, "slots_max": 4,
"slots_min": 2, "slots_min": 1,
"time_max": 5, "time_max": -1,
"time_min": 0 "time_min": -1
}, },
{ {
"BotPreset": "normal", "BotPreset": "hard",
"BotSide": "Savage", "BotSide": "Savage",
"SpawnPoints": "BotZone", "SpawnPoints": "BotZone",
"WildSpawnType": "assault", "WildSpawnType": "assault",
@ -3832,10 +3952,10 @@
"slots_max": 4, "slots_max": 4,
"slots_min": 2, "slots_min": 2,
"time_max": 300, "time_max": 300,
"time_min": 50 "time_min": 210
}, },
{ {
"BotPreset": "hard", "BotPreset": "normal",
"BotSide": "Savage", "BotSide": "Savage",
"SpawnPoints": "BotZone", "SpawnPoints": "BotZone",
"WildSpawnType": "assault", "WildSpawnType": "assault",
@ -3844,10 +3964,10 @@
"slots_max": 4, "slots_max": 4,
"slots_min": 2, "slots_min": 2,
"time_max": 350, "time_max": 350,
"time_min": 160 "time_min": 260
}, },
{ {
"BotPreset": "hard", "BotPreset": "normal",
"BotSide": "Savage", "BotSide": "Savage",
"SpawnPoints": "BotZone", "SpawnPoints": "BotZone",
"WildSpawnType": "assault", "WildSpawnType": "assault",
@ -3877,10 +3997,10 @@
"WildSpawnType": "assault", "WildSpawnType": "assault",
"isPlayers": false, "isPlayers": false,
"number": 6, "number": 6,
"slots_max": 2, "slots_max": 3,
"slots_min": 1, "slots_min": 1,
"time_max": 1500, "time_max": 1500,
"time_min": 1400 "time_min": 1200
}, },
{ {
"BotPreset": "hard", "BotPreset": "hard",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -50,6 +50,9 @@
"BossName": "bossGluhar", "BossName": "bossGluhar",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneRailStrorage", "BossZone": "ZoneRailStrorage",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": [ "Supports": [
{ {
@ -87,6 +90,9 @@
"BossName": "pmcBot", "BossName": "pmcBot",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneRailStrorage", "BossZone": "ZoneRailStrorage",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": 1470, "Time": 1470,
@ -102,6 +108,9 @@
"BossName": "pmcBot", "BossName": "pmcBot",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneRailStrorage", "BossZone": "ZoneRailStrorage",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": -1, "Time": -1,
@ -117,6 +126,9 @@
"BossName": "pmcBot", "BossName": "pmcBot",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneSubCommand", "BossZone": "ZoneSubCommand",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": -1, "Time": -1,
@ -132,6 +144,9 @@
"BossName": "pmcBot", "BossName": "pmcBot",
"BossPlayer": false, "BossPlayer": false,
"BossZone": "ZoneSubCommand", "BossZone": "ZoneSubCommand",
"Delay": 0,
"ForceSpawn": false,
"IgnoreMaxBots": false,
"RandomTimeSpawn": false, "RandomTimeSpawn": false,
"Supports": null, "Supports": null,
"Time": 3, "Time": 3,
@ -430,6 +445,36 @@
"Pmc" "Pmc"
] ]
}, },
{
"BotZoneName": "ZoneSubCommand",
"Categories": [
"Bot",
"Boss"
],
"ColliderParams": {
"_parent": "SpawnSphereParams",
"_props": {
"Center": {
"x": 0,
"y": 0,
"z": 0
},
"Radius": 15
}
},
"DelayToCanSpawnSec": 4,
"Id": "08f2256d-4fd7-4ece-bf91-6928a0410f95",
"Infiltration": "",
"Position": {
"x": -94.91,
"y": -14.75,
"z": 3.42
},
"Rotation": 96.64535,
"Sides": [
"Savage"
]
},
{ {
"BotZoneName": "", "BotZoneName": "",
"Categories": [ "Categories": [
@ -724,6 +769,35 @@
"Pmc" "Pmc"
] ]
}, },
{
"BotZoneName": "ZoneBarrack",
"Categories": [
"Bot"
],
"ColliderParams": {
"_parent": "SpawnSphereParams",
"_props": {
"Center": {
"x": 0,
"y": 0,
"z": 0
},
"Radius": 100
}
},
"DelayToCanSpawnSec": 4,
"Id": "162cd326-c355-446a-bf62-e2a76e76d743",
"Infiltration": "",
"Position": {
"x": -140.161,
"y": -6.963005,
"z": -35.536
},
"Rotation": 130.028351,
"Sides": [
"Savage"
]
},
{ {
"BotZoneName": "", "BotZoneName": "",
"Categories": [ "Categories": [
@ -1926,6 +2000,35 @@
"All" "All"
] ]
}, },
{
"BotZoneName": "ZoneBarrack",
"Categories": [
"Bot"
],
"ColliderParams": {
"_parent": "SpawnSphereParams",
"_props": {
"Center": {
"x": 0,
"y": 0,
"z": 0
},
"Radius": 150
}
},
"DelayToCanSpawnSec": 4,
"Id": "4b04a014-b605-46c4-905e-c5f31f652b77",
"Infiltration": "",
"Position": {
"x": -266.77,
"y": -6.24500275,
"z": 23.06
},
"Rotation": 84.70626,
"Sides": [
"Savage"
]
},
{ {
"BotZoneName": "ZonePTOR1", "BotZoneName": "ZonePTOR1",
"Categories": [ "Categories": [
@ -5938,6 +6041,7 @@
"Chance": 100, "Chance": 100,
"Count": 420, "Count": 420,
"EntryPoints": "Common", "EntryPoints": "Common",
"EventAvailable": true,
"ExfiltrationTime": 5, "ExfiltrationTime": 5,
"ExfiltrationType": "SharedTimer", "ExfiltrationType": "SharedTimer",
"Id": "0", "Id": "0",
@ -5953,6 +6057,7 @@
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Common", "EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "Alpinist", "Id": "Alpinist",
@ -5968,6 +6073,7 @@
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Common", "EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "SharedTimer", "ExfiltrationType": "SharedTimer",
"Id": "", "Id": "",
@ -5983,6 +6089,7 @@
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Common", "EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 18, "ExfiltrationTime": 18,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -5998,6 +6105,7 @@
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Common", "EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 10, "ExfiltrationTime": 10,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",
@ -6013,6 +6121,7 @@
"Chance": 100, "Chance": 100,
"Count": 0, "Count": 0,
"EntryPoints": "Common", "EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 8, "ExfiltrationTime": 8,
"ExfiltrationType": "Individual", "ExfiltrationType": "Individual",
"Id": "", "Id": "",

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

View File

@ -21,6 +21,7 @@ import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { BotGenerationCacheService } from "@spt-aki/services/BotGenerationCacheService"; import { BotGenerationCacheService } from "@spt-aki/services/BotGenerationCacheService";
import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { MatchBotDetailsCacheService } from "@spt-aki/services/MatchBotDetailsCacheService"; import { MatchBotDetailsCacheService } from "@spt-aki/services/MatchBotDetailsCacheService";
import { SeasonalEventService } from "@spt-aki/services/SeasonalEventService";
import { JsonUtil } from "@spt-aki/utils/JsonUtil"; import { JsonUtil } from "@spt-aki/utils/JsonUtil";
@injectable() @injectable()
@ -28,7 +29,6 @@ export class BotController
{ {
protected botConfig: IBotConfig; protected botConfig: IBotConfig;
protected pmcConfig: IPmcConfig; protected pmcConfig: IPmcConfig;
public static readonly pmcTypeLabel = "PMC";
constructor( constructor(
@inject("WinstonLogger") protected logger: ILogger, @inject("WinstonLogger") protected logger: ILogger,
@ -39,6 +39,7 @@ export class BotController
@inject("BotGenerationCacheService") protected botGenerationCacheService: BotGenerationCacheService, @inject("BotGenerationCacheService") protected botGenerationCacheService: BotGenerationCacheService,
@inject("MatchBotDetailsCacheService") protected matchBotDetailsCacheService: MatchBotDetailsCacheService, @inject("MatchBotDetailsCacheService") protected matchBotDetailsCacheService: MatchBotDetailsCacheService,
@inject("LocalisationService") protected localisationService: LocalisationService, @inject("LocalisationService") protected localisationService: LocalisationService,
@inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService,
@inject("ProfileHelper") protected profileHelper: ProfileHelper, @inject("ProfileHelper") protected profileHelper: ProfileHelper,
@inject("ConfigServer") protected configServer: ConfigServer, @inject("ConfigServer") protected configServer: ConfigServer,
@inject("ApplicationContext") protected applicationContext: ApplicationContext, @inject("ApplicationContext") protected applicationContext: ApplicationContext,
@ -56,9 +57,18 @@ export class BotController
*/ */
public getBotPresetGenerationLimit(type: string): number public getBotPresetGenerationLimit(type: string): number
{ {
return this.botConfig.presetBatch[(type === "assaultGroup") const value = this.botConfig.presetBatch[(type === "assaultGroup")
? "assault" ? "assault"
: type]; : type];
if (!value)
{
this.logger.warning(`No value found for bot type ${type}, defaulting to 30`);
return value;
}
return value;
} }
/** /**
@ -106,8 +116,8 @@ export class BotController
break; break;
default: default:
difficultySettings = this.botDifficultyHelper.getBotDifficultySettings(type, difficulty); difficultySettings = this.botDifficultyHelper.getBotDifficultySettings(type, difficulty);
// Don't add pmcs to gifter enemy list // Don't add pmcs to event enemies (e.g. gifter/peacefullzryachiyevent)
if (type.toLowerCase() !== "gifter") if (!this.botConfig.botsToNotAddPMCsAsEnemiesTo.includes(type.toLowerCase()))
{ {
this.botHelper.addBotToEnemyList(difficultySettings, [this.pmcConfig.bearType, this.pmcConfig.usecType], lowercasedBotType); this.botHelper.addBotToEnemyList(difficultySettings, [this.pmcConfig.bearType, this.pmcConfig.usecType], lowercasedBotType);
} }
@ -142,6 +152,15 @@ export class BotController
isPlayerScav: false isPlayerScav: false
}; };
// Event bots need special actions to occur, set data up for them
const isEventBot = condition.Role.toLowerCase().includes("event");
if (isEventBot)
{
// Add eventRole data + reassign role property to be base type
botGenerationDetails.eventRole = condition.Role;
botGenerationDetails.role = this.seasonalEventService.getBaseRoleForEventBot(botGenerationDetails.eventRole);
}
// Custom map waves can have spt roles in them // Custom map waves can have spt roles in them
// Is bot type sptusec/sptbear, set is pmc true and set side // Is bot type sptusec/sptbear, set is pmc true and set side
if (this.botHelper.botRoleIsPmc(condition.Role)) if (this.botHelper.botRoleIsPmc(condition.Role))
@ -155,9 +174,10 @@ export class BotController
for (let i = 0; i < botGenerationDetails.botCountToGenerate; i ++) for (let i = 0; i < botGenerationDetails.botCountToGenerate; i ++)
{ {
const details = this.jsonUtil.clone(botGenerationDetails); const details = this.jsonUtil.clone(botGenerationDetails);
const botRole = (isEventBot) ? details.eventRole : details.role;
// Roll chance to be pmc if type is allowed to be one // Roll chance to be pmc if type is allowed to be one
const botConvertRateMinMax = this.pmcConfig.convertIntoPmcChance[details.role.toLowerCase()]; const botConvertRateMinMax = this.pmcConfig.convertIntoPmcChance[botRole.toLowerCase()];
if (botConvertRateMinMax) if (botConvertRateMinMax)
{ {
// Should bot become PMC // Should bot become PMC
@ -171,7 +191,7 @@ export class BotController
} }
} }
cacheKey = `${details.role}${details.botDifficulty}`; cacheKey = `${botRole}${details.botDifficulty}`;
// Check for bot in cache, add if not // Check for bot in cache, add if not
if (!this.botGenerationCacheService.cacheHasBotOfRole(cacheKey)) if (!this.botGenerationCacheService.cacheHasBotOfRole(cacheKey))
{ {

View File

@ -273,11 +273,13 @@ export class BotEquipmentModGenerator
modSpawnChances.mod_handguard = 100; modSpawnChances.mod_handguard = 100;
} }
// If stock mod can take a sub stock mod, force spawn chance to be 100% to ensure stock gets added // If stock mod can take a sub stock mod, force spawn chance to be 100% to ensure sub-stock gets added
if (modSlot === "mod_stock" && modToAddTemplate._props.Slots.find(x => x._name.includes("mod_stock"))) // Or if mod_stock is configured to be forced on
if (modSlot === "mod_stock" && (modToAddTemplate._props.Slots.find(x => x._name.includes("mod_stock") || botEquipConfig.forceStock)))
{ {
// Stock mod can take additional stocks, could be a locking device, force 100% chance // Stock mod can take additional stocks, could be a locking device, force 100% chance
modSpawnChances.mod_stock = 100; const stockSlots = ["mod_stock", "mod_stock_000", "mod_stock_akms"];
this.adjustSlotSpawnChances(modSpawnChances, stockSlots, 100);
} }
const modId = this.hashUtil.generate(); const modId = this.hashUtil.generate();

View File

@ -120,6 +120,8 @@ export class BotGenerator
output.push(bot); output.push(bot);
} }
this.logger.debug(`Generated ${botGenerationDetails.botCountToGenerate} ${output[0].Info.Settings.Role} (${botGenerationDetails.eventRole}) bots`);
return output; return output;
} }
@ -188,6 +190,12 @@ export class BotGenerator
// generate new inventory ID // generate new inventory ID
bot = this.generateInventoryID(bot); bot = this.generateInventoryID(bot);
// Set role back to originally requested now its been generated
if (botGenerationDetails.eventRole)
{
bot.Info.Settings.Role = botGenerationDetails.eventRole;
}
return bot; return bot;
} }

View File

@ -333,7 +333,7 @@ export class BotLootGenerator
{ {
this.itemHelper.addCartridgesToAmmoBox(itemsToAdd, itemToAddTemplate); this.itemHelper.addCartridgesToAmmoBox(itemsToAdd, itemToAddTemplate);
} }
// make money a stack // Make money a stack
else if (this.itemHelper.isOfBaseclass(itemToAddTemplate._id, BaseClasses.MONEY)) else if (this.itemHelper.isOfBaseclass(itemToAddTemplate._id, BaseClasses.MONEY))
{ {
this.randomiseMoneyStackSize(isPmc, itemToAddTemplate, itemsToAdd[0]); this.randomiseMoneyStackSize(isPmc, itemToAddTemplate, itemsToAdd[0]);
@ -374,14 +374,13 @@ export class BotLootGenerator
} }
} }
/** /**
* Add generated weapons to inventory as loot * Add generated weapons to inventory as loot
* @param botInventory inventory to add preset to * @param botInventory inventory to add preset to
* @param equipmentSlot slot to place the preset in (backpack) * @param equipmentSlot slot to place the preset in (backpack)
* @param templateInventory bots template, assault.json * @param templateInventory bots template, assault.json
* @param modChances chances for mods to spawn on weapon * @param modChances chances for mods to spawn on weapon
* @param botRole bots role, .e.g. pmcBot * @param botRole bots role .e.g. pmcBot
* @param isPmc are we generating for a pmc * @param isPmc are we generating for a pmc
*/ */
protected addLooseWeaponsToInventorySlot(sessionId: string, botInventory: PmcInventory, equipmentSlot: string, templateInventory: Inventory, modChances: ModsChances, botRole: string, isPmc: boolean, botLevel: number): void protected addLooseWeaponsToInventorySlot(sessionId: string, botInventory: PmcInventory, equipmentSlot: string, templateInventory: Inventory, modChances: ModsChances, botRole: string, isPmc: boolean, botLevel: number): void
@ -498,42 +497,45 @@ export class BotLootGenerator
/** /**
* Randomise the stack size of a money object, uses different values for pmc or scavs * Randomise the stack size of a money object, uses different values for pmc or scavs
* @param isPmc is this a PMC * @param isPmc Is money on a PMC bot
* @param itemTemplate item details * @param itemTemplate item details from db
* @param moneyItem Money stack to randomise * @param moneyItem Money item to randomise
*/ */
protected randomiseMoneyStackSize(isPmc: boolean, itemTemplate: ITemplateItem, moneyItem: Item): void protected randomiseMoneyStackSize(isPmc: boolean, itemTemplate: ITemplateItem, moneyItem: Item): void
{ {
// Only add if no upd or stack objects exist - preserves existing stack count // PMCs have a different stack max size
if (!moneyItem.upd?.StackObjectsCount) const minStackSize = itemTemplate._props.StackMinRandom;
{ const maxStackSize = (isPmc)
// PMCs have a different stack max size ? this.pmcConfig.dynamicLoot.moneyStackLimits[itemTemplate._id]
const minStackSize = itemTemplate._props.StackMinRandom; : itemTemplate._props.StackMaxRandom;
const maxStackSize = (isPmc) const randomSize = this.randomUtil.getInt(minStackSize, maxStackSize);
? this.pmcConfig.dynamicLoot.moneyStackLimits[itemTemplate._id]
: itemTemplate._props.StackMaxRandom;
moneyItem.upd = { "StackObjectsCount": this.randomUtil.getInt(minStackSize, maxStackSize) }; if (!moneyItem.upd)
{
moneyItem.upd = {};
} }
moneyItem.upd.StackObjectsCount = randomSize;
} }
/** /**
* Randomise the size of an ammo stack * Randomise the size of an ammo stack
* @param isPmc is this a PMC * @param isPmc Is ammo on a PMC bot
* @param itemTemplate item details * @param itemTemplate item details from db
* @param ammoItem Ammo stack to randomise * @param ammoItem Ammo item to randomise
*/ */
protected randomiseAmmoStackSize(isPmc: boolean, itemTemplate: ITemplateItem, ammoItem: Item): void protected randomiseAmmoStackSize(isPmc: boolean, itemTemplate: ITemplateItem, ammoItem: Item): void
{ {
// only add if no upd or stack objects exist - preserves existing stack count const randomSize = itemTemplate._props.StackMaxSize === 1
if (!ammoItem.upd?.StackObjectsCount) ? 1
{ : this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
const randomSize = itemTemplate._props.StackMaxSize === 1
? 1
: this.randomUtil.getInt(itemTemplate._props.StackMinRandom, itemTemplate._props.StackMaxRandom);
ammoItem.upd = { StackObjectsCount: randomSize }; if (!ammoItem.upd)
{
ammoItem.upd = {};
} }
ammoItem.upd.StackObjectsCount = randomSize ;
} }
/** /**

View File

@ -244,11 +244,11 @@ export class RepeatableQuestGenerator
{ {
// get all boss spawn information // get all boss spawn information
const bossSpawns = Object.values(this.databaseServer.getTables().locations).filter(x => "base" in x && "Id" in x.base).map( const bossSpawns = Object.values(this.databaseServer.getTables().locations).filter(x => "base" in x && "Id" in x.base).map(
(x) => ({ "Id": x.base.Id, "BossSpawn": x.base.BossLocationSpawn }) (x) => ({ Id: x.base.Id, BossSpawn: x.base.BossLocationSpawn })
); );
// filter for the current boss to spawn on map // filter for the current boss to spawn on map
const thisBossSpawns = bossSpawns.map( const thisBossSpawns = bossSpawns.map(
(x) => ({ "Id": x.Id, "BossSpawn": x.BossSpawn.filter(e => e.BossName === targetKey) }) (x) => ({ Id: x.Id, BossSpawn: x.BossSpawn.filter(e => e.BossName === targetKey) })
).filter(x => x.BossSpawn.length > 0); ).filter(x => x.BossSpawn.length > 0);
// remove blacklisted locations // remove blacklisted locations
const allowedSpawns = thisBossSpawns.filter(x => !eliminationConfig.distLocationBlacklist.includes(x.Id)); const allowedSpawns = thisBossSpawns.filter(x => !eliminationConfig.distLocationBlacklist.includes(x.Id));
@ -315,9 +315,11 @@ export class RepeatableQuestGenerator
const availableForFinishCondition = quest.conditions.AvailableForFinish[0]; const availableForFinishCondition = quest.conditions.AvailableForFinish[0];
availableForFinishCondition._props.counter.id = this.objectId.generate(); availableForFinishCondition._props.counter.id = this.objectId.generate();
availableForFinishCondition._props.counter.conditions = []; availableForFinishCondition._props.counter.conditions = [];
// Only add specific location condition if specific map selected
if (locationKey !== "any") if (locationKey !== "any")
{ {
availableForFinishCondition._props.counter.conditions.push(this.generateEliminationLocation(locationsConfig[locationKey], allowedWeapon, allowedWeaponsCategory)); availableForFinishCondition._props.counter.conditions.push(this.generateEliminationLocation(locationsConfig[locationKey]));
} }
availableForFinishCondition._props.counter.conditions.push(this.generateEliminationCondition(targetKey, bodyPartsToClient, distance, allowedWeapon, allowedWeaponsCategory)); availableForFinishCondition._props.counter.conditions.push(this.generateEliminationCondition(targetKey, bodyPartsToClient, distance, allowedWeapon, allowedWeaponsCategory));
availableForFinishCondition._props.value = desiredKillCount; availableForFinishCondition._props.value = desiredKillCount;
@ -356,9 +358,9 @@ export class RepeatableQuestGenerator
* This is a helper method for GenerateEliminationQuest to create a location condition. * This is a helper method for GenerateEliminationQuest to create a location condition.
* *
* @param {string} location the location on which to fulfill the elimination quest * @param {string} location the location on which to fulfill the elimination quest
* @returns {object} object of "Elimination"-location-subcondition * @returns {IEliminationCondition} object of "Elimination"-location-subcondition
*/ */
protected generateEliminationLocation(location: string[], allowedWeapon: string, allowedWeaponCategory: string): IEliminationCondition protected generateEliminationLocation(location: string[]): IEliminationCondition
{ {
const propsObject: IEliminationCondition = { const propsObject: IEliminationCondition = {
_props: { _props: {
@ -369,29 +371,19 @@ export class RepeatableQuestGenerator
_parent: "Location" _parent: "Location"
}; };
if (allowedWeapon)
{
propsObject._props.weapon = [allowedWeapon];
}
if (allowedWeaponCategory)
{
propsObject._props.weaponCategories = [allowedWeaponCategory];
}
return propsObject; return propsObject;
} }
/** /**
* A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json) * Create kill condition for an elimination quest
* This is a helper method for GenerateEliminationQuest to create a kill condition. * @param target Bot type target of elimination quest e.g. "AnyPmc", "Savage"
* * @param targetedBodyParts Body parts player must hit
* @param {string} target array of target npcs e.g. "AnyPmc", "Savage" * @param distance Distance from which to kill (currently only >= supported
* @param {array} bodyParts array of body parts with which to kill e.g. ["stomach", "thorax"] * @param allowedWeapon What weapon must be used - undefined = any
* @param {number} distance distance from which to kill (currently only >= supported) * @param allowedWeaponCategory What category of weapon must be used - undefined = any
* @returns {object} object of "Elimination"-kill-subcondition * @returns IEliminationCondition object
*/ */
protected generateEliminationCondition(target: string, bodyPart: string[], distance: number, allowedWeapon: string, allowedWeaponCategory: string): IEliminationCondition protected generateEliminationCondition(target: string, targetedBodyParts: string[], distance: number, allowedWeapon: string, allowedWeaponCategory: string): IEliminationCondition
{ {
const killConditionProps: IKillConditionProps = { const killConditionProps: IKillConditionProps = {
target: target, target: target,
@ -406,9 +398,10 @@ export class RepeatableQuestGenerator
killConditionProps.savageRole = [target]; killConditionProps.savageRole = [target];
} }
if (bodyPart) // Has specific body part hit condition
if (targetedBodyParts)
{ {
killConditionProps.bodyPart = bodyPart; killConditionProps.bodyPart = targetedBodyParts;
} }
// Dont allow distance + melee requirement // Dont allow distance + melee requirement
@ -420,11 +413,13 @@ export class RepeatableQuestGenerator
}; };
} }
// Has specific weapon requirement
if (allowedWeapon) if (allowedWeapon)
{ {
killConditionProps.weapon = [allowedWeapon]; killConditionProps.weapon = [allowedWeapon];
} }
// Has specific weapon category requirement
if (allowedWeaponCategory?.length > 0) if (allowedWeaponCategory?.length > 0)
{ {
killConditionProps.weaponCategories = [allowedWeaponCategory]; killConditionProps.weaponCategories = [allowedWeaponCategory];
@ -781,7 +776,7 @@ export class RepeatableQuestGenerator
const rewardSpreadConfig = repeatableConfig.rewardScaling.rewardSpread; const rewardSpreadConfig = repeatableConfig.rewardScaling.rewardSpread;
const reputationConfig = repeatableConfig.rewardScaling.reputation; const reputationConfig = repeatableConfig.rewardScaling.reputation;
if (isNaN(difficulty)) if (Number.isNaN(difficulty))
{ {
difficulty = 1; difficulty = 1;
this.logger.warning(this.localisationService.getText("repeatable-difficulty_was_nan")); this.logger.warning(this.localisationService.getText("repeatable-difficulty_was_nan"));

View File

@ -10,6 +10,7 @@ import { BaseClasses } from "@spt-aki/models/enums/BaseClasses";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { ItemBaseClassService } from "@spt-aki/services/ItemBaseClassService"; import { ItemBaseClassService } from "@spt-aki/services/ItemBaseClassService";
import { ItemFilterService } from "@spt-aki/services/ItemFilterService";
import { LocaleService } from "@spt-aki/services/LocaleService"; import { LocaleService } from "@spt-aki/services/LocaleService";
import { LocalisationService } from "@spt-aki/services/LocalisationService"; import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { HashUtil } from "@spt-aki/utils/HashUtil"; import { HashUtil } from "@spt-aki/utils/HashUtil";
@ -41,6 +42,7 @@ class ItemHelper
@inject("DatabaseServer") protected databaseServer: DatabaseServer, @inject("DatabaseServer") protected databaseServer: DatabaseServer,
@inject("HandbookHelper") protected handbookHelper: HandbookHelper, @inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@inject("ItemBaseClassService") protected itemBaseClassService: ItemBaseClassService, @inject("ItemBaseClassService") protected itemBaseClassService: ItemBaseClassService,
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
@inject("LocalisationService") protected localisationService: LocalisationService, @inject("LocalisationService") protected localisationService: LocalisationService,
@inject("LocaleService") protected localeService: LocaleService @inject("LocaleService") protected localeService: LocaleService
) )
@ -58,11 +60,6 @@ class ItemHelper
invalidBaseTypes = this.defaultInvalidBaseTypes; invalidBaseTypes = this.defaultInvalidBaseTypes;
} }
const blacklist = [
"5cffa483d7ad1a049e54ef1c", // mag_utes_ckib_nsv_belt_127x108_100
"6087e570b998180e9f76dc24", // weapon_hultafors_db5000 Dead Blow Hammer
"5d53f4b7a4b936793d58c780" // scope_ags_npz_pag17_2,7x
];
const itemDetails = this.getItem(tpl); const itemDetails = this.getItem(tpl);
if (!itemDetails[0]) if (!itemDetails[0])
@ -75,7 +72,7 @@ class ItemHelper
&& itemDetails[1]._type === "Item" && itemDetails[1]._type === "Item"
&& invalidBaseTypes.every(x => !this.isOfBaseclass(tpl, x)) && invalidBaseTypes.every(x => !this.isOfBaseclass(tpl, x))
&& this.getItemPrice(tpl) > 0 && this.getItemPrice(tpl) > 0
&& blacklist.every(v => !this.isOfBaseclass(tpl, v)); && !this.itemFilterService.isItemBlacklisted(tpl);
} }
/** /**
@ -115,7 +112,7 @@ class ItemHelper
return handbookPrice; return handbookPrice;
} }
const dynamicPrice = this.getDynamicItemPrice[tpl]; const dynamicPrice = this.getDynamicItemPrice(tpl);
if (dynamicPrice) if (dynamicPrice)
{ {
return dynamicPrice; return dynamicPrice;

View File

@ -8,7 +8,7 @@ import { QuestConditionHelper } from "@spt-aki/helpers/QuestConditionHelper";
import { RagfairServerHelper } from "@spt-aki/helpers/RagfairServerHelper"; import { RagfairServerHelper } from "@spt-aki/helpers/RagfairServerHelper";
import { TraderHelper } from "@spt-aki/helpers/TraderHelper"; import { TraderHelper } from "@spt-aki/helpers/TraderHelper";
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { IQuestStatus } from "@spt-aki/models/eft/common/tables/IBotBase"; import { Common, IQuestStatus } from "@spt-aki/models/eft/common/tables/IBotBase";
import { Item } from "@spt-aki/models/eft/common/tables/IItem"; import { Item } from "@spt-aki/models/eft/common/tables/IItem";
import { AvailableForConditions, AvailableForProps, IQuest, Reward } from "@spt-aki/models/eft/common/tables/IQuest"; import { AvailableForConditions, AvailableForProps, IQuest, Reward } from "@spt-aki/models/eft/common/tables/IQuest";
import { IItemEventRouterResponse } from "@spt-aki/models/eft/itemEvent/IItemEventRouterResponse"; import { IItemEventRouterResponse } from "@spt-aki/models/eft/itemEvent/IItemEventRouterResponse";
@ -135,7 +135,7 @@ export class QuestHelper
* @param skillName Name of skill to increase skill points of * @param skillName Name of skill to increase skill points of
* @param progressAmount Amount of skill points to add to skill * @param progressAmount Amount of skill points to add to skill
*/ */
public rewardSkillPoints(sessionID: string, pmcData: IPmcData, skillName: string, progressAmount: number): void public rewardSkillPoints(sessionID: string, pmcData: IPmcData, skillName: string, progressAmount: number, scaleToSkillLevel: boolean = false): void
{ {
const indexOfSkillToUpdate = pmcData.Skills.Common.findIndex(s => s.Id === skillName); const indexOfSkillToUpdate = pmcData.Skills.Common.findIndex(s => s.Id === skillName);
if (indexOfSkillToUpdate === -1) if (indexOfSkillToUpdate === -1)
@ -153,10 +153,66 @@ export class QuestHelper
return; return;
} }
// Tarkov has special handling of skills under level 9 to scale them to the lower XP requirement
if (scaleToSkillLevel)
{
progressAmount = this.adjustSkillExpForLowLevels(profileSkill, progressAmount);
}
profileSkill.Progress += progressAmount; profileSkill.Progress += progressAmount;
profileSkill.LastAccess = this.timeUtil.getTimestamp(); profileSkill.LastAccess = this.timeUtil.getTimestamp();
} }
/**
* Adjust skill experience for low skill levels, mimicing the official client
* @param profileSkill the skill experience is being added to
* @param progressAmount the amount of experience being added to the skill
* @returns the adjusted skill progress gain
*/
public adjustSkillExpForLowLevels(profileSkill: Common, progressAmount: number): number
{
let currentLevel = Math.floor(profileSkill.Progress / 100);
// Only run this if the current level is under 9
if (currentLevel >= 9)
{
return progressAmount;
}
// This calculates how much progress we have in the skill's starting level
let startingLevelProgress = (profileSkill.Progress % 100) * ((currentLevel + 1) / 10);
// The code below assumes a 1/10th progress skill amount
let remainingProgress = progressAmount / 10;
// We have to do this loop to handle edge cases where the provided XP bumps your level up
// See "CalculateExpOnFirstLevels" in client for original logic
let adjustedSkillProgress = 0;
while (remainingProgress > 0 && currentLevel < 9)
{
// Calculate how much progress to add, limiting it to the current level max progress
const currentLevelRemainingProgress = ((currentLevel + 1) * 10) - startingLevelProgress;
this.logger.debug(`currentLevelRemainingProgress: ${currentLevelRemainingProgress}`);
const progressToAdd = Math.min(remainingProgress, currentLevelRemainingProgress);
const adjustedProgressToAdd = (10 / (currentLevel + 1)) * progressToAdd;
this.logger.debug(`Progress To Add: ${progressToAdd} Adjusted for level: ${adjustedProgressToAdd}`);
// Add the progress amount adjusted by level
adjustedSkillProgress += adjustedProgressToAdd;
remainingProgress -= progressToAdd;
startingLevelProgress = 0;
currentLevel++;
}
// If there's any remaining progress, add it. This handles if you go from level 8 -> 9
if (remainingProgress > 0)
{
adjustedSkillProgress += remainingProgress;
}
return adjustedSkillProgress;
}
/** /**
* Get quest name by quest id * Get quest name by quest id
* @param questId id to get * @param questId id to get

View File

@ -148,6 +148,8 @@ export interface BossLocationSpawn
TriggerId: string TriggerId: string
TriggerName: string TriggerName: string
Delay?: number Delay?: number
ForceSpawn?: boolean
IgnoreMaxBots?: boolean
Supports?: BossSupport[] Supports?: BossSupport[]
sptId?: string sptId?: string
} }

View File

@ -16,4 +16,5 @@ export interface BotGenerationDetails
botDifficulty: string botDifficulty: string
/** Will the generated bot be a player scav */ /** Will the generated bot be a player scav */
isPlayerScav: boolean isPlayerScav: boolean
eventRole?: string
} }

View File

@ -8,6 +8,8 @@ export interface IBotConfig extends IBaseConfig
kind: "aki-bot" kind: "aki-bot"
/** How many variants of each bot should be generated on raid start */ /** How many variants of each bot should be generated on raid start */
presetBatch: PresetBatch presetBatch: PresetBatch
/** Bot roles that should not have PMC types (sptBear/sptUsec) added as enemies to */
botsToNotAddPMCsAsEnemiesTo: string[]
/** What bot types should be classified as bosses */ /** What bot types should be classified as bosses */
bosses: string[] bosses: string[]
/** Control weapon/armor durability min/max values for each bot type */ /** Control weapon/armor durability min/max values for each bot type */
@ -110,6 +112,8 @@ export interface EquipmentFilters
weightingAdjustmentsByBotLevel: WeightingAdjustmentDetails[] weightingAdjustmentsByBotLevel: WeightingAdjustmentDetails[]
/** Same as weightingAdjustments but based on player level instead of bot level */ /** Same as weightingAdjustments but based on player level instead of bot level */
weightingAdjustmentsByPlayerLevel?: WeightingAdjustmentDetails[] weightingAdjustmentsByPlayerLevel?: WeightingAdjustmentDetails[]
/** Should the stock mod be forced to spawn on bot */
forceStock: boolean
} }
export interface ModLimits export interface ModLimits

View File

@ -12,6 +12,7 @@ export interface IRepairConfig extends IBaseConfig
repairKitIntellectGainMultiplier: IIntellectGainValues repairKitIntellectGainMultiplier: IIntellectGainValues
//** How much INT can be given to player per repair action */ //** How much INT can be given to player per repair action */
maxIntellectGainPerRepair: IMaxIntellectGainValues; maxIntellectGainPerRepair: IMaxIntellectGainValues;
weaponTreatment: IWeaponTreatmentRepairValues;
repairKit: RepairKit repairKit: RepairKit
} }
@ -27,6 +28,18 @@ export interface IMaxIntellectGainValues
trader: number trader: number
} }
export interface IWeaponTreatmentRepairValues
{
/** The chance to gain more weapon maintenance skill */
critSuccessChance: number
critSuccessAmount: number
/** The chance to gain less weapon maintenance skill */
critFailureChance: number
critFailureAmount: number
/** The multiplier used for calculating weapon maintenance XP */
pointGainMultiplier: number
}
export interface RepairKit export interface RepairKit
{ {
armor: BonusSettings armor: BonusSettings

View File

@ -1,3 +1,4 @@
import { BossLocationSpawn } from "@spt-aki/models/eft/common/ILocationBase";
import { SeasonalEventType } from "@spt-aki/models/enums/SeasonalEventType"; import { SeasonalEventType } from "@spt-aki/models/enums/SeasonalEventType";
import { IBaseConfig } from "@spt-aki/models/spt/config/IBaseConfig"; import { IBaseConfig } from "@spt-aki/models/spt/config/IBaseConfig";
@ -8,6 +9,8 @@ export interface ISeasonalEventConfig extends IBaseConfig
/** event / botType / equipSlot / itemid */ /** event / botType / equipSlot / itemid */
eventGear: Record<string, Record<string, Record<string, Record<string, number>>>> eventGear: Record<string, Record<string, Record<string, Record<string, number>>>>
events: ISeasonalEvent[] events: ISeasonalEvent[]
eventBotMapping: Record<string, string>;
eventBossSpawns: Record<string, Record<string, BossLocationSpawn[]>>
gifterSettings: GifterSetting[] gifterSettings: GifterSetting[]
} }

View File

@ -147,10 +147,11 @@ export class RepairService
repairDetails: RepairDetails, repairDetails: RepairDetails,
pmcData: IPmcData): void pmcData: IPmcData): void
{ {
if (this.itemHelper.isOfBaseclass(repairDetails.repairedItem._tpl, BaseClasses.WEAPON)) if (repairDetails.repairedByKit && this.itemHelper.isOfBaseclass(repairDetails.repairedItem._tpl, BaseClasses.WEAPON))
{ {
const progress = this.databaseServer.getTables().globals.config.SkillsSettings.WeaponTreatment.SkillPointsPerRepair; const skillPoints = this.getWeaponRepairSkillPoints(repairDetails);
this.questHelper.rewardSkillPoints(sessionId, pmcData, "WeaponTreatment", progress);
this.questHelper.rewardSkillPoints(sessionId, pmcData, "WeaponTreatment", skillPoints, true);
} }
// Handle kit repairs of armor // Handle kit repairs of armor
@ -167,7 +168,7 @@ export class RepairService
const isHeavyArmor = itemDetails[1]._props.ArmorType === "Heavy"; const isHeavyArmor = itemDetails[1]._props.ArmorType === "Heavy";
const vestSkillToLevel = (isHeavyArmor) ? "HeavyVests" : "LightVests"; const vestSkillToLevel = (isHeavyArmor) ? "HeavyVests" : "LightVests";
const pointsToAddToVestSkill = repairDetails.repairAmount * this.repairConfig.armorKitSkillPointGainPerRepairPointMultiplier; const pointsToAddToVestSkill = repairDetails.repairPoints * this.repairConfig.armorKitSkillPointGainPerRepairPointMultiplier;
this.questHelper.rewardSkillPoints(sessionId, pmcData, vestSkillToLevel, pointsToAddToVestSkill); this.questHelper.rewardSkillPoints(sessionId, pmcData, vestSkillToLevel, pointsToAddToVestSkill);
} }
@ -181,7 +182,7 @@ export class RepairService
: this.repairConfig.repairKitIntellectGainMultiplier.armor; : this.repairConfig.repairKitIntellectGainMultiplier.armor;
// limit gain to a max value defined in config.maxIntellectGainPerRepair // limit gain to a max value defined in config.maxIntellectGainPerRepair
intellectGainedFromRepair = Math.min(repairDetails.repairAmount * intRepairMultiplier, this.repairConfig.maxIntellectGainPerRepair.kit); intellectGainedFromRepair = Math.min(repairDetails.repairPoints * intRepairMultiplier, this.repairConfig.maxIntellectGainPerRepair.kit);
} }
else else
{ {
@ -192,6 +193,43 @@ export class RepairService
this.questHelper.rewardSkillPoints(sessionId, pmcData, SkillTypes.INTELLECT, intellectGainedFromRepair); this.questHelper.rewardSkillPoints(sessionId, pmcData, SkillTypes.INTELLECT, intellectGainedFromRepair);
} }
/**
* Return an appromixation of the amount of skill points live would return for the given repairDetails
* @param repairDetails the repair details to calculate skill points for
* @returns the number of skill points to reward the user
*/
protected getWeaponRepairSkillPoints(
repairDetails: RepairDetails): number
{
// This formula and associated configs is calculated based on 30 repairs done on live
// The points always came out 2-aligned, which is why there's a divide/multiply by 2 with ceil calls
const gainMult = this.repairConfig.weaponTreatment.pointGainMultiplier;
// First we get a baseline based on our repair amount, and gain multiplier with a bit of rounding
const step1 = Math.ceil(repairDetails.repairAmount / 2) * gainMult;
// Then we have to get the next even number
const step2 = Math.ceil(step1 / 2) * 2;
// Then multiply by 2 again to hopefully get to what live would give us
let skillPoints = step2 * 2;
// You can both crit fail and succeed at the same time, for fun (Balances out to 0 with default settings)
// Add a random chance to crit-fail
if (Math.random() <= this.repairConfig.weaponTreatment.critFailureChance)
{
skillPoints -= this.repairConfig.weaponTreatment.critFailureAmount;
}
// Add a random chance to crit-succeed
if (Math.random() <= this.repairConfig.weaponTreatment.critSuccessChance)
{
skillPoints += this.repairConfig.weaponTreatment.critSuccessAmount;
}
return skillPoints;
}
/** /**
* *
* @param sessionId Session id * @param sessionId Session id
@ -218,12 +256,13 @@ export class RepairService
const itemsDb = this.databaseServer.getTables().templates.items; const itemsDb = this.databaseServer.getTables().templates.items;
const itemToRepairDetails = itemsDb[itemToRepair._tpl]; const itemToRepairDetails = itemsDb[itemToRepair._tpl];
const repairItemIsArmor = (!!itemToRepairDetails._props.ArmorMaterial); const repairItemIsArmor = (!!itemToRepairDetails._props.ArmorMaterial);
const repairAmount = repairKits[0].count / this.getKitDivisor(itemToRepairDetails, repairItemIsArmor, pmcData);
this.repairHelper.updateItemDurability( this.repairHelper.updateItemDurability(
itemToRepair, itemToRepair,
itemToRepairDetails, itemToRepairDetails,
repairItemIsArmor, repairItemIsArmor,
repairKits[0].count / this.getKitDivisor(itemToRepairDetails, repairItemIsArmor, pmcData), repairAmount,
true, true,
1, 1,
this.repairConfig.applyRandomizeDurabilityLoss); this.repairConfig.applyRandomizeDurabilityLoss);
@ -244,9 +283,10 @@ export class RepairService
} }
return { return {
repairPoints: repairKits[0].count,
repairedItem: itemToRepair, repairedItem: itemToRepair,
repairedItemIsArmor: repairItemIsArmor, repairedItemIsArmor: repairItemIsArmor,
repairAmount: repairKits[0].count, repairAmount: repairAmount,
repairedByKit: true repairedByKit: true
}; };
} }
@ -414,7 +454,7 @@ export class RepairService
const skillLevel = Math.trunc((pmcData?.Skills?.Common?.find(s => s.Id === itemSkillType)?.Progress ?? 0) / 100); const skillLevel = Math.trunc((pmcData?.Skills?.Common?.find(s => s.Id === itemSkillType)?.Progress ?? 0) / 100);
const durabilityToRestorePercent = repairDetails.repairAmount / template._props.MaxDurability; const durabilityToRestorePercent = repairDetails.repairPoints / template._props.MaxDurability;
const durabilityMultiplier = this.getDurabilityMultiplier(receivedDurabilityMaxPercent, durabilityToRestorePercent); const durabilityMultiplier = this.getDurabilityMultiplier(receivedDurabilityMaxPercent, durabilityToRestorePercent);
const doBuff = commonBuffMinChanceValue + commonBuffChanceLevelBonus * skillLevel * durabilityMultiplier; const doBuff = commonBuffMinChanceValue + commonBuffChanceLevelBonus * skillLevel * durabilityMultiplier;
@ -483,6 +523,7 @@ export class RepairService
export class RepairDetails export class RepairDetails
{ {
repairCost?: number; repairCost?: number;
repairPoints?: number;
repairedItem: Item; repairedItem: Item;
repairedItemIsArmor: boolean; repairedItemIsArmor: boolean;
repairAmount: number; repairAmount: number;

View File

@ -3,6 +3,7 @@ import { inject, injectable } from "tsyringe";
import { BotHelper } from "@spt-aki/helpers/BotHelper"; import { BotHelper } from "@spt-aki/helpers/BotHelper";
import { ProfileHelper } from "@spt-aki/helpers/ProfileHelper"; import { ProfileHelper } from "@spt-aki/helpers/ProfileHelper";
import { IConfig } from "@spt-aki/models/eft/common/IGlobals"; import { IConfig } from "@spt-aki/models/eft/common/IGlobals";
import { BossLocationSpawn } from "@spt-aki/models/eft/common/ILocationBase";
import { Inventory } from "@spt-aki/models/eft/common/tables/IBotType"; import { Inventory } from "@spt-aki/models/eft/common/tables/IBotType";
import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes"; import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
import { SeasonalEventType } from "@spt-aki/models/enums/SeasonalEventType"; import { SeasonalEventType } from "@spt-aki/models/enums/SeasonalEventType";
@ -296,6 +297,8 @@ export class SeasonalEventService
globalConfig.EventType.push("HalloweenIllumination"); globalConfig.EventType.push("HalloweenIllumination");
globalConfig.Health.ProfileHealthSettings.DefaultStimulatorBuff = "Buffs_Halloween"; globalConfig.Health.ProfileHealthSettings.DefaultStimulatorBuff = "Buffs_Halloween";
this.addEventGearToBots(eventType); this.addEventGearToBots(eventType);
this.adjustZryachiyMeleeChance();
this.addEventBossesToMaps(eventType);
this.addPumpkinsToScavBackpacks(); this.addPumpkinsToScavBackpacks();
this.adjustTraderIcons(eventType); this.adjustTraderIcons(eventType);
break; break;
@ -318,6 +321,41 @@ export class SeasonalEventService
} }
} }
protected adjustZryachiyMeleeChance(): void
{
this.databaseServer.getTables().bots.types.bosszryachiy.chances.equipment.Scabbard = 100;
}
protected addEventBossesToMaps(eventType: SeasonalEventType): void
{
const botsToAddPerMap = this.seasonalEventConfig.eventBossSpawns[eventType.toLowerCase()];
if (!botsToAddPerMap)
{
this.logger.warning(`Unable to add ${eventType} bosses, eventBossSpawns is missing`);
return;
}
const mapKeys = Object.keys(botsToAddPerMap) ?? [];
for (const mapKey of mapKeys)
{
const bossesToAdd = botsToAddPerMap[mapKey];
if (!bossesToAdd)
{
this.logger.warning(`Unable to add ${eventType} bosses to ${mapKey}`);
continue;
}
for (const boss of bossesToAdd)
{
const mapBosses: BossLocationSpawn[] = this.databaseServer.getTables().locations[mapKey].base.BossLocationSpawn;
if (!mapBosses.find(x => x.BossName === boss.BossName))
{
this.databaseServer.getTables().locations[mapKey].base.BossLocationSpawn.push(...bossesToAdd);
}
}
}
}
/** /**
* Change trader icons to be more event themed (Halloween only so far) * Change trader icons to be more event themed (Halloween only so far)
* @param eventType What event is active * @param eventType What event is active
@ -470,4 +508,14 @@ export class SeasonalEventService
} }
} }
/**
* Get the underlying bot type for an event bot e.g. `peacefullZryachiyEvent` will return `bossZryachiy`
* @param eventBotRole Event bot role type
* @returns Bot role as string
*/
public getBaseRoleForEventBot(eventBotRole: string): string
{
return this.seasonalEventConfig.eventBotMapping[eventBotRole];
}
} }

View File

@ -3,7 +3,13 @@
"compilerOptions": { "compilerOptions": {
"emitDeclarationOnly": true, "emitDeclarationOnly": true,
"declaration": true, "declaration": true,
"declarationDir": "./types" "declarationDir": "./types",
"baseUrl": ".",
"paths": {
"@spt-aki/*": [
"src/*"
]
}
}, },
"exclude": [ "exclude": [
"./types/**/*" "./types/**/*"