T
Tibia Demon
Guest
I use OTClientV8 and I want to remove the 255 limit for magic level and skills.
I use TFS 1.3/1.4 with last commits.
I tried changing this in source not sure if its correct or not. protocolgame.cpp
I have also added this to OTClientV8
I use TFS 1.3/1.4 with last commits.
I tried changing this in source not sure if its correct or not. protocolgame.cpp
C++:
void ProtocolGame::AddPlayerStats(NetworkMessage &msg)
{
msg.addByte(0xA0);
msg.add<uint64_t>(std::min<uint64_t>(player->getHealth(), std::numeric_limits<uint64_t>::max()));
msg.add<uint64_t>(std::min<uint64_t>(player->getMaxHealth(), std::numeric_limits<uint64_t>::max()));
msg.add<uint64_t>(player->getFreeCapacity());
msg.add<uint64_t>(player->getCapacity());
msg.add<uint64_t>(player->getExperience());
msg.add<uint64_t>(player->getLevel());
msg.addByte(player->getLevelPercent());
msg.add<uint64_t>(100); // base xp gain rate
msg.add<uint64_t>(0); // xp voucher
msg.add<uint64_t>(0); // low level bonus
msg.add<uint64_t>(0); // xp boost
msg.add<uint64_t>(100); // stamina multiplier (100 = x1.0)
msg.add<uint64_t>(std::min<uint64_t>(player->getMana(), std::numeric_limits<uint64_t>::max()));
msg.add<uint64_t>(std::min<uint64_t>(player->getMaxMana(), std::numeric_limits<uint64_t>::max()));
msg.addByte(std::min<uint64_t>(player->getMagicLevel(), std::numeric_limits<uint64_t>::max()));
msg.addByte(std::min<uint64_t>(player->getBaseMagicLevel(), std::numeric_limits<uint64_t>::max()));
msg.addByte(player->getMagicLevelPercent());
msg.addByte(player->getSoul());
msg.add<uint64_t>(player->getStaminaMinutes());
msg.add<uint64_t>(player->getBaseSpeed());
Condition *condition = player->getCondition(CONDITION_REGENERATION);
msg.add<uint64_t>(condition ? condition->getTicks() / 1000 : 0x00);
msg.add<uint64_t>(player->getOfflineTrainingTime() / 60 / 1000);
msg.add<uint64_t>(0); // xp boost time (seconds)
msg.addByte(0); // enables exp boost in the store
}
C++:
void ProtocolGame::AddPlayerSkills(NetworkMessage &msg)
{
msg.addByte(0xA1);
for (uint8_t i = SKILL_FIRST; i <= SKILL_LAST; ++i)
{
msg.add<uint64_t>(std::min<uint64_t>(player->getSkillLevel(i), std::numeric_limits<uint64_t>::max()));
msg.add<uint64_t>(player->getBaseSkill(i));
msg.addByte(player->getSkillPercent(i));
}
for (uint8_t i = SPECIALSKILL_FIRST; i <= SPECIALSKILL_LAST; ++i)
{
msg.add<uint64_t>(std::min<uint64_t>(100, player->varSpecialSkills[i]));
msg.add<uint64_t>(0);
}
}
Lua:
if(version >= 1035) then
g_game.enableFeature(GameDoubleSkills)
g_game.enableFeature(GameBaseSkillU16)
end