Commit Graph

328 Commits

Author SHA1 Message Date
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 e0e62d8e47.
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
Dev
2fd2c677b7 Reduce usage of magic string inside getUserBuilds() 2024-01-10 09:13:34 +00:00
Mihai
e0e62d8e47 This PR aims to resolves issue #280 (!190)
Updated itemDelivery method in InraidController to filter out insured items from the items array using the insuranceService.
Added logic to exclude insured items from being sent as part of the delivery message to the player.

Co-authored-by: mihaicm93 <45673304+mihaicm93@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/190
Co-authored-by: Mihai <mihai@noreply.dev.sp-tarkov.com>
Co-committed-by: Mihai <mihai@noreply.dev.sp-tarkov.com>
2024-01-10 08:44:03 +00:00
Dev
507e8eeaa7 Improve comments 2024-01-08 11:35:20 +00:00
DrakiaXYZ
3401b4094e Initial commit of trader services structure (!187)
- Only contains BTR taxi and delivery services
- Super basic implementation, client doesn't seem to need anything except the service type for these
- Includes handling of the BTR Item Delivery service

Basic implementation can be merged and expanded on later, doesn't break anything by existing (Hopefully)

I've opted to add the routes to the `InRaid` controller/Callbacks, because it is a route only accessed within the raid. Seemed like it would be the best place for it

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/187
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-01-08 08:51:46 +00:00
Dev
ed82e9ed2f Halloween event fixes 2024-01-07 19:29:42 +00:00
Dev
bd60cf51e2 Fix event system not working for events other than halloween and christmas
Allow events to overlap

Rename config property from `enableWinterEvent` to `forceWinterEvent`
2024-01-06 23:29:42 +00:00
Dev
52a5380c33 Add botRelativeLevelDeltaMin to pmc.json to allow configuration of lowest level of pmc relative to player 2024-01-06 15:19:04 +00:00
Dev
009055ad24 Add missing aid value to IUserDialogInfo 2024-01-06 13:49:48 +00:00
Dev
4e21239de3 Improve accuracy of view profile 2024-01-06 13:40:00 +00:00
Dev
8ef405e551 Correctly implemented:
`client/builds/delete`
`client/builds/equipment/save`
`client/builds/weapon/save`

Updated `defaultEquipmentPresets` json data

Removed old 0.13 preset implementation files

profile-breaking change
2024-01-06 11:11:04 +00:00
Dev
d3afe0b6f3 Fix issue with completing a quest
Altered `addTimeLockedQuestsToProfile()` to not fail when checked quest has no `target` property
Altered `getNewlyAccessibleQuestsWhenStartingQuest()` to check all statuses of quest, not just first
2024-01-06 09:11:04 +00:00
Dev
2de4164a93 Improve comments of getQuestsFailedByCompletingQuest() 2024-01-05 22:59:01 +00:00
Dev
9fb747f5f6 Only check and remove repeatable scav quests from scav profile 2024-01-05 22:55:19 +00:00
Dev
bd373a993d FIx handing in quests failing 2024-01-05 22:52:11 +00:00