[help]ai
Сборка: l2gold
Краткое изложение СУТИ проблемы: не грузит аi
Вопрос: ПОчему?
Мои соображения по этому поводу: без понятия!
package ai.individual;
import net.sf.l2j.gameserver.model.quest.Quest;
import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.L2Character;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.model.zone.L2ZoneType;
import net.sf.l2j.gameserver.model.L2Effect;
import net.sf.l2j.gameserver.model.L2Skill;
public class PrisonGuard extends Quest
{
final private static int Guard1 = 18367;
final private static int Guard2 = 18368;
final private static int Stamp = 10013;
final private static int[] Zone =
{
20101,
20102,
20103,
20104
};
boolean found = false;
boolean Zone1 = false;
boolean Zone2 = false;
boolean Zone3 = false;
boolean Zone4 = false;
boolean Killed1 = false;
boolean Killed2 = false;
boolean Killed3 = false;
boolean Killed4 = false;
public PrisonGuard(int questId, String name, String descr)
{
super(questId, name, descr);
int[] mob = {Guard1,Guard2};
for (int npc : mob)
{
addKillId(npc);
addAttackId(npc);
}
for (int zones : Zone)
{
addEnterZoneId(zones);
addExitZoneId(zones);
}
}
public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isPet)
{
int npcId = npc.getNpcId();
found = false;
for (L2Effect effect : player.getAllEffects())
{
if (effect.getSkill().getId() == 5239)
found = true;
}
if (npcId == Guard1 || npcId == Guard2)
{
if (!found)
{
getPara(npc,player,false);
if (player.getPet() != null)
getPara(npc,player,true);
}
else
return super.onAggroRangeEnter(npc,player,isPet);
}
return super.onAggroRangeEnter(npc,player,isPet);
}
public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
{
found = false;
for (L2Effect effect : killer.getAllEffects())
{
if (effect.getSkill().getId() == 5239)
found = true;
}
if (found && Zone1 && !Killed1)
{
Killed1 = true;
killer.getQuestState("PrisonGuard").giveItems(Stamp,1);
}
if (found && Zone2 && !Killed2)
{
Killed2 = true;
killer.getQuestState("PrisonGuard").giveItems(Stamp,1);
}
if (found && Zone3 && !Killed3)
{
Killed3 = true;
killer.getQuestState("PrisonGuard").giveItems(Stamp,1);
}
if (found && Zone4 && !Killed4)
{
Killed4 = true;
killer.getQuestState("PrisonGuard").giveItems(Stamp,1);
}
return super.onKill(npc,killer,isPet);
}
public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet, L2Skill skill)
{
int npcId = npc.getNpcId();
found = false;
for (L2Effect effect : attacker.getAllEffects())
{
if (effect.getSkill().getId() == 5239)
found = true;
}
if (npcId == Guard1 || npcId == Guard2)
{
if (!found)
{
getPara(npc,attacker,false);
if (attacker.getPet() != null)
getPara(npc,attacker,true);
}
else
return super.onAttack(npc,attacker,damage,isPet,skill);
}
return super.onAttack(npc,attacker,damage,isPet,skill);
}
public String onEnterZone(L2Character character, L2ZoneType zone)
{
if (zone.getId() == Zone[0])
Zone1 = true;
if (zone.getId() == Zone[1])
Zone2 = true;
if (zone.getId() == Zone[2])
Zone3 = true;
if (zone.getId() == Zone[3])
Zone4 = true;
return super.onEnterZone(character,zone);
}
public String onExitZone(L2Character character, L2ZoneType zone)
{
if (zone.getId() == Zone[0])
Zone1 = false;
if (zone.getId() == Zone[1])
Zone2 = false;
if (zone.getId() == Zone[2])
Zone3 = false;
if (zone.getId() == Zone[3])
Zone4 = false;
return super.onExitZone(character,zone);
}
public void getPara(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final L2Skill skill = SkillTable.getInstance().getInfo(4578, 1);
if (isSummon)
{
player.getPet().stopSkillEffects(4578);
skill.getEffects(npc, player.getPet());
}
else
{
player.stopSkillEffects(4578);
skill.getEffects(npc, player);
SystemMessage sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
sm.addSkillName(skill);
player.sendPacket(sm);
}
}
public static void main(String[] args)
{
new PrisonGuard(-1,"PrisonGuard","ai");
}
}
Что не так кто подскажет?




