Commit graph

92 commits

Author SHA1 Message Date
VladimirMangos
c3e07a443d [9620] Resolve linking problems for script DLLs 2010-03-26 06:54:33 +03:00
VladimirMangos
b658b25ff8 [9618] More use ObjectGuid in spell/etc code 2010-03-25 13:59:46 +03:00
XTZGZoReX
8ffeb2b48b [9567] Add 2 unknown target flags. 2010-03-10 20:23:07 +01:00
VladimirMangos
9a884bdd83 [9552] Make some compiler happy with forward class declaration. 2010-03-08 20:45:34 +03:00
VladimirMangos
c8fd454a79 [9551] Add and use PackedGuid wrapper.
Also
* use more wide bytebuff << >> operators for objects
* use at read packet faisl alsways exception way instead some time used bool results.
2010-03-08 20:23:16 +03:00
VladimirMangos
3cf9e47110 [9530] Fixed check for SPELL_AURA_ALLOW_ONLY_ABILITY
Also remove public access to SpellAura::m_spellmod for avoid another hacks
with it use. Spellmods only for Player::ApplySpellMod use.
2010-03-06 07:58:09 +03:00
VladimirMangos
acb297a415 [9525] Implement effect SPELL_EFFECT_TEACH_TAXI_NODE(154)
Original patch writed by Sadikum.
2010-03-05 12:16:41 +03:00
VladimirMangos
bee93cb17c [9511] Hotfix for low chance crash at not accessable gameobject cast. 2010-03-04 08:53:44 +03:00
VladimirMangos
7fb5d850bf [9510] Gameobject casting improvements.
* Add IsHostileTo/IsFriendlyTo and implement expected way checks for diff. world object types.
  For controlled object check redirected to specific owner, for wild gameobject base at gameobject faction.
  If faction not set expected to be hostile to anyone.
* Update grid searchers to be usable with world object instead only unit case.
  Some grid searches lost redundent second object arg, AnyAoETargetUnitInObjectRangeCheck lost hitHidden arg
  (for hitHidden==true case added new AnyAoEVisibleTargetUnitInObjectRangeCheck)
* Updated grid searchers used with gameobject area casts now.
  Note: Gameobject area spell cast animation will still wrong show around cast triggering target instead
  center around gameobject.
* In case gameobject aura apply to target for restored use target itself as caster because
  we not have currently another way apply aura form wild gameobject.
2010-03-04 07:38:26 +03:00
VladimirMangos
4c4629e861 [9507] Implement SPELL_EFFECT_RESTORE_ITEM_CHARGES
Also it application in special case of item 5513 and similar.
2010-03-03 06:02:32 +03:00
VladimirMangos
4a051e2443 [9496] HomeBind fixes.
* Use area id instead zone id for home bind zone info as expected.
  This will for example proper show capital name in area himebinding for capital; tavern.
* Clarify that player create zone in fact is area (subzone)
* Implement SPELL_EFFECT_BIND for normal homebinding.
  Also support spell target position mode used in 53823/53821 spells
* Add Spell::EffectEmpty for mark spell effects that used but not expect any code in handler.
  Example weapon spells that used just as known spell markers for client.

Original patch idea inspirit by Sadikum patch suggestion.
2010-03-01 13:08:52 +03:00
VladimirMangos
ded1e3c263 [9475] Add and use TotemSlot enum type 2010-02-28 07:31:25 +03:00
VladimirMangos
dd2f02699e [9412] Add #include DBCEnum.h for headers where SpellEffectIndex used.
This must fix Unix build problem.
2010-02-19 17:20:19 +03:00
VladimirMangos
84080aaf60 [9411] More SpellEffectIndex using in apropriate cases 2010-02-19 06:45:11 +03:00
VladimirMangos
11b84d27c2 [9409] Use SpellEffectIndex as arg type for spell effect handlers. 2010-02-19 01:06:17 +03:00
hunuza
0f7f7c5ada [9354] Add spell efffects for dual spec.
Actual dual spec still not implemented.

Credits to EnderGT for original patch.

Signed-off-by: hunuza <hunuza@gmail.com>
2010-02-10 20:54:45 +01:00
AlexDereka
696cba9c37 [9330] Fixed msvc compile warnings. 2010-02-08 16:27:35 +03:00
VladimirMangos
2a01c79609 [9323] Fixes in code work with original caster guid.
* Add 2 function for 2 used way for original caster
  - GetAffectiveCaster(), is posible NULL unit as source spell affects
    (explcit caster, GO owner, caster of aura that trigering affect)..
  - GetCastingObject(), possible NULL world object as in game spell effects
    source, cast center, etc, need because original caster can store GO
    guid that apply effect around. In other cases m_caster
* Use functions and avoid use explicitly m_originalCaster
* Use GetAffectiveCaster() for fix explicit GO cast at near unit, like now fixed campfire bonus.
2010-02-08 00:53:03 +03:00
VladimirMangos
8ff7010750 [9285] Fixed unexpected double time for apply damage for spell 1464 and ranks.
* Implement way ignore some redundent data for triggered spells base at cast cost exist.
  Reason: some triggered spells inherited data from main spells
  just for porper client show spell attributes, we not need this data.
* Use check for ignore inherited cast time.
2010-02-02 20:17:04 +03:00
Valroft
ad7729479c [9280] Fixed work scrolls of enchantment.
SOme for its have spells with unexpected reagent requirements.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-02-01 00:19:17 +03:00
VladimirMangos
904995c024 [9274] Implement SPELL_EFFECT_SUMMON_ALL_TOTEMS
This implement work spells 66842, 66843, 66844.

Patch originall writed by Arthorius, with additional fixes from darkstalker
and hack removes from me.
2010-01-31 18:40:59 +03:00
VladimirMangos
bf9cccfd5b [9243] Some spell rune code fixes
* Also replace check/take functions for runes by single 2 mode function
* Implement proper check for dead runes case
* Implement proper rune selection for Aura::HandleAuraConvertRune
2010-01-23 20:08:09 +03:00
VladimirMangos
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03:00
awpolt
4b0ceaeb6b [9092] Fixed typo in function name.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-01-01 14:08:59 +03:00
NoFantasy
663f8df849 [9083] Rename maps naming used in spell targeting code for easier readability
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-12-29 13:13:33 +01:00
balrok
7c4acf31e2 [9012] fix crash when achievement is completed and player isn't in world
also don't divide money loot for players who are not inside the
same map..
and player shouldn't be able to reclaim his corpse if it isn't in same map

and some other related cleanups
2009-12-17 14:02:48 +01:00
Maxxie
0ec0f34be7 [8956] Implement aura SPELL_AURA_ALLOW_ONLY_ABILITY.
(cherry picked from commit f4d1e05)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-12-09 16:01:08 +03:00
qsa
ffca4301d0 [8944] Use DBC data for summon effect functionality.
Also some more local fixes:
* Alow multiply same type guardians req. for some spells.
* Apply spell duration mods to summons

Many summon spells must start work.

Great work qsa! :)

Thanks The_Game_Master for updaing patch to recent sources.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-12-07 23:40:10 +03:00
tomrus88
546f7a7fe5 Merge commit 'origin/master' into 320
Conflicts:
	src/game/BattleGround.cpp
2009-09-28 19:52:54 +04:00
balrok
1f9b4ca4c3 [8553] removed spiritguide from code
they basicaly should
*autocast 22011
*give player after gossiphello buff 2584
*port players away to another spiritguides, when they die

so this can be done by a script
and maybe eventai
2009-09-28 16:45:06 +02:00
balrok
2da82a8c68 [8552] implemented spells which can be casted while dead
i added a function IsDeathOnlySpell() which returns true
if this spell can ONLY be casted while dead, so i haven't
implemented all spells which could be cast while dead..
2009-09-28 16:44:49 +02:00
balrok
5385b385bc [8551] code cleanup
moved arena/battleground check from spell::checkcast
to SpellMgr::GetSpellAllowedInLocationError

also i adjusted some spell_fail-codes related to battleground
cause a spell_fail_wrong_area always requires the areaid, else it
would output "not in area %s"

then we don't need to check for map->isarena() when player is already in an
arena

----
in Spell.h
i moved "isTargetableForAttack()" to the top - cause it was anyway used
in every case of that switch

and isTargetableForAttack for attack also checks for isAlive
and isInFlight

so this could get simplified
2009-09-28 16:44:37 +02:00
qsa
fff2cae4b4 [8545] Implement implicit target type 54, TARGET_LARGE_FRONTAL_CONE
Signed-off-by: Ambal <pogrebniak@gala.net>
2009-09-28 15:13:05 +03:00
qsa
549556c7d0 [8543] Implement implicit target 60 (affects 82 spells)
Signed-off-by: Ambal <pogrebniak@gala.net>
2009-09-27 22:01:09 +03:00
VladimirMangos
7974e1ebcb Merge branch 'master' into 320 2009-09-10 05:46:08 +04:00
ApoC
2a4889e10c [8471] Little correction to prev. commit. Spell effect 90 seems to be kill credit but only for single person.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-09-05 03:13:35 +02:00
VladimirMangos
b145659b31 [8468] Move TARGET_EFFECT_SELECT target selection to normal place for target modes.
* Make from TARGET_EFFECT_SELECT code normal Spell::SetTargetMap case
* In additional for old 0/TARGET_EFFECT_SELECT pairs call it in case coordinate targets.
2009-09-05 04:13:08 +04:00
tomrus88
fdc20af337 Some fixes. 2009-08-28 22:33:52 +04:00
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
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
Lutik
48eb01666d [8264] Implement target mode 104 (forward 30 degries cone)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-28 14:14:05 +04:00
VladimirMangos
6c395cf79c [8232] Implement talent 48438 and ranks in target seelction and per-tick heal amount.
Original patch has been suggested by Beaste.
2009-07-23 00:15:52 +04:00
evilstar
0a7f878eb8 [8220] Implement SPELL_EFFECT_PLAY_MUSIC(132)
Thanks to GriffonHeart for help in reseach.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-20 13:20:46 +04:00
VladimirMangos
9c91796443 [8197] Use more similar code for triggered and precast spells.
Also better error reporting at not existed spells.
Clear use in comments for this 2 dependent cast ways.
2009-07-18 21:30:11 +04:00
ApoC
5d4b581009 [8142] Remade precast spell system to be more similar to trigger spell system.
* 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>
2009-07-07 16:15:30 +02:00
ApoC
6002d7ea2c Implemented precast spell store as dynamicaly allocated list of precasts.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-07 01:39:56 +02:00
VladimirMangos
f420fdde77 [8090] Fixed build problems. 2009-06-29 12:06:09 +04:00
VladimirMangos
7175007aba [8070] Restore spell casting loot items and recipes.
* 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`
2009-06-23 03:46:27 +04:00
VladimirMangos
7024862b82 [8030] Fixed spell 64901 work and related target selection code refactoring.
* 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.
2009-06-17 01:05:41 +04:00
tomrus88
55836df62f [8008] Fixed SMSG_RAID_INSTANCE_MESSAGE opcode. 2009-06-14 14:00:00 +04:00