692 Commits

Author SHA1 Message Date
Dev
6032573815 Comment improvements 2024-02-01 13:31:36 +00:00
Dev
5f500655be openRandomLootContainer() Remove item after contents have successfully been added to stash 2024-02-01 13:26:18 +00:00
Dev
3587becf76 Update openRandomLootContainer() to use addItemsToStash() 2024-02-01 13:23:03 +00:00
Dev
704b337a3c removeResourceFromArea() Pass found item in slot directly to addToStash requst for small optimisation 2024-02-01 12:53:30 +00:00
Dev
d920dceb53 Remove redundant returns from various hideout functions used inside takeProduction() 2024-02-01 12:47:48 +00:00
Dev
3bf44b7863 Update handleScavCase() to use addItemsToStash() 2024-02-01 12:42:02 +00:00
Dev
d564a7a992 Comment improvements 2024-02-01 12:35:18 +00:00
Dev
16cb48ad70 Improvements to handleRecipe()
Cleaner handling of stackable rewards
Moved task condition counter lookup to own function
2024-02-01 12:31:48 +00:00
Dev
44560991b0 Improve handleRecipe()
Better handling of item rewards that need to be split into root + child (ammo boxes)
Use `addItemsToStash()`
move `recipe.isEncoded` check to earlier in function

make use of `getItem()` inside `splitStack()` instead of direct db access
2024-02-01 11:23:32 +00:00
Dev
95dd27038d improve accuracy of daily quest system
Keep completed dailies inside "activeQuests" array until dailies are refreshed
Adjust post-raid quest handling to ensure previously completed/failed quests keep their original status
2024-01-31 14:38:18 +00:00
Dev
9616f9b34b Improve armor slot compatibility checking 2024-01-30 16:32:03 +00:00
Dev
491a5204bb optimisation: only update the current profiles hideout data 2024-01-30 12:16:58 +00:00
Dev
d0af930dc9 Fix not being able to collect bitcoins
Improved handling of server/client sync when clicking 'get iems' to reduce chance of `no bitcoins to collect` error
2024-01-30 12:16:27 +00:00
Dev
e88a661e7e Convert hideout area bonus property + Bonus type property into an enum and update code that uses altered property 2024-01-29 10:42:02 +00:00
Dev
b3f2e3e2a5 Stop PMCs being genered as usec with side of bear 2024-01-27 16:19:26 +00:00
Dev
b6327b7d0d Build fix 2024-01-27 09:03:39 +00:00
Dev
9b09319d3d Cleanup of cancelled player flea offer code 2024-01-26 10:49:06 +00:00
Kaeno
09a07ece66 Fix to Items not retaining upd properties when returning them from hideout area stashes 2024-01-25 23:49:35 +00:00
Dev
9520a2977e Move variable calculation outside of loop 2024-01-25 22:38:42 +00:00
Dev
c116adc0b9 Clenaed up how PMC names are replaced during event 2024-01-25 22:17:18 +00:00
Dev
fc9e3f9f59 Fix server error when generating single sptBear/sptUsec 2024-01-25 12:59:45 +00:00
Dev
7d734a18f1 Bot wave adjustments
Remove gifter from streets
Remove manual waves from streets
2024-01-24 19:49:42 +00:00
Dev
6378ac6f87 Add back CLIENT_START_TIMESTAMP saving on game start 2024-01-23 10:14:37 +00:00
OkaMoez
1c6b76163b Make accelerated time calculations independent of client (!205)
Changes server accelerated time calculation to be fully independent of client calculations.

Local testing over most of a day showed time acceleration continuing through relogging as a client, and calculated times being synced to about +- 2 seconds between server and client with no drift.

-----------
In #202 I referenced the client side formula for accelerate time:
`In Raid Time = Today's Date + Location Time + Time Since Client Connection * Acceleration`
At the time I didn't know where Location Time was set and conservatively tried to match the server calculations to the client.  Since then I've confirmed that it is set after calling `client/game/start` and holds the accelerated server timestamp from that call.  With this in mind, I'm more confident changing the server calculations and here we are.

Previously each time you started your client, the accelerated time would start counting from your irl time at launch.  This change moves that to the server, so you could leave your server running to have a more live-like experience where you won't be sure of the in raid accelerated time until you log in.

Added benefit of significantly simplifying the `getInRaidTime()` code.

Future work could be done to add save/load support to the server's timestamp to further emulate the live experience where timers won't reset to your irl time unless you wipe the data.  I'd personally lean towards saving it at a server level, not a profile level, to allow multiple profiles to share a single 'wipe'.

-----------

Co-authored-by: OkaMoez <43766412+OkaMoez@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/205
Co-authored-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
Co-committed-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
2024-01-23 10:13:53 +00:00
Dev
32eb8ae35c Refactor handleRecipe() to use addItemToStash() 2024-01-21 20:51:00 +00:00
CZPZ
1551a5e793 feature: add probability for extra rep gain on pmc kills as pscav (!204)
Feel free to rename everything.

We can also use the new function from randomutil and replace code block below on InsuranceController.ts

```
        const maxRoll = 9999;
        const conversionFactor = 100;

        const returnChance = this.randomUtil.getInt(0, maxRoll) / conversionFactor;
        const traderReturnChance = this.insuranceConfig.returnChancePercent[traderId];
        const roll = returnChance >= traderReturnChance;
```

I killed 2 PMCs with 100% chance and gained 0.07 rep (rounding issue probably somewhere else)

![image](/attachments/00f00922-eb18-4fdc-8958-129b680af704)

Some JS problems :S

![image](/attachments/dcbeb1d1-2ee3-4809-890e-e19fe3190840)

Implements: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/150
Co-authored-by: alimoncul <alimoncul@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/204
Co-authored-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
Co-committed-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
2024-01-21 17:39:37 +00:00
Dev
c68c9a72fb Refactor handleScavCase() to use addItemToStash()
blacklist soft armor inserts from scavcase rewards
2024-01-21 16:40:14 +00:00
Dev
693dc4bbb5 Fix PMCs not spawning 2024-01-20 22:50:12 +00:00
Dev
910b5e946c Refactor removeResourceFromArea() to use addItemToStash() 2024-01-20 22:42:15 +00:00
Dev
d112d0fa6e Reworked openRandomLootContainer() to make use of addItemToStash() 2024-01-20 22:13:47 +00:00
Dev
399bbb2e3b Add framework for BTR config 2024-01-20 18:47:57 +00:00
Dev
1c9acbbc2e improve bot generation time 2024-01-19 19:21:51 +00:00
Dev
310762d66d Refactor airdrop loot generation to account for armor plate changes 2024-01-18 23:25:08 +00:00
Dev
43cbe45376 Make players PMC equipment id unique on profile creation 2024-01-17 15:05:01 +00:00
Dev
15be241dbf FIx premature exiting of loop 2024-01-16 19:00:21 +00:00
Dev
0166e30dd1 Reduce instances of IItemEventRouterResponse being passed into a function and then returned, its an object and passed by ref, no need to return it
Reduce instances of `IItemEventRouterResponse` being reassigned in a function

Rename `getMoney` to `giveProfileMoney`
2024-01-16 12:21:42 +00:00
Dev
818bb7e37a Refactored flea purchase code 2024-01-16 11:47:40 +00:00
Dev
825db77b1f Move trader purchases over to new system
Fix callback errors not being propigated into client error message
FIx incorrect offer id being passed into `buyItem`
Update callbacks to accept a `buyCount` parameter - solves trader purchase limits being exeeded prematurely
Exit addItemToStash early if warning/error found in output
2024-01-15 14:25:17 +00:00
Dev
47a84e508b Fix some quests failing twice (chemical part 4), reducing rep twice as much as it should
Quest failure is handled by client now, no need to find and fail quests in server on quest completion

Move `getQuestsFailedByCompletingQuest()` to questHelper
2024-01-14 12:29:58 +00:00
Dev
8b03faca89 Fix ragfair offers not saving upd properties
Create replacement for `addItem()`, only used for ragfair purchases currently - goal is to fully remove `addItem()`

Dont show warning when generating armor without a default plate on fence
2024-01-14 10:09:43 +00:00
Dev
bf148dba4a First pass at implementing Place of fame dogtag bonus, bonus is slight out from what is shown on client (0.0x out) 2024-01-13 16:41:06 +00:00
Dev
eb961b3e11 Fix saveEquipmentBuild() not correctly setting root id to first items _id 2024-01-12 17:18:10 +00:00
Dev
3b255f3ce4 Fix createMagazineTemplate failing when no userbuilds.magazineBuilds array exists 2024-01-11 11:53:19 +00:00
DrakiaXYZ
fcbd39c6b0 Remove delivered items from player insured items (!191)
This stops players from duplicating insured items via the BTR delivery service

Note: This does un-insure the item, I don't have any proof one way or the other for whether live causes the items to no longer be insured, but this was the easier solution to implement.

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/191
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-01-11 08:13:27 +00:00
Dev
219086d9bb Fix only one type of bot spawning 2024-01-10 21:08:00 +00:00
Dev
f66b2d04a9 Revert "This PR aims to resolves issue #280 (!190)"
This reverts commit e0e62d8e47e8ebaa62d3985fb72cf16b7d4e89bc.
2024-01-10 17:43:39 +00:00
Dev
7ee3be1e2b Round completeTime property to integer to prevent client error 2024-01-10 14:10:03 +00:00
Dev
c918875a38 Fix view profile not showing correctly 2024-01-10 13:53:26 +00:00
Dev
9a4231d8b8 Rename function profileHelper.removeCompletedQuestConditionFromProfile() to removeQuestConditionFromProfile 2024-01-10 12:37:34 +00:00
Dev
55eae60329 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-01-10 09:14:11 +00:00