Postado Novembro 21, 2016 8 anos Este é um post popular. Bom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão! Abaixo umas informações essenciais ! Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 255, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou Distance Effects), caso queria os dois, use ambos. Vamos começar primeiramente com os Magic Effects: Spoiler Em protocolgame.cpp procure por: void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type) mude para: void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type) procure por: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint8_t type) { msg->put<char>(0x83); msg->putPosition(pos); msg->put<char>(type + 1); } mude para: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint16_t type) { msg->put<char>(0x83); msg->putPosition(pos); msg->put<uint16_t>(type + 1); } Em protocolgame.h procure por: void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint8_t type); mude para: void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint16_t type); procure por void sendMagicEffect(const Position& pos, uint8_t type); mude para: void sendMagicEffect(const Position& pos, uint16_t type); Em game.cpp procure por: void Game::addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode/* = false*/) mude para: void Game::addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode/* = false*/) procure por: void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, mude para: void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, Em game.h procure por: void addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode = false); mude para: void addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode = false); procure por: void addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, bool ghostMode = false); mude para: void addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, bool ghostMode = false); Em player.h procure por: void sendMagicEffect(const Position& pos, uint8_t type) const mude para: void sendMagicEffect(const Position& pos, uint16_t type) const Um detalhe importante nessa parte pra não fazer você perde tempo em 1 em 1 efeito. Em outros tópicos, pedem que você adicione em 1 em 1 efeito, perda de tempo, pois você pode adicionar um em limite. Observe: Em const.h logo no começo terá: enum MagicEffect_t adicione depois do ultimo efeito: MAGIC_EFFECT_SEMFIM = 0xFFFE, //65534 e em MAGIC_EFFECT_LAST você adicione o efeito adicionado ficando assim: MAGIC_EFFECT_LAST = MAGIC_EFFECT_SEMFIM, O detalhe é que FFFE em decimal é 65534 e então a Distro vai usar os efeitos de 0 á 65534 para que você não precise adicionar em 1 em 1. O engrençado é que mesmo que você aumente apenas para 255, se você colocar FFFE, como o valor dele é 65534, o distro irá usar de 0 até 255, sem precisar adicionar em 1 em 1 os efeitos, o que poupar tempo. Em tools.cpp procure por: MagicEffectNames magicEffectNames[] = e no antes de finalizar a função adicione: {"semfim", MAGIC_EFFECT_SEMFIM} lembre-se o ultimo efeito deve está sem virgula no final e o penultimo deve conter virgula ficando assim, por exemplo: {"dragonhead", MAGIC_EFFECT_DRAGONHEAD}, {"semfim", MAGIC_EFFECT_SEMFIM} Agora para finalizar em data/lib abra o arquivo 000-constant.lua e procure por: antes de CONST_ME_NONE adicione CONST_ME_SEMFIM = 65534 e em CONST_ME_NONE mude para: CONST_ME_NONE = 65534 e CONST_ME_LAST mude para CONST_ME_LAST = CONST_ME_SEMFIM Agora vamos mudar o ShootEffects para uint16. Spoiler Em Protocolgame.cpp procure por: void ProtocolGame::sendDistanceShoot(const Position& from, const Position& to, uint8_t type) mude para: void ProtocolGame::sendDistanceShoot(const Position& from, const Position& to, uint16_t type) procure por void ProtocolGame::AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint8_t type) { msg->put<char>(0x85); msg->putPosition(from); msg->putPosition(to); msg->put<char>(type + 1); } mude para: void ProtocolGame::AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint16_t type) { msg->put<char>(0x85); msg->putPosition(from); msg->putPosition(to); msg->put<uint16_t>(type + 1); } Em protocolgame.h procure por: void AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint8_t type); mude para: void AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint16_t type); procure por: void sendDistanceShoot(const Position& from, const Position& to, uint8_t type); mude para: void sendDistanceShoot(const Position& from, const Position& to, uint16_t type); Em game.cpp procure por: void Game::addDistanceEffect(const Position& fromPos, const Position& toPos, uint8_t effect) mude para void Game::addDistanceEffect(const Position& fromPos, const Position& toPos, uint16_t effect) procure por: void Game::addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint8_t effect) mude para: void Game::addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint16_t effect) Em game.h procure por: void addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint8_t effect); mude para; void addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint16_t effect); procure por: void addDistanceEffect(const Position& fromPos, const Position& toPos, uint8_t effect); mude para; void addDistanceEffect(const Position& fromPos, const Position& toPos, uint16_t effect); Em player.h procure por: void sendDistanceShoot(const Position& from, const Position& to, uint8_t type) const mude para: void sendDistanceShoot(const Position& from, const Position& to, uint16_t type) const Em const.h procure por: enum ShootEffect_t e depois do ultimo efeito adicione: SHOOT_EFFECT_SEMFIM = 0xFFFE, //65534 e em SHOOT_EFFECT_LAST mude adione SHOOT_EFFECT_SEMFIM, ficando assim SHOOT_EFFECT_LAST = SHOOT_EFFECT_SEMFIM, O detalhe é que FFFE em decimal é 65534 e então a Distro vai usar os distance efeitos de 0 á 65534 para que você não precise adicionar em 1 em 1. O engrençado é que mesmo que você aumente apenas para 255, se você colocar FFFE, como o valor dele é 65534, o distro irá usar de 0 até 255, sem precisar adicionar em 1 em 1 os efeitos, o que poupar tempo. Em tools.cpp procure por: ShootTypeNames shootTypeNames[] = no final da função antes da ultima chave }; adicione {"semfim", SHOOT_EFFECT_SEMFIM} lembre-se o ultimo efeito deve está sem virgula no final e o penultimo deve conter virgual ficando assim: {"cake", SHOOT_EFFECT_CAKE}, {"semfim", SHOOT_EFFECT_SEMFIM} Agora para finalizar em data/lib abra o arquivo 000-constant.lua e procure por: antes de CONST_ANI_WEAPONTYPE adicione: CONST_ANI_SEMFIM = 65534 em CONST_ANI_NONE mude para: CONST_ANI_NONE = 65534 em CONST_ANI_LAST deixei assim: CONST_ANI_LAST = CONST_ANI_SEMFIM Bom não adianta mudar isso se não fizer alteração no Client, então deixarei aqui, dois Tópicos de como mudar de uint8 para uint16 no Client em em ShootEffects e MagicEffect. Mudando os Efeitos de uint8 a 16 para Magic Effects Mudando os Efeitos de uint8 a 16 para Shoot Effects Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar. Tópico exclusivo do Tk, proibido posta em outro site, blog ou fórum! xD
Postado Novembro 22, 2016 8 anos Em 20/11/2016 ás 22:03, KotZletY disse: Bom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão! Abaixo umas informações essenciais ! Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 255, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou Distance Effects), caso queria os dois, use ambos. Vamos começar primeiramente com os Magic Effects: Ocultar conteúdo Em protocolgame.cpp procure por: void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type) mude para: void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type) procure por: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint8_t type) { msg->put<char>(0x83); msg->putPosition(pos); msg->put<char>(type + 1); } mude para: void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint16_t type) { msg->put<char>(0x83); msg->putPosition(pos); msg->put<uint16_t>(type + 1); } Em protocolgame.h procure por: void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint8_t type); mude para: void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint16_t type); procure por void sendMagicEffect(const Position& pos, uint8_t type); mude para: void sendMagicEffect(const Position& pos, uint16_t type); Em game.cpp procure por: void Game::addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode/* = false*/) mude para: void Game::addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode/* = false*/) procure por: void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, mude para: void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, Em game.h procure por: void addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode = false); mude para: void addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode = false); procure por: void addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, bool ghostMode = false); mude para: void addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, bool ghostMode = false); Em player.h procure por: void sendMagicEffect(const Position& pos, uint8_t type) const mude para: void sendMagicEffect(const Position& pos, uint16_t type) const Um detalhe importante nessa parte pra não fazer você perde tempo em 1 em 1 efeito. Em outros tópicos, pedem que você adicione em 1 em 1 efeito, perda de tempo, pois você pode adicionar um em limite. Observe: Em const.h logo no começo terá: enum MagicEffect_t adicione depois do ultimo efeito: MAGIC_EFFECT_SEMFIM = 0xFFFE, //65534 e em MAGIC_EFFECT_LAST você adicione o efeito adicionado ficando assim: MAGIC_EFFECT_LAST = MAGIC_EFFECT_SEMFIM, O detalhe é que FFFE em decimal é 65534 e então a Distro vai usar os efeitos de 0 á 65534 para que você não precise adicionar em 1 em 1. O engrençado é que mesmo que você aumente apenas para 255, se você colocar FFFE, como o valor dele é 65534, o distro irá usar de 0 até 255, sem precisar adicionar em 1 em 1 os efeitos, o que poupar tempo. Em tools.cpp procure por: MagicEffectNames magicEffectNames[] = e no antes de finalizar a função adicione: {"semfim", MAGIC_EFFECT_SEMFIM} lembre-se o ultimo efeito deve está sem virgula no final e o penultimo deve conter virgula ficando assim, por exemplo: {"dragonhead", MAGIC_EFFECT_DRAGONHEAD}, {"semfim", MAGIC_EFFECT_SEMFIM} Agora para finalizar em data/lib abra o arquivo 000-constant.lua e procure por: antes de CONST_ME_NONE adicione CONST_ME_SEMFIM = 65534 e em CONST_ME_NONE mude para: CONST_ME_NONE = 65534 e CONST_ME_LAST mude para CONST_ME_LAST = CONST_ME_SEMFIM Agora vamos mudar o ShootEffects para uint16. Mostrar conteúdo oculto Em Protocolgame.cpp procure por: void ProtocolGame::sendDistanceShoot(const Position& from, const Position& to, uint8_t type) mude para: void ProtocolGame::sendDistanceShoot(const Position& from, const Position& to, uint16_t type) procure por void ProtocolGame::AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint8_t type) { msg->put<char>(0x85); msg->putPosition(from); msg->putPosition(to); msg->put<char>(type + 1); } mude para: void ProtocolGame::AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint16_t type) { msg->put<char>(0x85); msg->putPosition(from); msg->putPosition(to); msg->put<uint16_t>(type + 1); } Em protocolgame.h procure por: void AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint8_t type); mude para: void AddDistanceShoot(NetworkMessage_ptr msg, const Position& from, const Position& to, uint16_t type); procure por: void sendDistanceShoot(const Position& from, const Position& to, uint8_t type); mude para: void sendDistanceShoot(const Position& from, const Position& to, uint16_t type); Em game.cpp procure por: void Game::addDistanceEffect(const Position& fromPos, const Position& toPos, uint8_t effect) mude para void Game::addDistanceEffect(const Position& fromPos, const Position& toPos, uint16_t effect) procure por: void Game::addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint8_t effect) mude para: void Game::addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint16_t effect) Em game.h procure por: void addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint8_t effect); mude para; void addDistanceEffect(const SpectatorVec& list, const Position& fromPos, const Position& toPos, uint16_t effect); procure por: void addDistanceEffect(const Position& fromPos, const Position& toPos, uint8_t effect); mude para; void addDistanceEffect(const Position& fromPos, const Position& toPos, uint16_t effect); Em player.h procure por: void sendDistanceShoot(const Position& from, const Position& to, uint8_t type) const mude para: void sendDistanceShoot(const Position& from, const Position& to, uint16_t type) const Em const.h procure por: enum ShootEffect_t e depois do ultimo efeito adicione: SHOOT_EFFECT_SEMFIM = 0xFFFE, //65534 e em SHOOT_EFFECT_LAST mude adione SHOOT_EFFECT_SEMFIM, ficando assim SHOOT_EFFECT_LAST = SHOOT_EFFECT_SEMFIM, O detalhe é que FFFE em decimal é 65534 e então a Distro vai usar os distance efeitos de 0 á 65534 para que você não precise adicionar em 1 em 1. O engrençado é que mesmo que você aumente apenas para 255, se você colocar FFFE, como o valor dele é 65534, o distro irá usar de 0 até 255, sem precisar adicionar em 1 em 1 os efeitos, o que poupar tempo. Em tools.cpp procure por: ShootTypeNames shootTypeNames[] = no final da função antes da ultima chave }; adicione {"semfim", SHOOT_EFFECT_SEMFIM} lembre-se o ultimo efeito deve está sem virgula no final e o penultimo deve conter virgual ficando assim: {"cake", SHOOT_EFFECT_CAKE}, {"semfim", SHOOT_EFFECT_SEMFIM} Agora para finalizar em data/lib abra o arquivo 000-constant.lua e procure por: antes de CONST_ANI_WEAPONTYPE adicione: CONST_ANI_SEMFIM = 65534 em CONST_ANI_NONE mude para: CONST_ANI_NONE = 65534 em CONST_ANI_LAST deixei assim: CONST_ANI_LAST = CONST_ANI_SEMFIM Bom não adianta mudar isso se não fizer alteração no Client, então deixarei aqui, dois Tópicos de como mudar de uint8 para uint16 no Client em em ShootEffects e MagicEffect. Mudando os Efeitos de uint8 a 16 para Magic Effects Mudando os Efeitos de uint8 a 16 para Shoot Effects(Ainda estou fazendo) Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar. Tópico exclusivo do Tk, proibido posta em outro site, blog ou fórum! xD Mano, se eu mudar o shootEffects para uint16, mesmo eu não tendo o cliente que não está editado para isso ae, pode fazer essa alteração que não ocorrera nenhum erro
Postado Novembro 22, 2016 8 anos Autor Não, mais só irá funcionar se tiver uint16 no Client, que irei postar ainda!
Postado Novembro 22, 2016 8 anos 26 minutos atrás, KotZletY disse: Não, mais só irá funcionar se tiver uint16 no Client, que irei postar ainda! Entendi, obrigado ae
Postado Novembro 22, 2016 8 anos Parabéns cara, gostei do seu tutorial, quando vc fizer esse tutorial ai pra mudar o shoot effects no oldclient 8.54, vou fazer no meu, já fiz o dos effects, e se n for pedir muito, já que vc tem conhecimento em oldclient kk, poderia fazer um tutorial ensinando a deixar o oldclient com transparency ? se precisar de um client que contenha isso, pega o do psoul, é oldclient, e nele tem transparency e extended, se vc n conseguir fazer o download, eu posso te mandar
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.