Ir para conteúdo
  • Cadastre-se
  • 0

criar skill para mobs na acis 405 e fazer eles usarem frequentemente a skill


gleyce123

Pergunta

17 respostass a esta questão

Posts recomendados

  • 0
1 hora atrás, gleyce123 disse:

alguém sabe como faço isso?

Basta criar a skill e adicionar no template do Npc ou criar uma script para o proprio npc com chance de de usar ele.

Link para o comentário
Compartilhar em outros sites


  • 0
18 minutos atrás, gleyce123 disse:

em que parte teria que criar e como ligar isso com as skills do xml ?

 

Você pode adicionar diretamente no template do npc 

BFwfAvp.png

Caso queria que ele use por uma frequencia maior crie um parametro de chance dentro do template de Npc ou criei uma script para seu monstro. 

criando uma script pode você pode moldar ele a seu gosto e criar algumas funções melhores para eles.

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Williams0ff disse:

Você pode adicionar diretamente no template do npc 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Caso queria que ele use por uma frequencia maior crie um parametro de chance dentro do template de Npc ou criei uma script para seu monstro. 

criando uma script pode você pode moldar ele a seu gosto e criar algumas funções melhores para eles.

Sim essa parte estou ciente oque queria saber era onde criar o script

Link para o comentário
Compartilhar em outros sites

  • 0

 

package net.sf.l2j.gameserver.scripting.script.ai.boss;

 

 

import net.sf.l2j.commons.random.Rnd;

 

import net.sf.l2j.gameserver.data.SkillTable.FrequentSkill;

import net.sf.l2j.gameserver.enums.skills.ElementType;

import net.sf.l2j.gameserver.model.actor.Attackable;

import net.sf.l2j.gameserver.model.actor.Creature;

import net.sf.l2j.gameserver.model.actor.Npc;

import net.sf.l2j.gameserver.model.actor.Playable;

import net.sf.l2j.gameserver.model.actor.Player;

import net.sf.l2j.gameserver.scripting.script.ai.AttackableAIScript;

import net.sf.l2j.gameserver.skills.L2Skill;

 

public abstract class fafurionguard extends AttackableAIScript

{

// Grand boss

private static final int FAFURIONGUARD = 70005;

 

// Monsters

//private static final int QUEEN_ANT_LARVA = 29002;

//private static final int NURSE_ANT = 29003;

//private static final int GUARD_ANT = 29004;

//private static final int ROYAL_GUARD_ANT = 29005;

//public static final byte DEAD = 3;

//public static final byte ALIVE = 0;

 

public fafurionguard()

{

}

 

@Override

public void onOutOfTerritory(Npc npc)

{

((Attackable) npc).getAggroList().clear();

npc.teleportTo(npc.getSpawnLocation(), 0);

}

 

@Override

public void onAttacked(Npc npc, Creature attacker, int damage, L2Skill skill)

{

if (attacker instanceof Playable)

{

// Curses

if (attacker.testCursesOnAttack(npc, FAFURIONGUARD))

return;

 

// Pick current attacker, and make actions based on it and the actual distance range seperating them.

if (npc.getNpcId() == FAFURIONGUARD)

{

if (skill != null && skill.getElement() == ElementType.FIRE && Rnd.get(100) < 70)

npc.getAI().tryToCast(attacker, FrequentSkill.QUEEN_ANT_STRIKE.getSkill());

else

{

final double dist = npc.distance3D(attacker);

if (dist > 500 && Rnd.get(100) < 10)

npc.getAI().tryToCast(attacker, FrequentSkill.QUEEN_ANT_STRIKE.getSkill());

else if (dist > 150 && Rnd.get(100) < 10)

npc.getAI().tryToCast(attacker, (Rnd.get(10) < 8) ? FrequentSkill.QUEEN_ANT_STRIKE.getSkill() : FrequentSkill.QUEEN_ANT_SPRINKLE.getSkill());

else if (dist < 250 && Rnd.get(100) < 5)

npc.getAI().tryToCast(attacker, FrequentSkill.QUEEN_ANT_BRANDISH.getSkill());

}

}

}

super.onAttacked(npc, attacker, damage, skill);

}

 

@Override

public void onSeeCreature(Npc npc, Creature creature)

{

if (creature instanceof Playable && creature.testCursesOnAggro(npc))

return;

 

super.onSeeCreature(npc, creature);

}

 

@Override

public void onMyDying(Npc npc, Creature killer)

{

 

{/*

* // Set the respawn time of Royal Guards and Nurses. Pick the npc master. final Monster minion = ((Monster) npc); final Monster master = minion.getMaster(); if (master != null && master.hasMinions()) master.getMinionList().onMinionDie(minion, (npc.getNpcId() == NURSE_ANT) ? 10000 :

* (280000 + (Rnd.get(40) * 1000))); return null;

*/

}

super.onMyDying(npc, killer);

}

 

@Override

public void onPartyAttacked(Npc caller, Npc called, Creature target, int damage)

{

switch (called.getNpcId())

{

case FAFURIONGUARD:

final double dist = called.distance3D(target);

if (dist > 500 && Rnd.get(100) < 5)

called.getAI().tryToCast(target, FrequentSkill.FAFURION_GUARD_70004.getSkill());

else if (dist > 150 && Rnd.get(100) < 5)

called.getAI().tryToCast(target, (Rnd.get(100) < 80) ? FrequentSkill.FAFURION_GUARD_70004.getSkill() : FrequentSkill.QUEEN_ANT_STRIKE.getSkill());

else if (dist < 250 && Rnd.get(100) < 2)

called.getAI().tryToCast(target, FrequentSkill.FAFURION_GUARD_70004.getSkill());

break;

 

}

}

 

@Override

public void onSeeSpell(Npc npc, Player caster, L2Skill skill, Creature[] targets, boolean isPet)

{

final Playable realAttacker = (isPet && caster.getSummon() != null) ? caster.getSummon() : caster;

 

// If Queen Ant see an aggroable skill, try to launch Queen Ant Strike.

if (npc.getNpcId() == FAFURIONGUARD && skill.getAggroPoints() > 0 && Rnd.get(100) < 15)

npc.getAI().tryToCast(realAttacker, FrequentSkill.FAFURION_GUARD_70005.getSkill());

 

super.onSeeSpell(npc, caster, skill, targets, isPet);

}

}





tentei fazer um exemplo como queen ant mais nao deu certo..

 

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.