Commit Graph
795 Commits
Author SHA1 Message Date
luis d4469ef442 azure vault 2026-02-27 21:31:11 -03:00
luis 6ebdb785c9 Full aberrus 2026-02-27 21:26:20 -03:00
luis 7a6ab1a3d5 66192 2026-02-27 20:54:15 -03:00
Cristian Vintila a880830954 Scripts/Spells: Update priest talent Evangelism implementation (#31661)
Signed-off-by: luis <[email protected]>
2026-02-27 20:34:08 -03:00
Cristian Vintila 92e66cbb2a Core/Spells: Set CAST_FLAG_EX_DONT_CONSUME_CHARGES for spells ignoring cds (#31686)
Signed-off-by: luis <[email protected]>
2026-02-27 20:33:03 -03:00
luis d7a5e52d71 Garrison: Fix 9 discrepancies found via WoD sniff analysis (12.0.1.66102)
P0: Fix mission rewards double-write in GetGarrisonInfoResult — inline
    Encounters/Rewards/OvermaxRewards are now cleared in mission structs
    sent via GarrisonInfo; rewards go only in the garrison-level parallel
    arrays, preventing client packet desync.

P1: Populate FollowerSoftCaps with 5 entries matching retail sniff data.
    Implement SMSG_GARRISON_MISSION_START_CONDITION_UPDATE packet and send
    it after GetGarrisonInfoResult. Update CMSG_GARRISON_START_MISSION
    Read() for 12.0.1 per-follower struct format (BoardIndex/Health/
    HasFollowerEntry), remove obsolete MissionBonusAbilityIDs.

P2: Implement SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY packet, used by
    SetFollowerQuality. Send blueprint data for all garrison types.
    Read GarrTypeID in CMSG_GARRISON_CHECK_UPGRADEABLE and look up the
    correct garrison by type.

P3: Add FOLLOWER_TYPE_DELVES (22) enum value. Fix building removal
    packet ordering — GarrisonBuildingRemoved now sent before
    ClearBuildingInfo (PlotRemoved) when replacing a different type.
2026-02-27 20:31:25 -03:00
luis 13e2635433 Pet Battles: Fix capture flow in multi-pet battles and buff/stat modifier system
Battle no longer gets stuck after capturing a wild pet when other wild
pets are still alive. The captured pet is marked and the wild team
auto-swaps to the next alive pet, continuing the fight.

Buff/debuff auras are now visible and mechanically applied:
- Add effectCategory 8 handler for self-buff auras (AURA_APPLY to caster)
- RecalculateEffectiveStats reads state modifiers and BUFF/DEBUFF auras
- CalculateAbilityDamage integrates damage dealt/taken state modifiers
- CalculateAbilityHealing integrates healing dealt state modifiers
- Add STATE_MOD_DAMAGE_TAKEN, SPEED, HEALING_DEALT/TAKEN to BattlePetState
2026-02-27 20:27:16 -03:00
luis 054f2e2135 full bpet 2026-02-27 20:22:52 -03:00
luis 564599b32d Pet Battles: Fix slot duplication, aura persistence, trap anim, achievement name
Fix four bugs reported by tester:

- Slot swap duplication: HandleBattlePetSetBattleSlot now properly swaps
  pets between source and target slots instead of only assigning the target,
  which left the pet duplicated in the old slot

- Aura persistence: Populate petInfo.Auras in BuildPetBattlePlayerUpdate
  so the client knows which auras are active on each pet. Fix aura round
  effect params to send AuraInstanceID + AbilityID (matching wire format)
  and look up real RoundsRemaining/CurrentRound instead of hardcoding 0

- Trap animation: Resolve the actual BattlePetAbilityEffect.ID from the
  DB2 chain for ability 427 instead of using the raw ability ID, so the
  client can look up the correct visual spell for the capture animation

- Achievement name: Change hotfix_data status from 3 (insert) to 1 (valid)
  for achievement 7433 which already exists in the retail client DB2;
  status=3 corrupted the client-side entry causing empty achievement links
2026-02-27 20:22:09 -03:00
luis 057b22a0f6 Housing: Fix decor persistence by reconstructing full Housing GUID on load
LoadFromDB was creating decor GUIDs with subType=0 (Housing-0-0-0-counter)
but the client uses subType=1 (Housing-1-realmId-entryId-counter). The GUID
mismatch caused the Account entity storage to become stale after relog,
making all placed decor appear gone. Reconstruct the full GUID using the
decorEntryId from the same DB row.
2026-02-27 20:20:50 -03:00
luis 4d37fa350c Housing/Decor: Fix PLACE failing when client skips REDEEM_DEFERRED
The client sends CMSG_HOUSING_DECOR_PLACE directly (without a preceding
REDEEM_DEFERRED) when items are already in storage from the initial
storage response. Extract decorEntryId from the Housing GUID (subType=1,
arg2 in bits [31:0]) instead of requiring a pending placement entry.
2026-02-27 20:20:13 -03:00
luis a9cf0b2649 Housing: Fix OutsidePlotBounds by spawning Room entities with Geobox
The client uses MeshObject Geobox bounds (not AreaTrigger shape) for its
OutsidePlotBounds collision check during decor placement. Spawn a Room
entity (FHousingRoom_C) and Room Component MeshObject
(FHousingRoomComponentMesh_C + Geobox) per owned plot using DB2 lookups
for faction-correct values.

Also fixes RequestStorage response (Flags=0x80, Account entity update),
HouseGUID generation (BNetAccountID), and AT PeriodModifier.Field_4.
2026-02-27 20:19:24 -03:00
Céfiro_Caecias 10cb4149ed Update bnetserver.conf.dist 2026-02-27 04:07:05 -03:00
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