Wollte deinen Bug gerade nachstellen um ihn zu testen und da ist mir aufgefallen, dass ich diesen Bug gar nicht habe. Ich würde aus diesem Grund denken dass es ein Python Problem sein könnte, weil es sehr unwahrscheinlich ist dass einer von uns was im Source an der Autoattack Funktion geändert hat
EDIT:
Du könntest auch deinen Clientsource im Debug-Modus compilen und zusätzlich Folgende Funktion bearbeiten:
"void CPythonPlayer::__Update_AutoAttack()" in PythonPlayer.cpp
und dort Konsolenausgaben/Chatausgaben nach jeder Funktion machen und gucken was ausgelöst wird
Beispiel:
Code:
void CPythonPlayer::__Update_AutoAttack()
{
if (0 == m_dwAutoAttackTargetVID){
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: TARGET VID = 0");
#endif
return;
}
CInstanceBase * pkInstMain = NEW_GetMainActorPtr();
if (!pkInstMain){
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: !pkInstMain return");
#endif
return;
}
// źȯ°Ý ¾²°í ´Þ·Á°¡´Â µµÁß¿¡´Â ½ºÅµ
if (__IsUsingChargeSkill()){
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: __IsUsingChargeSkill return");
#endif
return;
}
CInstanceBase* pkInstVictim=NEW_FindActorPtr(m_dwAutoAttackTargetVID);
if (!pkInstVictim)
{
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: pkInstVictim reset");
#endif
__ClearAutoAttackTargetActorID();
}
else
{
if (pkInstVictim->IsDead())
{
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: pkInstVictim->IsDead()");
#endif
__ClearAutoAttackTargetActorID();
}
else if (pkInstMain->IsMountingHorse() && !pkInstMain->CanAttackHorseLevel())
{
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: pkInstMain->IsMountingHorse() && !pkInstMain->CanAttackHorseLevel()");
#endif
__ClearAutoAttackTargetActorID();
}
else if (pkInstMain->IsAttackableInstance(*pkInstVictim))
{
if (pkInstMain->IsSleep())
{
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: pkInstMain->IsSleep()");
#endif
//TraceError("SKIP_AUTO_ATTACK_IN_SLEEPING");
}
else
{
#ifdef _DEBUG
Tracef("AUTOATTACK_DEBUG: ALLES NORMAL?");
#endif
__ReserveClickActor(m_dwAutoAttackTargetVID);
}
}
}
}