Skip to content

4.1.9 (15.25)

Latest

Choose a tag to compare

@jprzimba jprzimba released this 20 Oct 11:43
14d0629

Game Client
Compatible RME

What's Changed

  • feat Game Protocol 15.25 with Vocation Balancing Charges by @jprzimba in #788
  • feat: global storage command by @Paco161315 in #814
  • fix: Replace dynamic arrays with vectors in MatrixArea by @jprzimba in #815
  • fix: Security vulnerabilities and bugs in Lua code by @jprzimba in #816
  • fix: Refactor Emael NPC inbox check and fix getTopic bug by @jprzimba in #820
  • fix: action script bugs and extend enchanting by @jprzimba in #823
  • fix: Safely iterate shopPlayers when closing shops by @jprzimba in #821
  • fix: Delegate Bakragore icon sending to sendIcons by @jprzimba in #817
  • fix: Unify spell damage formulas to use basePower by @jprzimba in #824
  • fix: Prevent zero light level / division by zero by @jprzimba in #822
  • fix: Optimize player GUID lookup with direct index by @jprzimba in #819
  • fix: Remove item IDs from enchanting registration by @jprzimba in #827
  • fix: cd reduction perk by @GuiValladao in #831
  • Fix the bounty task creature list by @gilrer1 in #830
  • fix(protocol): prevent bestiary request dispatcher stall by @zeroskyer in #832
  • Add missing items.xml entry for primal pod (id 39176) by @servant777servant in #835
  • fix: whacking driller of fate by @Paco161315 in #825
  • fix: Energuardian of Tales missing Inkborn bestiary class by @servant777servant in #836
  • fix: food regen and simplify logic by @jprzimba in #833
  • fix: familiar spell names by @jprzimba in #839
  • improve: Rottin Wood and the Married Men Quest by @GuiValladao in #838
  • fix: Database Connection Pool by @jprzimba in #803
  • fix: Paralyze condition ticks/formula applied to combat instead of condition (broken slow) by @jprzimba in #841
  • fix: Tile::addThing ground-replacement captures a reference to the ground member instead of a copy by @jprzimba in #840
  • fix: Grimvale spectator teleport event handling by @jprzimba in #842
  • fix: async lion's rock field player context by @jprzimba in #843
  • fix: Prevent duplicate raid spawns using executedRaids by @jprzimba in #844
  • fix: Prevent nil attacker crash in SoulCage health by @jprzimba in #845
  • fix: Guild Deposit by @jprzimba in #846
  • fix: Guard against null tile in sendUpdateTileCreature by @jprzimba in #849
  • fix: Guard divide-by-zero in player exp rate by @jprzimba in #850
  • fix: Agony damage case in DamageToConditionType by @jprzimba in #847
  • fix: Add index bounds checks in unserializeProp by @jprzimba in #848
  • fix: Stash withdraw removes from stash before placement, shortfall silently destroyed (item loss) by @jprzimba in #851
  • improve: hot cuisine quest by @GuiValladao in #853
  • fix: Proficiency perk skillPercentageAsExtraDamageForAutoAttack never boosts damage by @jprzimba in #855
  • fix: Underflow in wheel points calculation by @jprzimba in #856
  • feat: Add configurable Lua debug hook by @jprzimba in #857
  • fix: Bounds checks for int8/uint8 parsing by @jprzimba in #858
  • fix: Prevent reads on closed sockets; handle XTEA fail by @jprzimba in #859
  • fix: Report storeQuery success correctly by @jprzimba in #860
  • fix: itemsClassifications memory leak by @jprzimba in #861
  • fix: Use atomic operations for task ID generation by @jprzimba in #862
  • fix: Resend player map description on map load by @jprzimba in #864
  • fix: Add raceId and bosstiary metadata for The Unwelcome by @jprzimba in #865
  • fix: docker compose build is broken (exit 126, then exit 1) by @msholl in #867
  • fix: Tibia Coins cannot be offered on the market (resource 0x5B never sent) by @msholl in #868
  • fix: Dawnport key ID check by @jprzimba in #874
  • fix: Some Soul War bugs by @jprzimba in #875
  • fix: Andrew Lyze: lets player craft compass without all required items by @jprzimba in #873
  • fix: Respect PZ-lock before teleport and fix nil check by @jprzimba in #878
  • fix: Apply Wheel damage reduction multiplier to damage by @jprzimba in #869
  • fix: Item::transform crash on invalid target id by @jprzimba in #870
  • fix: Use unique_ptr for Lua testInterface by @jprzimba in #871
  • fix: Invalidate spectator lists on range expand by @jprzimba in #872
  • fix(config): let rateLoot accept decimal values by @msholl in #877
  • fix: Guard against null tile item list by @jprzimba in #880
  • fix: Remove duplicate combat effect for ice crystal bomb by @jprzimba in #876
  • fix: Spawn removal and Optimize creature checks by @jprzimba in #866
  • fix: Improve manage_monster and use creature reload by @jprzimba in #881
  • fix: null dereference in updateSaleShopList by @jprzimba in #883
  • fix: reclaimExcessPoints() early-returns when !canOpenWheel by @jprzimba in #884
  • fix: Safeguard bank transactions and Lua money validation by @jprzimba in #885
  • fix: Bump White Raven Passage storageValue to 2 by @jprzimba in #886
  • fix: creature log, item move, and capacity checks by @jprzimba in #888
  • fix: Lua returns, base64 errors, and buffer checks by @jprzimba in #889
  • perf: Optimize blue shield zone check by @jprzimba in #891
  • perf: Rotten Blood checkPlayersInZonePutrefactory by @jprzimba in #892
  • fix: Add config keys, optimize setter, and null checks by @jprzimba in #894
  • fix: Webhook holds taskLock across blocking synchronous curl HTTP call, stalling the game thread by @jprzimba in #890
  • fix: underflow and pointer bugs in Player by @jprzimba in #882
  • fix: Guard container depth and stackable/tile bugs by @jprzimba in #887
  • feat: A Piece of Cake Quest by @GuiValladao in #895
  • fix: Pass targets by const&; call monster.getMonsterType by @jprzimba in #893
  • feat: minor bug fixes by @Paco161315 in #898
  • perf: Use async queries in player death handler by @jprzimba in #896
  • fix: Duplicated rateExerciseTrainingSpeed load call by @jprzimba in #899
  • fix: Recompute server save time inside raid onThink by @jprzimba in #897
  • feat: new god commands by @Paco161315 in #904
  • fix: party protection pzlock by @Paco161315 in #901
  • fix: storages, npcs, dialogs, quest stages and more by @Paco161315 in #903
  • fix: Chain visual effect to combat chain by @jprzimba in #905
  • feat: shadows of yalahar quest by @GuiValladao in #906
  • fix: soul cores by @Paco161315 in #910
  • fix: register the !time talkaction by @aacruzgon in #913
  • fix: vcpkg path setup for MSBuild by @jprzimba in #916
  • fix: gold exploit on bow and inkwell NPC prices by @aacruzgon in #914
  • update: the new frontier quest by @Paco161315 in #900
  • fix: DBResult::getNumber returns 0 for time_t on macOS by @aacruzgon in #911
  • feat: macOS build support by @aacruzgon in #912
  • feat: multi world system by @jprzimba in #451
  • ci: add macOS build workflow by @aacruzgon in #924
  • chore: ignore macOS .DS_Store files by @aacruzgon in #923
  • fix: playerLeaveParty negates the zone type instead of comparing it by @aacruzgon in #922
  • fix: db_version never advances, so migrations re-run on every boot by @aacruzgon in #921
  • fix: rookgaard status healing npcs by @Paco161315 in #920
  • fix: pugi::cast does not compile with libc++ by @aacruzgon in #926
  • fix: load map items with decay by @GuiValladao in #915
  • feat: The Isle of Evil Quest by @GuiValladao in #919
  • feat: char bazaar auction setup from the game client by @htc16 in #918
  • fix: Revert lua format by @jprzimba in #928
  • update: doors table by @Paco161315 in #930
  • fix: Hirelings load by @jprzimba in #933
  • update: dire penguin raids by @Paco161315 in #931
  • feat(startup): declare map ids and container contents in the tables by @htc16 in #932
  • fix: resolve startup entry and lever conflicts reported by the map id… by @htc16 in #937
  • fix: pits of inferno bosses by @Paco161315 in #939
  • feat(look): name the script that answers for an item by @htc16 in #938
  • fix: Initialize player cooldown timers on login by @jprzimba in #935
  • feat(core): add database player concurrency lock to prevent web/game race conditions by @berrytern in #908
  • fix: Stop reseeding RNG in DropLoot by @jprzimba in #934
  • fix: player corpse names the killing monster instead of the oldest attacker by @servant777servant in #942
  • feat(market): add asynchronous web market order queue processor (IOMarket::processWebOrders) by @berrytern in #909
  • fix: Add market web order table by @jprzimba in #946
  • fix: correct requireSharedExperience typo in Participants() function by @Jah-yee in #956
  • fix: wrath of the emperor quest mission 02 by @Paco161315 in #952
  • fix: Add setters and mutable combat fields by @jprzimba in #945
  • feat: Add Character Bazaar config and bindings by @jprzimba in #944
  • fix: Metrics counters, format house SQL by @jprzimba in #958
  • fix: summer courts storage by @Paco161315 in #951
  • feat: add blessings command by @Paco161315 in #950
  • fix: monsters by @Paco161315 in #953
  • fix: Allow Store Inbox returns; enlarge OWNER attr by @jprzimba in #957
  • fix(analyzers): credit healing, shield absorption and second elements correctly by @Deividy in #960
  • fix: the ape city quest by @Paco161315 in #965
  • fix: shadows of yalahar quest by @Paco161315 in #966
  • fix: children of the revolution quest by @Paco161315 in #967

New Contributors

Full Changelog: 4.1.8...4.1.9