1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 14:07:46 +00:00

fixed roaming/following speed inconsistency

This commit is contained in:
NotAdam 2019-01-28 15:44:27 +11:00
parent f0d28bf30f
commit 0cb0b5bc23
2 changed files with 8 additions and 7 deletions

View file

@ -177,15 +177,16 @@ void Sapphire::Entity::BNpc::step()
// This is probably not a good way to do it but works fine for now // This is probably not a good way to do it but works fine for now
float angle = Util::calcAngFrom( getPos().x, getPos().z, stepPos.x, stepPos.z ) + PI; float angle = Util::calcAngFrom( getPos().x, getPos().z, stepPos.x, stepPos.z ) + PI;
float speed = 1.7f; auto delta = static_cast< float >( Util::getTimeMs() - m_lastTickTime ) / 1000.f;
float speed = 7.25f * delta;
if( m_state == BNpcState::Roaming ) if( m_state == BNpcState::Roaming )
speed *= 0.5f; speed *= 0.3f;
if( distanceToDest <= distanceToStep + speed ) // this seems to fix it but i don't know why :(
{ if( speed > distanceToDest )
speed = distanceToDest; speed = distanceToDest / delta;
}
auto x = ( cosf( angle ) * speed ); auto x = ( cosf( angle ) * speed );
auto y = stepPos.y; auto y = stepPos.y;

View file

@ -387,7 +387,7 @@ bool Sapphire::Zone::checkWeather()
void Sapphire::Zone::updateBNpcs( int64_t tickCount ) void Sapphire::Zone::updateBNpcs( int64_t tickCount )
{ {
if( ( tickCount - m_lastMobUpdate ) <= 250 ) if( ( tickCount - m_lastMobUpdate ) <= 100 )
return; return;
m_lastMobUpdate = tickCount; m_lastMobUpdate = tickCount;