O servidor ta enviando mais skills que as existentes no otc.
Qual distro usada? O usual é o byte 0xA1 para as skills, a função no tfs 0.37 é assim:
#protocolgame.cpp
void ProtocolGameAddPlayerSkills(NetworkMessage_ptr msg){ msg->put<char>(0xA1); for(uint8_t i = 0; i <= SKILL_LAST; ++i) { msg->put<char>(player->getSkill((skills_t)i, SKILL_LEVEL)); msg->put<char>(player->getSkill((skills_t)i, SKILL_PERCENT)); }}
Você precisa checar o enum das skills, para ver se existem que o numero normal. O enum dessas skills fica em const.h.
Vera algo similar a isso:
#const.h
enum skills_t{ SKILL_NONE = -1, SKILL_FIRST = 0, SKILL_FIST = SKILL_FIRST, SKILL_CLUB, SKILL_SWORD, SKILL_AXE, SKILL_DIST, SKILL_SHIELD, SKILL_FISH, SKILL__MAGLEVEL, SKILL__LEVEL, SKILL__EXPERIENCE, SKILL_LAST = SKILL_FISH, SKILL__LAST = SKILL__EXPERIENCE};
Poste esses dois trechos do seu codigo fonte para que possamos analisar o real problema.
"A covardia coloca a questão: É seguro? O comodismo coloca a questão: É popular? A etiqueta coloca a questão: é elegante? Mas a consciência coloca a questão, É correto? E chega uma altura em que temos de tomar uma posição que não é segura, não é elegante, não é popular, mas o temos de fazer porque a nossa consciência nos diz que é essa a atitude correta."
(Martin Luther King)