This commit is contained in:
Dev 2024-03-17 12:27:50 +00:00
commit 1f16e96ae9
6 changed files with 222 additions and 7 deletions

View File

@ -3467,6 +3467,202 @@
"associatedEvent": "Promo",
"collectionTimeHours": 72,
"messageText": "<ch>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</ch><cz>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</cz><en>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</en><fr>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</fr><ge>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</ge><hu>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</hu><it>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</it><jp>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</jp><kr>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</kr><pl>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</pl><po>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</po><sk>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</sk><es>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</es><es-mx>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</es-mx><tu>Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!</tu><ru>Привет, боец. Слыхал, ты местным работягам активно помогал, проверял всё на прочность, так сказать. Это дело правильное, молодец, вояка. Ребята сверху тебе за это подарочек передали в знак благодарности. Продолжай в том же духе!</ru><ro>Promo code is activated</ro>"
},
"KONTOROVICH": {
"items": [
{
"_id": "4271a505e9e0e43abe0661b7",
"_tpl": "5a3c16fe86f77452b62de32a",
"parentId": "5fe49444ae6628187a2e78b8",
"slotId": "main",
"upd": {
"StackObjectsCount": 50
}
},
{
"_id": "f6c1c2e4a832e1dac859363c",
"_tpl": "5a3c16fe86f77452b62de32a",
"parentId": "5fe49444ae6628187a2e78b8",
"slotId": "main",
"upd": {
"StackObjectsCount": 50
}
},
{
"_id": "d2074dc88fcc33e5fdcbce9d",
"_tpl": "583990e32459771419544dd2",
"parentId": "5fe49444ae6628187a2e78b8",
"slotId": "main"
},
{
"_id": "c315ddc6684d0e2a5678be12",
"_tpl": "57dc334d245977597164366f",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_reciever"
},
{
"_id": "be46fd287191d37a410dddc9",
"_tpl": "59d36a0086f7747e673f3946",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_gas_block"
},
{
"_id": "bd993ffee1b2a8841193af17",
"_tpl": "55d480c04bdc2d1d4e8b456a",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_magazine"
},
{
"_id": "5b5c7cef0bd8a6066f95a2cd",
"_tpl": "5648ac824bdc2ded0b8b457d",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_charge"
},
{
"_id": "34fd4b47438b9693c2139cdb",
"_tpl": "59ecc28286f7746d7a68aa8c",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_stock"
},
{
"_id": "ae46d9699234a05a1e8412a7",
"_tpl": "57ffaea724597779f52b3a4d",
"parentId": "a98012979a70ccf2a72d8a34",
"slotId": "mod_tactical_000"
},
{
"_id": "02818a0aba29759dd5f7f5d6",
"_tpl": "57ffb0062459777a045af529",
"parentId": "c315ddc6684d0e2a5678be12",
"slotId": "mod_mount_000"
},
{
"_id": "d28218deb552b41b556dfd2f",
"_tpl": "5649ab884bdc2ded0b8b457f",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_muzzle"
},
{
"_id": "a98012979a70ccf2a72d8a34",
"_tpl": "57ffa9f4245977728561e844",
"parentId": "be46fd287191d37a410dddc9",
"slotId": "mod_handguard"
},
{
"_id": "5cefbcc5e70a4c6a65476f10",
"_tpl": "59fc48e086f77463b1118392",
"parentId": "a98012979a70ccf2a72d8a34",
"slotId": "mod_foregrip"
},
{
"_id": "d5a14137c0977b064466ee00",
"_tpl": "57fd23e32459772d0805bcf1",
"parentId": "ae46d9699234a05a1e8412a7",
"slotId": "mod_scope"
},
{
"_id": "4315d5f6f68b8844ca9c2726",
"_tpl": "59ecc3dd86f7746dc827481c",
"parentId": "34fd4b47438b9693c2139cdb",
"slotId": "mod_stock"
},
{
"_id": "4712863be841ca2de19c633f",
"_tpl": "5649ae4a4bdc2d1b2b8b4588",
"parentId": "d2074dc88fcc33e5fdcbce9d",
"slotId": "mod_pistol_grip"
},
{
"_id": "9f51836b3f3b02b4545a5d0c",
"_tpl": "584924ec24597768f12ae244",
"parentId": "02818a0aba29759dd5f7f5d6",
"slotId": "mod_scope"
},
{
"_id": "a76880e04d88f8b24c188230",
"_tpl": "56dfef82d2720bbd668b4567",
"upd": {
"StackObjectsCount": 30
},
"parentId": "bd993ffee1b2a8841193af17",
"slotId": "cartridges",
"location": 0
},
{
"_id": "ade8274d65ef2e1ce7a88975",
"_tpl": "56d59856d2720bd8418b456a",
"parentId": "5fe49444ae6628187a2e78b8",
"slotId": "main"
},
{
"_id": "1e1fcc843eac847a3731255d",
"_tpl": "56d5a2bbd2720bb8418b456a",
"parentId": "ade8274d65ef2e1ce7a88975",
"slotId": "mod_pistol_grip"
},
{
"_id": "523fff2aefc957f315456595",
"_tpl": "56d5a407d2720bb3418b456b",
"parentId": "ade8274d65ef2e1ce7a88975",
"slotId": "mod_reciever"
},
{
"_id": "0f3dfd44b4c9de9307eff694",
"_tpl": "56d5a77ed2720b90418b4568",
"parentId": "523fff2aefc957f315456595",
"slotId": "mod_sight_rear"
},
{
"_id": "0a65e97132cd09633df7ad0d",
"_tpl": "56d5a661d2720bd8418b456b",
"parentId": "523fff2aefc957f315456595",
"slotId": "mod_sight_front"
},
{
"_id": "00313e53e77412d80003ff30",
"_tpl": "56d59948d2720bb7418b4582",
"parentId": "ade8274d65ef2e1ce7a88975",
"slotId": "mod_magazine"
},
{
"_id": "b4114229bcde3b0500638b41",
"_tpl": "587de4282459771bca0ec90b",
"parentId": "ade8274d65ef2e1ce7a88975",
"slotId": "mod_barrel"
},
{
"_id": "6e400a1bdb8d0b6315c7e929",
"_tpl": "5a33b2c9c4a282000c5a9511",
"parentId": "bde91a09616c9a77623e3af0",
"slotId": "mod_scope"
},
{
"_id": "b99a4695dc0e7430644b4f41",
"_tpl": "5a32aa8bc4a2826c6e06d737",
"parentId": "6e400a1bdb8d0b6315c7e929",
"slotId": "mod_scope"
},
{
"_id": "bde91a09616c9a77623e3af0",
"_tpl": "5a33a8ebc4a282000c5a950d",
"parentId": "b4114229bcde3b0500638b41",
"slotId": "mod_muzzle"
},
{
"_id": "61f34f8efeef7092e71c1391",
"_tpl": "56d59d3ad2720bdb418b4577",
"parentId": "00313e53e77412d80003ff30",
"slotId": "cartridges",
"upd": {
"StackObjectsCount": 15
},
"location": 0
}
],
"sender": "System",
"associatedEvent": "Promo",
"collectionTimeHours": 72,
"messageText": "Thank you for purchasing of the first book in EFT series by A, Kontorovich. We are glad to give you this theme package with ingame items."
}
}
}

View File

@ -1321,5 +1321,5 @@
"mod_equipment": 5
}
},
"sandboxMaxPatrolvalue": 10
}
"sandboxMaxPatrolvalue": 8
}

View File

@ -599,6 +599,7 @@
"launcher-profile_sptdeveloper": "Testing profile, starting level is 69, lots of Roubles/Dollars/Euros, USEC start with all quests ready to start, BEAR start with all quests ready to hand in, invincibility balaclava",
"launcher-missing_property": "Profile: %s is missing a descriptionLocaleKey property",
"release-beta-disclaimer": "By pressing OK you agree that no support is offered and that this is for bug testing only. NOT actual gameplay. Mods are disabled. New profiles may be required frequently. Report all bugs in the reports channel in discord, or on the issues page on the website. If you don't press OK by the time specified, the game will close.",
"release-beta-disclaimer-mods-enabled": "By pressing OK you agree that no support is offered and that this is for bug testing only. NOT actual gameplay. Mods are enabled, do NOT report issues with mods. Do NOT ask mod authors for updated mods. Report all bugs in the reports channel in discord, or on the issues page on the website. If you dont press OK by the time specificed, the game will close.",
"release-beta-disclaimer-accept": "User accepted the beta disclaimer",
"release-server-mods-loaded": "One or more server mods exist on a mod enabled build, reports will be invalid until removed. See the top of the server for loaded server mods to remove to report issues again.",
"release-server-mods-debug-message": "Server mods loaded",

View File

@ -38,7 +38,10 @@ export class ClientLogCallbacks
{
const data: IRelease = this.configServer.getConfig<ICoreConfig>(ConfigTypes.CORE).release;
data.betaDisclaimerText = this.localisationService.getText("release-beta-disclaimer");
data.betaDisclaimerText = globalThis.G_MODS_ENABLED
? this.localisationService.getText("release-beta-disclaimer-mods-enabled")
: this.localisationService.getText("release-beta-disclaimer");
data.betaDisclaimerAcceptText = this.localisationService.getText("release-beta-disclaimer-accept");
data.serverModsLoadedText = this.localisationService.getText("release-server-mods-loaded");
data.serverModsLoadedDebugText = this.localisationService.getText("release-server-mods-debug-message");

View File

@ -352,7 +352,21 @@ export class RagfairController
const min = offers[0].requirementsCost; // Get first item from array as its pre-sorted
const max = offers.at(-1).requirementsCost; // Get last item from array as its pre-sorted
return { avg: (min + max) / 2, min: min, max: max };
// Get the average offer price, excluding barter offers
let avgOfferCount = 0;
const avg = offers.reduce((sum, offer) =>
{
// Exclude barter items
if (offer.requirements.some((req) => !this.paymentHelper.isMoneyTpl(req._tpl)))
{
return sum;
}
avgOfferCount++;
return sum + offer.requirementsCost;
}, 0) / Math.max(avgOfferCount, 1);
return { avg: avg, min: min, max: max };
}
// No offers listed, get price from live ragfair price list prices.json

View File

@ -171,13 +171,14 @@ export class RagfairPriceService implements OnLoad
}
/**
* Get prices for all items on flea, priorities dynamic prices from prices.json, use handbook prices if missing
* Get prices for all items on flea, prioritize handbook prices first, use prices from prices.json if missing
* @returns Dictionary of item tpls and rouble cost
*/
public getAllFleaPrices(): Record<string, number>
{
// assign static values first, then overwrite them with dynamic, any values not stored in dynamic data will be covered by static data
return { ...this.prices.static, ...this.prices.dynamic };
// assign dynamic (prices.json) values first, then overwrite them with static (handbook.json)
// any values not stored in static data will be covered by dynamic data
return { ...this.prices.dynamic, ...this.prices.static };
}
public getAllStaticPrices(): Record<string, number>