Giacomo Pozzoni
247564a7ab
Core/Creature: Allow to disable HP regen in Raids even if the target is unreachable ( #24646 )
2020-05-21 14:48:09 +02:00
Shauren
50576fa1f5
Core/Auras: Prevent getting negative scale with auras
...
Closes #24040
2020-04-28 18:03:51 +02:00
Ovahlord
1610337e67
Core/Vehicles: update the power display of vehicles before being added to world to avoid building unnecessary update_object packets right after spawning them
2020-04-27 19:29:01 +02:00
Giacomo Pozzoni
468ecb7252
Core/Logs: Log full guid instead of just low guid
2020-04-05 19:10:57 +02:00
Eridium
0e2342c169
Core/Movement: Formation Rewrite ( #24379 )
...
* Core/Movement: Formation Rewrite
* Add a missing include
* fixed another warning
* meh
Co-authored-by: Ovahlord <Ovahlord@users.noreply.github.com >
Co-authored-by: Ovah <dreadkiller@gmx.de >
2020-04-04 15:08:42 +02:00
Shauren
635b8d52d5
Core/DBLayer: Prevent committing transactions started on a different database
...
(cherry picked from commit f6e2b8cdc1 )
# Conflicts:
# src/server/bnetserver/REST/LoginRESTService.cpp
# src/server/database/Database/DatabaseWorkerPool.cpp
# src/server/database/Database/DatabaseWorkerPool.h
# src/server/database/Database/Implementation/HotfixDatabase.h
# src/server/database/Database/MySQLConnection.h
# src/server/database/Database/Transaction.cpp
# src/server/database/Database/Transaction.h
# src/server/game/Achievements/AchievementMgr.cpp
# src/server/game/Achievements/AchievementMgr.h
# src/server/game/AuctionHouse/AuctionHouseMgr.cpp
# src/server/game/AuctionHouse/AuctionHouseMgr.h
# src/server/game/BattlePets/BattlePetMgr.cpp
# src/server/game/BattlePets/BattlePetMgr.h
# src/server/game/BlackMarket/BlackMarketMgr.cpp
# src/server/game/BlackMarket/BlackMarketMgr.h
# src/server/game/Entities/Creature/Creature.cpp
# src/server/game/Entities/Item/Item.cpp
# src/server/game/Entities/Item/Item.h
# src/server/game/Entities/Player/CollectionMgr.cpp
# src/server/game/Entities/Player/CollectionMgr.h
# src/server/game/Entities/Player/Player.cpp
# src/server/game/Entities/Player/Player.h
# src/server/game/Garrison/Garrison.cpp
# src/server/game/Garrison/Garrison.h
# src/server/game/Groups/Group.cpp
# src/server/game/Guilds/Guild.cpp
# src/server/game/Guilds/Guild.h
# src/server/game/Guilds/GuildFinderMgr.cpp
# src/server/game/Handlers/BlackMarketHandler.cpp
# src/server/game/Handlers/CalendarHandler.cpp
# src/server/game/Handlers/CharacterHandler.cpp
# src/server/game/Handlers/MailHandler.cpp
# src/server/game/Handlers/PetHandler.cpp
# src/server/game/Handlers/PetitionsHandler.cpp
# src/server/game/Mails/Mail.cpp
# src/server/game/Pools/PoolMgr.cpp
# src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
# src/server/game/Quests/QuestObjectiveCriteriaMgr.h
# src/server/game/Scenarios/InstanceScenario.cpp
# src/server/game/Server/WorldSession.cpp
# src/server/game/Server/WorldSession.h
# src/server/game/Spells/SpellHistory.cpp
# src/server/game/Support/SupportMgr.cpp
# src/server/game/Tools/PlayerDump.cpp
# src/server/scripts/Commands/cs_misc.cpp
2020-03-31 13:42:01 +00:00
Shauren
fe1003bdbd
Core/DBLayer: Prevent using prepared statements on wrong database
...
(cherry picked from commit e8e89f58fb )
# Conflicts:
# src/server/bnetserver/REST/LoginRESTService.cpp
# src/server/bnetserver/Server/Session.cpp
# src/server/database/Database/DatabaseWorkerPool.cpp
# src/server/database/Database/Implementation/HotfixDatabase.h
# src/server/database/Database/MySQLConnection.cpp
# src/server/database/Database/MySQLConnection.h
# src/server/database/Database/PreparedStatement.cpp
# src/server/database/Database/PreparedStatement.h
# src/server/database/Database/QueryHolder.cpp
# src/server/database/Database/SQLOperation.h
# src/server/database/Database/Transaction.h
# src/server/game/Accounts/BattlenetAccountMgr.cpp
# src/server/game/Achievements/AchievementMgr.cpp
# src/server/game/AuctionHouse/AuctionHouseMgr.cpp
# src/server/game/AuctionHouseBot/AuctionHouseBot.cpp
# src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
# src/server/game/BattlePets/BattlePetMgr.cpp
# src/server/game/Battlegrounds/ArenaTeam.cpp
# src/server/game/BlackMarket/BlackMarketMgr.cpp
# src/server/game/Chat/Channels/Channel.cpp
# src/server/game/Entities/Corpse/Corpse.cpp
# src/server/game/Entities/Creature/Creature.cpp
# src/server/game/Entities/GameObject/GameObject.cpp
# src/server/game/Entities/Item/Item.cpp
# src/server/game/Entities/Pet/Pet.cpp
# src/server/game/Entities/Player/CollectionMgr.cpp
# src/server/game/Entities/Player/Player.cpp
# src/server/game/Garrison/Garrison.cpp
# src/server/game/Globals/ObjectMgr.cpp
# src/server/game/Groups/Group.cpp
# src/server/game/Guilds/Guild.cpp
# src/server/game/Guilds/GuildFinderMgr.cpp
# src/server/game/Guilds/GuildMgr.cpp
# src/server/game/Handlers/AuctionHouseHandler.cpp
# src/server/game/Handlers/CharacterHandler.cpp
# src/server/game/Handlers/ItemHandler.cpp
# src/server/game/Handlers/MailHandler.cpp
# src/server/game/Handlers/MiscHandler.cpp
# src/server/game/Handlers/PetitionsHandler.cpp
# src/server/game/Handlers/SpellHandler.cpp
# src/server/game/Handlers/TicketHandler.cpp
# src/server/game/Loot/Loot.cpp
# src/server/game/Mails/Mail.cpp
# src/server/game/Maps/Map.cpp
# src/server/game/Movement/Waypoints/WaypointManager.cpp
# src/server/game/OutdoorPvP/OutdoorPvP.cpp
# src/server/game/Pools/PoolMgr.cpp
# src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
# src/server/game/Reputation/ReputationMgr.cpp
# src/server/game/Scenarios/InstanceScenario.cpp
# src/server/game/Server/WorldSession.cpp
# src/server/game/Server/WorldSocket.cpp
# src/server/game/Spells/SpellHistory.cpp
# src/server/game/Support/SupportMgr.cpp
# src/server/game/Tools/PlayerDump.cpp
# src/server/game/World/World.cpp
# src/server/scripts/Commands/cs_account.cpp
# src/server/scripts/Commands/cs_ban.cpp
# src/server/scripts/Commands/cs_battlenet_account.cpp
# src/server/scripts/Commands/cs_group.cpp
# src/server/scripts/Commands/cs_lfg.cpp
# src/server/scripts/Commands/cs_list.cpp
# src/server/scripts/Commands/cs_message.cpp
# src/server/scripts/Commands/cs_misc.cpp
# src/server/scripts/Commands/cs_npc.cpp
# src/server/scripts/Commands/cs_tele.cpp
# src/server/scripts/Commands/cs_wp.cpp
# src/server/shared/DataStores/DB2DatabaseLoader.cpp
# src/server/shared/Realm/RealmList.cpp
2020-03-31 13:42:01 +00:00
Sorikoff
5f20715e2f
[WIP] Core/AI: Pets musn't attack civilian NPC in aggressive mode ( #24121 )
...
* Core/AI: Pets musn't attack civilian NPC in aggressive mode
* Move decision to ignore civilians to PetAI, keeping the check in GridNotifiers
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com >
2020-02-16 16:00:54 +01:00
ratkosrb
6176ce92ea
Core/Creature: Use proper name for wander distance. ( #24133 )
...
* Use proper name for wander distance.
* Rename db field.
* Fix query.
* Remove underscore from chat command.
* Rename the handler too.
* Update chat command description.
* Fix remaining issues.
* Rename 2020_99_99_99_world_335.sql to 2020_02_16_01_world.sql
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com >
2020-02-16 13:36:56 +01:00
Treeston
9304e496cb
Core/Misc: Some refactoring, #23603 prep: ( #23676 )
...
- Split SpawnMetadata off from SpawnData
- No longer allocate Creature/Gameobject objects in ObjectGridLoader just to check their typeid and delete them afterwards
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com >
2020-02-08 20:22:37 +01:00
ForesterDev
573ddf4d22
Core/Items: implement some helper methods for easier readability ( #24113 )
2020-02-01 14:45:58 +01:00
Aokromes
ed93932537
New year
...
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Killyana
a32aeceb0d
Core/Creature: Clear creature focus after an evade
2020-01-01 17:19:37 +01:00
Giacomo Pozzoni
4ccf01de39
Fix fleeing speed to 66% run speed ( #24025 )
...
* Core/Movement: Fix fleeing speed to 66% run speed
Fix fleeing speed to 66% run speed until the creature starts returning home
* Fix build
* Don't check speed type
* Don't apply speed reduction twice
* Fix no-pch (1st try)
* Make sure every spell focus is interrupted when seeking assistance
2020-01-01 16:28:33 +01:00
jackpoz
4074cb0f01
Core/Creature: Fix another pet assert
...
Fix an assert triggered when dismissing a Warlock pet while it's casting a spell
2019-09-01 19:05:29 +02:00
Treeston
9665bbf665
Entities/Creature: Fix a bug that caused map respawn timers to be scheduled for compatibility mode creatures.
2019-08-18 12:30:21 +02:00
Shauren
3a4216fd97
Core/Map: Kill zoneId from RespawnInfo, all it did was significantly slow down startup to make one gm command faster
2019-08-17 22:30:27 +02:00
Treeston
6590a0bfce
Entities/Creature: Fix an edge case assertion failure with pets dying in specific situations while casting spells.
2019-08-12 19:43:38 +02:00
Treeston
fcce90508d
Core/Creature: Fix an issue that sometimes prevented spellcast focus targets from being reacquired.
2019-08-11 13:31:46 +02:00
ccrs
30f4aabf64
Core/Creature: 4a219ed codestyle followup, for real this time
2019-08-05 17:06:07 +02:00
Treeston
dad1718f1b
Revert "Core/Creature: 4a219ed codestyle followup"
...
This reverts commit 37b15e05bc .
2019-08-04 20:08:24 +02:00
ccrs
37b15e05bc
Core/Creature: 4a219ed codestyle followup
2019-08-04 16:58:31 +02:00
Treeston
a5e73e41c0
Core/Pooling: Quest pooling rewrite: (PR#23627)
...
- Split quest pooling from PoolMgr (into QuestPoolMgr)
- Proper saving/restoring on server restart
- No more hacking into sObjectMgr to insert/remove available quests
2019-08-04 12:22:57 +02:00
Giacomo Pozzoni
15e85f882f
Core/Vehicle: Change vehicle accessories' phase according to the player on the vehicle ( #23646 )
...
* Core/Vehicle: Change vehicle accessories' phase according to the player on the vehicle
* Get the root vehicle to set the phase to all accessories.
Attempt to get the accessories to stay mounted on the vehicle.
* Fix the accessories to stay mounted on the vehicle
2019-08-04 11:33:29 +02:00
Treeston
b159921099
no idea what happened there ( 4a219ed follow-up)
2019-08-04 11:12:56 +02:00
Treeston
4a219eda07
Core/Unit: Spell focusing now no longer nonsensical. HasSpellFocus always const. Error logs for various stuff.
2019-08-04 01:26:20 +02:00
ccrs
8e88f4501d
Core/Creature: add a const spell-focus-check method and remove a nasty const_cast from IsMovementPreventedByCasting()
...
closes #23670
maybe #22857 ?
2019-08-03 18:12:53 +02:00
ccrs
3a4021be50
Core/Unit: rename more things
...
Workaround prework till actual facing system rework arrives
2019-08-03 18:04:00 +02:00
ccrs
85ad0befc5
Core/Unit: rename more methods
...
Workaround prework till actual facing system rework arrives
2019-08-03 17:53:22 +02:00
ccrs
ec9f15a5ff
Core/Unit: rename IsFocusing method
...
Workaround prework till actual facing system rework arrives
2019-08-03 17:45:06 +02:00
Treeston
1faa54fe8b
Core/SmartAI: SmartAI creatures no longer process health-based hooks after death.
2019-08-02 21:27:23 +02:00
Treeston
3d4bebd8d9
Scripts/FollowerAI: Some cleanup:
...
- FollowerAI properly resumes follow after evading.
- Removed duplicated getters from CreatureAI (IsEscorted vs IsEscortNPC), they were used to do the same thing
- FollowerAI properly assists in combat.
- FollowerAI properly despawns if quest is abandoned.
- FollowerAI now supports dynamic respawning for escort NPCs.
2019-08-01 18:32:26 +02:00
Treeston
7fa990edc6
Scripts/ICC: Prevent Professor Putricide from displaying weird behavior during the Rotface/Festergut encounters as a result of his boss boundary
2019-07-31 16:02:29 +02:00
Treeston
9c603ea87f
Core/Combat: Properly unset engagement flag on death.
2019-07-31 13:17:32 +02:00
Shauren
73c1d666fa
Core/Entities: Fixed crash happening when deleting a creature/gameobject on respawn timer from db
...
Closes #23590
2019-07-26 19:55:02 +02:00
Wyrserth
e2e37ec839
Core/Creature: fix mistake in Creature::GetAttackDistance().
...
Thanks Azelen for the heads-up!
2019-07-24 20:13:13 +02:00
Treeston
0e7c66cb4c
Core/AI: Finally move the "is creature engaged" flag to be a property of the creature AI, where it honestly always belonged. Fixes #17981 and #23602 for real this time.
2019-07-21 01:50:52 +02:00
Wyrserth
5f5d2028df
Core/Creature: don't set guardian stats in Creature::UpdateEntry(), because stat calculation from guardians is already done in Guardian::InitStatsForLevel.
...
Closes #281 .
Signed-off-by: Wyrserth <wyrserth@protonmail.com >
2019-07-18 02:20:36 +02:00
Treeston
d60082ae86
Core/Misc: Various dynspawn cleanup and refactors split off from pooling rewrite:
...
- Map::RemoveRespawnTime(SpawnObjectType, LowType, doRespawn) split into Map::Respawn and Map::RemoveRespawnTime, without the extra boolean
- Map::RemoveRespawnTime(RespawnInfo*) merged into Map::DeleteRespawnInfo(RespawnInfo*) and is now private
- Map::DeleteRespawnInfo(void) renamed to Map::UnloadAllRespawnInfos to properly describe what it does
- Map::ProcessRespawns now actually saves the delayed respawn time to DB if the respawn was delayed
- Map::AddRespawnInfo now takes const reference, and returns success as a boolean
- Map::AddRespawnInfo no longer offers an unused "replace" parameter
- Map::DeleteRespawnInfo no longer offers a variety of unused private overloads
- Map::SaveRespawnTime no longer offers a tantalizing writeDB parameter. Parameter is now called "startup" to properly describe what it does.
- Map::SaveRespawnInfoDB now takes RespawnInfo reference instead of all the various fields. Still public because compatibility mode. QQ.
- Map::GetWorldObjectBySpawnId sanitized
- Map::GetXRespawnTime methods sanitized to all go through Map::GetRespawnTime
2019-07-15 17:14:58 +02:00
Treeston
26440857c1
Core/Spawns: Exterminate CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY with extreme prejudice. (It didn't work anyway.)
2019-07-15 15:57:04 +02:00
Treeston
84b7b2e08e
Entities/Unit: Nuke Map::ForceRespawn from orbit, with the following implications:
...
- .npc respawn no longer causes stupid things to happen (Fixes #23014 )
- ::DeleteFromDB methods on Creature and GameObject rewritten to be as sensible as such a colossally stupid method can ever be. They're static now.
- .npc delete and .gobj delete ported to new argument handling, and rewritten as per above. They can no longer crash the server when used in instances, too. Yay for that.
- Adjusted various dusty cobwebbed hacks around the core (why does waypoint visualization use permanent spawns *shudder*) to still work too.
2019-07-08 11:56:41 +02:00
Treeston
ded18a2690
Entities/Creature: Some asserts are now LOG_ERRORs that block spawning. Fix a group spawning bug exposed by the CoS merge. Improve some command output.
2019-07-07 19:18:32 +02:00
Ovahlord
980047763a
Core/Creature: Reworked creature aggro radius calculation ( #20615 )
...
* Core/Creatures: rewrote creature aggro radius calculation
* Formulas are taken from WoW Wiki
2019-07-05 18:21:00 +02:00
ForesterDev
c44fb37f74
Core/Unit: Implement more helper methods ( #23555 )
2019-07-05 14:07:35 +02:00
ccrs
401777d024
Core/Unit: rename several getters to follow codestyle
...
uint8 GetLevel()
uint8 GetLevelForTarget(WorldObject const* /*target*/)
void SetLevel(uint8 lvl)
uint8 GetRace()
uint32 GetRaceMask()
uint8 GetClass()
uint32 GetClassMask()
uint8 GetGender()
2019-07-01 21:36:32 +02:00
Wyrserth
8967cc96df
Core/SAI: do not pass old creatureData to UpdateEntry() and keep current health when changing a NPC's entry. ( #23493 )
2019-06-26 18:03:03 +02:00
Treeston
00728cef15
some more cleanup, a5f8c0d follow-up
2019-06-23 13:28:45 +02:00
Treeston
a5f8c0d30c
Core/Creature: Attach out-of-combat health regen to the Engaged system, not the Combat flag. Closes #21571 .
2019-06-23 13:27:29 +02:00
Treeston
dbe3bbefe7
Core/Entities: Kick engagement logic upstairs to Unit (from ThreatManager), since all Units with AI need it (not just those with threat list). Fixes #17981 .
2019-06-23 00:32:13 +02:00
Wyrserth
d50be8e020
Core/Loot: fix some other cases where a creature should not be able to set focus. ( #23415 )
2019-06-16 19:27:53 +02:00