Jump to content

Some Implicittarget For Summoning Spells


Recommended Posts

Posted

41,42,43,44,47,48,49,50: summon creatures at eight directions around the caster, and at exactly the spell radius. 47: front, 41: front-left, 49: left, 42:back-left, 48:back, 43:back-right, 50:right, 44:front-right. Currently 41-44 are called TARGET_TOTEM_XXX, but they are not only for totems. 47 is called TARGET_DYNAMIC_OBJECT, in fact 41-44 and 58-50 are the same as it.

46: seems like to be summon creatures at the location of another creature

72: summon creatures at random directions around the caster, at random distince < spell radius. 72 is also used with effect 3 dummy. Usually this spell is periodicly triggered. 72 select a random location and the spell do visual effect at that location. Such as Volcanic Geyser, the volcano periodicly throw fireballs at locations around it.

73: summon creatures at random directions around the caster, at exactly the spell radius. (range = 0)

74: summon creatures within an area, random distance from a selected point. (range > 0, radius > 0)

63, A=53 and B=16: if these are not used for summoning, they are TARGET_ALL_ENEMY_IN_AREA and do aoe damage. If they are used for summoning, they summon a trigger creature in the selected location and the trigger creature do aoe damage. Now these spells are bugged. They are consider as aoe and will summon mutiple creatures for every inflicited enemies within the area. The number of summoned creatures is always decided by field base_point, not number of enemys. These spells have a positive radius because the radius indicates the aoe radius of the trigger creature, not itself. I think we can ignore this radius and only summon one creature at the selected location.

Posted

I have a suggestion. Currently FillTargetMap() function obtains a Unit list. Can we change it so it obtains a SpellCastTargets list or some new class like that? The memeber in the list may be a Unit, or may be a location (x, y, z). For summon spells, they can summon creatures in spelleffects.cpp at these locations in SpellCastTargets list, rather than calculate the locations in spelleffects.cpp. Also, some non-summoning spells may target a location rather than a unit and they can be implemented.

For CastSpell(Unit* Victim, ...) fuction, I also suggest to change it to CastSpell(SpellCastTargets *target, ...). Otherwise creatures cannot cast a spell without seleting a Unit target. For example, one boss should throw fireballs at random location, but now we have to choose a player first then let the boss throw fireball at it.

Another problem is spell visual. Some aoe spells have a visual effect that it launch multiple missiles. Currently the number of missiles depends on target numbers. If the aoe implicit only one target, you will only see one missile. If there are too many targets nearby, you will see too many missiles. In official like the number of missiles is fixed. For example, a boss should toss many fireballs to a wide area. In official-like you will see the fireballs are uniformly distributed in the area. But here you will see the fireballs go to players one-on-one. If there is no players, then no visual effect. Although every target should be damaged by the aoe spell, the missiles may not target the players.

I think the problem is in void Spell::WriteSpellGoTargets( WorldPacket * data ). We have a m_UniqueTargetInfo, we may also need a m_VisualTargetInfo. The spell hit m_UniqueTargetInfo, while the visual is that it hit m_VisualTargetInfo.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use