Commit Graph
942 Commits
Author SHA1 Message Date
Céfiro_Caecias 85b52719fe DB/World: Guards Rework Part 3 + Extras 2026-07-19 15:53:17 -03:00
luis 9b70bb4cab Core/Arenas: implement arena gameplay for solo player with bots
- player can now hire 1 (2v2) or 2 bots (3v3) gameplay in arenas.
- enemy team will have only bots
- the system should support also 2players vs 2 bots or 3 players vs 3 bots.
- not all arenas might be enabled. this is still WIP
- enemy team bots currently just wait at their spawn point - still WIP
2026-07-19 13:04:22 -03:00
Céfiro_Caecias 5d53f8b23e DB/World: DBErrors 2026-07-19 11:48:57 -03:00
Céfiro_Caecias 2488211369 DB/World: Guards Rework Part 2 + Extras 2026-07-18 14:52:15 -03:00
luis 5e63e5b607 wod zones 2026-07-18 10:48:54 -03:00
Céfiro_Caecias 10ecfaa19d DB/World: Guards Rework Part 1 + Extras 2026-07-17 19:51:38 -03:00
Céfiro_Caecias 902b6d1efb DB/Hotfixes: Guards Rework 2026-07-17 19:48:41 -03:00
Céfiro_Caecias 6d67967d86 DB/World: DBErrors 2026-07-17 09:29:01 -03:00
luis 58c2568095 fix bot db 2026-07-17 00:32:19 -03:00
luis d8ccbc037e enable opcodes and full fix bots db 2026-07-16 22:42:04 -03:00
luis 2a96bfda67 shadowmoon sniffs 2026-07-16 18:46:35 -03:00
Céfiro_Caecias 8b09ade04b DB/World: Stormwind Fixes 2026-07-16 18:36:59 -03:00
Céfiro_Caecias 7a42c15a8e DB/World: Death Knigth Starting Zone Part 4 2026-07-15 14:18:08 -03:00
Céfiro_Caecias 81622d18b4 DB/World: DBErrors 2026-07-15 10:25:46 -03:00
luis b9d11e06ba shadowmoon part 2 2026-07-15 02:11:54 -03:00
luis b895df4a29 shadowmoon valley sniff fix 2026-07-15 01:41:37 -03:00
luis 16e56d3001 spawn de neuvo shadowmoon valley 2026-07-14 19:35:50 -03:00
Céfiro_Caecias 64e7b91c1b DB/World: Orgrimmar Fixes 2026-07-14 16:44:35 -03:00
Céfiro_Caecias 442e9cf8ec DB/World: Death Knigth Starting Zone Part 3 2026-07-14 16:44:05 -03:00
Céfiro_Caecias 7d9a0141c8 DB/World: Death Knigth Starting Zone Part 2 2026-07-14 15:36:46 -03:00
Céfiro_Caecias ca011c6cba DB/World: DBErrors 2026-07-14 13:18:31 -03:00
luis 74427be3ce db error fix 2026-07-13 14:32:35 -03:00
luis 6a5e76e92f db misc 2026-07-13 14:24:12 -03:00
luis 4a0c021b2e DB/FSB: Misc fixess 2026-07-13 10:19:50 -03:00
luis 6acac6243b Scripts/FSB: implement DB table for bot spells (first use case is buffs) 2026-07-13 09:54:36 -03:00
luis 82faef140a 2 shadowfang keep boss 2026-07-12 20:30:17 -03:00
Céfiro_Caecias b1ecc0bd81 DB/World: DBErrors 2026-07-11 10:45:48 -03:00
luis 6bf6ea7d4c fix db error 2026-07-11 02:58:02 -03:00
luis b764870232 missing del 2026-07-11 02:54:04 -03:00
luis c7dbb4205b voidstorm 2026-07-11 02:34:34 -03:00
luis fa4b7958b2 db errors 2026-07-11 02:05:19 -03:00
luis 98d9d82b82 typo 2026-07-11 01:59:02 -03:00
luis 60a244ac04 db error 2026-07-11 01:19:21 -03:00
luis b58c3454d2 ragefire chasm and wailing caverns full 2026-07-10 23:37:22 -03:00
luis 0f2a9ac5bc bpay system, missing opcodes and sniffs 2026-07-10 22:01:57 -03:00
luis a00fa5f33d sniff data 2026-07-10 17:18:58 -03:00
Céfiro_Caecias 24f8bb8271 DB/World: DBErrors 2026-07-10 14:23:54 -03:00
Céfiro_Caecias 280bcd1600 DB/Hotfixes: DBErrors 2026-07-10 14:22:55 -03:00
luis 960581d08d world quest system 2026-07-10 13:38:24 -03:00
luis 79de9baa3b 68453 2026-07-10 11:27:22 -03:00
luis b4e62d7873 sniffs 2026-07-09 04:07:56 -03:00
luis f6982381e5 CovenantCallings 2026-07-08 22:19:25 -03:00
luis 751f063936 feat(covenant): P3 - grant RenownRewards on covenant renown level-up
The covenant renown LEVEL is already a renown-reputation handled by TC's
ReputationMgr and synced to the client by the standard reputation packets,
so the only covenant-specific gap was granting the per-level rewards.

- Add the RenownRewards.db2 store (Meta 0x30AFBCF8, ParentIndex=CovenantID)
  and a DB2Manager (covenantId, level) -> rewards map (GetRenownRewards).
- Track the highest renown level whose rewards were granted, per covenant
  (Player::m_renownRewardsGranted), persisted to a new character_covenant_renown
  table and loaded at login, so each level's rewards are granted exactly once.
- Player::ReputationChanged now grants rewards for every renown level crossed
  when a covenant renown reputation increases; a login catch-up
  (UpdateAllRenownRewards, run in-world after SendInitialPacketsAfterAddToMap)
  grants anything earned before this feature existed. UpdateRenownRewards is
  guarded on IsInWorld() so nothing is granted mid-load.
- GrantRenownReward grants item / spell / title / mount via the existing
  Player + CollectionMgr APIs. The cosmetic-collection fields RenownRewards
  also carries (TransmogID/TransmogSetID/TransmogIllusionID, GarrFollowerID,
  QuestID) are documented as follow-ups rather than half-implemented.
2026-07-08 21:41:23 -03:00
luis 265686f773 feat(contribution): P1a - add Contribution/ManagedWorldState DB2 stores
Adds the four DB2 stores the Contribution system is built on (TC had the *Meta hotfix
schemas but never loaded these tables): Contribution, CreatureXContribution,
ManagedWorldState, ManagedWorldStateInput.

Field layouts derived from the authoritative TC *Meta structs (DB2Metadata.h) cross-checked
against the 68275 WoWDBDefs layouts (Contribution 167173C3, ManagedWorldState A4E9EA9F,
ManagedWorldStateInput 16683306, CreatureXContribution 29D9C37F). All four have IndexField=-1
(ID first). ManagedWorldState carries the accumulate/deplete progress driver bound to
Current/Progress/Occurrences WorldState IDs; ManagedWorldStateInput carries the QuestID that
is the contribution turn-in cost.

- DB2Structure.h: 4 entry structs.
- DB2LoadInfo.h: 4 load infos (arrays expanded per element, signedness per Meta).
- DB2Stores.h/.cpp: storage globals + LOAD_DB2 registration.
- HotfixDatabase.h/.cpp: hotfix SELECT statements (+ locale for Contribution's two
  localized strings) and enum entries.
- sql/updates/hotfixes/master/2026_07_07_00_hotfixes.sql: the five hotfix tables.

Builds clean (game.dll). Next: the ManagedWorldStateMgr runtime (P1) that ticks these
states, then Contribute (P2).
2026-07-08 18:52:22 -03:00
luis 22f8b82dd7 db 2026-07-08 15:05:03 -03:00
luis 3a1ee8c00b feat(crafting-orders): P1 persistent storage for work orders 2026-07-06 23:16:00 -03:00
luis 46b7c28cfd feat(covenant): P2b - auto-collect conduits from items (SoulbindConduitItem)
Completes the conduit collection into a Blizzlike acquisition flow: obtaining
a conduit item now adds it to the collection, so the GM ".conduit add" command
is demoted to an admin/test convenience.

- Add the SoulbindConduitItem.db2 (ItemID -> ConduitID) and
  SoulbindConduitRankProperties.db2 (Rank <-> ItemLevel) stores (both Metas
  already present in TC, hashes 0xEDC6BB40 / 0x6EFBF7C9).
- DB2Manager: build an ItemID -> ConduitID map (GetConduitForItem) and
  GetConduitRankForItemLevel(), which picks the highest rank whose ItemLevel
  does not exceed the acquired item's level (a higher-ilvl duplicate upgrades
  the collection, as retail does).
- Player::TryCollectConduitFromItem() runs from StoreNewItem alongside the
  existing transmog CollectionMgr::OnItemAdded hook (same addToCollection gate),
  collecting the mapped conduit at the item-level-derived rank (falls back to
  the conduit's lowest defined rank if no properties row qualifies).

Non-destructive: the conduit item is not consumed (retail may consume it, but
that is not verified offline, so items are never destroyed on assumption).
2026-07-06 17:35:33 -03:00
luis 93d3d7cafe new 2026-07-06 15:25:07 -03:00
luis 8680d8b2ca feat(covenant): P2 - soulbind conduit collection + socketing + spell application
Unblocks covenant P2 by building the conduit sub-system the soulbind
gameplay hangs off of (all garrison-talent opcodes were Handle_NULL).

Data (Phase A): add the SoulbindConduit.db2 store (Meta 0x2632E47D
already present) so conduits can be validated by type/covenant/spec.

Collection (Phase B): the conduit collection is server-authoritative -
Player now tracks owned conduits (conduitId -> RankIndex) and socketed
conduits (GarrTalent node -> conduitId + treeId), both persisted to new
character_soulbind_conduits / character_soulbind_conduit_sockets tables
loaded at login. CollectConduit() grants at the data-driven lowest
RankIndex defined for the conduit (never assumes 0; refuses if there is
no rank row). The "conduit add" GM command is the interim grant trigger;
auto-collection from conduit items needs the item-to-conduit link (TODO).

Socketing (Phase C): CMSG_GARRISON_SOCKET_TALENT now decodes to
{ u32 GarrTalentID, u32 count, count x (SoulbindConduitID, Rank) } - the
pair mirrors this protocol's GarrisonTalentSocketData. The handler routes
to Player::SocketConduit, which validates the conduit exists, is owned,
and its covenant matches, then persists and casts the conduit's
SoulbindConduitRank->SpellID aura. ApplyConduitSpells/RemoveConduitSpells
gate on the active soulbind's tree, re-apply on login (mirrors
_LoadGlyphAuras) and swap on soulbind switch.

Server-authoritative: the client-sent rank is ignored (server uses its
own collection). The socket wire's leading id / pair order carry a
NEEDS-CONFIRM (sniff) flag, but the handler fails closed - an unowned or
invalid id simply no-ops, so a misread can never corrupt state or apply a
wrong spell.
2026-07-06 15:16:59 -03:00
luis 283c56f934 feat(covenant): P1 - ActivateSoulbind + player covenant/soulbind state 2026-07-06 15:04:52 -03:00