mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[8568] Use more correct spell target coordinates calculation for implicit target types 72, 73, 86
Signed-off-by: Ambal <pogrebniak@gala.net>
This commit is contained in:
parent
fec8a8faa1
commit
09c50ab921
2 changed files with 5 additions and 7 deletions
|
|
@ -1349,9 +1349,8 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap)
|
||||||
case TARGET_RANDOM_CIRCUMFERENCE_POINT:
|
case TARGET_RANDOM_CIRCUMFERENCE_POINT:
|
||||||
{
|
{
|
||||||
float angle = 2.0 * M_PI * rand_norm();
|
float angle = 2.0 * M_PI * rand_norm();
|
||||||
float dest_x = m_caster->GetPositionX() + cos(angle) * radius;
|
float dest_x, dest_y, dest_z;
|
||||||
float dest_y = m_caster->GetPositionY() + sin(angle) * radius;
|
m_caster->GetClosePoint(dest_x, dest_y, dest_z, 0.0f, radius, angle);
|
||||||
float dest_z = m_caster->GetMap()->GetHeight(dest_x, dest_y, MAX_HEIGHT);
|
|
||||||
m_targets.setDestination(dest_x, dest_y, dest_z);
|
m_targets.setDestination(dest_x, dest_y, dest_z);
|
||||||
|
|
||||||
TagUnitMap.push_back(m_caster);
|
TagUnitMap.push_back(m_caster);
|
||||||
|
|
@ -1361,9 +1360,8 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap)
|
||||||
{
|
{
|
||||||
radius *= sqrt(rand_norm()); // Get a random point in circle. Use sqrt(rand) to correct distribution when converting polar to Cartesian coordinates.
|
radius *= sqrt(rand_norm()); // Get a random point in circle. Use sqrt(rand) to correct distribution when converting polar to Cartesian coordinates.
|
||||||
float angle = 2.0 * M_PI * rand_norm();
|
float angle = 2.0 * M_PI * rand_norm();
|
||||||
float dest_x = m_targets.m_destX + cos(angle) * radius;
|
float dest_x, dest_y, dest_z;
|
||||||
float dest_y = m_targets.m_destY + sin(angle) * radius;
|
m_caster->GetClosePoint(dest_x, dest_y, dest_z, 0.0f, radius, angle);
|
||||||
float dest_z = m_caster->GetMap()->GetHeight(dest_x, dest_y, MAX_HEIGHT);
|
|
||||||
m_targets.setDestination(dest_x, dest_y, dest_z);
|
m_targets.setDestination(dest_x, dest_y, dest_z);
|
||||||
|
|
||||||
if (radius > 0.0f)
|
if (radius > 0.0f)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8567"
|
#define REVISION_NR "8568"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue