Ir para conteúdo

[Tutorial] Aumentando Limite de Magic Effects e Shoot Effetcs TFS 0.4


Wase Wiss

Posts Recomendados

Bom galera, eu procurei um tutorial sobre isso aki para TFS 0.4 e não achei, e em outro fórum um membro postou, ae eu resolvi trazer para o fórum,  então vamos começar, bom, 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 um sitezinho qualquer, 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 !

Spoiler

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 porvoid sendMagicEffect(const Position& pos, uint8_t type);mude para:void sendMagicEffect(const Position& pos, uint16_t type);

 

Em game.cpp

procure por:void GameaddMagicEffect(const Position& pos, uint8_t effect, bool ghostMode/* = false*/)  mude para:void GameaddMagicEffect(const Position& pos, uint16_t effect, bool ghostMode/* = false*/)procure por:void GameaddMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect,                          mude para: void GameaddMagicEffect(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_tadicione depois do ultimo efeito:MAGIC_EFFECT_SEMFIM        = 0xFFFE, //65534e 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 á 65534para 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 = 65534e 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 ProtocolGamesendDistanceShoot(const Position& from, const Position& to, uint8_t type)  mude para:void ProtocolGamesendDistanceShoot(const Position& from, const Position& to, uint16_t type)procure porvoid ProtocolGameAddDistanceShoot(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 ProtocolGameAddDistanceShoot(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 GameaddDistanceEffect(const Position& fromPos, const Position& toPos, uint8_t effect)  mude paravoid GameaddDistanceEffect(const Position& fromPos, const Position& toPos, uint16_t effect)procure por:void GameaddDistanceEffect(const SpectatorVec& list, const Position& fromPos,	const Position& toPos, uint8_t effect)	mude para:	void GameaddDistanceEffect(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_te depois do ultimo efeito adicione:	SHOOT_EFFECT_SEMFIM        = 0xFFFE, //65534e em SHOOT_EFFECT_LASTmude adione SHOOT_EFFECT_SEMFIM,ficando assimSHOOT_EFFECT_LAST        = SHOOT_EFFECT_SEMFIM,O detalhe é que FFFE em decimal é 65534 e então a Distro vai usar os distance efeitos de 0 á 65534para 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 = 65534em CONST_ANI_NONE mude para:CONST_ANI_NONE = 65534em CONST_ANI_LAST deixei assim:CONST_ANI_LAST = CONST_ANI_SEMFIM

 

 

Bom, não adianta fazer isso na source, sem ter o cliente editado para que aceite mais de 255 effect e mais de sla quantos shoot effects XD

Aki está o link do download do cliente já editado de uint18 para uint16 para aceitar mais de 255 effects e mais que o normal de shoot effects

Download do Cliente

Scan

 

Créditos

Spoiler

Breno Neves

 

Editado por Henrique Gomes
Link para o comentário
Compartilhar em outros sites

Fiz tudo certinho so a parte dos MaggicEffects porem na hora de compilar da esse ERRO... nao sei se e a source 0.4 que baixei esta com defeito

se nao souber qual e o ERRO poderia me passar o download da sua?

tsf error.png

58405081d5005_tsferror.thumb.png.1cacef28151ffe994a38d7997a96363a.png

Link para o comentário
Compartilhar em outros sites

Agora, sexosix disse:

Fiz tudo certinho so a parte dos MaggicEffects porem na hora de compilar da esse ERRO... nao sei se e a source 0.4 que baixei esta com defeito

se nao souber qual e o ERRO poderia me passar o download da sua?

tsf error.png

 

 

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...