*Add an errorlog in HasInArc function to find a bug.
--HG-- branch : trunk
This commit is contained in:
+9
-2
@@ -1387,8 +1387,6 @@ float WorldObject::GetAngle( const float x, const float y ) const
|
|||||||
float dx = x - GetPositionX();
|
float dx = x - GetPositionX();
|
||||||
float dy = y - GetPositionY();
|
float dy = y - GetPositionY();
|
||||||
|
|
||||||
if(!dx && !dy)
|
|
||||||
return 0;
|
|
||||||
float ang = atan2(dy, dx);
|
float ang = atan2(dy, dx);
|
||||||
ang = (ang >= 0) ? ang : 2 * M_PI + ang;
|
ang = (ang >= 0) ? ang : 2 * M_PI + ang;
|
||||||
return ang;
|
return ang;
|
||||||
@@ -1430,6 +1428,15 @@ bool WorldObject::HasInArc(const float arcangle, const WorldObject* obj) const
|
|||||||
float angle = GetAngle( obj );
|
float angle = GetAngle( obj );
|
||||||
angle -= m_orientation;
|
angle -= m_orientation;
|
||||||
|
|
||||||
|
if(angle > 100 || angle < -100)
|
||||||
|
{
|
||||||
|
sLog.outCrash("Invalid Angle %f: this %u %u %f %f %f %f, that %u %u %f %f %f %f", angle,
|
||||||
|
GetEntry(), GetGUIDLow(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation(),
|
||||||
|
obj->GetEntry(), obj->GetGUIDLow(), obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), obj->GetOrientation());
|
||||||
|
assert(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// move angle to range -pi ... +pi
|
// move angle to range -pi ... +pi
|
||||||
while( angle > M_PI)
|
while( angle > M_PI)
|
||||||
angle -= 2.0f * M_PI;
|
angle -= 2.0f * M_PI;
|
||||||
|
|||||||
+2
-2
@@ -456,7 +456,7 @@ void Unit::GetRandomContactPoint( const Unit* obj, float &x, float &y, float &z,
|
|||||||
uint32 attacker_number = getAttackers().size();
|
uint32 attacker_number = getAttackers().size();
|
||||||
if(attacker_number > 0) --attacker_number;
|
if(attacker_number > 0) --attacker_number;
|
||||||
GetNearPoint(obj,x,y,z,obj->GetCombatReach(), distance2dMin+(distance2dMax-distance2dMin)*rand_norm()
|
GetNearPoint(obj,x,y,z,obj->GetCombatReach(), distance2dMin+(distance2dMax-distance2dMin)*rand_norm()
|
||||||
, GetAngle(obj) + (attacker_number ? (M_PI/2 - M_PI * rand_norm()) * (float)attacker_number / combat_reach / 3 : 0));
|
, GetAngle(obj) + (attacker_number ? (M_PI/2 - M_PI * rand_norm()) * (float)attacker_number / combat_reach * 0.3 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Unit::RemoveMovementImpairingAuras()
|
void Unit::RemoveMovementImpairingAuras()
|
||||||
@@ -12416,7 +12416,7 @@ void Unit::StopMoving()
|
|||||||
//float z = MapManager::Instance().GetBaseMap(GetMapId())->GetHeight(GetPositionX(), GetPositionY(), GetPositionZ(), true);
|
//float z = MapManager::Instance().GetBaseMap(GetMapId())->GetHeight(GetPositionX(), GetPositionY(), GetPositionZ(), true);
|
||||||
//if (fabs(GetPositionZ() - z) < 2.0f)
|
//if (fabs(GetPositionZ() - z) < 2.0f)
|
||||||
// Relocate(GetPositionX(), GetPositionY(), z);
|
// Relocate(GetPositionX(), GetPositionY(), z);
|
||||||
Relocate(GetPositionX(), GetPositionY(),GetPositionZ());
|
//Relocate(GetPositionX(), GetPositionY(),GetPositionZ());
|
||||||
|
|
||||||
SendMonsterStop();
|
SendMonsterStop();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user