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.




info
Grupo: Campones
Registrado: 17/05/07
Posts: 49
Reputação: 0
Pessoal por gentileza, alguém pode me ajudar com este problema?
Meu otclient está dando este erro:
ERROR: invalid skill
at:
[C++]: LocalPlayer::setSkill
ERROR: invalid skill
at:
[C++]: LocalPlayer::setBaseSkil
Procurei na source do servidor e do client e está igual ao source disponibilizada no git...
Por favor alguém me ajuda ?