Commit Graph
3371 Commits
Author SHA1 Message Date
devbox a17899e921 Exiles Reach: remove duplicate Garrick script-summon (DB spawn 730202 now provides him) 2026-08-26 13:43:21 +10:00
devbox 55da003626 DB/Exiles Reach: fix Garrick camp spawn z-height (91.001 to match ground) 2026-08-26 11:56:57 +10:00
devbox 9fe909427c DB/Exiles Reach: make quest flow SQL idempotent (delete-before-insert) 2026-08-26 11:32:53 +10:00
devbox 651845916f DB/Exiles Reach: add DB spawn for post-Torgak Captain Garrick (245394) at the camp so he's reliably visible as quest-giver 2026-08-26 11:17:02 +10:00
devbox cebef91f24 DB/Exiles Reach: remove reverted Hrun display change (keep original 92803) 2026-08-26 09:48:15 +10:00
devbox 1de4ff7967 DB/Exiles Reach: use correct post-Torgak reunion scene package (4778 Alliance / 4779 Horde) 2026-08-26 09:38:36 +10:00
devbox ca9d636424 DB/Exiles Reach: add gossip flag to ritual Meredy/Herbert so the Bloodbeak event can start 2026-08-26 09:00:47 +10:00
devbox 944bc6e8b2 Exiles Reach: give KilledMonsterCredit for Bloodbeak to complete the save-Meredy objective 2026-08-26 08:57:42 +10:00
devbox 76d463d664 DB/Exiles Reach: add questgiver flag to post-Torgak custom NPCs (245397/245667/245686) 2026-08-26 08:45:35 +10:00
devbox fb1f200652 DB/Exiles Reach: align all Dark Ritual storyline quest starters/enders with retail (68 quests, both factions) 2026-08-26 08:30:06 +10:00
devbox 975591fa5b DB/Exiles Reach: 58915 ends at Private Cole, not Hjalmar (revert incorrect ender) 2026-08-25 19:34:51 +10:00
devbox 1633cd2093 DB/Exiles Reach: correct post-Torgak quest flow (Garrick turns in 55639/85678, Hjalmar turns in 58915, remove Wrathion 55196 starter) 2026-08-25 19:30:46 +10:00
devbox 014c9cc2d0 Exiles Reach: remove GARRICK_15017 debug log 2026-08-25 19:22:02 +10:00
devbox 8ac8a3527b DB/Exiles Reach: add Hrun actor to Hrun's Barrow conversations 12120/14540 (fix missing actor) 2026-08-25 16:14:16 +10:00
devbox 36108f76f7 Exiles Reach: remove [ExilesReach] phase check debug log from ogre ruins 2026-08-25 15:50:40 +10:00
devbox b9b49adf03 DB/Exiles Reach: fix Hrun the Exiled invisible - use working Darkmaul Ogre display 2026-08-25 15:36:12 +10:00
devbox 3ce7f17005 DB: make reunion conversation SQL idempotent (clear rows before insert) 2026-08-24 22:20:36 +10:00
devbox 89aae3dfa9 Exiles Reach: play the post-ride reunion conversation (Wrathion + Jaina) and fix conversation line chaining 2026-08-24 22:01:12 +10:00
devbox 01824cf222 Exiles Reach: Captain Garrick gives Stocking Up after the ride; move her off the campfire 2026-08-24 20:35:38 +10:00
devbox 8b8aaffd70 Exiles Reach: Jaina + Garrick are separate camp NPCs after the ride
Jaina (156807) stays by Austin Huxworth at the rock edging (quest-giver);
add Captain Garrick (245394) as a separate NPC by the campfire. Both are
summoned on the ride reward.
2026-08-24 18:02:07 +10:00
devbox a0203a632e Exiles Reach: post-Torgak quest-giver is Jaina at the camp; Richter gets repair
- Revert the quest-giver from Captain Garrick (245394) back to Jaina
  (156807); she belongs at the camp next to the campfire by Quartermaster
  Richter, not in front of Wrathion. The scripted summon now places Jaina
  there on the ride reward.
- Quartermaster Richter (156800) was missing UNIT_NPC_FLAG_REPAIR (0x1000),
  so Repair Yourself (85678) couldn't be completed. Add the flag.
2026-08-24 17:57:56 +10:00
devbox 988874e403 Exiles Reach: script Captain Garrick's summon after the ride + questgiver flag
The phase-15017 regular spawn wasn't reliably showing Garrick (245394) for
the player. Summon him on the ride quest reward in front of Wrathion with
the QUESTGIVER npcflag set, so Stocking Up (55194) / Repair Yourself (85678)
are offered. Also set npcflag=2 on 245394 in the DB (it had 0, so it never
presented as a quest giver).
2026-08-24 17:25:40 +10:00
devbox a4b6ec1100 Scene debug: log scene plays on Exiles Reach (map 2175)
Logs which scene (id + package) plays for the ride/cinematic, so the
post-ride scene can be matched against the expected one.
2026-08-24 17:09:02 +10:00
devbox ad87475cd5 Exiles Reach: diagnostic logs for post-ride phase check / Garrick 15017
Log the player's area and quest state each phase-check tick, and the
GARRICK_15017 phase evaluation, to see why Captain Garrick (245394) doesn't
appear after the boar ride is rewarded.
2026-08-24 17:03:35 +10:00
devbox 60546b974f Exiles Reach: show Captain Garrick (245394) after Torgak to grant the next quests
- The post-Torgak quest-giver was 156807, which wrongly reused Jaina's model
  (88316), so it read as a duplicate Jaina. Point the phase-15017 spawn and
  the Stocking Up (55194) / Repair Yourself (85678) quest starters+enders at
  245394 (Captain Garrick, model 109008).
- GARRICK_BEFORE_DARKMAUL_CITADEL phase was only shown after MESSAGE_TO_BASE +
  WESTWARD_BOUND were rewarded, so Garrick never appeared right after the ride.
  Show it once the boar ride is rewarded, until the player heads to the citadel.
2026-08-24 16:37:24 +10:00
devbox cfe74126f5 Exiles Reach: diagnostic logs for abandon respawn
Log when the ride abandon is detected, how many undead are tracked, and the
spawnIds being forced to respawn — to pinpoint why the mobs don't come back.
2026-08-24 15:10:25 +10:00
devbox 2317f0fe7d Exiles Reach: fix ride-giver Jaina on Darkmaul Plains + respawn on abandon
- The ride-giver the player actually talks to is on the Darkmaul Plains
  (phase 13779), and its phase was removed when the ride was accepted
  (!QuestAccepted) — so Jaina vanished on accept. Show it until the ride is
  rewarded (matches the ogre-ruins GARRICK_CAMP fix).
- OnQuestStatusChange does NOT fire on quest abandon (RemoveActiveQuest
  erases the entry without the hook), so the respawn-on-abandon never ran.
  Detect the active->gone transition in OnPlayerWorldObjectUpdate and force
  the mowed-down undead to respawn (Map::Respawn), while keeping them dead
  on completion.
2026-08-24 14:27:33 +10:00
devbox c354643e47 DB/World: bind Giant Boar Trample script (305557)
Adds the spell_script_names row for spell_giant_boar_trample_305557 so a
fresh DB also has the trample's despawn behavior for the boar ride.
2026-08-24 14:01:58 +10:00
devbox 71e005e10f Exiles Reach: keep Horde ride-giver Shuja visible while the quest is active
Same fix as the Alliance GARRICK_CAMP phase: Shuja's phase was only shown
after QUEST_H_THE_REDEATHER completed, so she vanished when the ride began.
Show it while accepted or completed.
2026-08-24 13:50:29 +10:00
devbox f72d0be912 Exiles Reach: no follower on the boar ride; keep quest-giver Jaina visible
- Remove the 156807 follower summon on ride accept (it reuses Jaina's
  model 88316, so it read as a duplicate Jaina following you). Ride alone.
- GARRICK_CAMP phase was only shown after the ride was rewarded, so Jaina
  phased out the moment she gave the quest. Show it while the ride is
  accepted too.
2026-08-24 13:48:10 +10:00
devbox 0e9b9f7db8 Exiles Reach: despawn the undead by faction, not phase
The mobs' phase desync made IsValidAttackTarget fail, so the despawn loop
skipped them (they stayed alive and killed the rider when the ride ended).
Use IsHostileTo (faction-based, no phase check) in both the trample and the
Big Kill Credit despawning.
2026-08-24 13:30:24 +10:00
devbox 7670e0eb91 Exiles Reach: respawn the mowed-down undead if the ride quest is abandoned
Track the undead spawnIds despawned by the boar (1h respawn delay). On
quest abandon, force their respawn (Map::Respawn sets the pending respawn
time to now) so the ride can be retried; clear tracking on completion.
2026-08-24 13:18:22 +10:00
devbox 48f5b7e124 Exiles Reach: undead stay dead after the trample/credit (1h respawn delay)
The ogre-ruins undead are regular spawns, so DespawnOrUnsummon removed them
briefly then the spawn timer respawned them. Force a 1h respawn delay on
both the trample and the Big Kill Credit despawning so the mowed-down mobs
don't pop back during the ride.
2026-08-24 13:11:00 +10:00
devbox c797c0c576 Exiles Reach: despawn the trampled undead on Big Kill Credit + fix rider immunity
The trample's own grid search didn't reliably despawn the undead (they stayed
alive and attacked the rider). Tie the despawn to the 'Big Kill Credit' scene
event (which reliably fires as the ride progresses): despawn all hostile mobs
within 50y (excluding Torgok). Also apply the rider's UNIT_FLAG_IMMUNE_TO_NPC
on EFFECT_0 (CONTROL_VEHICLE) as well as EFFECT_1 so the mobs can't damage the
player.
2026-08-24 12:16:43 +10:00
devbox 3cfb6d2c99 Exiles Reach: trample despawns the undead outright
Kill+DespawnOrUnsummon left the corpses visible (regular spawns). Just
DespawnOrUnsummon the targets — the scene's 'Big Kill Credit' grants the
quest credit, so the mobs simply vanish when trampled.
2026-08-24 11:52:28 +10:00
devbox 1b15337809 Exiles Reach: trample mows the undead down (kill + despawn)
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
The trample only dealt 120 damage, leaving healthier zombies/ogres alive
and visible. Kill and despawn each hostile target so the trampled army
actually disappears.
2026-08-23 22:27:40 +10:00
devbox 07e78803e2 Exiles Reach: rider immune to NPC damage while on the giant boar
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
Some undead still hit the player during the boar ride (mobs that aggro on
sight, not via the trample). Set UNIT_FLAG_IMMUNE_TO_NPC on the player for
the ride's duration so mob attacks can't reach the rider (IsValidAttackTarget
checks target->IsImmuneToNPC); the boar takes the hits and the trample kills
the cadavers.
2026-08-23 22:18:44 +10:00
devbox 23dc67639f Exiles Reach: trample damage from the boar, not the rider
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
The trample script dealt damage from the player (GetCaster), so the undead
aggro'd the rider and chewed through the player's health during the boar
ride. Attribute the trample damage to the boar vehicle (GetVehicleBase) so
the mobs attack the boar instead.
2026-08-23 22:09:06 +10:00
devbox 371e06dab9 Core: dispatch scene events to PlayerScripts too
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
ScriptMgr::OnSceneTrigger/Cancel/Complete only called the bound SceneScript
(via scene_template.ScriptName). The Thordekk Exiles Reach ride (and other
scene-driven content) registers its handlers as PlayerScript hooks
(OnSceneTriggerEvent/OnSceneComplete/OnSceneCancel), so 'Trampling Time' and
'Big Kill Credit' never fired -> the Giant Boar trample never cast and the
cadaver kill credit never granted. Add the FOREACH_SCRIPT(PlayerScript)
dispatch to all three.
2026-08-23 18:53:22 +10:00
devbox c7a4bf966e Exiles Reach: revert ship sparring leash + fix trample script compile
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
- Revert the Cole/Throg sparring distance-leash (exiles_reach_north_sea.cpp):
  it fought the clone's position/LOS desync on the ship (map 2261), making
  the clone run away and clip; back to the original combat chase while we
  investigate the position/LOS root cause.
- Fix spell_giant_boar_trample_305557 compile: CalcRadius returns SpellRange
  (use .Max) and DealDamage is static (Unit::DealDamage, uint32 damage).
2026-08-23 18:41:45 +10:00
devbox ffaac9ece6 Exiles Reach: implement Giant Boar Trample (305557)
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
The trample's Effect 1 is a SPELL_EFFECT_DUMMY (radius 13, targets the
caster) that was never scripted, so it did nothing to the Monstrous
Cadavers (157091) during Ride of the Scientifically Enhanced Boar. Add a
spell script that damages all hostile creatures within the effect radius
(caster->DealDamage, effect value). Registered + spell_script_names row.
2026-08-23 18:36:53 +10:00
devbox b47740c125 Exiles Reach (ship): replace boundary-evade with a distance leash for the sparring clone
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
The SetBoundary approach made the sparring partner evade back to home with a
straight spline, clipping through the boat hull. Use a distance leash in
UpdateAI instead: stop chasing past 15y and walk back on the ship geometry.
2026-08-23 17:40:55 +10:00
devbox 5072ad8f6f Exiles Reach: keep Monstrous Cadavers in-phase during the boar ride
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
The Alliance ride (Ride of the Scientifically Enhanced Boar, 55879) hides
phase 13783 (PHASE_GENERAL_DARKMAUL_PLAINS_ZOMBIES_AND_CADAVERS) while the
player rides (HasAura(SPELL_RIDING_GIANT_BOAR) or quest accepted), so the
Monstrous Cadavers (157091, phase 13783) are server-side out of phase:
visible to the client but not valid attack targets -> the boar trample
deals 0 damage and the ride can't progress to Torgok. Keep the phase
active while the ride is incomplete (hidden only after it's rewarded).
Applied to the identical condition in ogre_ruins, darkmaul_plains and
hruns_barrow.
2026-08-23 17:36:56 +10:00
luis 2468810cf3 fix db errors
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-23 02:39:03 -03:00
luis 1274a0f657 db error
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-23 01:47:11 -03:00
luis e5e1c6eede db error 2026-08-23 01:43:13 -03:00
luis e2e4aa345b remove dup 2026-08-23 01:42:15 -03:00
luis eaec95d1cb spell proc 2026-08-23 01:39:55 -03:00
luis e6baa1e4e5 typo 2026-08-23 01:39:30 -03:00
luis 2ea99f1705 exiles crash fix 2026-08-23 01:23:19 -03:00