mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[10819] Fixed creature's speed recalculation, forgotten DB speed mods are used now
Also properly update speeds at creature entry change(in case there are aura speed bonuses), thanks to Vladimir for pointing
This commit is contained in:
parent
49881d4215
commit
d560503a03
3 changed files with 20 additions and 5 deletions
|
|
@ -283,10 +283,9 @@ bool Creature::InitEntry(uint32 Entry, const CreatureData *data )
|
|||
|
||||
SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
|
||||
|
||||
SetSpeedRate(MOVE_WALK, cinfo->speed_walk);
|
||||
SetSpeedRate(MOVE_RUN, cinfo->speed_run);
|
||||
SetSpeedRate(MOVE_SWIM, 1.0f); // using 1.0 rate
|
||||
SetSpeedRate(MOVE_FLIGHT, 1.0f); // using 1.0 rate
|
||||
// update speed for the new CreatureInfo base speed mods
|
||||
UpdateSpeed(MOVE_WALK, false);
|
||||
UpdateSpeed(MOVE_RUN, false);
|
||||
|
||||
// checked at loading
|
||||
m_defaultMovementType = MovementGeneratorType(cinfo->MovementType);
|
||||
|
|
|
|||
|
|
@ -8250,6 +8250,22 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced, float ratio)
|
|||
if (speed < min_speed)
|
||||
speed = min_speed;
|
||||
}
|
||||
|
||||
if (GetTypeId() == TYPEID_UNIT)
|
||||
{
|
||||
switch(mtype)
|
||||
{
|
||||
case MOVE_RUN:
|
||||
speed *= ((Creature*)this)->GetCreatureInfo()->speed_run;
|
||||
break;
|
||||
case MOVE_WALK:
|
||||
speed *= ((Creature*)this)->GetCreatureInfo()->speed_walk;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SetSpeedRate(mtype, speed * ratio, forced);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10818"
|
||||
#define REVISION_NR "10819"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue