Commit Graph
3371 Commits
Author SHA1 Message Date
luis b886f186b6 Two prepared statements added in commit 0937873 (warband currency
transfer) used lowercase column names (guid, currency, quantity) that
match a different fork's schema but not TrinityCore's character_currency
table, which uses PascalCase (CharacterGuid, Currency, Quantity) as
seen in CHAR_SEL_PLAYER_CURRENCY / CHAR_UPD_PLAYER_CURRENCY /
CHAR_REP_PLAYER_CURRENCY / CHAR_DEL_PLAYER_CURRENCY at the top of the
file. mysql_stmt_prepare rejected both statements at startup with
"Unknown column 'pc.guid' in 'on clause'" / "Unknown column 'guid'
in 'where clause'", taking the tc_characters pool down.

CHAR_SEL_ACCOUNT_CHARACTER_CURRENCIES: pc.currency -> pc.Currency,
pc.quantity -> pc.Quantity, ON c.guid = pc.guid ->
ON c.guid = pc.CharacterGuid.

CHAR_UPD_PLAYER_CURRENCY_QUANTITY: SET quantity -> SET Quantity,
WHERE guid -> WHERE CharacterGuid, currency -> Currency.
2026-05-18 11:29:02 -03:00
luis feddac80e9 fix opcode 2026-05-18 11:26:43 -03:00
luis 247dcbd9eb UiTextureKit.db2 2026-05-18 11:07:55 -03:00
luis ed56ff7504 feat(major-factions): 10L - resolve textureKit via Campaign DB2 chain
User feedback: the textureKit string is already in DB2 (Campaign.UiTextureKitID
-> UiTextureKit.KitPrefix); don't duplicate it in a fabricated world-config
column.

- Add UiTextureKit.db2 loader (struct, LoadInfo, store, LOAD_DB2 call,
  HOTFIX_SEL_UI_TEXTURE_KIT enum + statement, ui_texture_kit hotfix table).
  Schema: ID + KitPrefix string (FieldCount=1 per UiTextureKitMeta,
  LayoutHash 0x4740638A at build 12.0.5.67186).

- MajorFactionMgr:
  * Drop MajorFactionConfig::TextureKit (std::string).
  * Add MajorFactionConfig::RenownCampaignID (uint32) - Campaign.db2 FK.
  * Validate FK against sCampaignStore at LoadWorldData time; clear with
    error log if the campaign row is missing.
  * Add GetRenownCampaignID(factionId) and GetTextureKitPrefix(factionId).
    GetTextureKitPrefix walks the canonical Blizzard chain:
       faction -> renownCampaignId
              -> Campaign.UiTextureKitID
              -> UiTextureKit.KitPrefix
    and returns the string the client uses as the atlas-name suffix
    (e.g. "MajorFaction-DragonscaleExpedition").

- World data: 2026_05_16_01_world.sql rewritten. Column textureKit
  replaced by renownCampaignId. Values pulled per-faction from the JSON
  research files (campaign.id / campaign_id field):
    DF:        166/197/189/174/203/231
    TWW 11.0:  238/236/237/239
    TWW 11.1+: 264/267/268
    Midnight:  270 (shared 17-chapter)/267 (shared)
    Plunderstorm/Gallagio/RitualSites: 0 (no associated campaign)

This was the user-observed redundancy: we had loaded 3 campaign DB2s
(Campaign, CampaignXQuestLine, CampaignXCondition - all wired) but
were not consuming Campaign.UiTextureKitID. Now wired.
2026-05-18 11:06:53 -03:00
luis 317ceb0bce typo 2026-05-18 11:00:49 -03:00
Céfiro_Caecias 3d534e71bc DB/World: DBErrors 2026-05-16 10:41:45 -03:00
Céfiro_Caecias 2462443cd5 DB/Hotfixes: Fixes 2026-05-16 10:41:10 -03:00
Céfiro_Caecias 5f7b278500 Update 2026_05_16_01_world_StormwindPandaria.sql 2026-05-16 10:28:41 -03:00
Céfiro_Caecias ca43f9ed3f Update README.md 2026-05-16 10:02:35 -03:00
stevebone 8e2cce195c Scripts/DB/Stormwind: Implement 3 pandas quests
- implemented JoiningTheAlliance = 30987;
- implemented TheAllianceWay = 30988;
- implemented AnOldPitFighter = 30989;
- code compiles without any errors or warnings - checked against TC pipelines
- the sql file adds new spawns - feel free to update the CGUID with the current last used GUID if needed.

!!! Please do not remove my credits from my files.
2026-05-16 14:48:46 +02:00
stevebone 7caf1d4943 Scripts/TheWanderingIsle: fix TrinityCore base script for Master Li Fei combat NPC
- improved the base script to avoid npc not properly terminating combat on player massive damage or edge case leading to npc death - on live the npc never gets under 20% hp
- added also auras for flame blessings being cast on the player during the combat phase - there is a bug with the Auras NOT showing but they get applied and work properly.
- EnterEvadeMode is now properly handled and the npc also despawns correctly at the end of the combat phase.
2026-05-16 13:09:06 +02:00
luis 33f02ce4df bpet fix 2026-05-16 05:24:11 -03:00
luis 0117e57350 fix pve pet 2026-05-16 05:11:51 -03:00
luis 8df22c8c45 typo 2026-05-16 04:50:54 -03:00
luis 18f477481d exterior housing door clicks are handled by spell 1271876
missing/in-memory-created door GO templates previously had no Data10/goober.spell
that caused the client cast to be rejected or the door not to activate
now the generated door GO templates include the correct housing door spell
2026-05-16 04:46:24 -03:00
luis cc350894ec ++ 2026-05-16 04:37:16 -03:00
luis a4f00f295c 67602 2026-05-16 03:55:55 -03:00
Shauren e6413a357c Core/Misc: Port some 3.3.5 cherry-pick refactors
Signed-off-by: luis <[email protected]>
2026-05-16 03:11:44 -03:00
luis 818ce05548 db2 2026-05-16 03:11:23 -03:00
luis 00bdfc4c1a + db2 2026-05-16 03:03:21 -03:00
luis 8ee459aa5f db2 2026-05-16 02:53:32 -03:00
luis 182d66b13c Allow transmogrification across armor subclasses (cloth/leather/mail/
plate). Remove armor subclass restriction in CanTransmogrifyItemWithItem
while preserving slot compatibility and weapon category rules. Replace
CanUseItem check in transmog handler with faction/race-only gating.
Quest package items now learn appearances for all armor types.
2026-05-16 02:21:12 -03:00
luis 75022ddc19 wip 2026-05-16 02:03:50 -03:00
luis a313dfe24a Phase 3: Restrict character bank "Deposit All" to reagents only 2026-05-16 00:58:10 -03:00
luis 7a70eda6dd Phase 3: Implement bank auto-deposit with tab-based item routing
Replace the narrow reagent-only / warbound-only auto-deposit handlers
with the modern "Deposit All" behaviour the warband bank UI expects:

  - Each tab's BagSlotFlags::Priority<Equipment|Consumables|TradeGoods|
    Junk|QuestItems|Reagents> are persisted in {character,account}_bank_
    tab_settings.depositFlags. The handler now classifies every eligible
    inventory item (Player::GetItemAutoDepositCategory) and routes it
    to the first tab whose flags match (Player::PickAutoDepositTab),
    falling back to the first tab without any priority filter, then to
    any tab without DisableAutoSort ("Cleanup: Ignore this tab").
  - Player::GetItemsForBankAutoDeposit collects eligible inventory
    items per bank type, applying the warband bank's
    "Include tradeable reagents" toggle (CVar bankAutoDepositReagents)
    when bank == Account.

CMSG_AUTO_DEPOSIT_ACCOUNT_BANK actually carries that toggle on the
wire (verified against build 12.0.5.67186 client serializer): 1 bit
IncludeReagents, then the banker GUID. The previous Read() consumed
the GUID byte-aligned and silently mis-parsed when the bit was set.
Add the IncludeReagents field and read it first.
2026-05-16 00:32:41 -03:00
luis f97c889d1b Phase 3: Wire account bank into auto-stack and swap paths 2026-05-16 00:16:50 -03:00
luis c110915e38 ecognise account bank tab bags as bag containers 2026-05-16 00:12:32 -03:00
luis d90ae50756 Grant per-Bnet account inventory lock so warband bank UI opens 2026-05-16 00:09:26 -03:00
luis 8c65662dec Prevent gold loss at money cap on account bank deposit/withdraw 2026-05-15 23:49:57 -03:00
luis 5dfc231c60 Phase 3: Allow PlayerInteractionType::AccountBanker activation 2026-05-15 23:49:08 -03:00
luis 75cec3552d Implement account bank money deposit/withdraw + coinage persistence 2026-05-15 23:46:46 -03:00
luis 6d32e75543 account bank 2026-05-15 23:31:13 -03:00
luis c5e496fc22 Currency: Implement warband currency transfer handlers 2026-05-15 22:26:46 -03:00
luis 0dbe5390fe Implement currency system 2026-05-15 22:26:04 -03:00
luis ab587294c6 spell fixes i push sql later 2026-05-15 22:01:38 -03:00
luis 6a58adb59d AnimalCompanion 2026-05-15 21:45:12 -03:00
luis c0e73dff06 Animal companion System part 1 2026-05-15 14:09:57 -03:00
Shauren 5282dcbc5a Core/PacketIO: Use default compiler generated copy and move operations in WorldPacket
(cherry picked from commit b758b56be4088a80fcb2094885267af9333d28e5)
Signed-off-by: luis <[email protected]>
2026-05-13 21:44:11 -03:00
luis 5ca4ad30cd Core/Spells: Sync enum name with 3.3.5 branch 2026-05-13 21:41:15 -03:00
luis 8651126b3b +++ 2026-05-13 21:10:12 -03:00
luis d4bd2066eb improve delete 2026-05-13 20:53:17 -03:00
luis 3f27b36a10 try fix bot acc 2026-05-13 20:46:24 -03:00
luis b8385521e8 Fix mem leaks on playerbots 2026-05-13 08:46:03 -03:00
luis 7b195de737 ✅ Checks account character count before attempting bot character creation
✅ Only creates new bot characters if there's space available (< 10 characters per account)
✅ Gracefully skips creation when account is full instead of failing with repeated errors
✅ Logs appropriate debug messages when accounts are full
2026-05-13 08:42:37 -03:00
luis 42eea15365 Fix playerbot and spells 2026-05-13 08:28:40 -03:00
luis 90ea70cc89 Loop-based retry: The code now loops through up to 10 accounts looking for one with available character slots
Better logging: Shows progress and helps track account availability
Graceful fallback: Only fails when no accounts with available slots are found
2026-05-12 21:00:53 -03:00
luis a693e65e70 core warning fix 2026-05-12 20:43:50 -03:00
luis 05788710bf fix warning 2026-05-12 20:12:01 -03:00
luis 2e48d7e514 remove wrong opcodes 2026-05-12 08:34:59 -03:00
agathoandClaude Opus 4.7 12baf9d120 Housing: retire 7 paired TC-CUSTOM CMSGs + handlers (Lua-API verified dead)
Companion cleanup to commit 6e7b84dbc1. With yesterday's speculative
SMSG response classes gone, the 7 paired CMSGs whose handlers no-oped
are pure dead code — never invoked because the CMSG opcodes are
TC-CUSTOM placeholders that retail never sends.

Cross-checked each against the auto-generated Lua API docs in
wow-ui-source-12.0.5/Blizzard_APIDocumentationGenerated:

  CMSG_HOUSING_DECOR_BATCH_OPERATION         no C_HousingDecor.BatchOperation
  CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER HousingCatalogSearcherAPI is
                                             entirely client-side (filter/
                                             sort/search local catalog data)
  CMSG_HOUSING_DECOR_PLACEMENT_PREVIEW       no PlacementPreview API anywhere
  CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR C_HousingBasicMode.StartPlacing-
                                             NewDecor is fire-and-forget;
                                             no Returns, no response event
  CMSG_HOUSING_DECOR_START_PLACING_FROM_SRC  same — no API counterpart
  CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY   C_HouseEditor.GetHouseEditor-
                                             Availability returns synchron-
                                             ously — no server roundtrip
  CMSG_HOUSING_SYSTEM_HOUSE_SNAPSHOT         no C_HouseSnapshot namespace
                                             exists in retail 12.0.5

Removed per CMSG:
  - ClientPacket class declaration (HousingPackets.h)
  - Read() body (HousingPackets.cpp)
  - Handler function (HousingHandler.cpp)
  - Handler declaration (WorldSession.h)
  - Handler registration (Opcodes.cpp)
  - Opcode enum entry (Opcodes.h)

Retirement-marker comments left in each location pointing at the
Lua-API rationale for future readers.

Diff:
  6 files changed
  +43 / -250 = 207-line net deletion

Build-verified clean against the 12.0.5 source tree with VS17 2022
RelWithDebInfo (-j 1 to bypass MSVC PCH virtual-memory exhaustion).
No real code errors.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Signed-off-by: luis <[email protected]>
2026-05-12 08:31:37 -03:00