Commit Graph
100 Commits
Author SHA1 Message Date
luis 1ca92d5a5c remove status ignored 2026-05-20 12:55:32 -03:00
luis c4849a5867 Fix build 2026-05-20 12:52:02 -03:00
luis 5d0e9bb3b0 fix 2026-05-20 12:34:23 -03:00
luis a1c9ab2f4d missing 2026-05-20 12:32:31 -03:00
luis a2cb60931f Missing response 2026-05-20 12:28:53 -03:00
luis 503d1ef842 more packets 2026-05-20 12:23:37 -03:00
luis 29a933f8ab enable opcodes 2026-05-20 12:19:47 -03:00
luis 7e2f6a3820 crash fix 2026-05-20 12:16:09 -03:00
luis 721c994949 bpay data 2026-05-20 12:10:53 -03:00
luis 63f1e454ce Fix crash part 1 2026-05-20 12:01:32 -03:00
luis ae20b73593 server crash wait for build 2026-05-20 12:00:17 -03:00
luis dc5086b5bd in game shop 2026-05-20 11:02:22 -03:00
luis 83a898f780 typo 2026-05-19 20:08:58 -03:00
luis 484e940252 remove comment 2026-05-19 20:07:06 -03:00
luis 250fab7c8b warning fix 2026-05-19 19:28:53 -03:00
luis 4490e35588 remove docs 2026-05-19 19:07:45 -03:00
luis c0c14f6b75 readd sai 2026-05-19 18:53:20 -03:00
luis a13b89799f class spells 2026-05-19 16:42:54 -03:00
luis 580deed1b1 Fix spell area bug 2026-05-19 16:42:19 -03:00
luis 666aec51f6 battlepay part 1 2026-05-19 16:06:30 -03:00
luis f0b2ab5508 SPELL_EFFECT_CONVERT_ITEMS_TO_CURRENCY 2026-05-19 15:18:12 -03:00
luis 63a8e206df SPELL_EFFECT_INCREASE_ITEM_BONUS_LIST_GROUP_STEP 2026-05-19 15:07:04 -03:00
luis 462a08ec1d SPELL_EFFECT_SET_ITEM_BONUS_LIST_GROUP_ENTRY 2026-05-19 15:01:05 -03:00
luis c30916dc6b SPELL_EFFECT_CHANGE_ITEM_BONUSES 2026-05-19 14:56:28 -03:00
luis 2fdb98d69b fix build 2026-05-19 14:46:26 -03:00
luis ccf3251b3d SPELL_EFFECT_ALTER_ITEM 2026-05-19 14:39:41 -03:00
luis aff3cca875 Core/Battlegrounds: Fixed "not enough players" message being incorrectly always printed before battleground starts and replaced its trinity_string entry with proper battleground status packet 2026-05-19 14:25:39 -03:00
luis 0c68987602 prev sql 2026-05-19 13:04:25 -03:00
luis 0a74c48472 misc major faction 2026-05-19 13:03:48 -03:00
luis 932e460615 trading post 2026-05-18 20:33:56 -03:00
luis bb475a22bd typo 2026-05-18 19:34:52 -03:00
luis f3cbe72337 full trading post + SPELL_AURA_REPLACE_ITEM_BONUS_TREE 2026-05-18 19:31:29 -03:00
luis f2e4799ca8 SPELL_AURA_ENABLE_POWER_BAR_TIMER 2026-05-18 18:53:00 -03:00
luis 0c5ad51f72 fix trading post 2026-05-18 11:35:17 -03:00
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
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
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
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
luis 0675522ff0 ++ 2026-05-12 08:21:57 -03:00
luis 3a8dc57460 up 2026-05-12 08:15:53 -03:00
luis 747a9f72fb Core/Misc: Update QuestSort enum for 12.0.5 2026-05-12 08:12:32 -03:00
luis c62a1b1fdd ++ 2026-05-11 19:47:11 -03:00
luis 9125314b5a typo 2026-05-11 19:38:23 -03:00
luis 7147475c32 typo fix 2026-05-09 09:06:55 -03:00
luis 9116ef3370 bot 2026-05-09 08:47:35 -03:00
luis c92a03f40e Fix bot 2026-05-09 07:32:00 -03:00
luis 8c8ed956f7 bot fix 2026-05-09 04:58:37 -03:00
luis df16c99723 fix bot 2026-05-09 03:48:56 -03:00
luis 315ad258d5 typo 2026-05-09 02:34:42 -03:00
luis 0931883834 fix bot 2026-05-09 00:34:45 -03:00
luis 1af17fc6cb fix gob 2026-05-08 23:20:10 -03:00
luis 2fe48fda4a 67451 2026-05-08 22:39:34 -03:00
luis b367d85bc7 typo 2026-05-08 22:29:58 -03:00
luis 0e96bc63c8 Housing: fix HOTFIX_SEL_EXTERIOR_COMPONENT prepare for refreshed schema
Worldserver crashed at startup after applying 2026_04_29_00_hotfixes.sql
with mysql_stmt_prepare() id 249 "Unknown column 'FileDataID' in 'field
list'" — the C++ PrepareStatement was still on the older WoW-build
column set (FileDataID/ConditionID/HookID/Slot/SortOrder/
ComponentGroupID/UiTextureKitID/ExteriorComponentTypeID) while the SQL
table is now on the 12.0.5 layout (ParentComponentID/ModelFileDataID/
Flags/Field_7/Type/Field_9/GameObjectID/Field_11/ItemID/
HouseExteriorWmoDataID).

Updated the SELECT to match DB2LoadInfo::ExteriorComponentLoadInfo
column order (LayoutHash 0x53EA0925, 14 fields). The in-memory
ExteriorComponentEntry struct in DB2Structure.h was already on the new
layout — only the prepared statement lagged.
2026-05-08 22:15:31 -03:00
luis 91f23fceef Housing: wire blizzlike door click via SpellID 1271876
Sniff-decoded from C:\sniff\housing_stuff\{alliance,horde}_housing\
dump_12.0.5.67186_2026-04-28_*.pkt: when a player clicks a housing
door GO the 12.0.5 retail client emits CMSG_CAST_SPELL with
SpellID 1,271,876 (uint32 at body offset 0x15) targeting the door.
Both faction sniffs are byte-identical in the spell-id field; only the
target PackedGUID at offset 0x3D differs. CMSG_GAME_OBJ_REPORT_USE that
follows is criteria-tracking, NOT the trigger — the cast is.

The server side had four stacked gaps blocking this flow:

A. SpellID 1271876 was missing from spell_name / spell_misc / spell_effect.
   Cast validation rejected it as unknown. Added a minimal row set with
   SPELL_EFFECT_DUMMY targeting TARGET_GAMEOBJECT_TARGET so the cast
   accepts and the SpellScript hook fires.

B. gameobject_template.Data10 (goober.spell) on the housing front-door
   templates was either zero (575017, 602702) or pointing at the older
   12.0.1 spell 1234192 (586576, 602705) / 1234193 (587318). Neither
   matches what the 12.0.5 retail client casts, so the goober mechanism
   wouldn't have routed correctly even if the spell existed. All five
   entries now point at 1271876.

C. New SpellScript spell_housing_door_open, registered against 1271876
   via spell_script_names, intercepts the cast and calls
   GameObject::Use() on the spell target. That routes to the existing
   go_housing_door::OnGossipHello which already handles edit-mode
   gating, visitor permissions, and the interior round trip.

D. The exterior_component SQL hotfix table was on an older WoW build's
   schema (FileDataID/ConditionID/HookID/Slot/SortOrder/...) that
   doesn't line up with DB2LoadInfo's 12.0.5 layout
   (Name + 3 floats + ID + Size + ParentComponentID + ModelFileDataID +
   Flags + Field_7 + Type + Field_9 + GameObjectID + Field_11 +
   ItemID + HouseExteriorWmoDataID). Without a GameObjectID column the
   hotfix loader was filling that field with zeros, so HousingMap::
   SpawnExtCompTree never spawned door GOs in the first place. Schema
   rebuilt to match the 14-field 12.0.5 record (LayoutHash 0x53EA0925).
2026-05-08 22:14:33 -03:00
luis 1efdf256cd fix gob issues 2026-05-08 21:56:17 -03:00
luis e26e3f5280 DB/Hallowfall: Added graveyards 2026-05-08 21:54:56 -03:00
luis 534211feb7 new build 2026-05-08 21:46:38 -03:00
luis 46f704784b playerbot chat ai system 2026-05-08 14:06:08 -03:00
luis ecbdc55de7 fix bot equipment 2026-05-08 13:37:02 -03:00
luis e1d30b5100 fix bot speed 2026-05-08 13:32:57 -03:00
luis a2cd28af21 improve db of bots 2026-05-08 13:17:27 -03:00
luis 26ce8c43e3 new bot fixes 2026-05-07 22:33:26 -03:00