Commit graph

118 commits

Author SHA1 Message Date
VladimirMangos
fdb2842f60 [8425] Implement SPELL_EFFECT_LEAP_BACK and spell 781
* Move CMSG_MOVE_KNOCK_BACK_ACK (player case) to Unit::KnockBackFrom
* Implement creature case, most at hack way currently :(
  Need information about expected server packet, and possible some disorientation movegen apply at short time.
* In adition of spell 781 implement related creature versions.

* Fixed warnings spawn at reading CMSG_MOVE_KNOCK_BACK_ACK, CMSG_MOVE_HOVER_ACK, CMSG_MOVE_WATER_WALK_ACK.
2009-08-27 05:27:45 +04:00
VladimirMangos
45dd7140b5 [8422] Implement far sight like spells work for long distance.
* 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.
2009-08-26 08:30:40 +04:00
nos4r2zod
e07a0d9652 [8399] Prevent stacking well fed buffs.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-21 06:00:08 +04:00
VladimirMangos
9eb5a3eea1 [8394] Fixes for some non-self only positive spells.
* 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.
2009-08-20 00:26:34 +04:00
VladimirMangos
74d27294aa [8381] Some refactoring work in Unit::m_currentSpells code.
* Restrict access, use enum args, move some repeated code parts to function.
* Make m_selfContainer set only part of Unit::SetCurrentCastedSpell
2009-08-18 02:12:56 +04:00
VladimirMangos
0bbc496192 [8357] Use less hacky Spell::AddTriggeredSpell call for spell 33076 and ranks jump animation cast 2009-08-12 17:49:37 +04:00
XTZGZoReX
5c2ae96e38 [8338] Use expected constant name instead explicit value.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-09 11:01:53 +04:00
VladimirMangos
c8cc9b28f8 [8329] Implement aura deleting delay in case aura lock as currently used.
* Use counter for aura uses lock for recursivly mark as used in some cases.
* At aura remove add aura to deleting delayed auras list for aura target.
* Remove now unneeded hacks from aura handlers and aura tick code (maybe not all found yet)
* Use new aura delete locking for simplify proc spell event code.
* Prevent apply aura boost spells if aura deleted while adding to target by triggered spells.
* Re-implement aura list updating at auras update for target to better way skip
  removed from aura list auras while auras update.
2009-08-08 11:31:29 +04:00
VladimirMangos
a1973ced28 [8321] For additional atatck target ignore source spell target instaed auto-attack target.
This is fix targets selection in special cases for 13877, 26654 and ranks.
2009-08-06 02:01:17 +04:00
VladimirMangos
822a34e2c7 [8295] Remove single target auras at caster/target shift to not accessable phase.
This must fix another source of "Couldn't find the caster of the single target aura" errors.
2009-08-02 10:55:41 +04:00
nos4r2zod
13b709a10b [8249] Implement support spell_proc_item_enchant table for ppm item enchantments triggering at hit.
* Added a new SQL table, spell_proc_item_enchant, for "custom" ppmRates on Item Enchants that do not use auras.
  With table data this must fix ppm for effect from 8033 and ranks enchanting, and item 6947/10918 and ranks enchanting.

* Implemented SPELLMOD_FREQUENCY_OF_SUCCESS (26).
  That must fix work talent 14113, spell 32645 with ranks, glyph 41094 and item set effect 64917 in frequency part.

Thanks to MaS0n as author alternative patch that partly used in this patch.
Thanks to Thenecromancer as author alternative patch that ideas inspire MaS0n's patch writing and then this patch also.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-26 04:58:46 +04:00
ApoC
6b2b58cec9 [8236] Implemented explicit remove of Aura by pointer to it (used for single cast auras).
* This can prevent removing single cast aura of same id and effect
  but different caster what can cause assert in next code.

Thanks Vladimir for hints.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-23 21:45:13 +02:00
Ambal
fc7871f0a2 [8229] Improve stealth detection code for player case.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-22 12:23:12 +04:00
VladimirMangos
36605805b4 [8218] Final part of talent 17962 and ranks fixes.
* 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.
2009-07-20 11:47:59 +04:00
VladimirMangos
3bfe549a2b [8147] Some fixes and cleanups in mind control and charmed code. Mind control stil not finished.
* 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.
2009-07-08 20:09:33 +04:00
ApoC
17d0cda637 [8144] Forgotten uninitialized value fix.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-07 19:42:10 +02:00
ApoC
fccba20c9d [8139] Implemented aura SPELL_AURA_ABILITY_PERIODIC_CRIT(286).
This commit affects spells 49868, 58435, 63068, 63091, 63503,
64915, 64925.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-06 22:48:34 +02:00
VladimirMangos
1baec77845 [8098] Support uint32 spell ids in code.
* Propertly work with uint32 spell ids in player action bar
* Fix in same time bug with not save equipment set button with id==0
* Merge misc field in character_action and playercreateinfo_action to action field as 3 byte
* Propertly load uint32 spell ids from character_spell
* Fixed types for some pet/creature related structure for spell id storing.
2009-06-30 11:25:32 +04:00
Lightguard
df064ebd9f [8082] Update Diminishing Returns.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-27 11:32:52 +04:00
VladimirMangos
21a6a26386 [8077] Resolve mixed store and use 2 different flags values types in single field.
* 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.
2009-06-26 01:57:34 +04:00
XTZGZoReX
9b9fe55981 [8056] Move SMSG_CLEAR_COOLDOWN into function and use it. Other cleanups.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-21 03:07:54 +04:00
VladimirMangos
0b4c37f751 [8035] Return found guardian in search function. Update caller. 2009-06-17 19:37:08 +04:00
VladimirMangos
309ac7ead0 [8023] Move guardian list at Unit level and unsummon guardians at owner-creature death/unload.
This expected to fix well known crash at intances unload with creature with summoned guardians.
Note: this "fix" special case but not original source of problem in general.
2009-06-15 23:46:13 +04:00
VladimirMangos
5254a498df [8016] Work at npc click table data use.
* New fields in `npc_spellclick_spells` for allow set npc spell click mode from quest to infinity
  or to another quest, or from reward quest.
* Not expect (and forbid set UNIT_NPC_FLAG_SPELLCLICK in DB and set it at `npc_spellclick_spells` loading.
* Apply some speedups for creature checks affected by spel click state
2009-06-15 01:01:38 +04:00
nos4r2zod
82d3e2ae7d [8011] Send energize packets in correct order to avoid strange client behaviour.
If you send SMSG_SPELLENERGIZELOG after SMSG_POWER_UPDATE client shows mana gain twice.

Signed-off-by: hunuza <hunuza@gmail.com>
2009-06-14 12:06:50 +02:00
DonTomika
dcba023261 [8010] Show overheal in combat log.
Signed-off-by: hunuza <hunuza@gmail.com>
2009-06-14 11:33:52 +02:00
hunuza
a34e7857f1 [8009] Pass const string reference to functions where possible.
Avoids creating an unnecessary copy of strings.

Signed-off-by: hunuza <hunuza@gmail.com>
2009-06-14 11:21:26 +02:00
VladimirMangos
7d6bf1fdbf [7932] Store in DB only spell part of pet action bar, set other to default state (reaction saved). 2009-06-01 04:44:02 +04:00
VladimirMangos
79dab3dae5 [7922] Implement param2 for ACTION_T_COMBAT_MOVEMENT for allow control start/stop melee combat state for creature at start/stop movement in combat.
Also small fix for avoid unexpected set pet speed to owner speed for non-player case. In player case this hack speed setting still required.
2009-05-31 04:35:38 +04:00
tomrus88
42f8ce5f3e [7911] Applied coding style. 2009-05-29 19:07:28 +04:00
VladimirMangos
b83f32fc19 [7905] Implement ACTION_T_SET_SHEATH for creature event ai make possibility set ranged fire state.
Also related cleanup code in field cases and player Player::SetSheath.
2009-05-29 01:05:39 +04:00
VladimirMangos
4d8adefe70 [7901] Refactoting pet action bar related code. Fixed some related bugs.
* Correctly update action bar at loading and other cases when listed unlearned/not existed spells
* Avoid send data by PetSpellInitialize() many times while pet loading
2009-05-27 19:43:57 +04:00
ApoC
ba450b4eca [7888] Fixed typos in comment.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-05-24 16:54:06 +02:00
VladimirMangos
bc4611e8c0 [7877] Correctly set totem PvP state at loading and owner PvP state change, including GM totem case.
* Also set PvP state in proper way at pet loading if owner in PvP state.
2009-05-23 00:37:49 +04:00
Neo2003
fa03b3663a Mobs fleeing and getting assistance feature implementaion.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also rename ACTION_T_FLEE to ACTION_T_FLEE_FOR_ASSIST for clear use
2009-05-21 01:33:28 +04:00
VladimirMangos
788cdf9b3a [7826] Avoid use GetDistance* that used slow sqrt call where possible, other related speedups. 2009-05-14 18:51:13 +04:00
VladimirMangos
f53d06ad70 [7801] Apply damage mods from scripts or target state not in DealDamage but in new function before send data to client.
* Fixed bug with health decrease (client side visual bug) at spell damage by target with AI::DamageTaken damage set to 0
* Fixed bug with ignore .die command and instant kill damage in some cases.
2009-05-08 17:07:40 +04:00
VladimirMangos
943c76869d [7799] Use single function for SMSG_SPELLNONMELEEDAMAGELOG prepare. Merge comments, replace values by enums. 2009-05-08 12:42:58 +04:00
AlexDereka
27fabf7ace [7745] Fixed gcc warnings. 2009-05-03 20:25:27 +04:00
zhenya
8144f30199 [7730] Some optimizantion and code style.
Signed-off-by: AlexDereka <dereka.alex@gmail.com>
2009-04-29 01:05:21 +04:00
VladimirMangos
73db1cbe01 [7723] New AI call EnterCombat called at enter creature to combat (and re-enter if leave by some reason). 2009-04-27 03:40:50 +04:00
Trazom
7c0201f834 [7701] Move explicit healing repeating code to DealHeal functions.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-04-23 04:54:57 +04:00
VladimirMangos
d910610600 [7697] Interrupt casting at enter to evade mode. 2009-04-22 18:05:59 +04:00
Lightguard
f97735f519 [7686] Implement aura SPELL_AURA_ADD_CASTER_HIT_TRIGGER (111).
Fixed bug with triggering SPELL_AURA_SPELL_MAGNET at non-magic casts (special weapon attacks).

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-04-19 00:42:16 +04:00
VladimirMangos
0e1997f746 [7657] Implement function for access to gameobject owned by unit and created by some spell. 2009-04-13 01:07:21 +04:00
arrai
5dd3ce31bc [7576] Fixed spell range check for spells with minimal distances 2009-03-28 22:27:39 +01:00
VladimirMangos
c4d4bb5620 [7552] Move client version dependend DBC code to src/game. 2009-03-27 01:59:26 +03:00
`win
0f6b2ab9ae [7523] Fixed: players will now drop flag in battleground if they cast immunity buff on themselves.
TODO: players who carry flag in bg are imune to immunity buffs casted by friendly players. (todo added to code).
Bug: if paladin casts Hand of protection on flag carrier - flag will be dropped, but he should get "target is immune" message.
Fixed: Do not call Battleground::Update for battleground template objects.
Fixed: Do not allow immune player to click on object in battleground (not sure if this is correct in all cases).

Signed-off-by: Triply <triply@getmangos.com>
2009-03-23 10:16:44 +01:00
VladimirMangos
c99a849eb9 [7475] Move Player::IsInFeralForm to Unit::IsInFeralForm 2009-03-16 23:22:52 +03:00
VladimirMangos
5d6cb5fe80 [7468] Convert pet cast check code to use SpellCastResult and finaly fix SPELL_CAST_OK value (255 custom value now) 2009-03-16 15:40:43 +03:00