Bot wave adjustments
Remove gifter from streets Remove manual waves from streets
This commit is contained in:
parent
5d0ffd93d2
commit
7d734a18f1
@ -41,24 +41,6 @@
|
||||
}
|
||||
],
|
||||
"BossLocationSpawn": [
|
||||
{
|
||||
"BossChance": 25,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcBot",
|
||||
"BossName": "gifter",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "ZoneConcordiaParking,ZoneHotel_2,ZoneFactory,ZoneCinema",
|
||||
"Delay": 0,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": false,
|
||||
"RandomTimeSpawn": false,
|
||||
"Supports": [],
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
},
|
||||
{
|
||||
"BossChance": 11,
|
||||
"BossDifficult": "normal",
|
||||
@ -13579,162 +13561,5 @@
|
||||
"users_spawn_seconds_n": 120,
|
||||
"users_spawn_seconds_n2": 200,
|
||||
"users_summon_seconds": 0,
|
||||
"waves": [
|
||||
{
|
||||
"BotPreset": "normal",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneSW00",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": false,
|
||||
"number": 0,
|
||||
"slots_max": 4,
|
||||
"slots_min": 3,
|
||||
"time_max": 10,
|
||||
"time_min": 1
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneCarShowroom",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": true,
|
||||
"number": 1,
|
||||
"slots_max": 3,
|
||||
"slots_min": 2,
|
||||
"time_max": 40,
|
||||
"time_min": 10
|
||||
},
|
||||
{
|
||||
"BotPreset": "normal",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneStilo",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": true,
|
||||
"number": 2,
|
||||
"slots_max": 4,
|
||||
"slots_min": 3,
|
||||
"time_max": 50,
|
||||
"time_min": 10
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneSnipeStilo",
|
||||
"WildSpawnType": "marksman",
|
||||
"isPlayers": false,
|
||||
"number": 3,
|
||||
"slots_max": 1,
|
||||
"slots_min": 1,
|
||||
"time_max": 120,
|
||||
"time_min": 1
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneCard1",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": true,
|
||||
"number": 4,
|
||||
"slots_max": 4,
|
||||
"slots_min": 2,
|
||||
"time_max": 60,
|
||||
"time_min": 20
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneSnipeCard",
|
||||
"WildSpawnType": "marksman",
|
||||
"isPlayers": false,
|
||||
"number": 5,
|
||||
"slots_max": 1,
|
||||
"slots_min": 1,
|
||||
"time_max": 120,
|
||||
"time_min": 1
|
||||
},
|
||||
{
|
||||
"BotPreset": "normal",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneHotel_1",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": true,
|
||||
"number": 6,
|
||||
"slots_max": 3,
|
||||
"slots_min": 2,
|
||||
"time_max": 90,
|
||||
"time_min": 50
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneSnipeBuilding",
|
||||
"WildSpawnType": "marksman",
|
||||
"isPlayers": false,
|
||||
"number": 7,
|
||||
"slots_max": 1,
|
||||
"slots_min": 1,
|
||||
"time_max": 120,
|
||||
"time_min": 1
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneSnipeSW01",
|
||||
"WildSpawnType": "marksman",
|
||||
"isPlayers": false,
|
||||
"number": 8,
|
||||
"slots_max": 1,
|
||||
"slots_min": 1,
|
||||
"time_max": 120,
|
||||
"time_min": 1
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneSW01",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": true,
|
||||
"number": 9,
|
||||
"slots_max": 4,
|
||||
"slots_min": 1,
|
||||
"time_max": 90,
|
||||
"time_min": 40
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneConstruction",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": false,
|
||||
"number": 10,
|
||||
"slots_max": 4,
|
||||
"slots_min": 1,
|
||||
"time_max": 100,
|
||||
"time_min": 70
|
||||
},
|
||||
{
|
||||
"BotPreset": "normal",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneHotel_2",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": false,
|
||||
"number": 11,
|
||||
"slots_max": 3,
|
||||
"slots_min": 2,
|
||||
"time_max": 110,
|
||||
"time_min": 80
|
||||
},
|
||||
{
|
||||
"BotPreset": "hard",
|
||||
"BotSide": "Savage",
|
||||
"SpawnPoints": "ZoneConcordia_1",
|
||||
"WildSpawnType": "assault",
|
||||
"isPlayers": true,
|
||||
"number": 12,
|
||||
"slots_max": 4,
|
||||
"slots_min": 2,
|
||||
"time_max": 120,
|
||||
"time_min": 110
|
||||
}
|
||||
]
|
||||
"waves": []
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import { AccountTypes } from "@spt-aki/models/enums/AccountTypes";
|
||||
import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
|
||||
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
|
||||
import { Traders } from "@spt-aki/models/enums/Traders";
|
||||
import { IBotConfig } from "@spt-aki/models/spt/config/IBotConfig";
|
||||
import { ICoreConfig } from "@spt-aki/models/spt/config/ICoreConfig";
|
||||
import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
|
||||
import { ILocationConfig } from "@spt-aki/models/spt/config/ILocationConfig";
|
||||
@ -54,6 +55,7 @@ export class GameController
|
||||
protected ragfairConfig: IRagfairConfig;
|
||||
protected pmcConfig: IPmcConfig;
|
||||
protected lootConfig: ILootConfig;
|
||||
protected botConfig: IBotConfig;
|
||||
|
||||
constructor(
|
||||
@inject("WinstonLogger") protected logger: ILogger,
|
||||
@ -84,6 +86,7 @@ export class GameController
|
||||
this.ragfairConfig = this.configServer.getConfig(ConfigTypes.RAGFAIR);
|
||||
this.pmcConfig = this.configServer.getConfig(ConfigTypes.PMC);
|
||||
this.lootConfig = this.configServer.getConfig(ConfigTypes.LOOT);
|
||||
this.botConfig = this.configServer.getConfig(ConfigTypes.BOT);
|
||||
}
|
||||
|
||||
public load(): void
|
||||
@ -127,6 +130,8 @@ export class GameController
|
||||
|
||||
this.checkTraderRepairValuesExist();
|
||||
|
||||
this.adjustLocationBotValues()
|
||||
|
||||
// repeatableQuests are stored by in profile.Quests due to the responses of the client (e.g. Quests in
|
||||
// offraidData). Since we don't want to clutter the Quests list, we need to remove all completed (failed or
|
||||
// successful) repeatable quests. We also have to remove the Counters from the repeatableQuests
|
||||
@ -247,6 +252,25 @@ export class GameController
|
||||
}
|
||||
}
|
||||
|
||||
protected adjustLocationBotValues(): void
|
||||
{
|
||||
const mapsDb = this.databaseServer.getTables().locations;
|
||||
|
||||
for (const locationKey in this.botConfig.maxBotCap)
|
||||
{
|
||||
const map: ILocationData = mapsDb[locationKey];
|
||||
if (!map)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
map.base.BotMax = this.botConfig.maxBotCap[locationKey];
|
||||
|
||||
// make values no larger than 30 secs
|
||||
map.base.BotStart = Math.min(map.base.BotStart, 30);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Out of date/incorrectly made trader mods forget this data
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user