Add a new allExtracts property to locations database, and use it for daily quest generation (!266)

- Dumped from the client using an aki-debugging patch
- Contains all extracts according to the map data, with a side indicator
- Cleaned up ILocation vs ILocationData duplication

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/266
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
This commit is contained in:
DrakiaXYZ 2024-03-20 09:43:51 +00:00 committed by chomp
parent 4a27a0904b
commit a29902b980
17 changed files with 2404 additions and 64 deletions

View File

@ -0,0 +1,444 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "EXFIL_ZB013",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 50.0,
"Count": 5000,
"EntryPoints": "Customs,Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Dorms V-Ex",
"PassageRequirement": "TransferItem",
"PlayersCount": 4,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Customs",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "ZB-1011",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Crossroads",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 50.0,
"Count": 0,
"EntryPoints": "Customs",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Old Gas Station",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Trailer Park",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "RUAF Roadblock",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 50.0,
"Count": 0,
"EntryPoints": "Boiler Tanks",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Smuggler's Boat",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 50.0,
"Count": 0,
"EntryPoints": "Customs",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "ZB-1012",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Shack",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Beyond Fuel Tank",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Railroad To Military Base",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Old Road Gate",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Sniper Roadblock",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Railroad To Port",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Crossroads",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Trailer Park Workers Shack",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Railroad To Tarkov",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "RUAF Roadblock_scav",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Warehouse 17",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Factory Shacks",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Warehouse 4",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Old Azs Gate",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Factory Far Corner",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Administration Gate",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Military Checkpoint",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,121 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Cellars",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate 3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate 0",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate m",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate 3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Camera Bunker Door",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Office Window",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,121 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Cellars",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate 3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate 0",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Factory",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate m",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Gate 3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Camera Bunker Door",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Office Window",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,138 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "MallNW",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "SE Exfil",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "MallSE",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "NW Exfil",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 50.0,
"Count": 5000,
"EntryPoints": "MallSE,MallNW",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "PP Exfil",
"PassageRequirement": "TransferItem",
"PlayersCount": 4,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "MallSE,MallNW",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Interchange Cooperation",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "MallSE,MallNW",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Hole Exfill",
"PassageRequirement": "Empty",
"PlayersCount": 0,
"RequiredSlot": "Backpack",
"RequirementTip": "EXFIL_INTERCHANGE_HOLE_TIP",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "MallSE,MallNW",
"EventAvailable": false,
"ExfiltrationTime": 3.0,
"ExfiltrationType": "Manual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Saferoom Exfil",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_INTERCHANGE_SAFEROOM_TIP",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "SE Exfil",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "NW Exfil",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,172 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Manual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Elevator_Cargo",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 5.0,
"ExfiltrationType": "Manual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Elevator_Main",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 15.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Vent",
"PassageRequirement": "Empty",
"PlayersCount": 0,
"RequiredSlot": "Backpack",
"RequirementTip": "EXFIL_tip_backpack",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 5.0,
"ExfiltrationType": "Manual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Elevator_Med",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Under_Storage_Collector",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 60.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Parking_Gate",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 60.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Hangar_Gate",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 0.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Elevator_Cargo",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 0.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Elevator_Main",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 0.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "lab_Elevator_Med",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,206 @@
[
{
"Chance": 50.0,
"Count": 5000,
"EntryPoints": "Tunnel,North",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": " V-Ex_light",
"PassageRequirement": "TransferItem",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Tunnel,North",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "tunnel_shared",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Tunnel,North",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "Alpinist",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Alpinist_light",
"PassageRequirement": "Reference",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Tunnel,North",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Shorl_free",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Tunnel",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Nothern_Checkpoint",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Tunnel,North",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Coastal_South_Road",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 420,
"EntryPoints": "Tunnel,North",
"EventAvailable": false,
"ExfiltrationTime": 5.0,
"ExfiltrationType": "SharedTimer",
"Id": "0",
"MinTime": 1200.0,
"MaxTime": 1500.0,
"Name": "EXFIL_Train",
"PassageRequirement": "Train",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "TIP IS HARDCODED",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Shorl_free_scav",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav_Coastal_South",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav_Underboat_Hideout",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav_Hideout_at_the_grotto",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav_Industrial_zone",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,172 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "EXFIL_Bunker_D2",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 18.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "EXFIL_Bunker",
"PassageRequirement": "WorldEvent",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_BUNKER_POWER",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "Alpinist",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Alpinist",
"PassageRequirement": "Reference",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "EXFIL_ScavCooperation",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 10.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "EXFIL_vent",
"PassageRequirement": "Empty",
"PlayersCount": 0,
"RequiredSlot": "Backpack",
"RequirementTip": "EXFIL_tip_backpack",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 420,
"EntryPoints": "Common",
"EventAvailable": false,
"ExfiltrationTime": 5.0,
"ExfiltrationType": "SharedTimer",
"Id": "0",
"MinTime": 1200.0,
"MaxTime": 1500.0,
"Name": "EXFIL_Train",
"PassageRequirement": "Train",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "TIP IS HARDCODED",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Exit1",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Exit2",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Exit3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Exit4",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,121 @@
[
{
"Chance": 100.0,
"Count": 5000,
"EntryPoints": "west,east",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Sandbox_VExit",
"PassageRequirement": "TransferItem",
"PlayersCount": 4,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "east",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Unity_free_exit",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "west,east",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav_coop_exit",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "west",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Nakatani_stairs_free_exit",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "west,east",
"EventAvailable": false,
"ExfiltrationTime": 6.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Sniper_exit",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Unity_free_exit",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Nakatani_stairs_free_exit",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,240 @@
[
{
"Chance": 100.0,
"Count": 5000,
"EntryPoints": "Riverside,Village",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Shorl_V-Ex",
"PassageRequirement": "TransferItem",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Village",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Road to Customs",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Village",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Road_at_railbridge",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Riverside",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Tunnel",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Riverside,Village",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Lighthouse_pass",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Riverside,Village",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Smugglers_Trail_coop",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 50.0,
"Count": 0,
"EntryPoints": "Riverside,Village",
"EventAvailable": false,
"ExfiltrationTime": 30.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Pier Boat",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Riverside,Village",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "Alpinist",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "RedRebel_alp",
"PassageRequirement": "Reference",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav Road to Customs",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Lighthouse",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Wrecked Road",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "South Fence Passage",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "RWing Gym Entrance",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Adm Basement",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,308 @@
[
{
"Chance": 40.0,
"Count": 0,
"EntryPoints": "E1_2,E6_1,E2_3,E3_4,E4_5,E5_6,E6_1",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E8_yard",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 50.0,
"Count": 5000,
"EntryPoints": "E1_2,E6_1,E2_3,E3_4,E4_5,E5_6,E6_1",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E7_car",
"PassageRequirement": "TransferItem",
"PlayersCount": 4,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E6_1,E1_2",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E1",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E4_5,E3_4",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E4",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E2_3,E1_2",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E2",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E2_3,E3_4",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E4_5,E5_6",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E5",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 0.0,
"Count": 0,
"EntryPoints": "E6_1,E5_6",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E6",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E1_2,E6_1,E2_3,E3_4,E4_5,E5_6,E6_1",
"EventAvailable": false,
"ExfiltrationTime": 6.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E9_sniper",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E1_2,E6_1,E2_3,E3_4,E4_5,E5_6,E6_1",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Exit_E10_coop",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "E6_1,E5_6",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "E7",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e1",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e2",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e3",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e4",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e5",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e7",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "scav_e8",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -0,0 +1,325 @@
[
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "House,Old Station",
"EventAvailable": false,
"ExfiltrationTime": 20.0,
"ExfiltrationType": "SharedTimer",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Factory Gate",
"PassageRequirement": "ScavCooperation",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Cooperate",
"Side": "Coop"
},
{
"Chance": 66.0,
"Count": 0,
"EntryPoints": "House",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "RUAF Gate",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 66.0,
"Count": 0,
"EntryPoints": "House",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "ZB-016",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 66.0,
"Count": 0,
"EntryPoints": "Old Station",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "ZB-014",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "House",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "UN Roadblock",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 5000,
"EntryPoints": "House,Old Station",
"EventAvailable": false,
"ExfiltrationTime": 60.0,
"ExfiltrationType": "SharedTimer",
"Id": "5449016a4bdc2d6f028b456f",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "South V-Ex",
"PassageRequirement": "TransferItem",
"PlayersCount": 4,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "EXFIL_Item",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "Old Station",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Outskirts",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "House",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "un-sec",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Pmc"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Outskirts",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Outskirts Water",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Dead Man's Place",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "The Boat",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Scav House",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "East Gate",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Mountain Stash",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "West Border",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "Old Station",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "UN Roadblock",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
},
{
"Chance": 100.0,
"Count": 0,
"EntryPoints": "",
"EventAvailable": false,
"ExfiltrationTime": 8.0,
"ExfiltrationType": "Individual",
"Id": "",
"MinTime": 0.0,
"MaxTime": 0.0,
"Name": "RUAF Roadblock",
"PassageRequirement": "None",
"PlayersCount": 0,
"RequiredSlot": "FirstPrimaryWeapon",
"RequirementTip": "",
"Side": "Scav"
}
]

View File

@ -7,6 +7,7 @@ import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { ProfileHelper } from "@spt-aki/helpers/ProfileHelper"; import { ProfileHelper } from "@spt-aki/helpers/ProfileHelper";
import { PreAkiModLoader } from "@spt-aki/loaders/PreAkiModLoader"; import { PreAkiModLoader } from "@spt-aki/loaders/PreAkiModLoader";
import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData"; import { IEmptyRequestData } from "@spt-aki/models/eft/common/IEmptyRequestData";
import { ILocation } from "@spt-aki/models/eft/common/ILocation";
import { ILooseLoot } from "@spt-aki/models/eft/common/ILooseLoot"; import { ILooseLoot } from "@spt-aki/models/eft/common/ILooseLoot";
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData"; import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
import { BodyPartHealth } from "@spt-aki/models/eft/common/tables/IBotBase"; import { BodyPartHealth } from "@spt-aki/models/eft/common/tables/IBotBase";
@ -29,7 +30,6 @@ import { ILocationConfig } from "@spt-aki/models/spt/config/ILocationConfig";
import { ILootConfig } from "@spt-aki/models/spt/config/ILootConfig"; import { ILootConfig } from "@spt-aki/models/spt/config/ILootConfig";
import { IPmcConfig } from "@spt-aki/models/spt/config/IPmcConfig"; import { IPmcConfig } from "@spt-aki/models/spt/config/IPmcConfig";
import { IRagfairConfig } from "@spt-aki/models/spt/config/IRagfairConfig"; import { IRagfairConfig } from "@spt-aki/models/spt/config/IRagfairConfig";
import { ILocationData } from "@spt-aki/models/spt/server/ILocations";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer"; import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
@ -243,7 +243,7 @@ export class GameController
for (const locationKey in this.botConfig.maxBotCap) for (const locationKey in this.botConfig.maxBotCap)
{ {
const map: ILocationData = mapsDb[locationKey]; const map: ILocation = mapsDb[locationKey];
if (!map) if (!map)
{ {
continue; continue;
@ -361,7 +361,7 @@ export class GameController
for (const mapId in this.locationConfig.botTypeLimits) for (const mapId in this.locationConfig.botTypeLimits)
{ {
const map: ILocationData = mapsDb[mapId]; const map: ILocation = mapsDb[mapId];
if (!map) if (!map)
{ {
this.logger.warning( this.logger.warning(
@ -626,7 +626,7 @@ export class GameController
} }
// Loop over all of the locations waves and look for waves with identical min and max slots // Loop over all of the locations waves and look for waves with identical min and max slots
const location: ILocationData = this.databaseServer.getTables().locations[locationKey]; const location: ILocation = this.databaseServer.getTables().locations[locationKey];
if (!location.base) if (!location.base)
{ {
this.logger.warning( this.logger.warning(
@ -701,7 +701,7 @@ export class GameController
} }
// Iterate over all maps // Iterate over all maps
const location: ILocationData = this.databaseServer.getTables().locations[locationKey]; const location: ILocation = this.databaseServer.getTables().locations[locationKey];
for (const wave of location.base.waves) for (const wave of location.base.waves)
{ {
// Wave has size that makes it candidate for splitting // Wave has size that makes it candidate for splitting

View File

@ -732,14 +732,8 @@ export class RepeatableQuestGenerator
if (requiresSpecificExtract) if (requiresSpecificExtract)
{ {
// Filter by whitelist, it's also possible that the field "PassageRequirement" does not exist (e.g. Shoreline) // Fetch extracts for the requested side
let mapExits = this.getLocationExitsForSide(locationKey, repeatableConfig.side); const mapExits = this.getLocationExitsForSide(locationKey, repeatableConfig.side);
// Exclude scav coop exits when choosing pmc exit
if (repeatableConfig.side === "Pmc")
{
mapExits = mapExits.filter((exit) => exit.PassageRequirement !== "ScavCooperation");
}
// Only get exits that have a greater than 0% chance to spawn // Only get exits that have a greater than 0% chance to spawn
const exitPool = mapExits.filter((exit) => exit.Chance > 0); const exitPool = mapExits.filter((exit) => exit.Chance > 0);
@ -787,33 +781,15 @@ export class RepeatableQuestGenerator
/** /**
* Filter a maps exits to just those for the desired side * Filter a maps exits to just those for the desired side
* @param locationKey Map id (e.g. factory4_day) * @param locationKey Map id (e.g. factory4_day)
* @param playerSide Scav/Bear * @param playerSide Scav/Pmc
* @returns Array of Exit objects * @returns Array of Exit objects
*/ */
protected getLocationExitsForSide(locationKey: string, playerSide: string): Exit[] protected getLocationExitsForSide(locationKey: string, playerSide: string): Exit[]
{ {
const mapBase = this.databaseServer.getTables().locations[locationKey.toLowerCase()].base as ILocationBase; const mapExtracts = this.databaseServer.getTables().locations[locationKey.toLocaleLowerCase()]
.allExtracts as Exit[];
const infilPointsOfSameSide = new Set<string>(); return mapExtracts.filter((exit) => exit.Side === playerSide);
for (const spawnPoint of mapBase.SpawnPointParams)
{
// Same side, add infil to list
if (spawnPoint.Sides.includes(playerSide) || spawnPoint.Sides.includes("All"))
{
// Has specific start location
if (spawnPoint.Infiltration.length > 0)
{
infilPointsOfSameSide.add(spawnPoint.Infiltration);
}
}
}
// use list of allowed infils to figure out side of exits
const infilPointsArray = Array.from(infilPointsOfSameSide);
return mapBase.exits.filter((exit) =>
exit.EntryPoints.split(",").some((entryPoint) => infilPointsArray.includes(entryPoint))
);
} }
protected generatePickupQuest( protected generatePickupQuest(

View File

@ -1,4 +1,4 @@
import { ILocationBase } from "@spt-aki/models/eft/common/ILocationBase"; import { Exit, ILocationBase } from "@spt-aki/models/eft/common/ILocationBase";
import { ILooseLoot } from "@spt-aki/models/eft/common/ILooseLoot"; import { ILooseLoot } from "@spt-aki/models/eft/common/ILooseLoot";
export interface ILocation export interface ILocation
@ -6,6 +6,7 @@ export interface ILocation
base: ILocationBase; base: ILocationBase;
looseLoot: ILooseLoot; looseLoot: ILooseLoot;
statics: IStaticContainer; statics: IStaticContainer;
allExtracts: Exit[];
} }
export interface IStaticContainer export interface IStaticContainer

View File

@ -240,6 +240,7 @@ export interface Exit
PassageRequirement: string; PassageRequirement: string;
PlayersCount: number; PlayersCount: number;
RequirementTip: string; RequirementTip: string;
Side?: string;
} }
export interface MaxItemCountInLocation export interface MaxItemCountInLocation

View File

@ -1,32 +1,26 @@
import { ILocationBase } from "@spt-aki/models/eft/common/ILocationBase"; /* eslint-disable @typescript-eslint/naming-convention */
import { ILooseLoot } from "@spt-aki/models/eft/common/ILooseLoot"; import { ILocation } from "@spt-aki/models/eft/common/ILocation";
import { ILocationsBase } from "@spt-aki/models/eft/common/tables/ILocationsBase"; import { ILocationsBase } from "@spt-aki/models/eft/common/tables/ILocationsBase";
export interface ILocations export interface ILocations
{ {
bigmap?: ILocationData; bigmap?: ILocation;
develop?: ILocationData; develop?: ILocation;
factory4_day?: ILocationData; factory4_day?: ILocation;
factory4_night?: ILocationData; factory4_night?: ILocation;
hideout?: ILocationData; hideout?: ILocation;
interchange?: ILocationData; interchange?: ILocation;
laboratory?: ILocationData; laboratory?: ILocation;
lighthouse?: ILocationData; lighthouse?: ILocation;
privatearea?: ILocationData; privatearea?: ILocation;
rezervbase?: ILocationData; rezervbase?: ILocation;
shoreline?: ILocationData; shoreline?: ILocation;
suburbs?: ILocationData; suburbs?: ILocation;
tarkovstreets?: ILocationData; tarkovstreets?: ILocation;
terminal?: ILocationData; terminal?: ILocation;
town?: ILocationData; town?: ILocation;
woods?: ILocationData; woods?: ILocation;
sandbox?: ILocationData; sandbox?: ILocation;
/** Holds a mapping of the linkages between locations on the UI */ /** Holds a mapping of the linkages between locations on the UI */
base?: ILocationsBase; base?: ILocationsBase;
} }
export interface ILocationData
{
base: ILocationBase;
looseLoot?: ILooseLoot;
}

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 { ILocation } from "@spt-aki/models/eft/common/ILocation";
import { BossLocationSpawn } from "@spt-aki/models/eft/common/ILocationBase"; 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";
@ -11,7 +12,6 @@ import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { IQuestConfig } from "@spt-aki/models/spt/config/IQuestConfig"; import { IQuestConfig } from "@spt-aki/models/spt/config/IQuestConfig";
import { ISeasonalEvent, ISeasonalEventConfig } from "@spt-aki/models/spt/config/ISeasonalEventConfig"; import { ISeasonalEvent, ISeasonalEventConfig } from "@spt-aki/models/spt/config/ISeasonalEventConfig";
import { IWeatherConfig } from "@spt-aki/models/spt/config/IWeatherConfig"; import { IWeatherConfig } from "@spt-aki/models/spt/config/IWeatherConfig";
import { ILocationData } from "@spt-aki/models/spt/server/ILocations";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger"; import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer"; import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer"; import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
@ -530,7 +530,7 @@ export class SeasonalEventService
continue; continue;
} }
const mapData: ILocationData = maps[mapName]; const mapData: ILocation = maps[mapName];
if (mapData?.base?.BotLocationModifier && "KhorovodChance" in mapData.base.BotLocationModifier) if (mapData?.base?.BotLocationModifier && "KhorovodChance" in mapData.base.BotLocationModifier)
{ {
mapData.base.BotLocationModifier.KhorovodChance = 100; mapData.base.BotLocationModifier.KhorovodChance = 100;
@ -547,7 +547,7 @@ export class SeasonalEventService
const maps = this.databaseServer.getTables().locations; const maps = this.databaseServer.getTables().locations;
for (const gifterMapSettings of gifterSettings) for (const gifterMapSettings of gifterSettings)
{ {
const mapData: ILocationData = maps[gifterMapSettings.map]; const mapData: ILocation = maps[gifterMapSettings.map];
// Dont add gifter to map twice // Dont add gifter to map twice
if (mapData.base.BossLocationSpawn.some((boss) => boss.BossName === "gifter")) if (mapData.base.BossLocationSpawn.some((boss) => boss.BossName === "gifter"))
{ {