Archived
Added, Removed & Updated Mods
• Added SAIN • Added Looting Bots • Re-enabled Waypoints • Re-enabled Big Brain • Removed AI Refactored • Removed No Bush ESP • Updated server and multiplayer profiles • Updated HollywoodFX
This commit is contained in:
@@ -0,0 +1,261 @@
|
||||
[
|
||||
{
|
||||
"Name": "Scav",
|
||||
"Description": "Scavs!",
|
||||
"Section": "Scavs",
|
||||
"WildSpawnType": "assault",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Scav Group",
|
||||
"Description": "Scavs in a Group!",
|
||||
"Section": "Scavs",
|
||||
"WildSpawnType": "assaultGroup",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Crazy Scav Event",
|
||||
"Description": "Scavs!",
|
||||
"Section": "Scavs",
|
||||
"WildSpawnType": "crazyAssaultEvent",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Usec",
|
||||
"Description": "A PMC of the Usec Faction",
|
||||
"Section": "PMCs",
|
||||
"WildSpawnType": "pmcUSEC",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Bear",
|
||||
"Description": "A PMC of the Bear Faction",
|
||||
"Section": "PMCs",
|
||||
"WildSpawnType": "pmcBEAR",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Tagged and Cursed Scav",
|
||||
"Description": "The type a scav is assigned when the player is marked as Tagged and Cursed",
|
||||
"Section": "Scavs",
|
||||
"WildSpawnType": "cursedAssault",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Knight",
|
||||
"Description": "Goons leader. Close proximity to the goons has been noted to cause smashed keyboards",
|
||||
"Section": "Goons",
|
||||
"WildSpawnType": "bossKnight",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "BigPipe",
|
||||
"Description": "Goons follower. Close proximity to the goons has been noted to cause smashed keyboards\"",
|
||||
"Section": "Goons",
|
||||
"WildSpawnType": "followerBigPipe",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "BirdEye",
|
||||
"Description": "Goons follower. Close proximity to the goons has been noted to cause smashed keyboards\"",
|
||||
"Section": "Goons",
|
||||
"WildSpawnType": "followerBirdEye",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Rogue",
|
||||
"Description": "Ex Usec Personel on Lighthouse usually found around the water treatment plant",
|
||||
"Section": "Other",
|
||||
"WildSpawnType": "exUsec",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Raider",
|
||||
"Description": "Heavily armed scavs typically found on reserve and Labs by default",
|
||||
"Section": "Other",
|
||||
"WildSpawnType": "pmcBot",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Bloodhound",
|
||||
"Description": "From the Live Event, nearly identical to raiders except with different voicelines and better gear. Found in",
|
||||
"Section": "Other",
|
||||
"WildSpawnType": "arenaFighterEvent",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Cultist Priest",
|
||||
"Description": "Found on Customs, Woods, Factory, Shoreline at night",
|
||||
"Section": "Other",
|
||||
"WildSpawnType": "sectantPriest",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Cultist",
|
||||
"Description": "Found on Customs, Woods, Factory, Shoreline at night",
|
||||
"Section": "Other",
|
||||
"WildSpawnType": "sectantWarrior",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Killa",
|
||||
"Description": "He shoot. Found on Interchange and Streets",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossKilla",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Partisan",
|
||||
"Description": "Crazy mall santa",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossPartisan",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Rashala",
|
||||
"Description": "Customs Boss",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossBully",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Rashala Guard",
|
||||
"Description": "Customs Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerBully",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Shturman",
|
||||
"Description": "Woods Boss",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossKojaniy",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Shturman Guard",
|
||||
"Description": "Woods Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerKojaniy",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Tagilla",
|
||||
"Description": "He Smash",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossTagilla",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Tagilla Guard",
|
||||
"Description": "They Smash Too?",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerTagilla",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Sanitar",
|
||||
"Description": "Shoreline Boss",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossSanitar",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Sanitar Guard",
|
||||
"Description": "Shoreline Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerSanitar",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Gluhar",
|
||||
"Description": "Reserve Boss. Also can be found on Streets.",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossGluhar",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Gluhar Guard Snipe",
|
||||
"Description": "Reserve Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerGluharSnipe",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Gluhar Guard Scout",
|
||||
"Description": "Reserve Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerGluharScout",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Gluhar Guard Security",
|
||||
"Description": "Reserve Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerGluharSecurity",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Gluhar Guard Assault",
|
||||
"Description": "Reserve Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerGluharAssault",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kaban",
|
||||
"Description": "Streets Boss",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossBoar",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kaban Guard",
|
||||
"Description": "Streets Boss Follower",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerBoar",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kaban Guard Close 1",
|
||||
"Description": "Streets Boss Follower Close 1",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerBoarClose1",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kaban Guard Close 2",
|
||||
"Description": "Streets Boss Follower Close 2",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerBoarClose2",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kaban Sniper",
|
||||
"Description": "Streets Boss Follower Sniper",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "bossBoarSniper",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kolontay",
|
||||
"Description": "",
|
||||
"Section": "Bosses",
|
||||
"WildSpawnType": "bossKolontay",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kolontay Assault",
|
||||
"Description": "",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerKolontayAssault",
|
||||
"BaseBrain": null
|
||||
},
|
||||
{
|
||||
"Name": "Kolontay Security",
|
||||
"Description": "",
|
||||
"Section": "Followers",
|
||||
"WildSpawnType": "followerKolontaySecurity",
|
||||
"BaseBrain": null
|
||||
}
|
||||
]
|
||||
+3258
File diff suppressed because it is too large
Load Diff
+3290
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3266
File diff suppressed because it is too large
Load Diff
+3358
File diff suppressed because it is too large
Load Diff
+3246
File diff suppressed because it is too large
Load Diff
+3246
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3358
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3370
File diff suppressed because it is too large
Load Diff
+3370
File diff suppressed because it is too large
Load Diff
+3370
File diff suppressed because it is too large
Load Diff
+3370
File diff suppressed because it is too large
Load Diff
+3370
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3290
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3370
File diff suppressed because it is too large
Load Diff
+3382
File diff suppressed because it is too large
Load Diff
+3266
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3278
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3358
File diff suppressed because it is too large
Load Diff
+3358
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3378
File diff suppressed because it is too large
Load Diff
+3358
File diff suppressed because it is too large
Load Diff
+3358
File diff suppressed because it is too large
Load Diff
+3382
File diff suppressed because it is too large
Load Diff
+3258
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
[General]
|
||||
gameName=spt
|
||||
modid=0
|
||||
version=d2025.6.2.0
|
||||
newestVersion=
|
||||
category="-1,"
|
||||
nexusFileStatus=1
|
||||
installationFile=SAIN-3.3.0-Release.zip
|
||||
repository=Nexus
|
||||
ignoredVersion=
|
||||
comments=
|
||||
notes=
|
||||
nexusDescription=
|
||||
url=
|
||||
hasCustomURL=true
|
||||
lastNexusQuery=
|
||||
lastNexusUpdate=
|
||||
nexusLastModified=2025-06-02T20:07:15Z
|
||||
nexusCategory=0
|
||||
converted=false
|
||||
validated=false
|
||||
color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
|
||||
tracked=0
|
||||
|
||||
[installedFiles]
|
||||
1\modid=0
|
||||
1\fileid=0
|
||||
size=1
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "SAIN",
|
||||
"version": "2.3.0",
|
||||
"main": "src/mod.js",
|
||||
"license": "MIT",
|
||||
"author": "zSolarint",
|
||||
"sptVersion": "~3.11.0",
|
||||
"scripts": {
|
||||
"setup": "npm i",
|
||||
"build": "node ./build.mjs",
|
||||
"buildinfo": "node ./build.mjs --verbose"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "20.11",
|
||||
"@typescript-eslint/eslint-plugin": "7.2",
|
||||
"@typescript-eslint/parser": "7.2",
|
||||
"archiver": "^6.0",
|
||||
"eslint": "8.57",
|
||||
"fs-extra": "11.2",
|
||||
"ignore": "^5.2",
|
||||
"os": "^0.1",
|
||||
"tsyringe": "4.8.0",
|
||||
"typescript": "5.4",
|
||||
"winston": "3.12"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
"use strict";
|
||||
/* eslint-disable prefer-const */
|
||||
/* eslint-disable @typescript-eslint/brace-style */
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const ConfigTypes_1 = require("C:/snapshot/project/obj/models/enums/ConfigTypes");
|
||||
let botConfig;
|
||||
let pmcConfig;
|
||||
let configServer;
|
||||
class SAIN {
|
||||
postDBLoad(container) {
|
||||
configServer = container.resolve("ConfigServer");
|
||||
pmcConfig = configServer.getConfig(ConfigTypes_1.ConfigTypes.PMC);
|
||||
botConfig = configServer.getConfig(ConfigTypes_1.ConfigTypes.BOT);
|
||||
const databaseServer = container.resolve("DatabaseServer");
|
||||
const tables = databaseServer.getTables();
|
||||
// Only allow `pmcBot` brains to spawn for PMCs
|
||||
for (const pmcType in pmcConfig.pmcType) {
|
||||
for (const map in pmcConfig.pmcType[pmcType]) {
|
||||
const pmcBrains = pmcConfig.pmcType[pmcType][map];
|
||||
for (const brain in pmcBrains) {
|
||||
if (brain === "pmcBot") {
|
||||
pmcBrains[brain] = 1;
|
||||
}
|
||||
else {
|
||||
pmcBrains[brain] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Only allow `assault` brains for scavs
|
||||
for (const map in botConfig.assaultBrainType) {
|
||||
const scavBrains = botConfig.assaultBrainType[map];
|
||||
for (const brain in scavBrains) {
|
||||
if (brain === "assault") {
|
||||
scavBrains[brain] = 1;
|
||||
}
|
||||
else {
|
||||
scavBrains[brain] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Only allow `pmcBot` brains for player scavs
|
||||
for (const map in botConfig.playerScavBrainType) {
|
||||
const playerScavBrains = botConfig.playerScavBrainType[map];
|
||||
for (const brain in playerScavBrains) {
|
||||
if (brain === "pmcBot") {
|
||||
playerScavBrains[brain] = 1;
|
||||
}
|
||||
else {
|
||||
playerScavBrains[brain] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const locationName in tables.locations) {
|
||||
const location = tables.locations[locationName].base;
|
||||
if (location && location.BotLocationModifier) {
|
||||
location.BotLocationModifier.AccuracySpeed = 1;
|
||||
location.BotLocationModifier.GainSight = 1;
|
||||
location.BotLocationModifier.Scattering = 1;
|
||||
location.BotLocationModifier.VisibleDistance = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
module.exports = { mod: new SAIN() };
|
||||
//# sourceMappingURL=mod.js.map
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "mod.js",
|
||||
"sourceRoot": "",
|
||||
"sources": [
|
||||
"mod.ts"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AAAA,iCAAiC;AACjC,mDAAmD;;AAEnD,kFAA+E;AAQ/E,IAAI,SAAqB,CAAC;AAC1B,IAAI,SAAqB,CAAC;AAC1B,IAAI,YAA0B,CAAC;AAE/B,MAAM,IAAI;IACC,UAAU,CAAC,SAA8B;QAC5C,YAAY,GAAG,SAAS,CAAC,OAAO,CAAe,cAAc,CAAC,CAAC;QAC/D,SAAS,GAAG,YAAY,CAAC,SAAS,CAAa,yBAAW,CAAC,GAAG,CAAC,CAAC;QAChE,SAAS,GAAG,YAAY,CAAC,SAAS,CAAa,yBAAW,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAiB,gBAAgB,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QAE1C,+CAA+C;QAC/C,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;gBACjD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC5B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrB,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;yBACI,CAAC;wBACF,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;qBACI,CAAC;oBACF,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,mBAAmB,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC5D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACnC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrB,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;qBACI,CAAC;oBACF,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YAErD,IAAI,QAAQ,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC/C,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,CAAC,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC5C,QAAQ,CAAC,mBAAmB,CAAC,eAAe,GAAG,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AACD,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAA"
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
/* eslint-disable prefer-const */
|
||||
/* eslint-disable @typescript-eslint/brace-style */
|
||||
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { DependencyContainer } from "tsyringe";
|
||||
|
||||
let botConfig: IBotConfig;
|
||||
let pmcConfig: IPmcConfig;
|
||||
let configServer: ConfigServer;
|
||||
|
||||
class SAIN implements IPostDBLoadMod {
|
||||
public postDBLoad(container: DependencyContainer): void {
|
||||
configServer = container.resolve<ConfigServer>("ConfigServer");
|
||||
pmcConfig = configServer.getConfig<IPmcConfig>(ConfigTypes.PMC);
|
||||
botConfig = configServer.getConfig<IBotConfig>(ConfigTypes.BOT);
|
||||
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
|
||||
const tables = databaseServer.getTables();
|
||||
|
||||
// Only allow `pmcBot` brains to spawn for PMCs
|
||||
for (const pmcType in pmcConfig.pmcType) {
|
||||
for (const map in pmcConfig.pmcType[pmcType]) {
|
||||
const pmcBrains = pmcConfig.pmcType[pmcType][map]
|
||||
for (const brain in pmcBrains) {
|
||||
if (brain === "pmcBot") {
|
||||
pmcBrains[brain] = 1;
|
||||
}
|
||||
else {
|
||||
pmcBrains[brain] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Only allow `assault` brains for scavs
|
||||
for (const map in botConfig.assaultBrainType) {
|
||||
const scavBrains = botConfig.assaultBrainType[map];
|
||||
for (const brain in scavBrains) {
|
||||
if (brain === "assault") {
|
||||
scavBrains[brain] = 1;
|
||||
}
|
||||
else {
|
||||
scavBrains[brain] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Only allow `pmcBot` brains for player scavs
|
||||
for (const map in botConfig.playerScavBrainType) {
|
||||
const playerScavBrains = botConfig.playerScavBrainType[map];
|
||||
for (const brain in playerScavBrains) {
|
||||
if (brain === "pmcBot") {
|
||||
playerScavBrains[brain] = 1;
|
||||
}
|
||||
else {
|
||||
playerScavBrains[brain] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const locationName in tables.locations) {
|
||||
const location = tables.locations[locationName].base;
|
||||
|
||||
if (location && location.BotLocationModifier) {
|
||||
location.BotLocationModifier.AccuracySpeed = 1;
|
||||
location.BotLocationModifier.GainSight = 1;
|
||||
location.BotLocationModifier.Scattering = 1;
|
||||
location.BotLocationModifier.VisibleDistance = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
module.exports = { mod: new SAIN() }
|
||||
Reference in New Issue
Block a user