Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Monstros Focando Summons (tfs 0.3.6pl1)

 

Eai galera, to ativo essa semana rs, agora to trazendo pra vcs uma modificação que faz as criaturas sempre atacarem os summons antes dos players, tipo a do servidores de pokemon mas acho que pra fazer isso eles mudam o group do player pra um group que monstro não ataca, agora vou mostrar como fazer isso certo rs.

 

Lembrando que essa modificação da maneira que esta neste tópico só funciona com http://www.tibiaking.com/forum/topic/53480-criaturas-passivas/

 

já instalado nas source :). da pra fazer funcionar sem isso sim e é ate bem simples só tirar algumas checagens mas dai isso fica com vcs :0.

 

Obs: Diferente do método em que se muda o group do player,  se uma criatura usa um poder em área, e o player estiver perto tmb toma o dano. se vc não gostou desta informação digo que tem como "retirar o dano" com um statchange checando se o player tem um summon ativo.

 

Em Monster.cpp:

 

Procure por:

void Monster::doAttacking(uint32_t interval)

E em baixo de:

	if(!attackedCreature || (isSummon() && attackedCreature == this))
		return;

Adicione:

	const std::list<Creature*>& summons = attackedCreature->getSummons();
	CreatureList::const_iterator itt = summons.begin();
	for(uint32_t i = 1; itt != summons.end(); ++itt, ++i)
	{
        if (i >= 1 && *itt){
	         searchTarget();
        }
	}

Ainda em Monster.cpp procure por:

bool Monster::selectTarget(Creature* creature)

e em baixo de:

	if(!isHostile() && getHealth() ==  getMaxHealth() && !isSummon()){
		return false;
	}

Adicione:

	const std::list<Creature*>& summons = creature->getSummons();
	CreatureList::const_iterator itt = summons.begin();
	for(uint32_t i = 1; itt != summons.end(); ++itt, ++i)
	{
		if (i >= 1 && *itt){
			if((isHostile() || isSummon() || !isHostile() && getHealth() !=  getMaxHealth()) && setAttackedCreature(*itt) && !isSummon())
			Dispatcher::getInstance().addTask(createTask(
				boost::bind(&Game::checkCreatureAttack, &g_game, getID())));
		
		return setFollowCreature(*itt, true);
        }
		
	}

Gostou?, então se puder me ajude!

120x53-doar.gif

 

não autorizo o re-post em qualquer outro fórum sem minha autorização.

 

vyctor17 - Waki-V LTDA ©

Editado por vyctor17 (veja o histórico de edições)

  • Respostas 11
  • Visualizações 4.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • tem dois modos de fazer isso um criando um OnStatsChange impedindo o dano caso o player esteja com um summon o outro é fazendo algumas modificações na source pra fazer o mesmo que o o onStatsChange ia

  • tem um erro ao compilar em TFS 0.4 então fui verificar seu código e arrumei para tfs 0.4 era apenas um errinho simples     const std::list<Creature*>& summons = creature->g

Postado

Tópico aprovado e movido para a área correta! Com isso você ganhou um ponto de reputação por ajudar a contribuir com o TK :D espero que os membros aproveitem esse conteúdo.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • 2 months later...
Postado
  • Diretor

merecido! REP+ e desculpa por reviver o tópico!

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo