Ir para conteúdo
  • Cadastre-se
  • 0

Acis 383 - 398


Sorameshi

Pergunta

 

Opa, td certo?

Estou atualizando minhas aCis 383 para a 398, mas notei algumas mudanças que não estou conseguindo me adaptar.

eu preciso teleportar um char de um ponto a outro e normalmente fazia assim:

if (command.startsWith("scroll_custom_teleport"))
		{
			
			int delay = (!player.isInCombat() && player.getPvpFlag() == 0 && player.getKarma() == 0 && player.isInsideZone(ZoneId.PEACE)) ? 3 : (player.isCursedWeaponEquipped() ? 90 : 30);
			delay *= 1000;
			player.getAI().tryToIdle();
			player.setTarget(player);
			player.disableAllSkills();
			player.setIsCastingNow(true);
			player.broadcastPacket(new MagicSkillUse(player, 1050, 1, delay, 0));
			player.sendPacket(new SetupGauge(GaugeColor.BLUE, delay));
			player.setSkillCast(ThreadPool.schedule(() -> teleportFinalizer(player, command), delay));
			player.setCastInterruptTime(System.currentTimeMillis() + delay);
		}
private static void teleportFinalizer(Player player, String command)
	{
		if (player.isDead() || player.isInDuel())
			return;
		player.enableAllSkills();
		player.setIsCastingNow(false);
		for (L2Teleport template : TeleportTable.getTemplate())
		{
			int teleportId = Integer.parseInt(command.substring(15));
			if (template.getTeleportId() != teleportId)
				continue;
			if (!player.destroyItemByItemId("cubic magical support", template.getFeeId(), template.getFeeAmount(), player, true))
				continue;
			Location loc = new Location(template.getX(), template.getY(), template.getZ());
			player.teleportTo(loc, 20);
		}
	}

o problema é no setSkillCast(Future<?> future) do  Creature.java ( como tudo o que tem a ver com Cast foi enviado para CreatureCast eu adaptei o que consegui) mas não vejo nenhuma alternativa para setar uma skill e executar uma ação que neste caso é o teleportFinalizer.

pode me auxiliar?

Já tentei com player.getCast().doCast() mas o tipo dele é totalmente diferente e nem daria para usa-lo sem grande refatoração.

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts recomendados

  • 0

Seria melhor você criar uma skillhandler e na classe do comando usar o player.getAI().tryToCast(Creature target, int id, int level) para lançar a skill.
 

Isso é dispensável tanto em novas como em velhas revisões para o cast de uma skill. 

setSkillCast

 

Já consegui aquele vasto conhecimento nesse fórum louco 😄

Link para o comentário
Compartilhar em outros sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...




×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.