Commit Graph

26225 Commits

Author SHA1 Message Date
Wyrserth
b3e7be5387 Script/Creature: calculate Traveler's Tundra Mammoth's NPCs' exit position based on current player's position (#23344)
* Script/Creature: calculate Traveler's Tundra Mammoth's NPCs' exit position based on current player's position.

* Comment out unused argument.

(cherry picked from commit d71a0608bf)
2021-12-10 21:12:48 +01:00
Wyrserth
d037c6b086 Core/SAI: add action_param3 to SMART_ACTION_REMOVEAURASFROMSPELL to allow it to remove only auras from spells that were cast by the entity itself. (#23345)
(cherry picked from commit d365dd9157)
2021-12-10 21:12:25 +01:00
Meji
0a8f79ad5a Core/BattlePets: Improvements when enabling battle pets (#27367) 2021-12-10 20:17:21 +01:00
Shauren
747da1f804 Core/Spells: Implemented SPELL_ATTR1_CAST_WHEN_LEARNED 2021-12-10 18:47:09 +01:00
jackpoz
efbb6f5b7d Core/Map: Don't log errors about Area ID 0
Restore a check about Area ID 0 that would silently ignore this case instead of spamming log errors. Check removed in e79c595b69
Fix #23085

(cherry picked from commit bda351d7f1)
2021-12-09 00:32:48 +01:00
jackpoz
363f385fc0 Scripts/HallsOfLightning: Fix Volkhan spamming in chat when wiping at 10% health
Ref #23082

(cherry picked from commit 2d5387ea42)
2021-12-09 00:32:32 +01:00
Ovah
0feebcdf5b Core/Groups: do not allow lfg groups to change the loot mode (#23336)
While the UI does not allow changing the loot mode you can still trigger the opcode by running interface scripts which we will now block as well so nobody can ninja-loot anymore.

(cherry picked from commit 49a9cbf20a)
2021-12-09 00:32:17 +01:00
jackpoz
b4652a38d3 Core/Misc: Headers cleanup
Use simple std::string concatenation instead of stringstream to avoid including <sstream> header.

(cherry picked from commit 9c790e231e)
2021-12-09 00:32:05 +01:00
Giacomo Pozzoni
33347c7d5f Core/Misc: Fix static analysis issues
Fix static analysis issues reported by Coverity Scan

(cherry picked from commit e12398afdc)
2021-12-09 00:24:41 +01:00
Nitair
f6048aca9a Scripts/Stratholme: Baron Rivendare rewrite (#22572)
* Adding last state of rivendare rewrite

* Fix aura beeing removed on reset, fix death pact

* Not needed

* SQL: Changed remove/inset into update, fixed delete at conditions part

* Typo

* Remove link spell, fix blank lines, change magic numbers to enum

* Test changes with SpellScript and DoCastSelf

* Revert SpellScript and moved DoCastSelf for the aura into UpdateAI part

* Damn, copyright.

* Fix Unholy Aura

* Fix again (does attack now / does cast if encounter resets)

* Adding handling of the aura to the db

* Rename 2018_99_99_99_world_335.sql to 2019_05_31_02_world_335.sql

(cherry picked from commit ee5101fbf7)
2021-12-09 00:24:26 +01:00
Wyrserth
9d865f7536 Core/Misc: don't allow players to use/activate/loot non-allowed gameobjects while under the effect of a damage immunity aura (#23319)
* Core/Misc: don't allow players to use/activate/loot non-allowed gameobjects while under the effect of a damage immunity aura.

* Forgot to change this in last-second rename.

* Apply suggested changes, thanks Shauren!

(cherry picked from commit 8bc5451864)
2021-12-09 00:13:59 +01:00
jackpoz
049606e31e Core/MovementGenerator: Add more details to asserts
Implement GetDebugInfo in MovementGenerator, PathMovementBase, FlightPathMovementGenerator, WaypointMovementGenerator.
Add an additional assert in FlightPathMovementGenerator::DoEventIfAny(), the input node must not be null

(cherry picked from commit 9da8123959)
2021-12-08 23:51:21 +01:00
Wyrserth
1edd93bc0c Core/Script: add script hook to allow overriding of a vehicle passenger's exit position (#23322)
* Core/Script: add script hook to allow overriding of a vehicle passenger's exit position.

* Allow to change orientation, and fix nopch.

* Keep original orientation, thanks jackpoz!

* Update Unit.cpp

Code cleanup

* Update Unit.cpp

(cherry picked from commit 88c6c61b95)
2021-12-08 23:51:07 +01:00
jackpoz
2cade0e6e3 Core/Channel: Sanitize channel names
(cherry picked from commit 7b8f294c02)
2021-12-08 23:47:07 +01:00
jackpoz
97249ff7b4 Core/Channel: Fix CRT Debug Assert triggered with invalid channel names
(cherry picked from commit f0bd90cc35)
2021-12-08 23:43:19 +01:00
Giacomo Pozzoni
6e28ecd22e Core/Movement: Fix assertion triggered in SplineChainMovementGenerator
Fix an assertion triggered in SplineChainMovementGenerator happening when a new generator is added while last spline of the SplineChainMovementGenerator is being processed but is not finalized yet.
Fix #23077

(cherry picked from commit 5d7f0eef6e)
2021-12-08 23:35:01 +01:00
Ovah
0d433b1bc8 Core/Players: out of range group updates will now get sent every 5 seconds instead of as soon as they are available to reflect retail behaivior. (#23323)
* according to sniffs the group update packet for out of range members has a fixed 5 seconds interval instead of spaming packets like crazy for example when updating positions. On 4.x and above this will fix a very nasty and ugly fps drop
* validated with 4.3.4 and 3.3.5 sniffs

(cherry picked from commit 635cefc67e)
2021-12-08 23:22:12 +01:00
lactoseti
6b2e40257a Creature/Script: npc_tallhorn_stag
Ref #2623

(cherry picked from commit bfffa5d45e)
2021-12-08 23:20:51 +01:00
Wyrserth
2344671af5 Core/Console: start CliRunnable thread after all log messages have been printed. (#23321)
(cherry picked from commit d8ce37e0c9)
2021-12-08 21:55:04 +01:00
Ovah
09fe78dd59 Core/GameObjects: goober gameobjects may reset only if they have a lock id or a reset time specified (#23298)
* Core/GameObjects: goober gameobjects may reset only if they have a lock id

Tests have shown that Goobers without a lock id (Data0=0) are not allowed to reset their go state such as the teleporters in Ulduar and Icecrown Citadel. The tests has been expanded by checking 4.x goobers as well and the perfect example that confirms that result is the Ancient Bell for Atramedes' intro which also is not suposed to reset after using it.

* Core/GameObjects: allow to reset goobers without a lock id if a reset time is defined

* fixed a typo

(cherry picked from commit a70845c93d)
2021-12-08 21:54:41 +01:00
jackpoz
e9aed3e442 Core/SmartAI: Improve SMART_EVENT_GOSSIP_HELLO
Add another value to event_param1 for SMART_EVENT_GOSSIP_HELLO to support all cases of OnGossipHello/OnReportUse in GameObjects:
- event_param1 set to 0: execute the action for both OnGossipHello and OnReportUse. This might result in the action being executed twice when clicking the GameObject
- event_param1 set to 1: execute the action for only OnGossipHello
- event_param1 set to 2: execute the action for only OnReportUse

(cherry picked from commit 9e58ef6940)
2021-12-08 21:33:58 +01:00
Kittnz
9c2ce24c8a Core/Weather: Define WEATHER_STATE_DRIZZLE state
(cherry picked from commit cf05c3dd2c)
2021-12-08 20:37:10 +01:00
Killyana
8f1020ec78 DB/Creature: Hydross the unstable npc triggers
Update the correct channel spell SPELL_BLUE_BEAM and spawn triggers used to cast it

(cherry picked from commit 2829f5fb9c)
2021-12-08 20:36:43 +01:00
Killyana
229d35adba DB/Creature: Dark Portal Dummy 1.30
(cherry picked from commit fdec429f18)
2021-12-08 20:31:38 +01:00
Shauren
a937767289 Core/Misc: Exclude boost 1.78 and newer from boost_1_73_process_windows_nopch hack 2021-12-08 19:02:59 +01:00
Shauren
df2d0f3670 Core/AreaTriggers: Added helper static function AreaTrigger::CreateNewMovementForceId for use in scripts with movement forces 2021-12-08 19:02:33 +01:00
Shauren
e2de5000ac Core/Movement: Defined movement force type enum 2021-12-08 19:02:02 +01:00
funjoker
833e179985 Core/Misc: Add helper table phase_name and improve .npc info and .gps
.gps and .npc info now displays names for known phase names
2021-12-07 20:38:26 +01:00
Gildor
9752ef4d6e Core/Spells: Fix spells with Health Leech effect, now check damage absorb when calculate Heal (#23312)
Closes: #23311
(cherry picked from commit ad89472fe3)
2021-12-07 00:31:48 +01:00
jackpoz
6034992dff Core/SmartAI: Implement SMART_EVENT_SUMMONED_UNIT and SMART_EVENT_SUMMON_DESPAWNED for GameObject owners
(cherry picked from commit 507a56d627)
2021-12-07 00:31:26 +01:00
Giacomo Pozzoni
5f545f5402 3.3.5 gameobject summoner (#23289)
* Scripts/Misc: Change IsSummonedBy(Unit*) to IsSummonedBy(WorldObject*)

* Scripts/Misc: Fix build

* Core/TempSummons: Rename GetSummoner() to GetSummonerUnit()

* Core/TempSummons: Add support to TempSummons::GetSummoner() to return GameObject too

* Fix build

* Core/TempSummons: Allow GameObject to be owner of TempSummon

* Core/TempSummons: Add support to SAI for GameObject owner of TempSummon

* Scripts/Misc: Fix no-pch build

* Core/TempSummons: Implement PR comments

(cherry picked from commit 797fba98e9)
2021-12-07 00:02:03 +01:00
jackpoz
54044bda82 Core/SmartAI: Fix SMART_EVENT_SUMMON_DESPAWNED
Fix SMART_EVENT_SUMMON_DESPAWNED not working when event_param1 was set to any value other than 0

(cherry picked from commit 457fc22473)
2021-12-06 23:27:45 +01:00
Shauren
9005bdc684 Core/GameObjects: Validate rotation quaternion at startup
Ref #23306

(cherry picked from commit 9dbedb6b64)
2021-12-06 23:27:05 +01:00
Shauren
6ebd4eb202 Core/Misc: Fixed dynamic build 2021-12-06 10:24:29 +01:00
ccrs
14712653dd Core/PetAI: apply some movement related corrections
Unit::StopMoving() is evil, and so is MotionMaster::Clear()

the first can really mess up existing movement generators
the second can interrupt "controlled" movements... can do it literally mid-air

(cherry picked from commit e4a1556e09)
2021-12-05 23:01:22 +01:00
ccrs
4765668718 Core/Handlers: apply some movement related corrections
Unit::StopMoving() is evil, and so is MotionMaster::Clear()

the first can really mess up existing movement generators
the second can interrupt "controlled" movements... can do it literally mid-air

(cherry picked from commit c826ec0a3c)
2021-12-05 23:00:39 +01:00
ccrs
a41cac45f4 Core/Handlers: random PetHandler cosmetics & codestyle
(cherry picked from commit 48208b8dde)
2021-12-05 23:00:15 +01:00
ccrs
c926184bca Core/Movement: move DelayedAction into MotionMaster and add a couple defines
(cherry picked from commit 2b78c70810)
2021-12-05 22:50:21 +01:00
jackpoz
7fc359559f Core/Misc: Fix static analysis issues reported by Coverity
(cherry picked from commit a0bd68cf46)
2021-12-05 22:44:38 +01:00
Killyana
c287485a7b Spell/Scripts: Add cooldown for Arcano-Scorp spells
Closes #23287

(cherry picked from commit a0d41c314f)
2021-12-05 22:37:31 +01:00
Wyrserth
fd030069f7 Core/Spell: add proper cooldowns to some spells used by vehicles (#23260)
* Core/Spell: add proper cooldowns to some spells used by vehicles, thanks to jackpoz and sirikfoll.

* Add Wing Buffet and Stampy's Stompy-Stomp.

* Add Tag Greater Felfire Diemetradon and Touch of Darkness.

* Rename 9999_99_99_99_world.sql to 2019_05_17_00_world.sql

(cherry picked from commit 4d04344b41)
2021-12-05 18:44:59 +01:00
ccrs
4f49cef15c Build: fix variable order initialization error
fatal error: field 'Action' will be initialized after field 'Validator' [-Wreorder]

(cherry picked from commit 71e7394b74)
2021-12-05 18:40:20 +01:00
ccrs
36a1d00444 Core/Movement: implement MotionMasterDelayedAction validator
(cherry picked from commit b2b85dedb6)
2021-12-05 18:40:11 +01:00
ccrs
86b4aa01bb Core/AI: PetAI method reordering
(cherry picked from commit acbfac7b13)
2021-12-05 18:40:05 +01:00
Killyana
cb9a1c38f1 Instance/Script: Blood Furnace
Ref #23285

(cherry picked from commit 9435caa8d1)
2021-12-05 18:39:09 +01:00
ccrs
97dddac75a Core/PetAI: apply some movement related corrections
Unit::StopMoving() is evil, and so is MotionMaster::Clear()

the first can really mess up existing movement generators
the second can interrupt "controlled" movements... can do it literally mid-air

(cherry picked from commit 74678b247e)
2021-12-05 18:37:57 +01:00
ccrs
6814b4d32b Core/PlayerAI: apply some movement related corrections
Unit::StopMoving() is evil, and so is MotionMaster::Clear()

the first can really mess up existing movement generators
the second can interrupt "controlled" movements... can do it literally mid-air

(cherry picked from commit a4e94dcf6b)
2021-12-05 18:37:48 +01:00
ccrs
c511fa2803 Core/Misc: remove incorrect ClearUnitState calls related to movement
these unit states should never be removed outside motionmaster's handlings

(cherry picked from commit 79b90f9d3a)
2021-12-05 18:37:12 +01:00
Aokromes
1d22ade73f Core/Creature: equipment_id field on creature table is not working correctly, if it's set to 0 the npc still spawn with the equipement. (#23273)
By Malcrom
Closes #16416

(cherry picked from commit 61ba477c77)
2021-12-05 18:20:36 +01:00
ccrs
bda32dfbd1 Core/AI: couple movement related corrections in FollowerAI
plus EnterEvadeMode streamline

(cherry picked from commit f309b49eb1)
2021-12-05 16:51:19 +01:00