Commit Graph
632 Commits
Author SHA1 Message Date
Céfiro_Caecias 111469f03e Update worldserver.conf.dist 2026-02-27 04:06:42 -03:00
Céfiro_Caecias 13ba84afe3 Update 2026_02_16_00_housing_world.sql 2026-02-27 04:04:44 -03:00
luis 03c7107cc3 db errors 2026-02-27 03:29:53 -03:00
luis e44463a0c2 Housing: Fix RequestStorage response and verify all wire formats against sniff
Sniff-verified all housing decor SMSG wire formats against 3 PKT captures
(108k+ packets). All formats confirmed correct except RequestStorageResponse
which sent the player's BNet account GUID instead of empty.

Changes:
- RequestStorageResponse: Send ObjectGuid::Empty for BNetAccountGuid (sniff
  shows 00 00 = empty packed GUID in all cases)
- RequestStorage handler: Now also sends GetPlayerHousesInfoResponse after
  StorageRsp (sniff shows both 0x510006 + 0x54000B sent together)
- Fixed in HousingHandler.cpp (3 places) and NeighborhoodHandler.cpp (1 place)
- Added new SQL files for neighborhood spawns and housing templates
- Added HouseInteriorMap source files
2026-02-27 03:21:32 -03:00
luis 7fd688721f debug log 2026-02-27 02:15:32 -03:00
Aqua Deus 1c1ed8181c Scripts/Spells: Implement dh talent "Voidglare Boon" (#31660)
Signed-off-by: luis <[email protected]>
2026-02-27 00:35:51 -03:00
Aqua Deus 542afbf0e5 Scripts/Spells: Implement dh talent "Void Ray" (#31659)
Signed-off-by: luis <[email protected]>
2026-02-27 00:34:58 -03:00
Shauren 92b018f2ad Dep/jemalloc: Update to 5.3.0
Closes #31684

Signed-off-by: luis <[email protected]>
2026-02-27 00:31:56 -03:00
luis b25353548a Core: Updated allowed build to 12.0.1.66102 2026-02-27 00:31:21 -03:00
luis 6a34442a6e new table 2026-02-27 00:15:35 -03:00
luis 4cddef819d debug log 2026-02-27 00:13:55 -03:00
luis 530f5f61b4 fix load 2026-02-27 00:11:38 -03:00
luis a459654d5f Full db2 fix 2026-02-27 00:06:13 -03:00
luis 5579030738 fix db2 and hotfix todo GarrType.db2 2026-02-26 23:52:15 -03:00
luis 317c14278c fix all char db errors now i will do hotfixes 2026-02-26 23:27:07 -03:00
luis 2cdf4ecbb3 Fix character_garrison_talents 2026-02-26 23:19:00 -03:00
luis e9b62ac438 bpet fix 2026-02-26 23:15:19 -03:00
luis 16d10ae028 Fix build untill housing get finished 2026-02-26 23:14:43 -03:00
luis a0000aad49 Pet Battles: Fix trap animation, captured pet health, and add Newbie achievement 2026-02-26 23:11:07 -03:00
luis a02a04b4cd Pet Battles: Fix wild team size, capture mechanics, and battle end flow 2026-02-26 23:11:07 -03:00
Céfiro_Caecias 446bc9dedb Update README.md 2026-02-26 08:38:51 -03:00
luis bc124a3b68 feat(warband): Phase 8 - Armor-type agnostic transmog 2026-02-25 22:10:31 -03:00
luis bcc1618159 Phase 7 - Account-wide achievements
Add warband_achievement and warband_achievement_progress tables for
account-level achievement storage. On login, merge account-wide
achievements and criteria progress from warband tables. Titles from
account-wide achievements are retroactively granted to all characters.
Existing per-character account-wide achievements are promoted to
warband tables on first login after migration.
2026-02-25 22:08:51 -03:00
Shauren 4fb3b19844 Core/AreaTriggers: Fixed crashes caused by areatrigger OnUnitEnter/OnUnitExit scripts teleporting players to other maps
Signed-off-by: luis <[email protected]>
2026-02-25 21:29:31 -03:00
Shauren b561055a1a Core/Spells: Update CAST_FLAG_NO_GCD flag implementation
Signed-off-by: luis <[email protected]>
2026-02-25 21:28:51 -03:00
Jeremy 56377e3cab Scripts/Spells: Implement Execute damage and Improved Execute (arms) (#31658)
Signed-off-by: luis <[email protected]>
2026-02-25 21:28:27 -03:00
Aqua Deus 8c6e61f697 Scripts/Spells: Implement dh talent "Shift" (#31656)
Signed-off-by: luis <[email protected]>
2026-02-25 21:27:52 -03:00
Aqua Deus 22174b73a3 Scripts/Spells: Implement dh talent "Voidblade" (#31654)
Signed-off-by: luis <[email protected]>
2026-02-25 21:27:29 -03:00
Aqua Deus 543979c0e0 Scripts/Spells: Fix power gain for dh talent "Consume" (#31653)
Signed-off-by: luis <[email protected]>
2026-02-25 21:26:54 -03:00
luis f3fcbd4a15 feat(warband): alt XP bonus for leveling characters 2026-02-25 21:02:37 -03:00
luis 69903f1a33 feat(warband): account-wide flight path sharing
Discovered flight paths are now shared across all characters on the same
Battle.net account. On login, each character merges the account-wide taxi
mask into their own. When a new node is discovered, the account mask is
updated immediately. Nodes with TaxiNodeFlags::NotAccountWide are excluded.

- Add warband_taxi_mask table (one row per bnet account)
- Add PlayerTaxi::MergeAccountTaxiMask() and LoadTaxiMaskFromString()
- Merge account taxi mask during Player::LoadFromDB
- Save character's merged mask back to account on Player::SaveToDB
- Update account mask on SendLearnNewTaxiNode/SendDiscoverNewTaxiNode
2026-02-25 20:59:28 -03:00
luis 864cd83195 Currency: Implement warband currency transfer handlers
Add full handler implementations in CurrencyHandler.cpp:
- HandleRequestCurrencyDataForAccountCharacters: queries all same-account
  characters' transferable currencies and sends to client
- HandleTransferCurrencyFromAccountCharacter: validates source character
  ownership, currency transferability, balance checks, applies transfer
  percentage, updates source via DB and destination via ModifyCurrency,
  logs transfer to warband_currency_transfer_log
- HandleGetCharacterCurrencyTransferLog: queries and returns recent
  transfer history for the bnet account
2026-02-25 20:54:52 -03:00
luis 9087650fe4 Currency: Add schema, packets, opcodes and feature flag for warband currency transfer
Add infrastructure for account-wide currency transfer system:
- warband_currency_transfer_log table and prepared statements
- AccountCurrencyTransferResult enum in SharedDefines.h
- IsAccountWide/IsAccountTransferable helpers on CurrencyTypesEntry
- Remove NYI from CurrencyTypesFlags::AccountWide
- 6 packet classes (3 CMSG + 3 SMSG) in MiscPackets
- Wire 6 opcodes to real handlers
- Enable IsAccountCurrencyTransferEnabled feature flag
- Stub CurrencyHandler.cpp with placeholder implementations
2026-02-25 20:52:06 -03:00
luis b9f324b0e9 Implement account-wide reputation load/save in ReputationMgr
Add ReputationMgr methods for warband-wide reputation sharing:
- LoadAccountWideFromDB: merges account highest standings into character
  reputation on login, syncing both regular and renown factions
- SaveAccountWideToDB: upserts warband_reputation when character's
  standing exceeds the stored account-wide maximum
- Login query for account reputation via LoginQueryHolder
- Renown factions compare level first, then standing as tiebreaker
- Regular factions compare standing delta directly
2026-02-25 19:54:02 -03:00
luis 6e05280d1a Add warband reputation schema, statements, and faction config
Add database tables and ObjectMgr infrastructure for account-wide
reputation sharing:
- warband_reputation_faction (world DB): eligible factions config
- warband_reputation (characters DB): per-account highest standings
- Prepared statements for both world and character databases
- ObjectMgr::LoadWarbandReputationFactions() called at startup
- Pre-populate with TWW renown factions (2570, 2590, 2594, 2600)
2026-02-25 19:34:08 -03:00
luis fcac505c8a Pet Battles: Fix pet level/stats/XP persistence and capture saving
Fix several bugs causing battle pet progression to not persist:

- Reorder logout cleanup so battle resolution (FinishBattle + XP award)
  happens before journal lock release, ensuring XP is applied on disconnect
- Add captured wild pets to player journal via AddPet() on successful trap
- Keep slot pet data in sync with _pets map after level-up, health sync,
  quality change, and healing to fix stale criteria/display data
- Change mid-level-up GameTable miss from hard return to break so partial
  XP is still saved
- Add diagnostic logging (battlepet category) for save/load/XP operations
2026-02-25 19:26:10 -03:00
luis 6e7843831b update still not build 2026-02-25 19:17:45 -03:00
Céfiro_Caecias 27a13f5ebf Update README.md 2026-02-25 18:40:09 -03:00
luis 75265487e9 Housing update part 1 at night i fix build 2026-02-25 13:30:00 -03:00
luis e2c633975e AddSC_npc_garrison_bodyguard 2026-02-25 13:10:24 -03:00
luis 20e77f6117 Garrison: Complete 100% Blizzlike implementation
Implements all remaining garrison subsystems for full Blizzlike coverage:

- 17 garrison spell effects (upgrade, add mission, follower XP/quality/abilities,
  building construction, shipments, talents, item level upgrades)
- Building swap between same-type plots
- Follower item level upgrade system with GarrItemLevelUpgradeData support
- Building-specific mechanics: Barracks extra follower slots (+5/+10),
  Salvage Yard crate drops from missions, Inn/Tavern treasure missions
- Bodyguard companion system (follows player in Draenor, assists in combat)
- Party garrison (visit group leader's garrison)
- Invasion wave system with 3 invasion types and GM commands
- Stub handler completions (monument revert, pet name, talent unlocks)
- Targeted event packets replacing heavy GetGarrisonInfoResult sends
- Auto-combat simulator for adventure missions
2026-02-24 22:38:52 -03:00
luis 3849b795db Initial char garrisons dont touch is work in progress will finish tomorrow 2026-02-24 21:23:48 -03:00
luis 49b0d7a5ec Garrison: Phase 1 - Complete WoD core systems and multi-garrison framework
Load 12 new Garr* DB2 stores (GarrBuildingDoodadSet, GarrFollItemSetMember,
GarrFollowerLevelXP, GarrFollowerQuality, GarrFollowerType,
GarrItemLevelUpgradeData, GarrMissionSet, GarrMissionType,
GarrMissionXFollower, GarrMssnBonusAbility, GarrSpecialization, GarrType)
across the full loading pipeline.

Implement Garrison::Upgrade() for WoD level 1-3 progression with cinematic
playback, building persistence across level transitions, and plot respawning.

Replace hardcoded follower XP formula with DB2-driven progression using
GarrFollowerLevelXP and GarrFollowerQuality stores, including quality
upgrades with ability re-rolling at tier boundaries.

Add follower custom name persistence (customName column) and mission
required follower validation via GarrMissionXFollower index.

Refactor to multi-garrison framework: Player stores map of garrisons keyed
by GarrisonType, GetGarrison() defaults to WoD for backwards compatibility,
GetGarrisonInfo sends data for all garrison types to client.
2026-02-24 21:19:27 -03:00
luis ccd87a786a Pet Battles: Fix battle end rewards and flow ordering from sniff comparison
Fix 5 data correctness issues and 1 flow ordering issue found by comparing
against a retail 12.0 NPC trainer battle sniff:

- AwardedXP: set true for all pets (both teams) via CanAwardXP(), not just
  the winner team
- NpcCreatureID: use trainer NPC entry (via GetNpcTrainerGUID) instead of
  pet species CreatureID
- SeenAction: set false for all pets (matches sniff)
- Remove HealBattlePetsPct(50) auto-heal — sniff shows dead pets stay at 0
- Split end flow: FinalRound packet sent immediately, but Finished packet,
  health sync, and journal update deferred until client sends FinalNotify
  (player must click OK on results screen)
- Add logout cleanup in WorldSession::LogoutPlayer for disconnect safety

CompleteBattle() centralizes the FINISHED transition, Finished packet,
health sync, and journal send — used by FinalNotify handler, forfeit
handler, and logout cleanup.
2026-02-24 21:04:57 -03:00
luis 38d39582fa db playerhousing data 2026-02-24 20:40:30 -03:00
luis ee426ecb0a buildfix 2026-02-24 20:28:36 -03:00
luis 6975a848c5 Housing: Extract real NeighborhoodPlot DB2 data, fix neighborhood naming 2026-02-24 20:12:28 -03:00
luis bd132e93f2 Housing: Add periodic neighborhood expansion check in World::Update 2026-02-24 20:09:11 -03:00
luis d5bb0004b2 Housing: Sniff cross-reference fixes, complete MIRROR_VARS, neighborhood naming 2026-02-24 20:07:28 -03:00
luis c13274e770 Housing: Add missing MIRROR_VARS float game rules, note version caveats 2026-02-24 19:59:59 -03:00