This commit is contained in:
180
trunk/dist/game/data/scripts/hellbound/AI/Amaskari.java
vendored
Normal file
180
trunk/dist/game/data/scripts/hellbound/AI/Amaskari.java
vendored
Normal file
@@ -0,0 +1,180 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.skills.BuffInfo;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Manages Amaskari's and minions' chat and some skill usage.
|
||||
* @author GKR
|
||||
*/
|
||||
public final class Amaskari extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int AMASKARI = 22449;
|
||||
private static final int AMASKARI_PRISONER = 22450;
|
||||
// Skills
|
||||
// private static SkillHolder INVINCIBILITY = new SkillHolder(5417, 1);
|
||||
private static final int BUFF_ID = 4632;
|
||||
private static SkillHolder[] BUFF =
|
||||
{
|
||||
new SkillHolder(BUFF_ID, 1),
|
||||
new SkillHolder(BUFF_ID, 2),
|
||||
new SkillHolder(BUFF_ID, 3)
|
||||
};
|
||||
// Misc
|
||||
private static final NpcStringId[] AMASKARI_NPCSTRING_ID =
|
||||
{
|
||||
NpcStringId.I_LL_MAKE_EVERYONE_FEEL_THE_SAME_SUFFERING_AS_ME,
|
||||
NpcStringId.HA_HA_YES_DIE_SLOWLY_WRITHING_IN_PAIN_AND_AGONY,
|
||||
NpcStringId.MORE_NEED_MORE_SEVERE_PAIN,
|
||||
NpcStringId.SOMETHING_IS_BURNING_INSIDE_MY_BODY
|
||||
};
|
||||
private static final NpcStringId[] MINIONS_NPCSTRING_ID =
|
||||
{
|
||||
NpcStringId.AHH_MY_LIFE_IS_BEING_DRAINED_OUT,
|
||||
NpcStringId.THANK_YOU_FOR_SAVING_ME,
|
||||
NpcStringId.IT_WILL_KILL_EVERYONE,
|
||||
NpcStringId.EEEK_I_FEEL_SICK_YOW
|
||||
};
|
||||
|
||||
public Amaskari()
|
||||
{
|
||||
super(Amaskari.class.getSimpleName(), "hellbound/AI");
|
||||
addKillId(AMASKARI, AMASKARI_PRISONER);
|
||||
addAttackId(AMASKARI);
|
||||
addSpawnId(AMASKARI_PRISONER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("stop_toggle"))
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[2]);
|
||||
((L2MonsterInstance) npc).clearAggroList();
|
||||
((L2MonsterInstance) npc).getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
|
||||
npc.setIsInvul(false);
|
||||
// npc.doCast(INVINCIBILITY.getSkill())
|
||||
}
|
||||
else if (event.equalsIgnoreCase("onspawn_msg") && (npc != null) && !npc.isDead())
|
||||
{
|
||||
if (getRandom(100) > 20)
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[2]);
|
||||
}
|
||||
else if (getRandom(100) > 40)
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[3]);
|
||||
}
|
||||
startQuestTimer("onspawn_msg", (getRandom(8) + 1) * 30000, npc, null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon, Skill skill)
|
||||
{
|
||||
if ((npc.getId() == AMASKARI) && (getRandom(1000) < 25))
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[0]);
|
||||
for (L2MonsterInstance minion : ((L2MonsterInstance) npc).getMinionList().getSpawnedMinions())
|
||||
{
|
||||
if ((minion != null) && !minion.isDead() && (getRandom(10) == 0))
|
||||
{
|
||||
broadcastNpcSay(minion, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[0]);
|
||||
minion.setCurrentHp(minion.getCurrentHp() - (minion.getCurrentHp() / 5));
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == AMASKARI_PRISONER)
|
||||
{
|
||||
final L2MonsterInstance master = ((L2MonsterInstance) npc).getLeader();
|
||||
if ((master != null) && !master.isDead())
|
||||
{
|
||||
broadcastNpcSay(master, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[1]);
|
||||
final BuffInfo info = master.getEffectList().getBuffInfoBySkillId(BUFF_ID);
|
||||
if ((info != null) && (info.getSkill().getAbnormalLvl() == 3) && master.isInvul())
|
||||
{
|
||||
master.setCurrentHp(master.getCurrentHp() + (master.getCurrentHp() / 5));
|
||||
}
|
||||
else
|
||||
{
|
||||
master.clearAggroList();
|
||||
master.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
|
||||
if (info == null)
|
||||
{
|
||||
master.doCast(BUFF[0].getSkill());
|
||||
}
|
||||
else if (info.getSkill().getAbnormalLvl() < 3)
|
||||
{
|
||||
master.doCast(BUFF[info.getSkill().getAbnormalLvl()].getSkill());
|
||||
}
|
||||
else
|
||||
{
|
||||
broadcastNpcSay(master, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[3]);
|
||||
// master.doCast(INVINCIBILITY.getSkill())
|
||||
master.setIsInvul(true);
|
||||
startQuestTimer("stop_toggle", 10000, master, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (npc.getId() == AMASKARI)
|
||||
{
|
||||
for (L2MonsterInstance minion : ((L2MonsterInstance) npc).getMinionList().getSpawnedMinions())
|
||||
{
|
||||
if ((minion != null) && !minion.isDead())
|
||||
{
|
||||
if (getRandom(1000) > 300)
|
||||
{
|
||||
broadcastNpcSay(minion, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[1]);
|
||||
}
|
||||
HellboundEngine.getInstance().updateTrust(30, true);
|
||||
minion.deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
startQuestTimer("onspawn_msg", (getRandom(3) + 1) * 30000, npc, null);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
}
|
139
trunk/dist/game/data/scripts/hellbound/AI/Chimeras.java
vendored
Normal file
139
trunk/dist/game/data/scripts/hellbound/AI/Chimeras.java
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Chimeras AI.
|
||||
* @author DS
|
||||
*/
|
||||
public final class Chimeras extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
22349, // Chimera of Earth
|
||||
22350, // Chimera of Darkness
|
||||
22351, // Chimera of Wind
|
||||
22352, // Chimera of Fire
|
||||
};
|
||||
private static final int CELTUS = 22353;
|
||||
// Locations
|
||||
private static final Location[] LOCATIONS =
|
||||
{
|
||||
new Location(3678, 233418, -3319),
|
||||
new Location(2038, 237125, -3363),
|
||||
new Location(7222, 240617, -2033),
|
||||
new Location(9969, 235570, -1993)
|
||||
};
|
||||
// Skills
|
||||
private static final int BOTTLE = 2359; // Magic Bottle
|
||||
// Items
|
||||
private static final int DIM_LIFE_FORCE = 9680;
|
||||
private static final int LIFE_FORCE = 9681;
|
||||
private static final int CONTAINED_LIFE_FORCE = 9682;
|
||||
|
||||
public Chimeras()
|
||||
{
|
||||
super(Chimeras.class.getSimpleName(), "hellbound/AI");
|
||||
addSkillSeeId(NPCS);
|
||||
addSpawnId(CELTUS);
|
||||
addSkillSeeId(CELTUS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() == 7) // Have random spawn points only in 7 lvl
|
||||
{
|
||||
final Location loc = LOCATIONS[getRandom(LOCATIONS.length)];
|
||||
if (!npc.isInsideRadius(loc, 200, false, false))
|
||||
{
|
||||
npc.getSpawn().setLocation(loc);
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(npc, loc), 100);
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon)
|
||||
{
|
||||
if ((skill.getId() == BOTTLE) && !npc.isDead())
|
||||
{
|
||||
if ((targets.length > 0) && (targets[0] == npc))
|
||||
{
|
||||
if (npc.getCurrentHp() < (npc.getMaxHp() * 0.1))
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() == 7)
|
||||
{
|
||||
HellboundEngine.getInstance().updateTrust(3, true);
|
||||
}
|
||||
|
||||
npc.setIsDead(true);
|
||||
if (npc.getId() == CELTUS)
|
||||
{
|
||||
npc.dropItem(caster, CONTAINED_LIFE_FORCE, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (getRandom(100) < 80)
|
||||
{
|
||||
npc.dropItem(caster, DIM_LIFE_FORCE, 1);
|
||||
}
|
||||
else if (getRandom(100) < 80)
|
||||
{
|
||||
npc.dropItem(caster, LIFE_FORCE, 1);
|
||||
}
|
||||
}
|
||||
npc.onDecay();
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSkillSee(npc, caster, skill, targets, isSummon);
|
||||
}
|
||||
|
||||
private static class Teleport implements Runnable
|
||||
{
|
||||
private final L2Npc _npc;
|
||||
private final Location _loc;
|
||||
|
||||
public Teleport(L2Npc npc, Location loc)
|
||||
{
|
||||
_npc = npc;
|
||||
_loc = loc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
_npc.teleToLocation(_loc, false);
|
||||
}
|
||||
}
|
||||
}
|
128
trunk/dist/game/data/scripts/hellbound/AI/DemonPrince.java
vendored
Normal file
128
trunk/dist/game/data/scripts/hellbound/AI/DemonPrince.java
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javolution.util.FastMap;
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Demon Prince's AI.
|
||||
* @author GKR
|
||||
*/
|
||||
public final class DemonPrince extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int DEMON_PRINCE = 25540;
|
||||
private static final int FIEND = 25541;
|
||||
// Skills
|
||||
private static final SkillHolder UD = new SkillHolder(5044, 2);
|
||||
private static final SkillHolder[] AOE =
|
||||
{
|
||||
new SkillHolder(5376, 4),
|
||||
new SkillHolder(5376, 5),
|
||||
new SkillHolder(5376, 6),
|
||||
};
|
||||
|
||||
private static final Map<Integer, Boolean> ATTACK_STATE = new FastMap<>();
|
||||
|
||||
public DemonPrince()
|
||||
{
|
||||
super(DemonPrince.class.getSimpleName(), "hellbound/AI");
|
||||
addAttackId(DEMON_PRINCE);
|
||||
addKillId(DEMON_PRINCE);
|
||||
addSpawnId(FIEND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("cast") && (npc != null) && (npc.getId() == FIEND) && !npc.isDead())
|
||||
{
|
||||
npc.doCast(AOE[getRandom(AOE.length)].getSkill());
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon, Skill skill)
|
||||
{
|
||||
if (!npc.isDead())
|
||||
{
|
||||
if (!ATTACK_STATE.containsKey(npc.getObjectId()) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
npc.doCast(UD.getSkill());
|
||||
spawnMinions(npc);
|
||||
ATTACK_STATE.put(npc.getObjectId(), false);
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.1)) && ATTACK_STATE.containsKey(npc.getObjectId()) && (ATTACK_STATE.get(npc.getObjectId()) == false))
|
||||
{
|
||||
npc.doCast(UD.getSkill());
|
||||
spawnMinions(npc);
|
||||
ATTACK_STATE.put(npc.getObjectId(), true);
|
||||
}
|
||||
|
||||
if (getRandom(1000) < 10)
|
||||
{
|
||||
spawnMinions(npc);
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
ATTACK_STATE.remove(npc.getObjectId());
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getId() == FIEND)
|
||||
{
|
||||
startQuestTimer("cast", 15000, npc, null);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
private void spawnMinions(L2Npc master)
|
||||
{
|
||||
if ((master != null) && !master.isDead())
|
||||
{
|
||||
final int instanceId = master.getInstanceId();
|
||||
final int x = master.getX();
|
||||
final int y = master.getY();
|
||||
final int z = master.getZ();
|
||||
addSpawn(FIEND, x + 200, y, z, 0, false, 0, false, instanceId);
|
||||
addSpawn(FIEND, x - 200, y, z, 0, false, 0, false, instanceId);
|
||||
addSpawn(FIEND, x - 100, y - 140, z, 0, false, 0, false, instanceId);
|
||||
addSpawn(FIEND, x - 100, y + 140, z, 0, false, 0, false, instanceId);
|
||||
addSpawn(FIEND, x + 100, y - 140, z, 0, false, 0, false, instanceId);
|
||||
addSpawn(FIEND, x + 100, y + 140, z, 0, false, 0, false, instanceId);
|
||||
}
|
||||
}
|
||||
}
|
72
trunk/dist/game/data/scripts/hellbound/AI/HellboundCore.java
vendored
Normal file
72
trunk/dist/game/data/scripts/hellbound/AI/HellboundCore.java
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Manages Naia's cast on the Hellbound Core
|
||||
* @author GKR
|
||||
*/
|
||||
public final class HellboundCore extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int NAIA = 18484;
|
||||
private static final int HELLBOUND_CORE = 32331;
|
||||
// Skills
|
||||
private static SkillHolder BEAM = new SkillHolder(5493, 1);
|
||||
|
||||
public HellboundCore()
|
||||
{
|
||||
super(HellboundCore.class.getSimpleName(), "hellbound/AI");
|
||||
addSpawnId(HELLBOUND_CORE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("cast") && (HellboundEngine.getInstance().getLevel() <= 6))
|
||||
{
|
||||
for (L2Character naia : npc.getKnownList().getKnownCharactersInRadius(900))
|
||||
{
|
||||
if ((naia != null) && naia.isMonster() && (naia.getId() == NAIA) && !naia.isDead())
|
||||
{
|
||||
naia.setTarget(npc);
|
||||
naia.doSimultaneousCast(BEAM.getSkill());
|
||||
}
|
||||
}
|
||||
startQuestTimer("cast", 10000, npc, null);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
startQuestTimer("cast", 10000, npc, null);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
}
|
190
trunk/dist/game/data/scripts/hellbound/AI/Keltas.java
vendored
Normal file
190
trunk/dist/game/data/scripts/hellbound/AI/Keltas.java
vendored
Normal file
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.L2Spawn;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Manages Darion's Enforcer's and Darion's Executioner spawn/despawn
|
||||
* @author GKR
|
||||
*/
|
||||
public final class Keltas extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int KELTAS = 22341;
|
||||
private static final int ENFORCER = 22342;
|
||||
private static final int EXECUTIONER = 22343;
|
||||
// Locations
|
||||
private static final Location[] ENFORCER_SPAWN_POINTS =
|
||||
{
|
||||
new Location(-24540, 251404, -3320),
|
||||
new Location(-24100, 252578, -3060),
|
||||
new Location(-24607, 252443, -3074),
|
||||
new Location(-23962, 252041, -3275),
|
||||
new Location(-24381, 252132, -3090),
|
||||
new Location(-23652, 251838, -3370),
|
||||
new Location(-23838, 252603, -3095),
|
||||
new Location(-23257, 251671, -3360),
|
||||
new Location(-27127, 251106, -3523),
|
||||
new Location(-27118, 251203, -3523),
|
||||
new Location(-27052, 251205, -3523),
|
||||
new Location(-26999, 250818, -3523),
|
||||
new Location(-29613, 252888, -3523),
|
||||
new Location(-29765, 253009, -3523),
|
||||
new Location(-29594, 252570, -3523),
|
||||
new Location(-29770, 252658, -3523),
|
||||
new Location(-27816, 252008, -3527),
|
||||
new Location(-27930, 252011, -3523),
|
||||
new Location(-28702, 251986, -3523),
|
||||
new Location(-27357, 251987, -3527),
|
||||
new Location(-28859, 251081, -3527),
|
||||
new Location(-28607, 250397, -3523),
|
||||
new Location(-28801, 250462, -3523),
|
||||
new Location(-29123, 250387, -3472),
|
||||
new Location(-25376, 252368, -3257),
|
||||
new Location(-25376, 252208, -3257)
|
||||
};
|
||||
private static final Location[] EXECUTIONER_SPAWN_POINTS =
|
||||
{
|
||||
new Location(-24419, 251395, -3340),
|
||||
new Location(-24912, 252160, -3310),
|
||||
new Location(-25027, 251941, -3300),
|
||||
new Location(-24127, 252657, -3058),
|
||||
new Location(-25120, 252372, -3270),
|
||||
new Location(-24456, 252651, -3060),
|
||||
new Location(-24844, 251614, -3295),
|
||||
new Location(-28675, 252008, -3523),
|
||||
new Location(-27943, 251238, -3523),
|
||||
new Location(-27827, 251984, -3523),
|
||||
new Location(-27276, 251995, -3523),
|
||||
new Location(-28769, 251955, -3523),
|
||||
new Location(-27969, 251073, -3523),
|
||||
new Location(-27233, 250938, -3523),
|
||||
new Location(-26835, 250914, -3523),
|
||||
new Location(-26802, 251276, -3523),
|
||||
new Location(-29671, 252781, -3527),
|
||||
new Location(-29536, 252831, -3523),
|
||||
new Location(-29419, 253214, -3523),
|
||||
new Location(-27923, 251965, -3523),
|
||||
new Location(-28499, 251882, -3527),
|
||||
new Location(-28194, 251915, -3523),
|
||||
new Location(-28358, 251078, -3527),
|
||||
new Location(-28580, 251071, -3527),
|
||||
new Location(-28492, 250704, -3523)
|
||||
};
|
||||
// Misc
|
||||
private L2MonsterInstance _spawnedKeltas = null;
|
||||
private final Set<L2Spawn> _spawnedMonsters = Collections.newSetFromMap(new ConcurrentHashMap<L2Spawn, Boolean>());
|
||||
|
||||
public Keltas()
|
||||
{
|
||||
super(Keltas.class.getSimpleName(), "hellbound/AI");
|
||||
addKillId(KELTAS);
|
||||
addSpawnId(KELTAS);
|
||||
}
|
||||
|
||||
private void spawnMinions()
|
||||
{
|
||||
for (Location loc : ENFORCER_SPAWN_POINTS)
|
||||
{
|
||||
final L2MonsterInstance minion = (L2MonsterInstance) addSpawn(ENFORCER, loc, false, 0, false);
|
||||
final L2Spawn spawn = minion.getSpawn();
|
||||
spawn.setRespawnDelay(60);
|
||||
spawn.setAmount(1);
|
||||
spawn.startRespawn();
|
||||
_spawnedMonsters.add(spawn);
|
||||
}
|
||||
|
||||
for (Location loc : EXECUTIONER_SPAWN_POINTS)
|
||||
{
|
||||
final L2MonsterInstance minion = (L2MonsterInstance) addSpawn(EXECUTIONER, loc, false, 0, false);
|
||||
final L2Spawn spawn = minion.getSpawn();
|
||||
spawn.setRespawnDelay(80);
|
||||
spawn.setAmount(1);
|
||||
spawn.startRespawn();
|
||||
_spawnedMonsters.add(spawn);
|
||||
}
|
||||
}
|
||||
|
||||
private void despawnMinions()
|
||||
{
|
||||
if (_spawnedMonsters.isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (L2Spawn spawn : _spawnedMonsters)
|
||||
{
|
||||
spawn.stopRespawn();
|
||||
L2Npc minion = spawn.getLastSpawn();
|
||||
if ((minion != null) && !minion.isDead())
|
||||
{
|
||||
minion.deleteMe();
|
||||
}
|
||||
}
|
||||
_spawnedMonsters.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("despawn"))
|
||||
{
|
||||
final L2Npc keltas = _spawnedKeltas;
|
||||
if ((keltas != null) && !keltas.isDead())
|
||||
{
|
||||
broadcastNpcSay(keltas, Say2.NPC_SHOUT, NpcStringId.THAT_IS_IT_FOR_TODAY_LET_S_RETREAT_EVERYONE_PULL_BACK);
|
||||
keltas.deleteMe();
|
||||
keltas.getSpawn().decreaseCount(keltas);
|
||||
despawnMinions();
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
cancelQuestTimers("despawn");
|
||||
despawnMinions();
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
_spawnedKeltas = (L2MonsterInstance) npc;
|
||||
broadcastNpcSay(_spawnedKeltas, Say2.NPC_SHOUT, NpcStringId.GUYS_SHOW_THEM_OUR_POWER);
|
||||
spawnMinions();
|
||||
startQuestTimer("despawn", 1800000, null, null);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Who are you? You must be from the mainland. Your people have already taken from us all there is to take. Return to your own kind and let us be!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
He must be from our island. He looks unusually fit and strong.
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01c.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01c.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Bernarde:<br>
|
||||
He must be from our island -- he has a robust complexion that I haven't seen anywhere else! Rumor has it that the Demons are invading the natives'
|
||||
village and laying it to waste. They even seem to have plundered those treasures that the natives cherish most. I would be most grateful if you could
|
||||
secure those treasures and bring them to me. Of course, I must also ask you to finish the work being done at the Ancient Temple Remnants.<br>
|
||||
<a action="bypass -h Quest Bernarde 32300-02a.htm">Ask about the work at the Ancient Temple Remnants.</a><br>
|
||||
<a action="bypass -h Quest Bernarde Treasure">Turn over the native treasures.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01d.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01d.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Bernarde:<br>
|
||||
He must be from our island -- he has a robust complexion that I haven't seen anywhere else! I have news from those who have visited the
|
||||
Ancient Temple Remnants. They say that the soul of Derek, the First Generation Seer, wanders that place. I do not know the truth of these tales,
|
||||
but I believe those who told them to me are credible witnesses. Will you go and investigate the Ancient Temple Remnants? If you encounter Derek,
|
||||
please help him enter Nirvana.<br>
|
||||
<a action="bypass -h Quest Bernarde 32300-02a.htm">Ask about the work at the Ancient Temple Remnants.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01f.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-01f.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Ah, well met, my friend! My thanks for helping Derek's soul enter Nirvana at last. The natives in the village have received his guardianship.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Bernarde:<br>
|
||||
He must be from our island. He looks unusually fit and strong.<br>
|
||||
<a action="bypass -h Quest Bernarde 32300-02a.htm">Ask if he needs help.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02a.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02a.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I have a favor to ask of you. You are aware, are you not, that my ancestors in the Ancient Temple Remnants are not at peace? It is a great tragedy...
|
||||
However, you can give them the rest they deserve by spraying this holy water. Are your ancestors there, too? Take this holy water, I beg you,
|
||||
to the ruins and use it to lay the spirits of the seers to rest. There are so many foreigners here these days that it has been difficult to find someone
|
||||
willing to take on this mission...<br>
|
||||
<a action="bypass -h Quest Bernarde HolyWater">Exchange 5 Darion's Badges for the holy water.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02b.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02b.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Here it is. Now, please help our ancestors rest in peace!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02c.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02c.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I am afraid that you do not have a sufficient number of Darion's Badges.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02d.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02d.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Thank you! This treasure will be a huge help to the natives.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02e.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-02e.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Eh, where is the treasure?
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Bernarde:<br>
|
||||
It's been some time since I've seen you, my friend. How have you been?<br>
|
||||
<a action="bypass -h Quest Bernarde rumors">Ask about the rumor that has been circulating.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-10r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-10r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Darion's minions are likely still numerous within the Steel Citadel, making our path even more difficult. We must find a way to decrease their numbers!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-11r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-11r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Now we must defeat both Beleth and Darion, and in doing so bring peace to Hellbound...
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-1r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-1r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I have nothing to say. Away with you!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-2r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-2r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I've said enough; now I must return to my duty. Please help bring rest to those ancestors of mine who are forced to roam the ruins of the ancient temple.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-3r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-3r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Bernarde:<br>
|
||||
The Resistance Village is often attacked by Demons who have begun to sense the power of the Resistance and the continent's inhabitants. Be careful!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-4r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-4r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Apparently Derek, the first priest, appears from time to time in the ruins of the ancient temple. How tragic that his spirit still wanders there,
|
||||
unable to rest! Unless he can, I fear there will never be peace between the temple and the native village...
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-5r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-5r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Bernarde:<br>
|
||||
They say that the caravan slaves are being forced to work at the quarry. If you can rescue them, the caravan may become more willing to ally with the
|
||||
natives. Please help us by freeing the caravan slaves!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-6r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-6r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Bernarde:<br>
|
||||
Demons have been very active in the Enchanted Megaliths lately. There must be something going on for them to only increase security in that area.
|
||||
Would you investigate? Perhaps you will find something that will help us reduce Beleth's power.
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-7r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-7r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I've learned why the Scarred Plateau was abandoned, why even the money-hungry caravans fear to go there. Perhaps, once you've fully prepared yourself,
|
||||
you'd care to investigate for yourself? It is said that you can use a Magic Bottle to capture Magic Spirits from the monsters there,
|
||||
which in turn are very valuable to magicians overseas. Why not try it?
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-8r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-8r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I've heard that that the Resistance and the mainlanders have pushed the Devils all the way back to the Steel Citadel's outer gates!
|
||||
Breaching the gates is now just a matter of time. True, one of the enemy's captains has made a stand before gates, but the combined strength of our
|
||||
forces should be enough to defeat even him!
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-9r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/32300-9r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Bernarde:<br>
|
||||
I hear that the mainlanders and the Resistance have advanced deep into the heart of the Steel Citadel. Oh, that this accursed land might finally see the
|
||||
dawning of a new era! I could cry tears of joy just thinking about it! But we cannot celebrate just yet -- we must still go to the aid of our brethren in
|
||||
the castle.
|
||||
</body></html>
|
114
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/Bernarde.java
vendored
Normal file
114
trunk/dist/game/data/scripts/hellbound/AI/NPC/Bernarde/Bernarde.java
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Bernarde;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Bernarde AI.
|
||||
* @author DS
|
||||
*/
|
||||
public final class Bernarde extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int BERNARDE = 32300;
|
||||
// Misc
|
||||
private static final int NATIVE_TRANSFORM = 101;
|
||||
// Items
|
||||
private static final int HOLY_WATER = 9673;
|
||||
private static final int DARION_BADGE = 9674;
|
||||
private static final int TREASURE = 9684;
|
||||
|
||||
public Bernarde()
|
||||
{
|
||||
super(Bernarde.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addFirstTalkId(BERNARDE);
|
||||
addStartNpc(BERNARDE);
|
||||
addTalkId(BERNARDE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "HolyWater":
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() == 2)
|
||||
{
|
||||
if (player.getInventory().getInventoryItemCount(DARION_BADGE, -1, false) >= 5)
|
||||
{
|
||||
if (player.exchangeItemsById("Quest", npc, DARION_BADGE, 5, HOLY_WATER, 1, true))
|
||||
{
|
||||
return "32300-02b.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
event = "32300-02c.htm";
|
||||
break;
|
||||
}
|
||||
case "Treasure":
|
||||
{
|
||||
if ((HellboundEngine.getInstance().getLevel() == 3) && hasQuestItems(player, TREASURE))
|
||||
{
|
||||
HellboundEngine.getInstance().updateTrust((int) (getQuestItemsCount(player, TREASURE) * 1000), true);
|
||||
takeItems(player, TREASURE, -1);
|
||||
return "32300-02d.htm";
|
||||
}
|
||||
event = "32300-02e.htm";
|
||||
break;
|
||||
}
|
||||
case "rumors":
|
||||
{
|
||||
event = "32300-" + HellboundEngine.getInstance().getLevel() + "r.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
switch (HellboundEngine.getInstance().getLevel())
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
return isTransformed(player) ? "32300-01a.htm" : "32300-01.htm";
|
||||
case 2:
|
||||
return isTransformed(player) ? "32300-02.htm" : "32300-03.htm";
|
||||
case 3:
|
||||
return isTransformed(player) ? "32300-01c.htm" : "32300-03.htm";
|
||||
case 4:
|
||||
return isTransformed(player) ? "32300-01d.htm" : "32300-03.htm";
|
||||
default:
|
||||
return isTransformed(player) ? "32300-01f.htm" : "32300-03.htm";
|
||||
}
|
||||
}
|
||||
|
||||
private static final boolean isTransformed(L2PcInstance player)
|
||||
{
|
||||
return player.isTransformed() && (player.getTransformation().getId() == NATIVE_TRANSFORM);
|
||||
}
|
||||
}
|
8
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-01.html
vendored
Normal file
8
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Budenka:<br>
|
||||
Oh... From your appearance, I can see that you have crossed the Great Sea to come here.<br>
|
||||
<a action="bypass -h Quest Budenka Budenka-02.html">Ask who he is.</a><br>
|
||||
<a action="bypass -h Quest Budenka Budenka-03.html">Ask if he knows Jirrone.</a><br>
|
||||
<a action="bypass -h Quest Budenka Budenka-04.html">Ask if he knows Beleth.</a><br>
|
||||
<a action="bypass -h Quest Budenka Budenka-05.html">Ask if he knows Bernarde.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-02.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Budenka:<br>
|
||||
You will find out soon enough, of that I am sure. Ha ha!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Budenka:<br>
|
||||
He was a resident here? I wonder how he escaped... You'd best ask Bernarde over at the Oasis.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-04.html
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-04.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Budenka:<br>
|
||||
Who is Beleth, you ask? Only the master of this island! Sure, it's rumored that he is actually a Demon, but as long as he rules fairly and well, I say "Who cares?"
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-05.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Budenka:<br>
|
||||
Bernarde is the divine official staying at Oasis. He is working hard to restore the ruins, which were once a sacred shrine, but is facing a number of challenges. To be honest, as long as Beleth governs this land, I think his chances for success are remote at best...
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-06.html
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-06.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Budenka:<br>
|
||||
Oh, it's you! I heard about you from the Guild. Did you see Bernarde's business through to a fit conclusion?
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-07.html
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka-07.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Budenka:<br>
|
||||
Eh, you have a pretty lofty reputation in the Guild already. How are you?
|
||||
</body></html>
|
82
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka.java
vendored
Normal file
82
trunk/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka.java
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Budenka;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* Budenka AI.
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class Budenka extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int BUDENKA = 32294;
|
||||
// Items
|
||||
private static final int STANDART_CERT = 9851;
|
||||
private static final int PREMIUM_CERT = 9852;
|
||||
|
||||
public Budenka()
|
||||
{
|
||||
super(Budenka.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addStartNpc(BUDENKA);
|
||||
addFirstTalkId(BUDENKA);
|
||||
addTalkId(BUDENKA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "Budenka-02.html":
|
||||
case "Budenka-03.html":
|
||||
case "Budenka-04.html":
|
||||
case "Budenka-05.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
if (hasQuestItems(player, STANDART_CERT, PREMIUM_CERT))
|
||||
{
|
||||
htmltext = "Budenka-07.html";
|
||||
}
|
||||
else if (hasQuestItems(player, STANDART_CERT))
|
||||
{
|
||||
htmltext = "Budenka-06.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Budenka-01.html";
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
Ah, you have come from the continent! Have you seen my little brother?<br>
|
||||
<a action="bypass -h Quest Buron Rumor">Ask about the rumor.</a>
|
||||
</body></html>
|
9
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01a.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01a.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Buron:<br>
|
||||
Finally, we have regained our home! Please give my regards to Jirrone, who left the island some time ago.<br>
|
||||
There is obviously a great deal of work for me to do now that we have regained our village, but I will gladly create native clothes for you whenever you
|
||||
wish it.<br>
|
||||
<a action="bypass -h Quest Buron Helmet">Craft Native Helmet.</a><br>
|
||||
<a action="bypass -h Quest Buron Tunic">Craft Native Tunic.</a><br>
|
||||
<a action="bypass -h Quest Buron Pants">Craft Native Pants.</a><br>
|
||||
<a action="bypass -h Quest Buron Rumor">Ask about the rumor.</a>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-02.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-02.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Buron:<br>
|
||||
Ah, now I can trust you! If you give me 10 Darion's Badges, I will make you some of our clothes as a token of my appreciation.
|
||||
Wear them here and the people of the village will welcome you.<br>
|
||||
<a action="bypass -h Quest Buron Helmet">Craft Native Helmet.</a><br>
|
||||
<a action="bypass -h Quest Buron Tunic">Craft Native Tunic.</a><br>
|
||||
<a action="bypass -h Quest Buron Pants">Craft Native Pants.</a><br>
|
||||
<a action="bypass -h Quest Buron Rumor">Ask about the rumor.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-10r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-10r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Buron:<br>
|
||||
The Steel Citadel is filled with monsters, which must be cleared level by level. To conquer the Steel Citadel, destroy them all!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-11r.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-11r.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Buron:<br>
|
||||
Now all that remains is to defeat Darion and Beleth and restore peace to Hellbound.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-1r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-1r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
Perhaps it is a result of the seal being broken, but now we occasionally encounter a few adventurers from the mainland. You may also meet some of our
|
||||
brethren who have been led astray by Darion's minions. Please rescue them!
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-2r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-2r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Buron:<br>
|
||||
The mainlanders are incredibly strong ?they have advanced all the way to the Oasis. Rumor also has it that the ghosts of priests and warriors appear
|
||||
from time to time at the ancient temple ruins located to the southwest of the Oasis. Talk to Bernarde at the Oasis to learn more.<br>
|
||||
I should mention that Bernarde has a deep mistrust of foreigners, so you'd be well advised to dress like a native when you meet him.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-3r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-3r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
The Resistance village continues to suffer frequent attacks from the Devils, who are probably fearful that the mainlanders and the Resistance will join
|
||||
forces to oppose them. Please go and save the village!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-4r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-4r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
The Resistance village remains under frequent attack by the Devils, but they rarely break through now thanks to the efforts of both the mainlanders and
|
||||
the natives. Still, we need to strike our enemy a decisive blow... Perhaps Bernarde will know of a way.
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-5r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-5r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Buron:<br>
|
||||
The Resistance village is saved, and our home is again our own! Now we must formulate a plan to rescue the caravan slaves imprisoned in the quarry.
|
||||
Beleth desired that place because of its wealth of rare minerals. If we can save those slaves, I'm sure that the caravan will be favorably disposed
|
||||
towards us. Without their help, we will surely starve...
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-6r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-6r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Buron:<br>
|
||||
Darion's influence has grown weak in the face of the united opposition of the newcomers from the continent, the natives and the Caravan.
|
||||
His army has already abandoned most of Hellbound to the Resistance. Still, Darion's forces are doing everything possible to defend the Enchanted Megaliths.
|
||||
I wonder -- is there something important buried in there?
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-7r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-7r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Buron:<br>
|
||||
I've learned why even the money-hungry caravans fear to go to the Scarred Plateau. How can such a terrible place exist... I have not been there myself,
|
||||
but they say that it is inhabited by terrible monsters. That said, apparently it is possible to obtain Magic Spirits from those monsters,
|
||||
for which foreign magicians will pay a steep price. If you could capture some for us, we would be in your debt.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-8r.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-8r.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
Amazing! I just heard that that the Resistance and the mainlanders have joined forces and are pushing the Devils back to the outer gates!
|
||||
There is a captain guarding the gates, but I think we will prevail and breach the defenses!
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-9r.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-9r.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Buron:<br>
|
||||
I hear that the outer gates have fallen and our forces are steadily advancing into the Steel Citadel! There is a rumor that the Dwarf who designed the
|
||||
Steel Citadel still resides somewhere inside the castle. Many of our brethren also live in the Oasis or in the town located within the castle walls.
|
||||
Please save them! If you have any of Darion's Badges, you should be able to travel anywhere without restrictions.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-lowlvl.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-lowlvl.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
I cannot trust you. Outsider!<br>
|
||||
<a action="bypass -h Quest Buron 32345-01.htm">Back.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-noitems.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-noitems.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Buron:<br>
|
||||
Sorry, you do not have the required items.<br>
|
||||
<a action="bypass -h Quest Buron 32345-02.htm">Back</a>
|
||||
</body></html>
|
106
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/Buron.java
vendored
Normal file
106
trunk/dist/game/data/scripts/hellbound/AI/NPC/Buron/Buron.java
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Buron;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Buron AI.
|
||||
* @author DS
|
||||
*/
|
||||
public final class Buron extends AbstractNpcAI
|
||||
{
|
||||
private static final int BURON = 32345;
|
||||
private static final int HELMET = 9669;
|
||||
private static final int TUNIC = 9670;
|
||||
private static final int PANTS = 9671;
|
||||
private static final int DARION_BADGE = 9674;
|
||||
|
||||
public Buron()
|
||||
{
|
||||
super(Buron.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addFirstTalkId(BURON);
|
||||
addStartNpc(BURON);
|
||||
addTalkId(BURON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
if ("Rumor".equalsIgnoreCase(event))
|
||||
{
|
||||
htmltext = "32345-" + HellboundEngine.getInstance().getLevel() + "r.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() < 2)
|
||||
{
|
||||
htmltext = "32345-lowlvl.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (getQuestItemsCount(player, DARION_BADGE) >= 10)
|
||||
{
|
||||
takeItems(player, DARION_BADGE, 10);
|
||||
if (event.equalsIgnoreCase("Tunic"))
|
||||
{
|
||||
player.addItem("Quest", TUNIC, 1, npc, true);
|
||||
}
|
||||
else if (event.equalsIgnoreCase("Helmet"))
|
||||
{
|
||||
player.addItem("Quest", HELMET, 1, npc, true);
|
||||
}
|
||||
else if (event.equalsIgnoreCase("Pants"))
|
||||
{
|
||||
player.addItem("Quest", PANTS, 1, npc, true);
|
||||
}
|
||||
htmltext = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "32345-noitems.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
getQuestState(player, true);
|
||||
switch (HellboundEngine.getInstance().getLevel())
|
||||
{
|
||||
case 1:
|
||||
return "32345-01.htm";
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
return "32345-02.htm";
|
||||
default:
|
||||
return "32345-01a.htm";
|
||||
}
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/32313-02.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/32313-02.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Deltuva:<br>
|
||||
Hmm...I can't recall you ever having been to the Steel Citadel before. I'm afraid I cannot let you in -- it's simply too dangerous!
|
||||
</body></html>
|
61
trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java
vendored
Normal file
61
trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Deltuva;
|
||||
|
||||
import quests.Q00132_MatrasCuriosity.Q00132_MatrasCuriosity;
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
|
||||
/**
|
||||
* Deltuva AI.
|
||||
* @author GKR
|
||||
*/
|
||||
public final class Deltuva extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int DELTUVA = 32313;
|
||||
// Location
|
||||
private static final Location TELEPORT = new Location(17934, 283189, -9701);
|
||||
|
||||
public Deltuva()
|
||||
{
|
||||
super(Deltuva.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addStartNpc(DELTUVA);
|
||||
addTalkId(DELTUVA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("teleport"))
|
||||
{
|
||||
final QuestState hostQuest = player.getQuestState(Q00132_MatrasCuriosity.class.getSimpleName());
|
||||
if ((hostQuest == null) || !hostQuest.isCompleted())
|
||||
{
|
||||
return "32313-02.htm";
|
||||
}
|
||||
player.teleToLocation(TELEPORT);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
}
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Falk:<br>
|
||||
I see that you're an adventurer from a foreign land. Would you consider helping me? If you do, I'll help smooth your dealings with others in my Caravan group.<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest Falk">Help Falk.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Falk:<br>
|
||||
You already gave me a Darion's Badge, remember? You really should deal with someone else now.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Falk:<br>
|
||||
I'm not asking anything particularly difficult, but I do need a favor from you, my friend. We in the Caravan travel to and through many places on this island, which requires a great many of Darion's Badges. Although we are able to lay our hands on some, they are simply not enough for us to turn a profit, even considering the natives' unquenching demand for Prayer Fragments... If you can spare any Darion's Badges, please give them to me. I don't need that many -- even 20 will suffice. In return, I will give you a voucher that will allow you trade with the Caravan members.<br>
|
||||
<a action="bypass -h Quest Falk badges">Give him Darion's Badges.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Falk:<br>
|
||||
Thank you! Here, take this and you'll be able to trade with other Caravans.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02b.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02b.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Falk:<br>
|
||||
I'm afraid that you don't have enough Darion's Badges. Please obtain some more and come back.<br>
|
||||
<a action="bypass -h Quest Falk 32297-02.htm">Return.</a>
|
||||
</body></html>
|
86
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/Falk.java
vendored
Normal file
86
trunk/dist/game/data/scripts/hellbound/AI/NPC/Falk/Falk.java
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Falk;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* Falk AI.
|
||||
* @author DS
|
||||
*/
|
||||
public final class Falk extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int FALK = 32297;
|
||||
// Items
|
||||
private static final int DARION_BADGE = 9674;
|
||||
private static final int BASIC_CERT = 9850; // Basic Caravan Certificate
|
||||
private static final int STANDART_CERT = 9851; // Standard Caravan Certificate
|
||||
private static final int PREMIUM_CERT = 9852; // Premium Caravan Certificate
|
||||
|
||||
public Falk()
|
||||
{
|
||||
super(Falk.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addFirstTalkId(FALK);
|
||||
addStartNpc(FALK);
|
||||
addTalkId(FALK);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
|
||||
{
|
||||
return "32297-01a.htm";
|
||||
}
|
||||
return "32297-01.htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
|
||||
{
|
||||
return "32297-01a.htm";
|
||||
}
|
||||
return "32297-02.htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("badges"))
|
||||
{
|
||||
if (!hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
|
||||
{
|
||||
if (getQuestItemsCount(player, DARION_BADGE) >= 20)
|
||||
{
|
||||
takeItems(player, DARION_BADGE, 20);
|
||||
giveItems(player, BASIC_CERT, 1);
|
||||
return "32297-02a.htm";
|
||||
}
|
||||
return "32297-02b.htm";
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-01.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-01.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Hude:<br>
|
||||
I've never seen them before, but they're dressed in really awful clothes.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-03.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-03.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Hude:<br>
|
||||
Ah, it's you! I was hoping it was Falk... I haven't heard from him for over a week. If you happen to see him, please tell him that I'm looking for him. I know that he went looking for Scorpion Poison Stingers, which are very useful as medicine...<br>
|
||||
Say, perhaps you would be wiling to go and get me 60 Scorpion Poison Stingers and 30 Marks of Betrayal? If you do, I will give you a voucher so you can trade with me.<br>
|
||||
<a action="bypass -h Quest Hude scertif">Say that you have brought them.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Hude:<br>
|
||||
Wonderful! You've pleasantly surprised me, I have to confess.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04b.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04b.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Hude:<br>
|
||||
I don't see them anywhere. Don't play tricks on me!
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-05.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-05.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Hude:<br>
|
||||
Oh, look who's here! I've got a big opportunity this time. If you catch the Chimeras in the Battered Lands with the Magic Bottle, you can obtain a unique item. Bring me 56 Life Forces and 14 Contained Life Forces. Then we will accept you as our friend. Before you go, take a look at the special item that we use.<br>
|
||||
<a action="bypass -h Quest Hude pcertif">Tell him that you have brought the Life Forces and Contained Life Forces.</a><br>
|
||||
<a action="bypass -h Quest Hude multisell1">Look at the item.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Hude:<br>
|
||||
Well done! With high quality materials like this, I can fetch a very good price indeed. Here, take this Map of Tears that the Caravan found near Hellbound. Put it to good use.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06b.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06b.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Hude:<br>
|
||||
I know you wouldn't try to pull a fast one on me, but in the interests of our continued business relationship I think it would be best if you provided some sort of proof...
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-07.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-07.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Hude:<br>
|
||||
Welcome, friend, welcome! What can I do for you today?<br>
|
||||
<a action="bypass -h Quest Hude multisell1">Browse items.</a><br>
|
||||
<a action="bypass -h Quest Hude multisell2">Look at special item.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
133
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/Hude.java
vendored
Normal file
133
trunk/dist/game/data/scripts/hellbound/AI/NPC/Hude/Hude.java
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Hude;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.MultisellData;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Hude AI.
|
||||
* @author DS
|
||||
*/
|
||||
public final class Hude extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int HUDE = 32298;
|
||||
// Items
|
||||
private static final int BASIC_CERT = 9850;
|
||||
private static final int STANDART_CERT = 9851;
|
||||
private static final int PREMIUM_CERT = 9852;
|
||||
private static final int MARK_OF_BETRAYAL = 9676;
|
||||
private static final int LIFE_FORCE = 9681;
|
||||
private static final int CONTAINED_LIFE_FORCE = 9682;
|
||||
private static final int MAP = 9994;
|
||||
private static final int STINGER = 10012;
|
||||
|
||||
public Hude()
|
||||
{
|
||||
super(Hude.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addFirstTalkId(HUDE);
|
||||
addStartNpc(HUDE);
|
||||
addTalkId(HUDE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "scertif":
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() > 3)
|
||||
{
|
||||
if (hasQuestItems(player, BASIC_CERT) && (getQuestItemsCount(player, MARK_OF_BETRAYAL) >= 30) && (getQuestItemsCount(player, STINGER) >= 60))
|
||||
{
|
||||
takeItems(player, MARK_OF_BETRAYAL, 30);
|
||||
takeItems(player, STINGER, 60);
|
||||
takeItems(player, BASIC_CERT, 1);
|
||||
giveItems(player, STANDART_CERT, 1);
|
||||
return "32298-04a.htm";
|
||||
}
|
||||
}
|
||||
return "32298-04b.htm";
|
||||
}
|
||||
case "pcertif":
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() > 6)
|
||||
{
|
||||
if (hasQuestItems(player, STANDART_CERT) && (getQuestItemsCount(player, LIFE_FORCE) >= 56) && (getQuestItemsCount(player, CONTAINED_LIFE_FORCE) >= 14))
|
||||
{
|
||||
takeItems(player, LIFE_FORCE, 56);
|
||||
takeItems(player, CONTAINED_LIFE_FORCE, 14);
|
||||
takeItems(player, STANDART_CERT, 1);
|
||||
giveItems(player, PREMIUM_CERT, 1);
|
||||
giveItems(player, MAP, 1);
|
||||
return "32298-06a.htm";
|
||||
}
|
||||
}
|
||||
return "32298-06b.htm";
|
||||
}
|
||||
case "multisell1":
|
||||
{
|
||||
if (hasQuestItems(player, STANDART_CERT) || hasQuestItems(player, PREMIUM_CERT))
|
||||
{
|
||||
MultisellData.getInstance().separateAndSend(322980001, player, npc, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "multisell2":
|
||||
{
|
||||
if (hasQuestItems(player, PREMIUM_CERT))
|
||||
{
|
||||
MultisellData.getInstance().separateAndSend(322980002, player, npc, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
if (!hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
|
||||
{
|
||||
htmltext = "32298-01.htm";
|
||||
}
|
||||
else if (hasQuestItems(player, BASIC_CERT) && !hasAtLeastOneQuestItem(player, STANDART_CERT, PREMIUM_CERT))
|
||||
{
|
||||
htmltext = "32298-03.htm";
|
||||
}
|
||||
else if (hasQuestItems(player, STANDART_CERT) && !hasQuestItems(player, PREMIUM_CERT))
|
||||
{
|
||||
htmltext = "32298-05.htm";
|
||||
}
|
||||
else if (hasQuestItems(player, PREMIUM_CERT))
|
||||
{
|
||||
htmltext = "32298-07.htm";
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Jude:<br>
|
||||
Newcomers, eh? Where do you hail from?<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01a.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01a.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Jude:<br>
|
||||
Oh, the Natives asked you to do that? Well, I certainly sympathize with their situation, but we are traders after all. You could say that give-and-take is the natural order of things! I actually have a favor to ask of you. I don't know about the Natives, but I am sure that you can manage this task.<br>
|
||||
If you go north from here, you will find a place where minerals are unearthed for Darion. It is called The Quarry, and many of our people have been enslaved there, forced to dig and mine. Please free them! It would be even better if you could free the Caravan village, but that is a long and arduous journey. Take the freed slaves to the Dolmen at the entrance to the Quarry. The Natives regard it as a sacred spot, but we frequently use it for navigation. Once there, we will be able to take care of them.<br>
|
||||
The Quarry guards have orders to kill any slave that tries to escape. You must at all costs protect our people from that fate! Avoid the guards and safeguard our people to freedom.<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01b.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01b.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Jude:<br>
|
||||
Our thanks to you! Because of your help, many of our people have found a new life. On the other hand, I hear that Darion's situation is rapidly deteriorating.<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01c.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01c.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Jude:<br>
|
||||
I hear that the Natives' village is often attacked these days. I don't know how the Natives gathered all those treasures and hid them, but that's what the Keltas are after. Do me a favor and bring me that treasure before it's all plundered. The compensation will be more than adequate, I promise you. Bring me 40 Native Treasures as fast as you can.<br>
|
||||
<a action="bypass -h Quest Jude TreasureSacks">Give him 40 Native Treasures.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Jude:<br>
|
||||
Thank you. Here is your reward.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Jude:<br>
|
||||
Oh oh, the treasure... Where did you say it was?
|
||||
</body></html>
|
84
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/Jude.java
vendored
Normal file
84
trunk/dist/game/data/scripts/hellbound/AI/NPC/Jude/Jude.java
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Jude;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Jude AI.
|
||||
* @author DS
|
||||
*/
|
||||
public final class Jude extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int JUDE = 32356;
|
||||
private static final int NATIVE_TREASURE = 9684;
|
||||
private static final int RING_OF_WIND_MASTERY = 9677;
|
||||
|
||||
public Jude()
|
||||
{
|
||||
super(Jude.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addFirstTalkId(JUDE);
|
||||
addStartNpc(JUDE);
|
||||
addTalkId(JUDE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if ("TreasureSacks".equalsIgnoreCase(event))
|
||||
{
|
||||
if (HellboundEngine.getInstance().getLevel() == 3)
|
||||
{
|
||||
if (getQuestItemsCount(player, NATIVE_TREASURE) >= 40)
|
||||
{
|
||||
takeItems(player, NATIVE_TREASURE, 40);
|
||||
giveItems(player, RING_OF_WIND_MASTERY, 1);
|
||||
return "32356-02.htm";
|
||||
}
|
||||
}
|
||||
return "32356-02a.htm";
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
switch (HellboundEngine.getInstance().getLevel())
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
return "32356-01.htm";
|
||||
case 3:
|
||||
case 4:
|
||||
return "32356-01c.htm";
|
||||
case 5:
|
||||
return "32356-01a.htm";
|
||||
default:
|
||||
return "32356-01b.htm";
|
||||
}
|
||||
}
|
||||
}
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-01.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-01.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Kanaf:<br>
|
||||
We have information that the chief guard is hiding somewhere in the town. He has the key to the sculpture that can take you to the entrance of the Steel Citadel. To enter the Steel Citadel, you must first find him!<br>
|
||||
<a action="bypass -h Quest Kanaf info">Ask him for more information.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest UrbanArea">Infiltrate the town.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-02.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Kanaf:<br>
|
||||
According to our intelligence sources, Torture Expert Amaskari has been guarding the prisoners. However, even if some of our comrades have collaborated with him rather than face torture, we can't let them become human shields to protect him!<br>
|
||||
<a action="bypass -h Quest Kanaf info">Ask him about other information.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest UrbanArea">Infiltrate the town.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-03.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Kanaf:<br>
|
||||
It is said that there is a passage to a workshop somewhere in the Steel Citadel where evil creatures are being manufactured for the war. Supposedly you need something very rare in order to enter it, and no one we know has yet been able to do so.<br>
|
||||
<a action="bypass -h Quest Kanaf info">Ask him about other information.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest UrbanArea">Infiltrate the town</a>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346.html
vendored
Normal file
8
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Kanaf:<br>
|
||||
Shh! Please be still. Over there is the <font color="LEVEL">old town</font>, which is the only entrance to the Steel Citadel. It is used as a prison camp for Native captives.<br>
|
||||
Some time ago, when the Steel Citadel's defenses were temporarily weakened, we attacked the town in an attempt to rescue the captives. However, the enemy was still too strong, and many of us were killed or wounded.<br>
|
||||
And our comrades in the town still thirst for their freedom!<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest UrbanArea">Infiltrate the town.</a><br>
|
||||
<a action="bypass -h Quest Kanaf info">Ask him for new information about the town.</a><br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
|
||||
</body></html>
|
52
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/Kanaf.java
vendored
Normal file
52
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/Kanaf.java
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package hellbound.AI.NPC.Kanaf;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* Kanaf AI.
|
||||
* @author GKR
|
||||
*/
|
||||
public final class Kanaf extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int KANAF = 32346;
|
||||
|
||||
public Kanaf()
|
||||
{
|
||||
super(Kanaf.class.getSimpleName(), "hellbound/AI/NPC");
|
||||
addStartNpc(KANAF);
|
||||
addTalkId(KANAF);
|
||||
addFirstTalkId(KANAF);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equals("info"))
|
||||
{
|
||||
return "32346-0" + getRandom(1, 3) + ".htm";
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Wh-wh-who are you? Do not approach me!!!!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01a.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01a.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Kief<br>
|
||||
Have you come to save us? Then I must ask you for a favor. In order to move about this island, you need Darion's permission. If you don't have it, there is no place here that you will be able to go. Help us, please!<br>
|
||||
<a action="bypass -h Quest Kief Badges">Give all of Darion's licenses.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01b.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01b.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Due to the newcomers from the continent, Darion's military power has been weakened. But it is rumored that they are attempting to alter the Magic Fields.
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01c.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01c.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Kief:<br>
|
||||
In the Battered Lands live monsters created by Beleth's dark magic. Just before they die, it is possible to use this magic bottle to obtain their Life Force, which contains the original magical energy used to create them. Take it and capture the Chimeras' Life Force, then return to me. The Ivory Tower magicians will undoubtedly pay a high price for those Life Forces, even the dim ones. Of course, a Contained Life Force would be even better...<br>
|
||||
<a action="bypass -h Quest Kief 32354-11g.htm">Ask about the Magic Bottle.</a><br>
|
||||
<a action="bypass -h Quest Kief dlf">Deliver Dim Life Forces.</a><br>
|
||||
<a action="bypass -h Quest Kief lf">Deliver Life Forces.</a><br>
|
||||
<a action="bypass -h Quest Kief clf">Deliver Contained Life Forces.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01d.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01d.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
We finally returned to our home. I'm so happy!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01e.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01e.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
There is a recent rumor that the First Generation Seer appears in the Ancient Temple Remnants. I don't know if it's true, since I haven't seen it myself. Do you think it's possible?
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01f.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01f.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Kief:<br>
|
||||
Thanks to your help, the resistance is steadily gaining ground. Thank you!<br>
|
||||
I must tell you one more thing, however. Though their numbers have been greatly decreased, the monsters created by Beleth's magic still roam the Battered Lands. If you use a special item when those creatures are on the brink of death, you can obtain their life force, which contains that primal magic power. This Magic Bottle is the item you need.<br>
|
||||
<a action="bypass -h Quest Kief 32354-11g.htm">Ask about the Magic Bottle.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Thank you. Your support is greatly appreciated by the natives who suffer in Hellbound.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
I just can't find Darion's Badges.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11a.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11a.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Thank you! Your support was a great help in expelling Beleth from this place.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11b.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11b.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
I am sorry, but you don't have anything.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11c.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11c.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Thank you. Your support was a great help in expelling Beleth from this place.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11d.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11d.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
I'm sorry, but you don't have anything.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11e.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11e.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Thank you. Your support was a great help in expelling Beleth from this place.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11f.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11f.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
I am sorry, but you do not have anything.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11g.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11g.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Kief:<br>
|
||||
This magical bottle was created by the magicians of the Ivory Tower, who are frequent visitors to Hellbound. It was designed to be used against the monsters of the Battered Lands. Those creatures possess powerful magic, but if they become physically weakened, you can use the bottle to capture their magic power. Remember, they must be weakened first! Nevertheless, I think it is a risk worth running. The Ivory Tower magicians are eager to research these magical spirits ? these creatures may have been failures, but they were still created by Beleth, after all, and their magic is still powerful. Will you attempt to collect some of these magical spirits? If so, I will be happpy to provide you with this magical bottle for just 20 Scorpion Poison Stingers. I wish I could give it to you for free, but since I must pay the Ivory Tower magicians for it, I'm afraid I must charge a small fee.<br>
|
||||
<a action="bypass -h Quest Kief Bottle">Obtain the magical bottle.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11h.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11h.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kief:<br>
|
||||
Here it is.
|
||||
</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user