This already checked at apply to creature but startup check more helpful for DB devs.
Also remove use single field structure use for store addon.auras data
This let resolve porblems for casts/etc that before happens
before real movgen stop from code logic.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This helper change for allow have in future static spawned vehicles as `creature` table data.
Added CreatureInfo::GetHighGuid() high guid selector, and wrapper CreatureData::GetHighGuid()
for most real cases of usage. Also easy get expected guid form by CreatureData::GetObjectGuid(lowguid).
Also fixed some memory lost cases at creature spawn fail.
Protection only work with ChatStrictLinkChecking.Severity = 3
Thanks to Lugia0529 and Micks for provided testing examples.
Also fixed server side infinity loops in ChatHandler::isValidChatMessage
A new specialized function SetFactionTemporary for creatures are added. It work just like setFaction but has in addition option to set flags.
The flags determine if default faction should be restored and when; most commonly just before respawn and when reaching home after evade.
SCRIPT_COMMAND_SET_FACTION for DB scripts and ACTION_T_SET_FACTION for creature_ai_scripts are now capable of using the system (documentation updated)
The intention of the system is to be able to solve basic events that include faction changes, with the use of database only and in easier ways.
It is advised that DB devs revise current database scripts to check if changes should be made. The same goes for EventAI devs regarding ACTION_T_SET_FACTION.
Signed-off-by: NoFantasy <nofantasy@nf.no>
Reserve at server startup some guods follow last used in static DB spawns guid
for creatures/gameobjects for use in .npc add/.gobject add commands.
This allow safe select guids not used in all map copies. Guids for temporary spawns
used from range frollow after reserved guids range.
This also let select new static spawns guids (added in game chat command) near to already used static guids.
So it let avoid gaps in static guids lists.
Amount reserved guids set in new GuidReserveSize.* config options.
Also allow play emote on Player when player is source.
Gameobject may be source of script but are only allowed as searcher for creature when defined.
Signed-off-by: NoFantasy <nofantasy@nf.no>
- Unit::CalculateSpellDuration split into two functions
- CalculateSpellDuration taking into account combo points and caster-side spell mods
- Unit::CalculateAuraDuration taking into account target-side spell mods
- Diminishing is now applied before duration reduction mods
- Implement saving per-effect periodic timers to DB (required for auras affected by haste)