diff options
author | shadowu@mail.bg <none@none> | 2008-12-19 00:37:40 +0200 |
---|---|---|
committer | shadowu@mail.bg <none@none> | 2008-12-19 00:37:40 +0200 |
commit | 51f0c70b7ea7eca2b0fcc05a38fa155b7378741f (patch) | |
tree | 52f9e2db42bfc10d9fd8b65b26c9884ae6ebe71c /src/game/Creature.cpp | |
parent | 058db69e0730975cd0e3e03e5abca78828808dd8 (diff) |
*Movement Generators standardization.
- bool GetDestination(&x,&y,&z) added to all movement generators.(it is used by update of players view distance)
- Fixed when creature entering in combat not count this as StoppedByPlayer.
- Random Movement Generator - added support for creating custom spawndist during the game.
- Random Movement Generator - Db spawndist is checked only at initialize(NOT in each sellect of random location).
- Added Random Movement to motion master - it can be called now by MoveRandom(spawndist) e.g. for use in SD2.
- Home and Random movements no more using RespawnCoords(Home Position has implemented)
- Fixed bug when creature is moving on path and enter combat, after that returns to spawn position.
-Typo fix in Confused Movement Generator
--HG--
branch : trunk
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r-- | src/game/Creature.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index c70ffdba940..3fc5598295a 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -1403,8 +1403,10 @@ bool Creature::LoadFromDB(uint32 guid, Map *map) sLog.outError("ERROR: Creature (guidlow %d, entry %d) not loaded. Suggested coordinates isn't valid (X: %f Y: %f)",GetGUIDLow(),GetEntry(),GetPositionX(),GetPositionY()); return false; } - - m_respawnradius = data->spawndist; + //We should set first home position, because then AI calls home movement + SetHomePosition(data->posX,data->posY,data->posZ,data->orientation); + + m_respawnradius = data->spawndist; m_respawnDelay = data->spawntimesecs; m_isDeadByDefault = data->is_dead; @@ -2003,7 +2005,7 @@ bool Creature::IsOutOfThreatArea(Unit* pVictim) const if(sMapStore.LookupEntry(GetMapId())->IsDungeon()) return false; - float length = pVictim->GetDistance(CombatStartX,CombatStartY,CombatStartZ); + float length = pVictim->GetDistance(mHome_X, mHome_Y, mHome_Z); float AttackDist = GetAttackDistance(pVictim); uint32 ThreatRadius = sWorld.getConfig(CONFIG_THREAT_RADIUS); |