Postado Junho 25, 2015 9 anos Este é um post popular. Bom, todos acham 255 efeitos muito pouco, né? Então tá aí, pra quem quiser aumentar esse limite pra 65,535. Mas como nem tudo é perfeito, pra fazer isso você precisará estar usando OTClient e também ter as sources do seu servidor. PS: Só testei em 8.54 Vamos ás edições do servidor: No protocolgame.cpp: Substituir: void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type) por: void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type) Substituir: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint8_t type) { msg->AddByte(0x83); msg->AddPosition(pos); msg->AddByte(type + 1); } por: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint16_t type) { msg->AddByte(0x83); msg->AddPosition(pos); msg->AddU16(type + 1); } No protocolgame.h: Substituir: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint8_t type); por: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint16_t type); Substituir: void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type); por: void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type); No game.cpp: Substituir: void Game::addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode /* = false */) por: void Game::addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode /* = false */) No game.h: Substituir: void Game::addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode /* = false */); por: void Game::addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode /* = false */); No player.h: Substituir: void sendMagicEffect(const Position& pos, uint8_t type) const Por: void sendMagicEffect(const Position& pos, uint16_t type) const Bom, agora falta editar no const.h: Para cada efeito novo no servidor, deve-se adicionar no enum MagicEffect_t. No caso, a base que eu peguei de teste, o último é MAGIC_EFFECT_INSECTS4dz. Assim: MAGIC_EFFECT_INSECTS4dz = 0x13B, //220 O próximo precisa ter outro nome, e deve ter o valor 221, mas em hexadecimal. Pra isso, usem algum sitem de conversão de Decimal para Hexadecimal(Usei este). Basta pegar o resultado, e adicionar 0x0 antes. No caso, deu DD, ficando: MAGIC_EFFECT_INSECTS4ea = 0xDD, //221 E mude o valor de MAGIC_EFFECT_LAST, para seu último efeito adicionado. MAGIC_EFFECT_LAST = MAGIC_EFFECT_INSECTS4ea, Também não esqueçam de mudar os valores de MAGIC_EFFECT_NONE e MAGIC_EFFECT_UNKNOWN para estes: MAGIC_EFFECT_NONE = 0xFFFE, MAGIC_EFFECT_UNKNOWN = 0xFFFF Está quase pronto, agora, falta fazer o client aceitar esses dados, pra isso, em otclient/modules/game_things/things.lua, em baixo de: local version = g_game.getClientVersion()Adicine: g_game.enableFeature(GameMagicEffectU16) Pronto, se fizer tudo corretamente, funcionará \o Bom, Lordbaxx disponibilizou a sua source(de poketibia) com o limite extendido: Versão: 8.54(0.3.6 pl1) Scan Download Créditos: Featzen(100%) Editado Junho 28, 2015 9 anos por Gabrielbsales (veja o histórico de edições) Att. Featzen.
Postado Junho 25, 2015 9 anos Tópico aprovado e movido a área correta, obrigado por compartilhar. Você recebeu um REP pela contribuição. ➥ Regras | Seções OTServ | Seções BOT
Postado Junho 26, 2015 9 anos 1- qual a diferença do otclient 8.54 e oldclient 8.54? 2- da pra eu ter um otclient exatamente igual a um oldcliente (8.54)?
Postado Junho 27, 2015 9 anos qe nada perfeito oqe tudo perfeito nesse mundo kk NTO PANZER SERVIDOR 24H http://narutopanzer.blogspot.com.br/RATE EXP 999 DBO SERVIDOR 24H http://dbowtf.ddns.net/RATE EXP 400
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.