* Added basic infrastructure for visibility update in case difference player and current view point.
Just for note: seletect additional arg way beacuse repeatable search object will slow but store pointer will not safe,
so use middle case: get view point pointer early as possible at visibility updates.
* Implement dynamic object and creature activisation while it's target of far sight spell effect
* Use this for SPELL_AURA_BIND_SIGHT, SPELL_AURA_FAR_SIGHT and SPELL_EFFECT_ADD_FARSIGHT.
* Note2: some spyglass like spells let look _around_ at long distance, this hard implement in current grid loading system
Without additional changes and not implemented (you will see empty area without creatures in likes case)
* Also fixed warning spam at CMSG_MOVE_SET_CAN_FLY_ACK receive by use proper packet sructure reading.
* Propertly reject self targeting for pet spell 2947 and ranks, and spell 54646.
* Some related fixes for pet spells with target mode TARGET_SINGLE_FRIEND_2
* Implement original caster bonus part of spell 54646.
* Not all positive spell have SPELL_ATTR_EX_NO_INITIAL_AGGRO (for react at assistance).
Avoid aggro at positive spell without this flag for non frindly target.
* Some cleanups and better checks in IsPositiveEffect.
* Target don't must lost stealth at hit by NOT_BREAK_STEALTH spell also.
* Target don't must aggro at hit not NO_INITIAL_AGGRO spell
if caster still not detected by aggro. This possoble in case when cast not remove
stealth (spell have NOT_BREAK_STEALTH)
* This fixed spell 921 wrong lost stealth at success and possible some other spells.
* Check new continent requirement by SPELL_ATTR_EX4_CAST_ONLY_IN_OUTLAND in
SpellMgr::GetSpellAllowedInLocationError.
* Also in this function let ignore any area requirement in GM-mode (except client side checks ofc if use spellbook/item)
* For fly form/mount auras check only speciaal reqirement like special fly skill and ignore it for dead state.
* Drop explicit fly auras drop at zone update, now this part GetSpellAllowedInLocationError functionality.
* Allow in `spell_area` have data deepndent from ghost auras
This all allow implement apply spells 55173/55164 to player ghost wiht DB support in `spell_area`
* Load table data to std::map instead SQLStorage and add check loaded spell existance.
* Drop from table not existed spells.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Support correct aura state at server set for different casters effects
* Correctly check this telent (per caster) aura state at cast
* Correctly show per-caster aura state for cleitns.
* Fixed place, basic dependent from 2 auras type at target and damage calculation.
* Avoid double apply spell bonus from original effect and talent self.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This is first patch in series for resolve all problem suggested by different authors.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Implement use `consumable` field in gameobject template for gameobject required explcit despawn at use.
* Move gameobject template fields cech function from Gameobject to gameobject template class, and update callers.
* Cast spells at gameobject use with gameobject guid as original caster guid, as already used in some other cases.
* Allow command to mind controlled unit attack target at client. Rename related flag to UNIT_FLAG_PLAYER_CONTROLLED.
* Move code for pet action bar remove at client side to new function Player::RemovePetActionBar
* Not allow cast spells with SPELL_AURA_MOD_POSSESS and SPELL_AURA_MOD_POSSESS_PET by non-players and simplify related code base at this.
* Removed runtime allocation of list
* Methods and defines from precast spell system and trigger system moved closer
to each other
Signed-off-by: ApoC <apoc@nymfe.net>
Skip in check values 0.0f from DBC, this spells
do not have min range limitation.
This should fix some inappropriate target too close messages.
Signed-off-by: ApoC <apoc@nymfe.net>
* Create new monster move field in Creature class and use it in all cases when expected use MONSTER_MOVE_* flags.
* Store and use MOVEMENTFLAG_* values in field in MovementInfo structure of Player class.
* Cleanups and fix related code.
NOTE: DB in creature_addon store values similar MONSTER_MOVE_* flags, scritps also expected set only this flags.
* SPELL_EFFECT_OPEN_LOCK_ITEM (59) effect removed in 3.1.3
* It replaced by SPELL_EFFECT_CREATE_RANDOM_ITEM (59), random item without template replace spells like clam loot spells)
Used by spells that use before SPELL_EFFECT_CREATE_ITEM_2 (157) with itemtype==0
Note: required DB support in `spell_loot_termplate`
* Replace 64904 by 64901 in spellbook and action bars.
* Implement proper max mana percent buff
* Implement proper target selection.
* Move group/raid targets seelction code to functions for reuse code.
Every gameobject which may be a target of such a spelleffect
has to have a lockid. Prior to this commit it was possible to
exploit SPELL_EFFECT_OPEN_LOCK spells and despawn abitrary GOs
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Also implement this table reload
* Static Spell::SendCastResult function for call not from spell code.
Can be also used in scripts where need send explicitly spell cast error to client.