Event bots are generated from their base type, then their role is updated before being sent to the client e.g. peacefullZryachiyEvent becomes bossZryachiy for generation, then back to peacefullZryachiyEvent
- Implement formula based on 30 weapon repairs done on live
- Return the repair amount as `repairAmount` from `repairItemByKit`
- Add an additional `repairPoints` to `RepairDetails` to return the repair points used
- Update `repairAmount` references to `repairPoints` to keep old behavior
- Add new parameter to rewardSkillPoints that applies live-like level scaling
- Only give weapon maintenance XP when using a repair kit
This implementation comes with a "Crit Fail" and "Crit Success" mechanic to account for live sometimes randomly being -4 or +4 off from my estimated values. By default the chance of each is 10%, and they can overlap and cancel each other out
Spreadsheet of live repair data:
https://docs.google.com/spreadsheets/d/1-tR4WYelhZfKZ3ZDbxr3nd73Y60E1wQRjDWONpMVSew/edit?usp=sharing
Useful columns:
C: The amount of dura attempted to be repaired, this is used in the estimated skill calculated
G: Hand entered value of how much skill gain I actually saw on live (Multiplied by 10 for readability. So "3.2" would be "32")
J: The estimated skill gain, based on the calculation included in this merge request
K: How far off the estimated skill gain was (Negative implies we guessed high and the actual result was lower)
One thing of note:
I've modified all the existing references to `repairAmount` to be the new `repairPoints` when a repair kit is used. This is to keep the existing behaviour outside of my direct changes as much as possible.
However, this seems to be incorrect in some cases (For example, buff chance is repairPoints/maxDura, but repairPoints will go down the higher your int. I'm assuming this is meant to be repairedDura/maxDura). May want to update these references to use `repairAmount` once they've been confirmed to expect the repair amount instead of repair points used.
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/164
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Only adds lower when weapon has no launcher attached
Adjust sub stock adding code to trigger when stock has a subslot that starts with `mod_stock`, this means `mod_stock_akms` and `mod_stock_000` will be included
That error caused game freeze because of server exception after played scav death or after successful extraction of played scav
Co-authored-by: ElRabbito <you@example.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/149
Co-authored-by: ElRabbito <elrabbito@noreply.dev.sp-tarkov.com>
Co-committed-by: ElRabbito <elrabbito@noreply.dev.sp-tarkov.com>
Added a new range for weekly elimination, intead of having two, `1-15, 16+`, we have` 1-15, 16-40, 17+`
weekly elimination kill count requirements went way up
body part targeting is lower for low level weeklies, no change at high level
disabled specific weapon requirement for all elimination quests
level 1-15 weekly quests will target scavs more
Signed-off-by: bili@育碧苏联Ubisoviet
server strings are translated. player chat message WIP
Co-authored-by: Your Name <you@example.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/131
Co-authored-by: ghost114514 <ghost114514@noreply.dev.sp-tarkov.com>
Co-committed-by: ghost114514 <ghost114514@noreply.dev.sp-tarkov.com>
Missed adding the new event bots to PMC's enemyType, and put bossZryachiy where appropriate.
Co-authored-by: Akrotluv <60285080+Akrotluv@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/109
Co-authored-by: Sister-Fister <sister-fister@noreply.dev.sp-tarkov.com>
Co-committed-by: Sister-Fister <sister-fister@noreply.dev.sp-tarkov.com>
Add crazyAssaultEvent to itemSpawnLimits, lootNValue.
Added crazyAssaultEvent bot equipment (NVGs/lasters/lights/faceshield) chances, armor & weapon durabilities and weaponModLimits, homebrewed values for what I thought would of been an okay compromise between cocaine huffing scav and a cocaine hugging Rogue.
Added crazyAssaultEvent bot (min:5/max:10), and arenaFighter & arenaFighterEvent (min:0/max:0) into convertIntoPmcChance.
Added (but disabled) arenaFighter, arenaFighterEvent and crazyAssaultEvent bot types to the pmcType.
Notes:
Dunno what other files I'll need to edit, but this was mostly to fix error spam I encountered on Shoreline in response to crazyAssaultEvent bots not having equipment and NLoot values. Seemed like it killed the population to, but could be unrelated.
I have NO clue how cracked the Bloodhounds/Arena and Crazy Assault AI would be in the hands of the PMC bots, although anything funny, I need to know and witness it with the Deer God, lol.
Values are obviously temporary, just things that kinda made sense to me at the time. No idea what the Crazy Assault Event was like, so...
Co-authored-by: Akrotluv <60285080+Akrotluv@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/108
Co-authored-by: Sister-Fister <sister-fister@noreply.dev.sp-tarkov.com>
Co-committed-by: Sister-Fister <sister-fister@noreply.dev.sp-tarkov.com>
Add new function in dialog helper for getting dialogs frm profile - creates empty object if none found
Set gift collection time to 48 hours if none supplied
Added fail state to colleagues p3
Reworked loop inside `getQuestsFailedByCompletingQuest()` to use .some() instead
Reworked `failQuests()` to check all fail conditions instead of just the first one
Slight weapon variety improvement for PMCs
Only generate backpack loot if bot has backpack - reduces warnings during botgen
Move warning mesage to debug
Add sanitar medkit to pmc blacklist
Pass ur to warning message when endpoint body fails json validation
Pass sessionId into `locationController.generateAll()` to help modders when overriding function
Test - Added grizzly x5 to PMC secure containers to see if they heal more when damaged
Added flag to enable deletion of modded items from profile - default is off
Fixed issue where loop would stop checking for modded items after finding the first item
Its missing minor characters that display an error in the console for the latest 3.6.0 BE version.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/104
Co-authored-by: props <props@noreply.dev.sp-tarkov.com>
Co-committed-by: props <props@noreply.dev.sp-tarkov.com>
Rework season service to use enum instead of magic strings for event names
Add config property to control showing/hiding non-seasonal event quests from player
Also re-ordered some of the lines to match EN locales.
Co-authored-by: harmony <hattrix@yandex.ru>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/102
Co-authored-by: Andrew <hrm@noreply.dev.sp-tarkov.com>
Co-committed-by: Andrew <hrm@noreply.dev.sp-tarkov.com>
Including a bit of typo fixes
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/100
Co-authored-by: Andrew <hrm@noreply.dev.sp-tarkov.com>
Co-committed-by: Andrew <hrm@noreply.dev.sp-tarkov.com>
"Ton stuff etait tellement claqué au sol je l'ai vendu a Fence"
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/99
Co-authored-by: BALIST0N <balist0n@noreply.dev.sp-tarkov.com>
Co-committed-by: BALIST0N <balist0n@noreply.dev.sp-tarkov.com>
Add 2x event quests - Bloodhounds + hint (start at level 25 - not same as live)
Add arean fighters to woods/customs/shoreline
Adjust reseve bot chances
Add arean fighyer bot json data
Re-generate quests.json using a dump containing a hand written 'Green Corridor' and 'Special Equipment' quest, and my latest changes to the quest generator
There are a few cases where an 'index' was updated, this is due to my prior changes now depending on the last index in the list, and my previous changes removing some requirements. The 'index' changes should be minimal after this commit though
Custom modified quest dump:
1f7ebc2ced/0000000000resp.client.quest.list_2023-02-26_14-26-26_newquests.json
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/94
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
This is a quests.json generated using my latest changes to the Quest Generator, along with some hand changed reward values (Since those are pulled from the dump). Sorry about Gitea's web interface freaking out around the Collector part of the diff.
The following are the changes applied via the Quest Generator + manual modification:
- 'Sanitary Standards - Part 2' now also requires 'Operation Aquarius - Part 2'
- 'Stirrup' now requires 'Supplier' instead of 'The Extortionist'
- 'Loyalty Buyout' now only depends on failing 'Chemical - Part 4'
- 'The Cult Part 1' now requires 'Friend from the West - Part 2' instead of 'Eagle Eye'
- 'Gunsmith Part 8' no longer requires 'Gunsmith Part 6'
- 'Gunsmith Part 8' and 'Gunsmith Part 6' names reversed
- 'The Blood of War - Part 1' now also requires 'Make ULTRA Great Again'
- 'Database - Part 1' now also requires 'Big Sale'
- 'Lend-Lease - Part 1' now requires 'Humanitarian Supplies' instead of 'Friend from the West - Part 2'
- 'Tarkov Shooter - Part 1' now requires 'Acquaintance' instead of 'Survivalist Path - Unprotected'
- 'Decontamination Service' now also requires 'Health Care Privacy - Part 5'
- 'Huntsman Path - Woods Cleaning' renamed to 'Hunstman Path - Forest Cleaning'
- 'Nostalgia' now also requires 'Spa Tour - Part 3'
- 'Survivalist Path - Junkie' now requires 'Survivalist Path - Combat Medic' instead of 'Survivalist Path - Cold Blooded'
- 'Samples' now also requires 'Friend From the West - Part 2', and has no level requirement
- 'Chemistry Closet' now also requires 'Anesthesia'
- 'Hunter' now also depends on 'Hunstman Path - Secured Perimeter', and has no level requirement
- Fixed names of 'Revision' tasks
- 'Revision - Reserve' now depends on 'Humanitarian Supplues' and 'Friend from the West - Part 2' instead of 'Eagle Eye'
- 'Documents' no longer requires 'Ice cream cones', and has no level requirement
- 'No place for renegades' no longer requires 'Ice cream cones'
- 'Back Door' now requires 'Scout' instead of 'Surplus Goods'
- 'Pest Control' now requires 'Reserve'
- 'Trophies' now requires 'The Guide' instead of 'Hunstman Path - Forest Cleaning' and level 55
- 'Energy Crisis' no longer requires 'Postman Pat Part 2' and now requires level 25
- 'Revision - Lighthouse' no longer requires 'Eagle Eye'
- 'Cease Fire!' now requires 'The Delicious Sausage'
- 'Huntsman Path - Eraser - Part 2' no longer requires 'Huntsman path Secured perimeter'
- 'Information Source' now requires 'Getting Acquainted' instead of 'Knock Knock'
- 'Getting Acquainted' now requires 'Knock Knock'
- 'The Stylish One' now requires accepting 'The Huntsman Path - Sellout'
- 'Season Vacation' no longer requires 'Pharmacist', and now requires level 17
- 'Collector' quest is implemented with the requirements listed on the wiki
- 'Silent Caliber' now requires level 30
- 'Regulated Material' now requires level 25
- 'Anesthesia' now requires level 21
- 'Colleagues Part 1' now requires level 21
- 'Rigged Game' no longer has a level requirement
- 'Bunker Part 1' now requires level 10
- 'Bunker Part 2' now requires level 11
- 'Safe Corridor' now requires level 15
- 'Escort' now requires level 60
- 'Capturing Outposts' now requires level 42
- 'Intimidator' now requires level 45
- 'Crisis' now requires level 48
- 'The Cleaner' now requires level 45
- 'Calibration' now requires level 47
- 'The Courier' now requires level 52
- 'Long Line' now requires level 45
- 'The Choice' now requires level 50
- 'Corporate Secrets' now requires level 17
- 'Long Road' now requires level 20
- Remove level requirement from 'Textile Part 2' and 'Textile Part 1', as it's implicitly level locked via loyalty requirement from 'Textile Part 1' (As per dump)
- 'No offence' no longer has a fail reward
- Update 'Huntsman Path - Trophy' XP 7100 -> 15300
- Update 'Huntsman Path - Sell-out' XP 7200 -> 18000
- Update 'Huntsman Path - Woods Keeper' XP 7300 -> 18000
- Update 'Huntsman Path - Justice' XP 7200 -> 12300
- Update 'Huntsman Path - Eraser Part 1' XP 8900 -> 18300
- Update 'Textile Part 1 - Bear' XP 0 -> 32000
- Update 'Textile Part 2 - Bear' XP 0 -> 34800
- Update 'Pest Control' XP 7400 -> 15300
- Update 'The Courier' XP 115000 -> 137000
- Update 'Stray Dogs' XP 12000 -> 30500
- Update 'Road Closed' Roubles 64000 -> 62300
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/93
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Correction of mistakes/typos/missing words/weird formulation without adding any new lines.
New lines probably added and translated to copycat the Eng version in next commit (PMC chat dialogues will be funny to do ^^)
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/91
Co-authored-by: Morphine <morphine@noreply.dev.sp-tarkov.com>
Co-committed-by: Morphine <morphine@noreply.dev.sp-tarkov.com>
Fixed bug with removing offers from flee and item returning too quickly.
Fixed bug with error message that would show on removal of offers.
Expose property expireSeconds in ragfair.json.
Co-authored-by: Kaeno <>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/86
Co-authored-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Co-committed-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Store bots spawned in raid inside cache (`MatchBotDetailsCacheService`)
Clear cache after raid
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/81
+ Fixed a typo in `createRandomloot()` function name
+ Added more generically named`getWeightedValue()` function as future replacement for `getWeightedInventoryItem()`
+ Changed `LootRequest` into interface
Added:
Weapon/armor
Barter
Medical/Food
Mixed
Localise description text
Add `IConnectResponse` object for LauncherController.connect()
Move server name into core.json config
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/70
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: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/63