Partial fix for items flagged as being never lost on death coming back as insurance.
Items will not return but plates inside them still do
This commit is contained in:
parent
c6de12e6f8
commit
023697ed74
@ -16,6 +16,7 @@ import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
|
|||||||
import { MessageType } from "@spt-aki/models/enums/MessageType";
|
import { MessageType } from "@spt-aki/models/enums/MessageType";
|
||||||
import { Traders } from "@spt-aki/models/enums/Traders";
|
import { Traders } from "@spt-aki/models/enums/Traders";
|
||||||
import { IInsuranceConfig } from "@spt-aki/models/spt/config/IInsuranceConfig";
|
import { IInsuranceConfig } from "@spt-aki/models/spt/config/IInsuranceConfig";
|
||||||
|
import { ILostOnDeathConfig } from "@spt-aki/models/spt/config/ILostOnDeathConfig";
|
||||||
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";
|
||||||
@ -32,6 +33,7 @@ export class InsuranceService
|
|||||||
{
|
{
|
||||||
protected insured: Record<string, Record<string, Item[]>> = {};
|
protected insured: Record<string, Record<string, Item[]>> = {};
|
||||||
protected insuranceConfig: IInsuranceConfig;
|
protected insuranceConfig: IInsuranceConfig;
|
||||||
|
protected lostOnDeathConfig: ILostOnDeathConfig;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("WinstonLogger") protected logger: ILogger,
|
@inject("WinstonLogger") protected logger: ILogger,
|
||||||
@ -52,6 +54,7 @@ export class InsuranceService
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
this.insuranceConfig = this.configServer.getConfig(ConfigTypes.INSURANCE);
|
this.insuranceConfig = this.configServer.getConfig(ConfigTypes.INSURANCE);
|
||||||
|
this.lostOnDeathConfig = this.configServer.getConfig(ConfigTypes.LOST_ON_DEATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -247,9 +250,15 @@ export class InsuranceService
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if item missing in post-raid gear OR player died
|
// Slots can be flagged as never lost on death and shouldn't be sent to player as insurance
|
||||||
|
const itemShouldBeLostOnDeath = this.lostOnDeathConfig.equipment[preRaidItem.slotId] ?? true;
|
||||||
|
|
||||||
|
// Was item found on player inventory post-raid
|
||||||
|
const itemOnPlayerPostRaid = offRaidGearHash[insuredItem.itemId];
|
||||||
|
|
||||||
|
// Check if item missing in post-raid gear OR player died + item slot flagged as lost on death
|
||||||
// Catches both events: player died with item on + player survived but dropped item in raid
|
// Catches both events: player died with item on + player survived but dropped item in raid
|
||||||
if (!offRaidGearHash[insuredItem.itemId] || playerDied)
|
if (!itemOnPlayerPostRaid || (playerDied && itemShouldBeLostOnDeath))
|
||||||
{
|
{
|
||||||
equipmentToSendToPlayer.push({
|
equipmentToSendToPlayer.push({
|
||||||
pmcData: pmcData,
|
pmcData: pmcData,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user