mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 08:10:44 -05:00
Fix: resolve issue with handing in item to quest that allows multiple types of items to be handed in (e.g. punisher p5 - 2 types of makarov can be handed in) (!63)
Moved some error logging in handoverQuest() to separate functions Renamed `itemHandoverMode` to `isItemHandoverQuest` Included some additional pmc responses Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com> Reviewed-on: SPT-AKI/Server#63
This commit is contained in:
parent
00e367ffa5
commit
c81633ac38
@ -292,6 +292,12 @@
|
|||||||
"pmcresponse-victim_negative_33": "You may have got me but I bet you never the thermal i had",
|
"pmcresponse-victim_negative_33": "You may have got me but I bet you never the thermal i had",
|
||||||
"pmcresponse-victim_negative_34": "I stopped playing live because of the esp and yet here you are",
|
"pmcresponse-victim_negative_34": "I stopped playing live because of the esp and yet here you are",
|
||||||
"pmcresponse-victim_negative_35": "Yeah you killed me but i can bench press more than you",
|
"pmcresponse-victim_negative_35": "Yeah you killed me but i can bench press more than you",
|
||||||
|
"pmcresponse-victim_negative_36": "You have the map awareness of Christopher Columbus",
|
||||||
|
"pmcresponse-victim_negative_37": "I bet you sound like you eat cigarettes",
|
||||||
|
"pmcresponse-victim_negative_38": "You shoot like an old man. This what you do now you retired?",
|
||||||
|
"pmcresponse-victim_negative_39": "I bet you look like you were drawn with my left hand",
|
||||||
|
"pmcresponse-victim_negative_40": "Tell your mom to make your mac n cheese, I'll be home soon",
|
||||||
|
"pmcresponse-victim_negative_41": "If you were any more inbred you would be a sandwich",
|
||||||
"pmcresponse-victim_plead_1": "I was questing",
|
"pmcresponse-victim_plead_1": "I was questing",
|
||||||
"pmcresponse-victim_plead_2": "I just wanted to do a quest, why'd you kill me :(",
|
"pmcresponse-victim_plead_2": "I just wanted to do a quest, why'd you kill me :(",
|
||||||
"pmcresponse-victim_plead_3": "Hope ur happy i can't even afford a new kit",
|
"pmcresponse-victim_plead_3": "Hope ur happy i can't even afford a new kit",
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { Item } from "@spt-aki/models/eft/common/tables/IItem";
|
||||||
import { inject, injectable } from "tsyringe";
|
import { inject, injectable } from "tsyringe";
|
||||||
|
|
||||||
import { DialogueHelper } from "../helpers/DialogueHelper";
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
@ -496,7 +497,8 @@ export class QuestController
|
|||||||
const quest = this.questHelper.getQuestFromDb(handoverQuestRequest.qid, pmcData);
|
const quest = this.questHelper.getQuestFromDb(handoverQuestRequest.qid, pmcData);
|
||||||
const handoverQuestTypes = ["HandoverItem", "WeaponAssembly"];
|
const handoverQuestTypes = ["HandoverItem", "WeaponAssembly"];
|
||||||
const output = this.eventOutputHolder.getOutput(sessionID);
|
const output = this.eventOutputHolder.getOutput(sessionID);
|
||||||
let itemHandoverMode = true;
|
|
||||||
|
let isItemHandoverQuest = true;
|
||||||
let handedInCount = 0;
|
let handedInCount = 0;
|
||||||
|
|
||||||
// Decrement number of items handed in
|
// Decrement number of items handed in
|
||||||
@ -506,7 +508,7 @@ export class QuestController
|
|||||||
if (condition._props.id === handoverQuestRequest.conditionId && handoverQuestTypes.includes(condition._parent))
|
if (condition._props.id === handoverQuestRequest.conditionId && handoverQuestTypes.includes(condition._parent))
|
||||||
{
|
{
|
||||||
handedInCount = Number.parseInt(<string>condition._props.value);
|
handedInCount = Number.parseInt(<string>condition._props.value);
|
||||||
itemHandoverMode = condition._parent === handoverQuestTypes[0];
|
isItemHandoverQuest = condition._parent === handoverQuestTypes[0];
|
||||||
handoverRequirements = condition;
|
handoverRequirements = condition;
|
||||||
|
|
||||||
const profileCounter = (handoverQuestRequest.conditionId in pmcData.BackendCounters)
|
const profileCounter = (handoverQuestRequest.conditionId in pmcData.BackendCounters)
|
||||||
@ -525,24 +527,19 @@ export class QuestController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemHandoverMode && handedInCount === 0)
|
if (isItemHandoverQuest && handedInCount === 0)
|
||||||
{
|
{
|
||||||
const errorMessage = this.localisationService.getText("repeatable-quest_handover_failed_condition_invalid", {questId: handoverQuestRequest.qid, conditionId: handoverQuestRequest.conditionId});
|
return this.showRepeatableQuestInvalidConditionError(handoverQuestRequest, output);
|
||||||
this.logger.error(errorMessage);
|
|
||||||
|
|
||||||
return this.httpResponseUtil.appendErrorToOutput(output, errorMessage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let totalItemCountToRemove = 0;
|
let totalItemCountToRemove = 0;
|
||||||
for (const itemHandover of handoverQuestRequest.items)
|
for (const itemHandover of handoverQuestRequest.items)
|
||||||
{
|
{
|
||||||
const handedOverItemProfileDetails = pmcData.Inventory.items.find(x => x._id === itemHandover.id);
|
const matchingItemInProfile = pmcData.Inventory.items.find(x => x._id === itemHandover.id);
|
||||||
if (handedOverItemProfileDetails._tpl !== handoverRequirements._props.target[0])
|
if (!handoverRequirements._props.target.includes(matchingItemInProfile._tpl))
|
||||||
{
|
{
|
||||||
// Item handed in by player doesnt match what was requested
|
// Item handed in by player doesnt match what was requested
|
||||||
const errorMessage = this.localisationService.getText("quest-handover_wrong_item", {questId: handoverQuestRequest.qid, handedInTpl: handedOverItemProfileDetails._tpl, requiredTpl: handoverRequirements._props.target[0]});
|
return this.showQuestItemHandoverMatchError(handoverQuestRequest, matchingItemInProfile, handoverRequirements, output);
|
||||||
this.logger.error(errorMessage);
|
|
||||||
return this.httpResponseUtil.appendErrorToOutput(output, errorMessage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the right quantity of given items
|
// Remove the right quantity of given items
|
||||||
@ -582,6 +579,36 @@ export class QuestController
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show warning to user and write to log that repeatable quest failed a condition check
|
||||||
|
* @param handoverQuestRequest Quest request
|
||||||
|
* @param output Response to send to user
|
||||||
|
* @returns IItemEventRouterResponse
|
||||||
|
*/
|
||||||
|
protected showRepeatableQuestInvalidConditionError(handoverQuestRequest: IHandoverQuestRequestData, output: IItemEventRouterResponse): IItemEventRouterResponse
|
||||||
|
{
|
||||||
|
const errorMessage = this.localisationService.getText("repeatable-quest_handover_failed_condition_invalid", { questId: handoverQuestRequest.qid, conditionId: handoverQuestRequest.conditionId });
|
||||||
|
this.logger.error(errorMessage);
|
||||||
|
|
||||||
|
return this.httpResponseUtil.appendErrorToOutput(output, errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show warning to user and write to log quest item handed over did not match what is required
|
||||||
|
* @param handoverQuestRequest Quest request
|
||||||
|
* @param itemHandedOver Non-matching item found
|
||||||
|
* @param handoverRequirements Quest handover requirements
|
||||||
|
* @param output Response to send to user
|
||||||
|
* @returns IItemEventRouterResponse
|
||||||
|
*/
|
||||||
|
protected showQuestItemHandoverMatchError(handoverQuestRequest: IHandoverQuestRequestData, itemHandedOver: Item, handoverRequirements: AvailableForConditions, output: IItemEventRouterResponse): IItemEventRouterResponse
|
||||||
|
{
|
||||||
|
const errorMessage = this.localisationService.getText("quest-handover_wrong_item", { questId: handoverQuestRequest.qid, handedInTpl: itemHandedOver._tpl, requiredTpl: handoverRequirements._props.target[0] });
|
||||||
|
this.logger.error(errorMessage);
|
||||||
|
|
||||||
|
return this.httpResponseUtil.appendErrorToOutput(output, errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Increment a backend counter stored value by an amount,
|
* Increment a backend counter stored value by an amount,
|
||||||
* Create counter if it does not exist
|
* Create counter if it does not exist
|
||||||
|
Loading…
x
Reference in New Issue
Block a user