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": [
|
"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,
|
"BossChance": 11,
|
||||||
"BossDifficult": "normal",
|
"BossDifficult": "normal",
|
||||||
@ -13579,162 +13561,5 @@
|
|||||||
"users_spawn_seconds_n": 120,
|
"users_spawn_seconds_n": 120,
|
||||||
"users_spawn_seconds_n2": 200,
|
"users_spawn_seconds_n2": 200,
|
||||||
"users_summon_seconds": 0,
|
"users_summon_seconds": 0,
|
||||||
"waves": [
|
"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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ import { AccountTypes } from "@spt-aki/models/enums/AccountTypes";
|
|||||||
import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
|
import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
|
||||||
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
|
import { SkillTypes } from "@spt-aki/models/enums/SkillTypes";
|
||||||
import { Traders } from "@spt-aki/models/enums/Traders";
|
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 { ICoreConfig } from "@spt-aki/models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "@spt-aki/models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "@spt-aki/models/spt/config/ILocationConfig";
|
||||||
@ -54,6 +55,7 @@ export class GameController
|
|||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
protected pmcConfig: IPmcConfig;
|
protected pmcConfig: IPmcConfig;
|
||||||
protected lootConfig: ILootConfig;
|
protected lootConfig: ILootConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("WinstonLogger") protected logger: ILogger,
|
@inject("WinstonLogger") protected logger: ILogger,
|
||||||
@ -84,6 +86,7 @@ export class GameController
|
|||||||
this.ragfairConfig = this.configServer.getConfig(ConfigTypes.RAGFAIR);
|
this.ragfairConfig = this.configServer.getConfig(ConfigTypes.RAGFAIR);
|
||||||
this.pmcConfig = this.configServer.getConfig(ConfigTypes.PMC);
|
this.pmcConfig = this.configServer.getConfig(ConfigTypes.PMC);
|
||||||
this.lootConfig = this.configServer.getConfig(ConfigTypes.LOOT);
|
this.lootConfig = this.configServer.getConfig(ConfigTypes.LOOT);
|
||||||
|
this.botConfig = this.configServer.getConfig(ConfigTypes.BOT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public load(): void
|
public load(): void
|
||||||
@ -127,6 +130,8 @@ export class GameController
|
|||||||
|
|
||||||
this.checkTraderRepairValuesExist();
|
this.checkTraderRepairValuesExist();
|
||||||
|
|
||||||
|
this.adjustLocationBotValues()
|
||||||
|
|
||||||
// repeatableQuests are stored by in profile.Quests due to the responses of the client (e.g. Quests in
|
// 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
|
// 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
|
// 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
|
* Out of date/incorrectly made trader mods forget this data
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user