Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
Em creature.cpp do server, procure pela linha:
if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1)
lastStepCost = 3;
Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
Em creature.cpp do client, procure as linhas que tem isso:
getStepDuration(true)
E deixe assim:
getStepDuration()
Agora procure por:
float factor = 3;
if(g_game.getClientVersion() <= 810)
factor = 2;
Apague essa parte
Logo mais abaixo tem:
if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast ||
m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast))
interval *= factor;
Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
Agora em localplayer.cpp no client, novamente procure por:
getStepDuration(true)
E troque por:
getStepDuration()
Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu.