Commit Graph
100 Commits
Author SHA1 Message Date
luis e9cd997c4b +++ 2026-03-28 09:49:13 -03:00
luis 405a1411b9 // QuestV2CliTask.db2 2026-03-28 09:42:59 -03:00
luis b5f37870c8 typo 2026-03-28 09:10:01 -03:00
luis bbc865ed89 typo 2026-03-28 08:59:37 -03:00
luis a0eeb3f1bc +++ 2026-03-28 08:54:39 -03:00
luis 354cce72a7 66709 2026-03-28 08:52:49 -03:00
luis bd0721c180 +++ 2026-03-28 08:51:21 -03:00
luis 80f2dbae55 ++ 2026-03-28 08:50:39 -03:00
luis 3fb55d86d8 commands update 2026-03-28 08:48:51 -03:00
luis b2346db972 dup 2026-03-28 07:20:45 -03:00
luis bd38860633 fix asssert 2026-03-27 22:10:53 -03:00
luis 6d98a1bfaa fix crash: guard missing hiddenAppearance and avoid ASSERT in LoadAccountItemAppearances 2026-03-27 21:21:07 -03:00
luis 35b4b75b2c typo 2026-03-27 20:09:05 -03:00
luis 33b93d1435 fix db2 2026-03-27 19:36:28 -03:00
luis 0c97fa5e2f Full delves 2026-03-27 19:22:49 -03:00
luis b8a1199340 feat(delves): Phase 7 - GM commands, Player update field helpers, build fixes
Add GM commands and polish:

- cs_delve.cpp: comprehensive GM command suite:
  .delve info       - show delve system status
  .delve season     - show active season and spells
  .delve bountiful  - show today's bountiful delves
  .delve progress   - show account-wide progress (tier, vault, keys)
  .delve settier N  - set highest unlocked tier
  .delve companion info  - show companion state
  .delve companion level N - set companion level
  .delve companion role N  - set role (0=DPS, 1=Healer, 2=Tank)

- Player.h/cpp: add SetDelveData() and ClearDelveData() public methods
  for update field access (m_values is protected, external code can't
  access it directly)
- DelveInstance.cpp: refactored to use Player methods instead of direct
  m_values access, removed UpdateFields.h dependency
2026-03-27 19:18:11 -03:00
luis 426017bc73 add scripts 2026-03-27 19:12:07 -03:00
luis 1ff85b8cc2 more delve work 2026-03-27 19:09:32 -03:00
luis f11d801cef delves 2026-03-27 13:54:41 -03:00
luis b3c325d539 delve tables still nor work wait for me 2026-03-27 13:53:34 -03:00
luis 804cf6f9f6 delves init 2026-03-27 13:49:33 -03:00
luis 28dfdecf88 Fix build 2026-03-27 08:45:06 -03:00
luis e4f40a2f04 typo 2026-03-27 08:43:44 -03:00
luis 1f8d2c2562 remove wrong impl 2026-03-27 08:28:02 -03:00
luis 58cf98da21 new lua 2026-03-27 08:25:17 -03:00
luis ae4220c491 REWORK 2026-03-27 08:24:17 -03:00
luis 57d072cee8 lua crash 2026-03-26 21:22:51 -03:00
luis da47dd1e47 initial crash fix for eluna 2026-03-26 21:21:07 -03:00
luis 169fb022fa add quest task for wq 2026-03-26 20:55:54 -03:00
luis 6770ccec62 remove unused 2026-03-26 20:40:13 -03:00
luis d8f89644dd delve system part 1 2026-03-26 20:38:54 -03:00
luis 4c3e7d6a74 Add NeedsFood diagnostic, downgrade ObjectiveTracker ERROR to DEBUG 2026-03-26 19:55:29 -03:00
luis 50b4365362 typo 2026-03-26 13:30:52 -03:00
luis af47a7f487 Fix log spam, stuck walk detection, and mana snapshot for dual-power classes
- Remove STRAT-SELECT diagnostic (60k lines per session)
- Downgrade CalculateObjectivePriorities from ERROR to TRACE (60k lines)
- Throttle "walking to quest giver" log to once per 5 seconds
- Detect stuck walks (distance not decreasing for 30s) and clear pending
- Fix mana snapshot using GetMaxPower(POWER_MANA) instead of GetPowerType
  so Warlocks (soul shards + mana) and Paladins (holy power + mana) get
  correct mana percentage instead of 100% default
2026-03-26 08:43:39 -03:00
luis e5b00529c1 lua fixes 2026-03-26 08:32:26 -03:00
luis aae5614085 init implement methods 2026-03-25 20:56:46 -03:00
luis bfce87a158 Scripts/Commands: Set worldstate when using .debug worldstate instead of just sending packet 2026-03-25 13:42:37 -03:00
luis 183ac260e3 Core/Transmog: Implemented TransmogHoliday.db2 transmog conditions 2026-03-25 13:41:50 -03:00
luis 0d9be8a492 db fixes 2026-03-25 13:34:48 -03:00
luis 41f361a630 Fix crash 2026-03-24 19:30:23 -03:00
luis 6d3375f01d ready 2026-03-24 03:04:30 -03:00
luis fb7c43cd57 ++ 2026-03-24 03:00:32 -03:00
luis 2e2cdd1a08 Db fixes 2026-03-22 21:05:07 -03:00
luis 7564d3e5fa typo 2026-03-22 20:46:27 -03:00
luis 22fa9aaba3 Core/Players: Fixed custom playercreateinfo_item using 0 in race/class columns (should apply to all races/classes) 2026-03-22 20:05:02 -03:00
luis d9bdbf86b9 ++ 2026-03-22 20:03:13 -03:00
luis 84ae6f7bbc Core/GameObjects: Implement "EnableDoodadSets" for phaseableMO gameobject type 2026-03-22 19:32:20 -03:00
luis ee2721db00 Core/GameObjects: Initialize gameobject type before creating its model 2026-03-22 19:31:06 -03:00
luis a30688baab tmog sql 2026-03-22 19:29:02 -03:00
luis a2983a2961 typo 2026-03-22 19:07:16 -03:00
luis 0665cda727 typo 2026-03-22 19:05:38 -03:00
luis c9dab6ac93 new tmog still not ready wait for sqls 2026-03-22 18:57:22 -03:00
luis aed90f22e5 tmog part 1 2026-03-22 18:11:58 -03:00
luis 9ec349ebaf ++typo 2026-03-21 05:16:42 -03:00
luis 039a2fe347 ++ 2026-03-21 04:33:39 -03:00
luis 396ff73361 fix areatrigger issue on tp 2026-03-21 00:07:18 -03:00
luis 197894449f Core/Objects: Add ignoreNestedChangesMask argument to BuildValuesUpdateForPlayerWithMask functions 2026-03-21 00:04:33 -03:00
luis ab7ba67bcd Core/Objects: Fixed crashes happening when trying to force send dynamic/map/set updatefield changes 2026-03-20 22:49:31 -03:00
luis e73c288b95 66527 2026-03-20 22:42:30 -03:00
luis 3adc7d1ff9 mapflags 3 2026-03-20 22:42:04 -03:00
luis 07458287a8 Core: Updated allowed build to 12.0.1.66431 2026-03-20 22:30:19 -03:00
luis f7af1f5a5b fix lua 2026-03-20 20:45:24 -03:00
luis 06a7860594 Housing: Fix fixture hookpoint linking, door GO management, and map visibility
Fixture System:
- Use MeshObject GUIDs (HighGuid 56) for FHousingFixture_C Guid and
  AttachParentGUID fields instead of Housing GUIDs. The client's fixture
  manager searches the frame tree using AttachParentGUID as key, and frames
  are indexed by MeshObject entity GUIDs. This fixes fixture hookpoints
  showing "None" despite fixtures being spawned.
- Force-send AT entity CREATE/VALUES to player before ENTER_PLOT packet,
  matching the retail pattern where UPDATE_OBJECT and ENTER_PLOT arrive at
  the same timestamp.
- Set MAX_VISIBILITY_DISTANCE on HousingMap and HouseInteriorMap so all
  entities are visible map-wide, eliminating entity streaming race conditions.
- Add PreloadHousingMaps at server startup with LoadAllCells for
  neighborhood maps (validates map type before loading).

Fixture Placement:
- Door (entrance) replacement: placing a new door auto-removes any existing
  door at a different hook and despawns/respawns the clickable door GO.
- Hook exclusivity: placing a fixture removes any existing fixture at that
  hook first.
- Fix DELETE_FIXTURE handler: pass original hookID to RemoveFixture instead
  of resolved parent componentID. Fixtures are keyed by hookID.
- Remove default fixture respawn on delete (was causing flicker loop).

Door GO Management:
- Add RespawnDoorGOAtHook/DespawnDoorGO methods for targeted door GO
  updates without full house rebuild.
- Door GO positioned at fixture MeshObject location (exact hookpoint).
- Force-send CREATE to player immediately after spawning door GO.
- Auto-create missing door GO templates from ExteriorComponent DB2 at
  startup (EnsureDoorGameObjectTemplates) with retail values:
  Lock=4296, autoClose=3000, startOpen=1.

Interior Exit:
- Use ExteriorComponentExitPoint position for interior→exterior teleport,
  placing player in front of the door they entered through.

Other:
- Add MeshObject::AddRoomDoor for HousingRoomData Doors array population.
- Rename HousingPackets PlotAreaTriggerGuid to NeighborhoodEntityGuid.
2026-03-20 01:36:59 -03:00
luis ad0637b126 Pet Battles: Fix BattlePetState IDs from DB2, add per-type weather damage
Cross-referenced BattlePetState.db2 via wago.tools/WoWDBDefs and fixed
wrong state IDs: Stat_Accuracy is 41 (was 22=Mechanic_IsStunned),
Mod_HealingDealtPercent is 65 (was 26=Ramping_DamageID),
Mod_HealingTakenPercent is 66 (was 27=Ramping_DamageUses).

Added per-type weather damage bonus using the 3-state mechanism from
DB2: Mod_PetTypeDamageDealtPercent(87) + Mod_PetType_ID(89) restricts
damage bonuses to matching ability types (e.g. Rain = +25% Aquatic
only, not all damage). Also added Add_FlatDamageTaken(71) for
Sandstorm-style damage shields.

Expanded enum to 43 states covering weather markers (53-63, 316),
mechanics, cosmetics, and combat modifiers — all verified against
BattlePetState.db2 LuaName field.
2026-03-20 01:23:39 -03:00
luis 8f9c7c3de8 Pet Battles: Wire state-driven weather system from DB2
Replace dead hardcoded PetBattleWeatherType enum with a data-driven
weather system that reads BattlePetAbilityState entries from DB2.

The old system had SetWeather/GetWeatherDamageModifier/GetWeatherHealingModifier
functions but SetWeather was never called, so weather abilities fired
visually (aura icon appeared) but had zero gameplay effect.

Now weather modifiers (damage %, healing %, accuracy, speed) are loaded
from BattlePetAbilityState DB2 onto the environment slot when a weather
aura is applied, and read back during combat calculations. Elemental
pets remain immune to all weather effects.
2026-03-20 01:22:05 -03:00
luis f19aab2fee fix build 2026-03-19 22:21:41 -03:00
luis 65fa4999a0 ++ 2026-03-18 02:17:37 -03:00
luis 2a3de1833a lua 2026-03-18 02:13:06 -03:00
luis 1eb0b1d8b7 lua 2026-03-18 01:55:55 -03:00
luis 1f90dc60df lua 2026-03-18 01:21:06 -03:00
luis 6d6aa1a723 lua part 1 2026-03-18 01:13:14 -03:00
luis aa968ba82e fix build 2026-03-17 23:54:38 -03:00
luis 5241086f27 dragonriding 2026-03-17 23:50:52 -03:00
luis 01cf332cfa dragonriding 2026-03-17 22:39:51 -03:00
luis b06857173c still fly bug 2026-03-17 22:08:21 -03:00
luis 34f88a8963 bot + packets 2026-03-17 20:34:19 -03:00
luis 4127c8485a Disable AI update throttler that blocked all strategy execution
The AdaptiveAIUpdateThrottler was preventing UpdateStrategies() from
ever being reached, leaving bots idle with active but never-executed
strategies. Also swapped quest/loot priority so quest (MOVEMENT=45)
runs below loot (FOLLOW=50) only when loot is gated by IsActive.

Added temporary STRAT-SELECT diagnostic logging to trace which
strategy wins priority selection each tick.
2026-03-17 20:31:29 -03:00
luis cedc8bba80 UiChromieTimeExpansionInfo.db2 2026-03-17 14:30:21 -03:00
luis 224446458c dragon riding and perks 2026-03-17 02:11:22 -03:00
luis 5a56fa0773 trading post 2026-03-17 01:14:23 -03:00
luis 494d808780 update full 12xx data and more systems work 2026-03-16 23:47:15 -03:00
luis 14a90db884 Pet Battles: Fix BattlePetAbilityEffect column names and DisplayID repair
Rename misnamed SQL columns to match WoWDBDefs 12.0:
- Aura → BattlePetEffectPropertiesID
- BattlePetEffectPropertiesID → AuraBattlePetAbilityID
- VisualID → BattlePetVisualID

Add migration script for existing databases, update SELECT query.

Also add DisplayID=0 repair in LoadPlayerTeam and a log warning
in SelectPetDisplay when creature_template is missing.
2026-03-16 20:26:49 -03:00
luis 78782bc6f3 Fix bot strategy activation blocked by throttle and death recovery
Solo strategy activation (rest, solo_combat, quest, grind, loot, solo)
was positioned after both the AI update throttler and the death recovery
guard in UpdateAI(). Bots that were throttled or dead at login never
reached the activation code, leaving them with Strategies=0 and idle.

Move the one-time strategy activation to run before all guards so it
executes on the first UpdateAI tick regardless of throttle/death state.
2026-03-16 20:21:29 -03:00
luis ddb75df371 Housing: Re-CREATE all fixture entities after rebuild to fix hook recognition 2026-03-16 20:14:57 -03:00
luis c869b64ab9 Fix db2 activities 2026-03-15 22:33:10 -03:00
luis 8f73d0cdf8 fix trading post 2026-03-15 22:17:39 -03:00
luis 9404d5afac perk program full work ui now of vendor 2026-03-15 21:38:21 -03:00
luis 27b107530d more work 2026-03-15 21:20:35 -03:00
luis dfe864e477 trading post try fix crash 2026-03-15 21:18:19 -03:00
luis 6902181f28 trading post crash on npc gossip due to PerksVendorItem 2026-03-15 20:48:52 -03:00
luis 9bbebb333b trading post 2026-03-15 19:57:25 -03:00
luis 02ac83d4af trading post 2026-03-15 19:40:29 -03:00
luis cf8d0f8b00 new housing 2026-03-15 18:16:17 -03:00
luis 2f5144077e Housing: Fix DB2 field ordering, door placement, and fixture validation
Fix ExteriorComponentHookEntry struct field order to match DB2 LoadInfo
(Position/Rotation before ID when IndexField=2), resolving garbage hook
IDs during fixture resolution.

Replace first-match door hook selection with center-front scoring
heuristic (|X|*2 + Y) to ensure the main entrance spawns at the front
of the house rather than on a side/back wall.

Add fixture validation in SelectFixtureOption: enforce component type
must match hook type, and only one door allowed per house. This prevents
placing windows at door hooks and spawning multiple entrances.

Only auto-resolve the single best door hook during SpawnExtCompTree —
other fixture types (windows, chimneys, dormers) require explicit player
selection, matching retail behavior where they unlock via progression.

Additional fixes: unique fixture GUIDs via atomic counter (subType=5),
size-aware default fixture lookup, range-based DB2 store iteration,
and starter fixture migration that preserves existing roots.
2026-03-15 17:59:32 -03:00
luis dd888b36db Housing: Add racial house styles and starter fixture persistence
Map player race to house exterior WMO style on purchase:
Night Elf → Woodland (55), Blood Elf → Engraved (56),
other Alliance → Human (9), other Horde → Orc (87).

On house creation, persist starter fixtures (Base + Roof) to
character_housing_fixtures so spawning reads from DB rather than
relying on runtime default resolution. Door auto-resolves from
the hook system via GetDefaultFixtureForType.
2026-03-15 17:54:46 -03:00
luis 06a4b3f844 Housing: Refactor fixture resolution to direct (type, wmoDataID) lookup
Replace the broken GroupXHook→Group→XGroup chain with a direct
_defaultFixtureByTypeWmo index that maps (componentType, wmoDataID)
to the default fixture component ID. This correctly resolves fixtures
for all 4 racial house styles (Human/NightElf/BloodElf/Orc).

Key changes:
- BuildExteriorComponentIndexes: filter structural roots by
  ExteriorComponentType.ParentComponentType==0 with hardcoded
  fallback for broken DB2 store iteration
- New GetDefaultFixtureForType() replaces GetComponentAtHook()
- SpawnExtCompTree uses type+WMO lookup for hook children
- Door GO spawning fully data-driven from DB2 (entry + position
  from hook offset + ExitPoint offset)
- Root selection: rootOverrides → coreExtCompID → default → first
- Fix missing fixture overrides on late-spawn path
- Add GetRootComponentOverrides() for player-selected root variants
2026-03-15 17:52:14 -03:00
luis 29d7e7689b typo 2026-03-15 17:27:47 -03:00
luis d08f65b834 world quest changes 2026-03-15 17:26:25 -03:00
luis c9d5652b32 typo 2026-03-15 15:01:33 -03:00
luis 570f4935c9 missing packet 2026-03-15 14:59:41 -03:00