Pentru cine are probleme cu sync la
mobi dupa
fix asta (mai exact cand dai mantii si mobii nu-si iau dmg/nu dau dmg si raman pe loc pentru cateva secunde si apoi se intorc la locul lor):
in char_state.cpp
cauta:
if (dwElapsedTime > 500) {
__CHARACTER_GotoNearTarget(this, victim);
}
inlocuieste cu:
if (dwElapsedTime > m_dwMoveDuration * 0.75f)
{
float fDistToVictim = DISTANCE_APPROX(GetX() - victim->GetX(), GetY() - victim->GetY());
if (fDistToVictim >= GetMobAttackRange() * 1.15f)
__CHARACTER_GotoNearTarget(this, victim);
}
si in char_battle.cpp
if (pAttacker && dam > 0 && IsNPC())
{
//PROF_UNIT puRest20("Rest20");
TDamageMap::iterator it = m_map_kDamage.find(pAttacker->GetVID());
if (it == m_map_kDamage.end())
{
m_map_kDamage.insert(TDamageMap::value_type(pAttacker->GetVID(), TBattleInfo(dam, 0)));
it = m_map_kDamage.find(pAttacker->GetVID());
}
else
{
it->second.iTotalDamage += dam;
}
//puRest20.Pop();
//PROF_UNIT puRest21("Rest21");
StartRecoveryEvent();
//puRest21.Pop();
//PROF_UNIT puRest22("Rest22");
UpdateAggrPointEx(pAttacker, type, dam, it->second);
//puRest22.Pop();
}
dupa StartRecoveryEvent();
adaugam:
SetLastAttacked(get_dword_time()); //
o sa arate cam asa
if (pAttacker && dam > 0 && IsNPC())
{
TDamageMap::iterator it = m_map_kDamage.find(pAttacker->GetVID());
if (it == m_map_kDamage.end())
{
m_map_kDamage.insert(TDamageMap::value_type(pAttacker->GetVID(), TBattleInfo(dam, 0)));
it = m_map_kDamage.find(pAttacker->GetVID());
}
else
{
it->second.iTotalDamage += dam;
}
StartRecoveryEvent();
SetLastAttacked(get_dword_time()); // <-- adaugă aici
UpdateAggrPointEx(pAttacker, type, dam, it->second);
}