Classic 1.0 branch.
This commit is contained in:
80
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/AbstractNpcAI.java
vendored
Normal file
80
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/AbstractNpcAI.java
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Monster;
|
||||
import org.l2jmobius.gameserver.model.holders.MinionHolder;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* Abstract NPC AI class for datapack based AIs.
|
||||
* @author UnAfraid, Zoey76
|
||||
*/
|
||||
public abstract class AbstractNpcAI extends Quest
|
||||
{
|
||||
protected final Logger LOGGER = Logger.getLogger(getClass().getName());
|
||||
|
||||
public AbstractNpcAI()
|
||||
{
|
||||
super(-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple on first talk event handler.
|
||||
*/
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, Player player)
|
||||
{
|
||||
return npc.getId() + ".html";
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the following events to the current script:<br>
|
||||
* <ul>
|
||||
* <li>ON_ATTACK</li>
|
||||
* <li>ON_KILL</li>
|
||||
* <li>ON_SPAWN</li>
|
||||
* <li>ON_SPELL_FINISHED</li>
|
||||
* <li>ON_SKILL_SEE</li>
|
||||
* <li>ON_FACTION_CALL</li>
|
||||
* <li>ON_AGGR_RANGE_ENTER</li>
|
||||
* </ul>
|
||||
* @param mobs
|
||||
*/
|
||||
public void registerMobs(int... mobs)
|
||||
{
|
||||
addAttackId(mobs);
|
||||
addKillId(mobs);
|
||||
addSpawnId(mobs);
|
||||
addSpellFinishedId(mobs);
|
||||
addSkillSeeId(mobs);
|
||||
addAggroRangeEnterId(mobs);
|
||||
addFactionCallId(mobs);
|
||||
}
|
||||
|
||||
public void spawnMinions(Npc npc, String spawnName)
|
||||
{
|
||||
for (MinionHolder is : npc.getParameters().getMinionList(spawnName))
|
||||
{
|
||||
addMinion((Monster) npc, is.getId());
|
||||
}
|
||||
}
|
||||
}
|
100
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/CrumaTower/SummonPc.java
vendored
Normal file
100
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/CrumaTower/SummonPc.java
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.areas.CrumaTower;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Summon Pc AI.<br>
|
||||
* Summon the player to the NPC on attack.
|
||||
* @author Zoey76
|
||||
*/
|
||||
public class SummonPc extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int PERUM = 20221;
|
||||
// Skill
|
||||
private static final SkillHolder SUMMON_PC = new SkillHolder(4161, 1);
|
||||
|
||||
private SummonPc()
|
||||
{
|
||||
addAttackId(PERUM);
|
||||
addSpellFinishedId(PERUM);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, Player attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final int chance = getRandom(100);
|
||||
final boolean attacked = npc.getVariables().getBoolean("attacked", false);
|
||||
if ((npc.calculateDistance3D(attacker) > 300) && !attacked)
|
||||
{
|
||||
if (chance < 50)
|
||||
{
|
||||
if ((SUMMON_PC.getSkill().getMpConsume() < npc.getCurrentMp()) && (SUMMON_PC.getSkill().getHpConsume() < npc.getCurrentHp()) && !npc.isSkillDisabled(SUMMON_PC.getSkill()))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(SUMMON_PC.getSkill());
|
||||
}
|
||||
|
||||
if ((SUMMON_PC.getSkill().getMpConsume() < npc.getCurrentMp()) && (SUMMON_PC.getSkill().getHpConsume() < npc.getCurrentHp()) && !npc.isSkillDisabled(SUMMON_PC.getSkill()))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(SUMMON_PC.getSkill());
|
||||
npc.getVariables().set("attacked", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((npc.calculateDistance3D(attacker) > 100) && !attacked)
|
||||
{
|
||||
final Attackable monster = (Attackable) npc;
|
||||
if (monster.getMostHated() != null)
|
||||
{
|
||||
if ((((monster.getMostHated() == attacker) && (chance < 50)) || (chance < 10)) //
|
||||
&& ((SUMMON_PC.getSkill().getMpConsume() < npc.getCurrentMp()) && (SUMMON_PC.getSkill().getHpConsume() < npc.getCurrentHp()) && !npc.isSkillDisabled(SUMMON_PC.getSkill())))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(SUMMON_PC.getSkill());
|
||||
npc.getVariables().set("attacked", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpellFinished(Npc npc, Player player, Skill skill)
|
||||
{
|
||||
if ((skill.getId() == SUMMON_PC.getSkillId()) && !npc.isDead() && npc.getVariables().getBoolean("attacked", false))
|
||||
{
|
||||
player.teleToLocation(npc);
|
||||
npc.getVariables().set("attacked", false);
|
||||
}
|
||||
return super.onSpellFinished(npc, player, skill);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new SummonPc();
|
||||
}
|
||||
}
|
58
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/DragonValley/CaveMaiden.java
vendored
Normal file
58
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/DragonValley/CaveMaiden.java
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.areas.DragonValley;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Playable;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Cave Maiden, Keeper AI.
|
||||
* @author proGenitor
|
||||
*/
|
||||
public class CaveMaiden extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int CAVEMAIDEN = 20134;
|
||||
private static final int CAVEKEEPER = 20246;
|
||||
private static final int BANSHEE = 20412;
|
||||
|
||||
private CaveMaiden()
|
||||
{
|
||||
addKillId(CAVEMAIDEN, CAVEKEEPER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, Player killer, boolean isSummon)
|
||||
{
|
||||
if (getRandom(100) < 20)
|
||||
{
|
||||
final Npc spawnBanshee = addSpawn(BANSHEE, npc, false, 300000);
|
||||
final Playable attacker = isSummon ? killer.getServitors().values().stream().findFirst().orElse(killer.getPet()) : killer;
|
||||
addAttackPlayerDesire(spawnBanshee, attacker);
|
||||
npc.deleteMe();
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new CaveMaiden();
|
||||
}
|
||||
}
|
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/30556.htm
vendored
Normal file
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/30556.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Master Toma:<br>
|
||||
Who are you?<br>
|
||||
I don't speak with those I do not know... Just go on!<br>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
74
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java
vendored
Normal file
74
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.areas.DwarvenVillage.Toma;
|
||||
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Toma extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int TOMA = 30556;
|
||||
// Locations
|
||||
private static final Location[] LOCATIONS =
|
||||
{
|
||||
new Location(151680, -174891, -1782),
|
||||
new Location(154153, -220105, -3402),
|
||||
new Location(178834, -184336, -355, 41400)
|
||||
};
|
||||
// Misc
|
||||
private static final int TELEPORT_DELAY = 1800000; // 30 minutes
|
||||
private static Npc _toma;
|
||||
|
||||
private Toma()
|
||||
{
|
||||
addFirstTalkId(TOMA);
|
||||
onAdvEvent("RESPAWN_TOMA", null, null);
|
||||
startQuestTimer("RESPAWN_TOMA", TELEPORT_DELAY, null, null, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
if (event.equals("RESPAWN_TOMA"))
|
||||
{
|
||||
if (_toma != null)
|
||||
{
|
||||
_toma.deleteMe();
|
||||
}
|
||||
_toma = addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, Player player)
|
||||
{
|
||||
return "30556.htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Toma();
|
||||
}
|
||||
}
|
57
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/LairOfAntharas/Pytan.java
vendored
Normal file
57
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/LairOfAntharas/Pytan.java
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.areas.LairOfAntharas;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Playable;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Pytan, Knorkiks AI.
|
||||
* @author Quangnguyen
|
||||
*/
|
||||
public class Pytan extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int PYTAN = 20761;
|
||||
private static final int KNORIKS = 20405;
|
||||
|
||||
private Pytan()
|
||||
{
|
||||
addKillId(PYTAN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, Player killer, boolean isSummon)
|
||||
{
|
||||
if (getRandom(100) < 5)
|
||||
{
|
||||
final Npc spawnBanshee = addSpawn(KNORIKS, npc, false, 300000);
|
||||
final Playable attacker = isSummon ? killer.getServitors().values().stream().findFirst().orElse(killer.getPet()) : killer;
|
||||
addAttackPlayerDesire(spawnBanshee, attacker);
|
||||
npc.deleteMe();
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Pytan();
|
||||
}
|
||||
}
|
96
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/PlainsOfDion/PlainsOfDion.java
vendored
Normal file
96
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/PlainsOfDion/PlainsOfDion.java
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.areas.PlainsOfDion;
|
||||
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Monster;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* AI for mobs in Plains of Dion (near Floran Village).
|
||||
* @author Gladicek
|
||||
*/
|
||||
public class PlainsOfDion extends AbstractNpcAI
|
||||
{
|
||||
private static final int[] DELU_LIZARDMEN =
|
||||
{
|
||||
21104, // Delu Lizardman Supplier
|
||||
21105, // Delu Lizardman Special Agent
|
||||
21107, // Delu Lizardman Commander
|
||||
};
|
||||
|
||||
private static final NpcStringId[] MONSTERS_MSG =
|
||||
{
|
||||
NpcStringId.S1_HOW_DARE_YOU_INTERRUPT_OUR_FIGHT_HEY_GUYS_HELP,
|
||||
NpcStringId.S1_HEY_WE_RE_HAVING_A_DUEL_HERE,
|
||||
NpcStringId.THE_DUEL_IS_OVER_ATTACK,
|
||||
NpcStringId.FOUL_KILL_THE_COWARD,
|
||||
NpcStringId.HOW_DARE_YOU_INTERRUPT_A_SACRED_DUEL_YOU_MUST_BE_TAUGHT_A_LESSON
|
||||
};
|
||||
|
||||
private static final NpcStringId[] MONSTERS_ASSIST_MSG =
|
||||
{
|
||||
NpcStringId.DIE_YOU_COWARD,
|
||||
NpcStringId.KILL_THE_COWARD,
|
||||
NpcStringId.WHAT_ARE_YOU_LOOKING_AT
|
||||
};
|
||||
|
||||
private PlainsOfDion()
|
||||
{
|
||||
addAttackId(DELU_LIZARDMEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, Player player, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
final int i = getRandom(5);
|
||||
if (i < 2)
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, MONSTERS_MSG[i], player.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, MONSTERS_MSG[i]);
|
||||
}
|
||||
|
||||
World.getInstance().forEachVisibleObjectInRange(npc, Monster.class, npc.getTemplate().getClanHelpRange(), obj ->
|
||||
{
|
||||
if (CommonUtil.contains(DELU_LIZARDMEN, obj.getId()) && !obj.isAttackingNow() && !obj.isDead() && GeoEngine.getInstance().canSeeTarget(npc, obj))
|
||||
{
|
||||
addAttackPlayerDesire(obj, player);
|
||||
obj.broadcastSay(ChatType.NPC_GENERAL, MONSTERS_ASSIST_MSG[getRandom(3)]);
|
||||
}
|
||||
});
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
return super.onAttack(npc, player, damage, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new PlainsOfDion();
|
||||
}
|
||||
}
|
62
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/TalkingIsland/Roxxy.java
vendored
Normal file
62
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/TalkingIsland/Roxxy.java
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.areas.TalkingIsland;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Roxxy AI.
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Roxxy extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int ROXXY = 30006;
|
||||
|
||||
private Roxxy()
|
||||
{
|
||||
addSpawnId(ROXXY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
if (event.equals("TEXT_SPAM") && (npc != null))
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.SPEAK_WITH_ME_ABOUT_TRAVELING_AROUND_ADEN, 1000);
|
||||
startQuestTimer("TEXT_SPAM", getRandom(10000, 30000), npc, null, false);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
startQuestTimer("TEXT_SPAM", 10000, npc, null, false);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Roxxy();
|
||||
}
|
||||
}
|
20
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/package-info.java
vendored
Normal file
20
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/areas/package-info.java
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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/>.
|
||||
*/
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
package ai.areas;
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-01.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Heart of Warding:<br>
|
||||
You are overcome by a voice, a voice so powerful you are helpless as it speaks.<br>
|
||||
<font color="LEVEL">Do not expect Shilen's authority will diminish<br>
|
||||
while false gods freely roam.<br>
|
||||
Leave, and<br>
|
||||
prepare to face the return of Antharas.</font><br>
|
||||
(Challenging Antharas is not currently available.)
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-02.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Heart of Warding:<br>
|
||||
You are overcome by a voice, a voice so powerful you are helpless as it speaks:<br>
|
||||
<font color="LEVEL">Do not expect that you might challenge Antharas at your own convenience.<br>
|
||||
When the time is right, Shilen's authority will judge you.</font><br>
|
||||
(Currently, other members are challenging Antharas.)
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-03.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-03.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Heart of Warding:<br>
|
||||
A voice that can shatter your entire body is resonating in your head:<br>
|
||||
<font color="LEVEL">Do not dare to face Shilen's authority<br>
|
||||
without the most determined preparation.</font><br>
|
||||
(Only those who have the Portal Stone can challenge Antharas.)
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-04.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-04.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Heart of Warding:<br>
|
||||
You are overcome by a voice, a voice so powerful you are helpless as it speaks:<br>
|
||||
<font color="LEVEL">No matter how many gather to follow false gods,<br>
|
||||
Shilen's authority is too great.</font><br>
|
||||
(The number of participants are above the allowed number in challenging Antharas.)
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-05.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001-05.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Heart of Warding:<br>
|
||||
You are overcome by a voice, a voice so powerful you are helpless as it speaks:<br>
|
||||
<font color="LEVEL">You seek death and defeat by coming here without your leader! You appear before Shilen's authority<br>
|
||||
and you tempt Shilen's wrath!</font><br>
|
||||
(The players who belong to an association can only enter through the Association Leader.)
|
||||
</body></html>
|
12
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001.html
vendored
Normal file
12
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/13001.html
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Heart of Warding:<br>
|
||||
You are overcome by a voice, a voice so powerful you are helpless as it speaks:<br>
|
||||
<font color="LEVEL">A terrible creature <br>
|
||||
fell to the earth from above <br>
|
||||
in order to vent a mother's spite,<br>
|
||||
cursed and forsaken by her own children.<br>
|
||||
Dark Pilgrim of the Holy Land,<br>
|
||||
Do you dare face the Land Dragon Antharas?</font><br>
|
||||
(A maximum of 200 people can challenge Antharas.)<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest Antharas enter">Move to Antharas' Nest</button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
1056
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/Antharas.java
vendored
Normal file
1056
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Antharas/Antharas.java
vendored
Normal file
File diff suppressed because it is too large
Load Diff
232
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Core/Core.java
vendored
Normal file
232
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Core/Core.java
vendored
Normal file
@@ -0,0 +1,232 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.bosses.Core;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Core AI.
|
||||
* @author DrLecter, Emperorc, Mobius
|
||||
*/
|
||||
public class Core extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int CORE = 29006;
|
||||
private static final int DEATH_KNIGHT = 29007;
|
||||
private static final int DOOM_WRAITH = 29008;
|
||||
private static final int SUSCEPTOR = 29011;
|
||||
// Spawns
|
||||
private static final Map<Integer, Location> MINNION_SPAWNS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(17191, 109298, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(17564, 109548, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(17855, 109552, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(18280, 109202, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(18784, 109253, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(18059, 108314, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(17300, 108444, -6488));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(17148, 110071, -6648));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(18318, 110077, -6648));
|
||||
MINNION_SPAWNS.put(DEATH_KNIGHT, new Location(17726, 110391, -6648));
|
||||
MINNION_SPAWNS.put(DOOM_WRAITH, new Location(17113, 110970, -6648));
|
||||
MINNION_SPAWNS.put(DOOM_WRAITH, new Location(17496, 110880, -6648));
|
||||
MINNION_SPAWNS.put(DOOM_WRAITH, new Location(18061, 110990, -6648));
|
||||
MINNION_SPAWNS.put(DOOM_WRAITH, new Location(18384, 110698, -6648));
|
||||
MINNION_SPAWNS.put(DOOM_WRAITH, new Location(17993, 111458, -6584));
|
||||
MINNION_SPAWNS.put(SUSCEPTOR, new Location(17297, 111470, -6584));
|
||||
MINNION_SPAWNS.put(SUSCEPTOR, new Location(17893, 110198, -6648));
|
||||
MINNION_SPAWNS.put(SUSCEPTOR, new Location(17706, 109423, -6488));
|
||||
MINNION_SPAWNS.put(SUSCEPTOR, new Location(17849, 109388, -6480));
|
||||
}
|
||||
// Misc
|
||||
private static final byte ALIVE = 0;
|
||||
private static final byte DEAD = 1;
|
||||
private static final Collection<Attackable> _minions = ConcurrentHashMap.newKeySet();
|
||||
private static boolean _firstAttacked;
|
||||
|
||||
private Core()
|
||||
{
|
||||
registerMobs(CORE, DEATH_KNIGHT, DOOM_WRAITH, SUSCEPTOR);
|
||||
_firstAttacked = false;
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(CORE);
|
||||
if (GrandBossManager.getInstance().getStatus(CORE) == DEAD)
|
||||
{
|
||||
// Load the unlock date and time for Core from DB.
|
||||
final long temp = info.getLong("respawn_time") - System.currentTimeMillis();
|
||||
// If Core is locked until a certain time, mark it so and start the unlock timer the unlock time has not yet expired.
|
||||
if (temp > 0)
|
||||
{
|
||||
startQuestTimer("core_unlock", temp, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
// The time has already expired while the server was offline. Immediately spawn Core.
|
||||
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
|
||||
GrandBossManager.getInstance().setStatus(CORE, ALIVE);
|
||||
spawnBoss(core);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final boolean test = GlobalVariablesManager.getInstance().getBoolean("Core_Attacked", false);
|
||||
if (test)
|
||||
{
|
||||
_firstAttacked = true;
|
||||
}
|
||||
final int loc_x = info.getInt("loc_x");
|
||||
final int loc_y = info.getInt("loc_y");
|
||||
final int loc_z = info.getInt("loc_z");
|
||||
final int heading = info.getInt("heading");
|
||||
final double hp = info.getDouble("currentHP");
|
||||
final double mp = info.getDouble("currentMP");
|
||||
final GrandBoss core = (GrandBoss) addSpawn(CORE, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
core.setCurrentHpMp(hp, mp);
|
||||
spawnBoss(core);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSave()
|
||||
{
|
||||
GlobalVariablesManager.getInstance().set("Core_Attacked", _firstAttacked);
|
||||
}
|
||||
|
||||
public void spawnBoss(GrandBoss npc)
|
||||
{
|
||||
GrandBossManager.getInstance().addBoss(npc);
|
||||
npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
|
||||
// Spawn minions
|
||||
Attackable mob;
|
||||
Location spawnLocation;
|
||||
for (Entry<Integer, Location> spawn : MINNION_SPAWNS.entrySet())
|
||||
{
|
||||
spawnLocation = spawn.getValue();
|
||||
mob = (Attackable) addSpawn(spawn.getKey(), spawnLocation.getX(), spawnLocation.getY(), spawnLocation.getZ(), getRandom(61794), false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("core_unlock"))
|
||||
{
|
||||
final GrandBoss core = (GrandBoss) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
|
||||
GrandBossManager.getInstance().setStatus(CORE, ALIVE);
|
||||
spawnBoss(core);
|
||||
}
|
||||
else if (event.equalsIgnoreCase("spawn_minion"))
|
||||
{
|
||||
final Attackable mob = (Attackable) addSpawn(npc.getId(), npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
}
|
||||
else if (event.equalsIgnoreCase("despawn_minions"))
|
||||
{
|
||||
_minions.forEach(Attackable::decayMe);
|
||||
_minions.clear();
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, Player attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == CORE)
|
||||
{
|
||||
if (_firstAttacked)
|
||||
{
|
||||
if (getRandom(100) == 0)
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.REMOVING_INTRUDERS);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_firstAttacked = true;
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.A_NON_PERMITTED_TARGET_HAS_BEEN_DISCOVERED);
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.INTRUDER_REMOVAL_SYSTEM_INITIATED);
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, Player killer, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == CORE)
|
||||
{
|
||||
npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED);
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.SYSTEM_IS_BEING_SHUT_DOWN);
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.EMPTY);
|
||||
_firstAttacked = false;
|
||||
GrandBossManager.getInstance().setStatus(CORE, DEAD);
|
||||
// Calculate Min and Max respawn times randomly.
|
||||
final long respawnTime = (Config.CORE_SPAWN_INTERVAL + getRandom(-Config.CORE_SPAWN_RANDOM, Config.CORE_SPAWN_RANDOM)) * 3600000;
|
||||
startQuestTimer("core_unlock", respawnTime, null, null);
|
||||
// Also save the respawn time so that the info is maintained past reboots.
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(CORE);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatSet(CORE, info);
|
||||
startQuestTimer("despawn_minions", 20000, null, null);
|
||||
cancelQuestTimers("spawn_minion");
|
||||
}
|
||||
else if ((GrandBossManager.getInstance().getStatus(CORE) == ALIVE) && _minions.contains(npc))
|
||||
{
|
||||
_minions.remove(npc);
|
||||
startQuestTimer("spawn_minion", 60000, npc, null);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
if (npc.getId() == CORE)
|
||||
{
|
||||
npc.setImmobilized(true);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Core();
|
||||
}
|
||||
}
|
350
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Orfen/Orfen.java
vendored
Normal file
350
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/Orfen/Orfen.java
vendored
Normal file
@@ -0,0 +1,350 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.bosses.Orfen;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.Spawn;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneType;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Orfen's AI
|
||||
* @author Emperorc
|
||||
*/
|
||||
public class Orfen extends AbstractNpcAI
|
||||
{
|
||||
private static final Location[] POS =
|
||||
{
|
||||
new Location(43728, 17220, -4342),
|
||||
new Location(55024, 17368, -5412),
|
||||
new Location(53504, 21248, -5486),
|
||||
new Location(53248, 24576, -5262)
|
||||
};
|
||||
|
||||
private static final NpcStringId[] TEXT =
|
||||
{
|
||||
NpcStringId.S1_STOP_KIDDING_YOURSELF_ABOUT_YOUR_OWN_POWERLESSNESS,
|
||||
NpcStringId.S1_I_LL_MAKE_YOU_FEEL_WHAT_TRUE_FEAR_IS,
|
||||
NpcStringId.YOU_RE_REALLY_STUPID_TO_HAVE_CHALLENGED_ME_S1_GET_READY,
|
||||
NpcStringId.S1_DO_YOU_THINK_THAT_S_GOING_TO_WORK
|
||||
};
|
||||
|
||||
private static final int ORFEN = 29014;
|
||||
// private static final int RAIKEL = 29015;
|
||||
private static final int RAIKEL_LEOS = 29016;
|
||||
// private static final int RIBA = 29017;
|
||||
private static final int RIBA_IREN = 29018;
|
||||
|
||||
private static final byte ALIVE = 0;
|
||||
private static final byte DEAD = 1;
|
||||
|
||||
private static final SkillHolder PARALYSIS = new SkillHolder(4064, 1);
|
||||
private static final SkillHolder BLOW = new SkillHolder(4067, 4);
|
||||
private static final SkillHolder ORFEN_HEAL = new SkillHolder(4516, 1);
|
||||
|
||||
private static boolean _isTeleported;
|
||||
private static Set<Attackable> _minions = ConcurrentHashMap.newKeySet();
|
||||
private static ZoneType _zone;
|
||||
|
||||
private Orfen()
|
||||
{
|
||||
final int[] mobs =
|
||||
{
|
||||
ORFEN,
|
||||
RAIKEL_LEOS,
|
||||
RIBA_IREN
|
||||
};
|
||||
registerMobs(mobs);
|
||||
_isTeleported = false;
|
||||
_zone = ZoneManager.getInstance().getZoneById(12013);
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(ORFEN);
|
||||
final int status = GrandBossManager.getInstance().getStatus(ORFEN);
|
||||
if (status == DEAD)
|
||||
{
|
||||
// load the unlock date and time for Orfen from DB
|
||||
final long temp = info.getLong("respawn_time") - System.currentTimeMillis();
|
||||
// if Orfen is locked until a certain time, mark it so and start the unlock timer
|
||||
// the unlock time has not yet expired.
|
||||
if (temp > 0)
|
||||
{
|
||||
startQuestTimer("orfen_unlock", temp, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
// the time has already expired while the server was offline. Immediately spawn Orfen.
|
||||
final int i = getRandom(10);
|
||||
Location loc;
|
||||
if (i < 4)
|
||||
{
|
||||
loc = POS[1];
|
||||
}
|
||||
else if (i < 7)
|
||||
{
|
||||
loc = POS[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
loc = POS[3];
|
||||
}
|
||||
final GrandBoss orfen = (GrandBoss) addSpawn(ORFEN, loc, false, 0);
|
||||
GrandBossManager.getInstance().setStatus(ORFEN, ALIVE);
|
||||
spawnBoss(orfen);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final int loc_x = info.getInt("loc_x");
|
||||
final int loc_y = info.getInt("loc_y");
|
||||
final int loc_z = info.getInt("loc_z");
|
||||
final int heading = info.getInt("heading");
|
||||
final double hp = info.getDouble("currentHP");
|
||||
final double mp = info.getDouble("currentMP");
|
||||
final GrandBoss orfen = (GrandBoss) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
orfen.setCurrentHpMp(hp, mp);
|
||||
spawnBoss(orfen);
|
||||
}
|
||||
}
|
||||
|
||||
public void setSpawnPoint(Npc npc, int index)
|
||||
{
|
||||
((Attackable) npc).clearAggroList();
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null, null);
|
||||
final Spawn spawn = npc.getSpawn();
|
||||
spawn.setLocation(POS[index]);
|
||||
npc.teleToLocation(POS[index], false);
|
||||
}
|
||||
|
||||
public void spawnBoss(GrandBoss npc)
|
||||
{
|
||||
GrandBossManager.getInstance().addBoss(npc);
|
||||
npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
|
||||
startQuestTimer("check_orfen_pos", 10000, npc, null, true);
|
||||
// Spawn minions
|
||||
final int x = npc.getX();
|
||||
final int y = npc.getY();
|
||||
Attackable mob;
|
||||
mob = (Attackable) addSpawn(RAIKEL_LEOS, x + 100, y + 100, npc.getZ(), 0, false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
mob = (Attackable) addSpawn(RAIKEL_LEOS, x + 100, y - 100, npc.getZ(), 0, false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
mob = (Attackable) addSpawn(RAIKEL_LEOS, x - 100, y + 100, npc.getZ(), 0, false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
mob = (Attackable) addSpawn(RAIKEL_LEOS, x - 100, y - 100, npc.getZ(), 0, false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
startQuestTimer("check_minion_loc", 10000, npc, null, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
if (event.equalsIgnoreCase("orfen_unlock"))
|
||||
{
|
||||
final int i = getRandom(10);
|
||||
Location loc;
|
||||
if (i < 4)
|
||||
{
|
||||
loc = POS[1];
|
||||
}
|
||||
else if (i < 7)
|
||||
{
|
||||
loc = POS[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
loc = POS[3];
|
||||
}
|
||||
final GrandBoss orfen = (GrandBoss) addSpawn(ORFEN, loc, false, 0);
|
||||
GrandBossManager.getInstance().setStatus(ORFEN, ALIVE);
|
||||
spawnBoss(orfen);
|
||||
}
|
||||
else if (event.equalsIgnoreCase("check_orfen_pos"))
|
||||
{
|
||||
if ((_isTeleported && (npc.getCurrentHp() > (npc.getMaxHp() * 0.95))) || (!_zone.isInsideZone(npc) && !_isTeleported))
|
||||
{
|
||||
setSpawnPoint(npc, getRandom(3) + 1);
|
||||
_isTeleported = false;
|
||||
}
|
||||
else if (_isTeleported && !_zone.isInsideZone(npc))
|
||||
{
|
||||
setSpawnPoint(npc, 0);
|
||||
}
|
||||
}
|
||||
else if (event.equalsIgnoreCase("check_minion_loc"))
|
||||
{
|
||||
for (Attackable mob : _minions)
|
||||
{
|
||||
if (!npc.isInsideRadius2D(mob, 3000))
|
||||
{
|
||||
mob.teleToLocation(npc.getLocation());
|
||||
((Attackable) npc).clearAggroList();
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event.equalsIgnoreCase("despawn_minions"))
|
||||
{
|
||||
for (Attackable mob : _minions)
|
||||
{
|
||||
mob.decayMe();
|
||||
}
|
||||
_minions.clear();
|
||||
}
|
||||
else if (event.equalsIgnoreCase("spawn_minion"))
|
||||
{
|
||||
final Attackable mob = (Attackable) addSpawn(RAIKEL_LEOS, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0);
|
||||
mob.setIsRaidMinion(true);
|
||||
_minions.add(mob);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSkillSee(Npc npc, Player caster, Skill skill, WorldObject[] targets, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == ORFEN)
|
||||
{
|
||||
final Creature originalCaster = isSummon ? caster.getServitors().values().stream().findFirst().orElse(caster.getPet()) : caster;
|
||||
if ((skill.getEffectPoint() > 0) && (getRandom(5) == 0) && npc.isInsideRadius2D(originalCaster, 1000))
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(4)], caster.getName());
|
||||
originalCaster.teleToLocation(npc.getLocation());
|
||||
npc.setTarget(originalCaster);
|
||||
npc.doCast(PARALYSIS.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onSkillSee(npc, caster, skill, targets, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFactionCall(Npc npc, Npc caller, Player attacker, boolean isSummon)
|
||||
{
|
||||
if ((caller == null) || (npc == null) || npc.isCastingNow(SkillCaster::isAnyNormalType))
|
||||
{
|
||||
return super.onFactionCall(npc, caller, attacker, isSummon);
|
||||
}
|
||||
final int npcId = npc.getId();
|
||||
final int callerId = caller.getId();
|
||||
if ((npcId == RAIKEL_LEOS) && (getRandom(20) == 0))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(BLOW.getSkill());
|
||||
}
|
||||
else if (npcId == RIBA_IREN)
|
||||
{
|
||||
int chance = 1;
|
||||
if (callerId == ORFEN)
|
||||
{
|
||||
chance = 9;
|
||||
}
|
||||
if ((callerId != RIBA_IREN) && (caller.getCurrentHp() < (caller.getMaxHp() / 2.0)) && (getRandom(10) < chance))
|
||||
{
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null, null);
|
||||
npc.setTarget(caller);
|
||||
npc.doCast(ORFEN_HEAL.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onFactionCall(npc, caller, attacker, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, Player attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final int npcId = npc.getId();
|
||||
if (npcId == ORFEN)
|
||||
{
|
||||
if (!_isTeleported && ((npc.getCurrentHp() - damage) < (npc.getMaxHp() / 2)))
|
||||
{
|
||||
_isTeleported = true;
|
||||
setSpawnPoint(npc, 0);
|
||||
}
|
||||
else if (npc.isInsideRadius2D(attacker, 1000) && !npc.isInsideRadius2D(attacker, 300) && (getRandom(10) == 0))
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(3)], attacker.getName());
|
||||
attacker.teleToLocation(npc.getLocation());
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(PARALYSIS.getSkill());
|
||||
}
|
||||
}
|
||||
else if (npcId == RIBA_IREN)
|
||||
{
|
||||
if (!npc.isCastingNow(SkillCaster::isAnyNormalType) && ((npc.getCurrentHp() - damage) < (npc.getMaxHp() / 2.0)))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(ORFEN_HEAL.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, Player killer, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == ORFEN)
|
||||
{
|
||||
npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
|
||||
GrandBossManager.getInstance().setStatus(ORFEN, DEAD);
|
||||
// Calculate Min and Max respawn times randomly.
|
||||
long respawnTime = Config.ORFEN_SPAWN_INTERVAL + getRandom(-Config.ORFEN_SPAWN_RANDOM, Config.ORFEN_SPAWN_RANDOM);
|
||||
respawnTime *= 3600000;
|
||||
startQuestTimer("orfen_unlock", respawnTime, null, null);
|
||||
// also save the respawn time so that the info is maintained past reboots
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(ORFEN);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatSet(ORFEN, info);
|
||||
cancelQuestTimer("check_minion_loc", npc, null);
|
||||
cancelQuestTimer("check_orfen_pos", npc, null);
|
||||
startQuestTimer("despawn_minions", 20000, null, null);
|
||||
cancelQuestTimers("spawn_minion");
|
||||
}
|
||||
else if ((GrandBossManager.getInstance().getStatus(ORFEN) == ALIVE) && (npc.getId() == RAIKEL_LEOS))
|
||||
{
|
||||
_minions.remove(npc);
|
||||
startQuestTimer("spawn_minion", 360000, npc, null);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Orfen();
|
||||
}
|
||||
}
|
408
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/QueenAnt/QueenAnt.java
vendored
Normal file
408
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/QueenAnt/QueenAnt.java
vendored
Normal file
@@ -0,0 +1,408 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.bosses.QueenAnt;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Playable;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Monster;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneType;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Queen Ant's AI
|
||||
* @author Emperorc
|
||||
*/
|
||||
public class QueenAnt extends AbstractNpcAI
|
||||
{
|
||||
private static final int QUEEN = 29001;
|
||||
private static final int LARVA = 29002;
|
||||
private static final int NURSE = 29003;
|
||||
private static final int GUARD = 29004;
|
||||
private static final int ROYAL = 29005;
|
||||
|
||||
private static final int[] MOBS =
|
||||
{
|
||||
QUEEN,
|
||||
LARVA,
|
||||
NURSE,
|
||||
GUARD,
|
||||
ROYAL
|
||||
};
|
||||
|
||||
private static final Location OUST_LOC_1 = new Location(-19480, 187344, -5600);
|
||||
private static final Location OUST_LOC_2 = new Location(-17928, 180912, -5520);
|
||||
private static final Location OUST_LOC_3 = new Location(-23808, 182368, -5600);
|
||||
|
||||
private static final int QUEEN_X = -21610;
|
||||
private static final int QUEEN_Y = 181594;
|
||||
private static final int QUEEN_Z = -5734;
|
||||
|
||||
// QUEEN Status Tracking :
|
||||
private static final byte ALIVE = 0; // Queen Ant is spawned.
|
||||
private static final byte DEAD = 1; // Queen Ant has been killed.
|
||||
|
||||
private static ZoneType _zone;
|
||||
|
||||
private static SkillHolder HEAL1 = new SkillHolder(4020, 1);
|
||||
private static SkillHolder HEAL2 = new SkillHolder(4024, 1);
|
||||
|
||||
Monster _queen = null;
|
||||
private Monster _larva = null;
|
||||
private final Set<Monster> _nurses = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private QueenAnt()
|
||||
{
|
||||
addSpawnId(MOBS);
|
||||
addKillId(MOBS);
|
||||
addAggroRangeEnterId(MOBS);
|
||||
addFactionCallId(NURSE);
|
||||
|
||||
_zone = ZoneManager.getInstance().getZoneById(12012);
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(QUEEN);
|
||||
final int status = GrandBossManager.getInstance().getStatus(QUEEN);
|
||||
if (status == DEAD)
|
||||
{
|
||||
// load the unlock date and time for queen ant from DB
|
||||
final long temp = info.getLong("respawn_time") - System.currentTimeMillis();
|
||||
// if queen ant is locked until a certain time, mark it so and start the unlock timer
|
||||
// the unlock time has not yet expired.
|
||||
if (temp > 0)
|
||||
{
|
||||
startQuestTimer("queen_unlock", temp, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
// the time has already expired while the server was offline. Immediately spawn queen ant.
|
||||
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, QUEEN_X, QUEEN_Y, QUEEN_Z, 0, false, 0);
|
||||
GrandBossManager.getInstance().setStatus(QUEEN, ALIVE);
|
||||
spawnBoss(queen);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int locX = info.getInt("loc_x");
|
||||
int locY = info.getInt("loc_y");
|
||||
int locZ = info.getInt("loc_z");
|
||||
final int heading = info.getInt("heading");
|
||||
final double hp = info.getDouble("currentHP");
|
||||
final double mp = info.getDouble("currentMP");
|
||||
if (!_zone.isInsideZone(locX, locY, locZ))
|
||||
{
|
||||
locX = QUEEN_X;
|
||||
locY = QUEEN_Y;
|
||||
locZ = QUEEN_Z;
|
||||
}
|
||||
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, locX, locY, locZ, heading, false, 0);
|
||||
queen.setCurrentHpMp(hp, mp);
|
||||
spawnBoss(queen);
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnBoss(GrandBoss npc)
|
||||
{
|
||||
GrandBossManager.getInstance().addBoss(npc);
|
||||
if (getRandom(100) < 33)
|
||||
{
|
||||
_zone.movePlayersTo(OUST_LOC_1);
|
||||
}
|
||||
else if (getRandom(100) < 50)
|
||||
{
|
||||
_zone.movePlayersTo(OUST_LOC_2);
|
||||
}
|
||||
else
|
||||
{
|
||||
_zone.movePlayersTo(OUST_LOC_3);
|
||||
}
|
||||
GrandBossManager.getInstance().addBoss(npc);
|
||||
startQuestTimer("action", 10000, npc, null, true);
|
||||
startQuestTimer("heal", 1000, null, null, true);
|
||||
npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
|
||||
_queen = npc;
|
||||
_larva = (Monster) addSpawn(LARVA, -21600, 179482, -5846, getRandom(360), false, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "heal":
|
||||
{
|
||||
boolean notCasting;
|
||||
final boolean larvaNeedHeal = (_larva != null) && (_larva.getCurrentHp() < _larva.getMaxHp());
|
||||
final boolean queenNeedHeal = (_queen != null) && (_queen.getCurrentHp() < _queen.getMaxHp());
|
||||
for (Monster nurse : _nurses)
|
||||
{
|
||||
if ((nurse == null) || nurse.isDead() || nurse.isCastingNow(SkillCaster::isAnyNormalType))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
notCasting = nurse.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST;
|
||||
if (larvaNeedHeal)
|
||||
{
|
||||
if ((nurse.getTarget() != _larva) || notCasting)
|
||||
{
|
||||
nurse.setTarget(_larva);
|
||||
nurse.useMagic(getRandomBoolean() ? HEAL1.getSkill() : HEAL2.getSkill());
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (queenNeedHeal)
|
||||
{
|
||||
if (nurse.getLeader() == _larva)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((nurse.getTarget() != _queen) || notCasting)
|
||||
{
|
||||
nurse.setTarget(_queen);
|
||||
nurse.useMagic(HEAL1.getSkill());
|
||||
}
|
||||
continue;
|
||||
}
|
||||
// if nurse not casting - remove target
|
||||
if (notCasting && (nurse.getTarget() != null))
|
||||
{
|
||||
nurse.setTarget(null);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "action":
|
||||
{
|
||||
if ((npc != null) && (getRandom(3) == 0))
|
||||
{
|
||||
if (getRandom(2) == 0)
|
||||
{
|
||||
npc.broadcastSocialAction(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.broadcastSocialAction(4);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "queen_unlock":
|
||||
{
|
||||
final GrandBoss queen = (GrandBoss) addSpawn(QUEEN, QUEEN_X, QUEEN_Y, QUEEN_Z, 0, false, 0);
|
||||
GrandBossManager.getInstance().setStatus(QUEEN, ALIVE);
|
||||
spawnBoss(queen);
|
||||
break;
|
||||
}
|
||||
case "ANT_QUEEN_TASK":
|
||||
{
|
||||
if ((_queen == null) || _queen.isDead())
|
||||
{
|
||||
cancelQuestTimers("ANT_QUEEN_TASK");
|
||||
}
|
||||
else if (_queen.calculateDistance2D(QUEEN_X, QUEEN_Y, QUEEN_Z) > 2000)
|
||||
{
|
||||
_queen.clearAggroList();
|
||||
_queen.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(QUEEN_X, QUEEN_Y, QUEEN_Z, 0));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
final Monster mob = (Monster) npc;
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LARVA:
|
||||
{
|
||||
mob.setImmobilized(true);
|
||||
mob.setUndying(true);
|
||||
mob.setIsRaidMinion(true);
|
||||
break;
|
||||
}
|
||||
case NURSE:
|
||||
{
|
||||
mob.disableCoreAI(true);
|
||||
mob.setIsRaidMinion(true);
|
||||
_nurses.add(mob);
|
||||
break;
|
||||
}
|
||||
case ROYAL:
|
||||
case GUARD:
|
||||
{
|
||||
mob.setIsRaidMinion(true);
|
||||
break;
|
||||
}
|
||||
case QUEEN:
|
||||
{
|
||||
if (mob.getMinionList().getSpawnedMinions().isEmpty())
|
||||
{
|
||||
((Monster) npc).getMinionList().spawnMinions(npc.getParameters().getMinionList("Privates"));
|
||||
}
|
||||
cancelQuestTimer("ANT_QUEEN_TASK", npc, null);
|
||||
startQuestTimer("ANT_QUEEN_TASK", 5000, npc, null, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFactionCall(Npc npc, Npc caller, Player attacker, boolean isSummon)
|
||||
{
|
||||
if ((caller == null) || (npc == null))
|
||||
{
|
||||
return super.onFactionCall(npc, caller, attacker, isSummon);
|
||||
}
|
||||
|
||||
if (!npc.isCastingNow(SkillCaster::isAnyNormalType) && (npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST) && (caller.getCurrentHp() < caller.getMaxHp()))
|
||||
{
|
||||
npc.setTarget(caller);
|
||||
((Attackable) npc).useMagic(HEAL1.getSkill());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAggroRangeEnter(Npc npc, Player player, boolean isSummon)
|
||||
{
|
||||
if ((npc == null) || (player.isGM() && player.isInvisible()))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final boolean isMage;
|
||||
final Playable character;
|
||||
if (isSummon)
|
||||
{
|
||||
isMage = false;
|
||||
character = player.getServitors().values().stream().findFirst().orElse(player.getPet());
|
||||
}
|
||||
else
|
||||
{
|
||||
isMage = player.isMageClass();
|
||||
character = player;
|
||||
}
|
||||
|
||||
if (character == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Config.RAID_DISABLE_CURSE && ((character.getLevel() - npc.getLevel()) > 8))
|
||||
{
|
||||
Skill curse = null;
|
||||
if (isMage)
|
||||
{
|
||||
if (!character.hasAbnormalType(CommonSkill.RAID_CURSE.getSkill().getAbnormalType()) && (getRandom(4) == 0))
|
||||
{
|
||||
curse = CommonSkill.RAID_CURSE.getSkill();
|
||||
}
|
||||
}
|
||||
else if (!character.hasAbnormalType(CommonSkill.RAID_CURSE2.getSkill().getAbnormalType()) && (getRandom(4) == 0))
|
||||
{
|
||||
curse = CommonSkill.RAID_CURSE2.getSkill();
|
||||
}
|
||||
|
||||
if (curse != null)
|
||||
{
|
||||
npc.broadcastPacket(new MagicSkillUse(npc, character, curse.getId(), curse.getLevel(), 300, 0));
|
||||
curse.applyEffects(npc, character);
|
||||
}
|
||||
|
||||
((Attackable) npc).stopHating(character); // for calling again
|
||||
return null;
|
||||
}
|
||||
|
||||
return super.onAggroRangeEnter(npc, player, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, Player killer, boolean isSummon)
|
||||
{
|
||||
final int npcId = npc.getId();
|
||||
if (npcId == QUEEN)
|
||||
{
|
||||
npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
|
||||
GrandBossManager.getInstance().setStatus(QUEEN, DEAD);
|
||||
// Calculate Min and Max respawn times randomly.
|
||||
final long respawnTime = (Config.QUEEN_ANT_SPAWN_INTERVAL + getRandom(-Config.QUEEN_ANT_SPAWN_RANDOM, Config.QUEEN_ANT_SPAWN_RANDOM)) * 3600000;
|
||||
startQuestTimer("queen_unlock", respawnTime, null, null);
|
||||
cancelQuestTimer("action", npc, null);
|
||||
cancelQuestTimer("heal", null, null);
|
||||
// also save the respawn time so that the info is maintained past reboots
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(QUEEN);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatSet(QUEEN, info);
|
||||
_nurses.clear();
|
||||
if (_larva != null)
|
||||
{
|
||||
_larva.deleteMe();
|
||||
}
|
||||
_larva = null;
|
||||
_queen = null;
|
||||
cancelQuestTimers("ANT_QUEEN_TASK");
|
||||
}
|
||||
else if ((_queen != null) && !_queen.isAlikeDead())
|
||||
{
|
||||
if (npcId == ROYAL)
|
||||
{
|
||||
final Monster mob = (Monster) npc;
|
||||
if (mob.getLeader() != null)
|
||||
{
|
||||
mob.getLeader().getMinionList().onMinionDie(mob, (280 + getRandom(40)) * 1000);
|
||||
}
|
||||
}
|
||||
else if (npcId == NURSE)
|
||||
{
|
||||
final Monster mob = (Monster) npc;
|
||||
_nurses.remove(mob);
|
||||
if (mob.getLeader() != null)
|
||||
{
|
||||
mob.getLeader().getMinionList().onMinionDie(mob, 10000);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new QueenAnt();
|
||||
}
|
||||
}
|
20
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/package-info.java
vendored
Normal file
20
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/bosses/package-info.java
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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/>.
|
||||
*/
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
package ai.bosses;
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/ArenaManager/31226.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/ArenaManager/31226.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Arena Director:<br>
|
||||
Play the game according to the rules! The loser should be silent!<br>
|
||||
What? Unfair? Then, why don't you hold your tongue and give it another try!<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager CPrecovery">CP Recovery: 1,000 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager HPrecovery">HP Recovery: 1,000 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager Buff">Buff for Arena: 2,000 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_DepositP">Private Warehouse: Deposit an item.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_WithdrawP">Private Warehouse: Withdraw an item.</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
134
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/ArenaManager/ArenaManager.java
vendored
Normal file
134
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/ArenaManager/ArenaManager.java
vendored
Normal file
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.others.ArenaManager;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Arena Manager AI.
|
||||
* @author St3eT
|
||||
*/
|
||||
public class ArenaManager extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int ARENA_MANAGER = 31226;
|
||||
// Skills
|
||||
private static final SkillHolder[] BUFFS =
|
||||
{
|
||||
new SkillHolder(6805, 1), // Arena Empower
|
||||
new SkillHolder(6806, 1), // Arena Acumen
|
||||
new SkillHolder(6807, 1), // Arena Concentration
|
||||
new SkillHolder(6808, 1), // Arena Might
|
||||
new SkillHolder(6804, 1), // Arena Wind Walk
|
||||
new SkillHolder(6812, 1), // Arena Berserker Spirit
|
||||
};
|
||||
private static final SkillHolder CP_RECOVERY = new SkillHolder(4380, 1); // Arena: CP Recovery
|
||||
private static final SkillHolder HP_RECOVERY = new SkillHolder(6817, 1); // Arena HP Recovery
|
||||
// Misc
|
||||
private static final int CP_COST = 1000;
|
||||
private static final int HP_COST = 1000;
|
||||
private static final int BUFF_COST = 2000;
|
||||
|
||||
private ArenaManager()
|
||||
{
|
||||
addStartNpc(ARENA_MANAGER);
|
||||
addTalkId(ARENA_MANAGER);
|
||||
addFirstTalkId(ARENA_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "CPrecovery":
|
||||
{
|
||||
if (player.getAdena() >= CP_COST)
|
||||
{
|
||||
takeItems(player, Inventory.ADENA_ID, CP_COST);
|
||||
startQuestTimer("CPrecovery_delay", 2000, npc, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "HPrecovery":
|
||||
{
|
||||
if (player.getAdena() >= HP_COST)
|
||||
{
|
||||
takeItems(player, Inventory.ADENA_ID, HP_COST);
|
||||
startQuestTimer("HPrecovery_delay", 2000, npc, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "Buff":
|
||||
{
|
||||
if (player.getAdena() >= BUFF_COST)
|
||||
{
|
||||
takeItems(player, Inventory.ADENA_ID, BUFF_COST);
|
||||
for (SkillHolder skill : BUFFS)
|
||||
{
|
||||
SkillCaster.triggerCast(npc, player, skill.getSkill());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "CPrecovery_delay":
|
||||
{
|
||||
if ((player != null) && !player.isInsideZone(ZoneId.PVP))
|
||||
{
|
||||
npc.setTarget(player);
|
||||
npc.doCast(CP_RECOVERY.getSkill());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "HPrecovery_delay":
|
||||
{
|
||||
if ((player != null) && !player.isInsideZone(ZoneId.PVP))
|
||||
{
|
||||
npc.setTarget(player);
|
||||
npc.doCast(HP_RECOVERY.getSkill());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ArenaManager();
|
||||
}
|
||||
}
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35098-01.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35098-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
Hello!<br>
|
||||
We Dwarves of the Blacksmith Guild have refined our skills in order to create a greater variety of crops for our Lord.<br>
|
||||
What can I do for you?<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35098-02.html">Manufacture a crop</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35098-02.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35098-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
Sure, no problem! Bring the ingredients needed and I'll create an item for you.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980001">Choose an item</Button>
|
||||
</center>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35140-01.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35140-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
My goodness! What brings you here?<br>
|
||||
We Dwarves of the Blacksmith Guild have refined our skills in order to create a greater variety of crops for our Lord.<br>
|
||||
What can I do for you?<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35140-02.html">Manufacture a crop</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35140-02.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35140-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
Sure, no problem! If you bring me the ingredients I need, I'll get right on it!<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980002">Choose an item</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35182-01.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35182-01.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
Greetings! Is there anything I can do for you today?<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35182-02.html">Manufacture a crop</Button>
|
||||
</center>
|
||||
</body></html>
|
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35182-02.html
vendored
Normal file
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35182-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
Certainly! If you bring me the ingredients I need I'll make it for you.<br>
|
||||
What would you like?<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980003">View the list</Button>
|
||||
</center>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35224-01.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35224-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
Greetings!<br>
|
||||
We Dwarves of the Blacksmith Guild have refined our skills in order to create a greater variety of crops for our Lord.<br>
|
||||
What can I do for you?<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35224-02.html">Manufacture a crop</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35224-02.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35224-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
Certainly, I'd be glad to make an item for you! Bring me the ingredients I need and I'll make it immediately.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980004">View the list</Button>
|
||||
</center>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35272-01.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35272-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
My goodness! What brings you here?<br>
|
||||
We Dwarves of the Blacksmith Guild have refined our skills in order to create a greater variety of crops for our Lord.<br>
|
||||
What can I do for you?<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35272-02.html">Manufacture a crop</Button>
|
||||
</center>
|
||||
</body></html>
|
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35272-02.html
vendored
Normal file
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35272-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
Sure, just bring the ingredients I need and I'll make it for you right away.<br>
|
||||
What would you like?<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980005">Choose Item</Button>
|
||||
</center>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35314-01.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35314-01.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
My goodness! What brings you here?<br>
|
||||
We Dwarves of the Blacksmith Guild have refined our skills in order to create a greater variety of crops for our Lord.<br>
|
||||
What can I do for you?<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35314-02.html">Manufacture a crop</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35314-02.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35314-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
Certainly, I'd be glad to make an item for you! Bring me the ingredients I need and I'll make it immediately.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980006">View the list</Button>
|
||||
</center>
|
||||
</body></html>
|
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35361-01.html
vendored
Normal file
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35361-01.html
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
What brings you here?<br>
|
||||
Our Blacksmiths Guild has learned a new technique, so we can use more diverse crops.<br>
|
||||
Our Dwarven dexterity is truly unequaled!<br>
|
||||
If you want something made, just give us the order!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35361-02.html">Crop Processing</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35361-02.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35361-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
If you provide the materials, it won't take anytime! What do you want made?<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980007">See the list</Button>
|
||||
</center>
|
||||
</body></html>
|
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35507-01.html
vendored
Normal file
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35507-01.html
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
What brings you to this shabby place?<br>
|
||||
I've learned a new skill from our Blacksmith Guild. Now I can make what you want with various crops, my Lord!<br>
|
||||
Our Dwarves are truly gifted with their hands. Ha! Oops! Pardon me, my Lord!<br>
|
||||
If you want me to make something, just say the word!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35507-02.html">Crop Manufacturing</Button>
|
||||
</center>
|
||||
</body></html>
|
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35507-02.html
vendored
Normal file
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35507-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
Of course! Give me the materials I need and I'll make anything you want at once!<br>
|
||||
What do you want?<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980008">Examine the List</Button>
|
||||
</center>
|
||||
</body></html>
|
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35553-01.html
vendored
Normal file
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35553-01.html
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
What brings you to this shabby place?<br>
|
||||
By the way, I've learned a new skill from our Blacksmith Guild! Now I use a wider variety of crops to make the items you need, my Lord.<br>
|
||||
Our Dwarves are truly gifted with their hands.. Ha! Oops! Pardon me, my Lord.<br>
|
||||
If you want me to make something for you, just ask.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleBlacksmith 35553-02.html">Crop Manufacturing</Button>
|
||||
</center>
|
||||
</body></html>
|
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35553-02.html
vendored
Normal file
7
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/35553-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
Of course! Bring me the materials I need and I'll make anything you want at once!<br>
|
||||
What do you want?<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 350980009">Examine the list</Button>
|
||||
</center>
|
||||
</body></html>
|
75
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/CastleBlacksmith.java
vendored
Normal file
75
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/CastleBlacksmith.java
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 ai.others.CastleBlacksmith;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.PlayerCondOverride;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.clan.ClanPrivilege;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Castle Blacksmith AI.
|
||||
* @author malyelfik
|
||||
*/
|
||||
public class CastleBlacksmith extends AbstractNpcAI
|
||||
{
|
||||
// Blacksmith IDs
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
35098, // Blacksmith (Gludio)
|
||||
35140, // Blacksmith (Dion)
|
||||
35182, // Blacksmith (Giran)
|
||||
35224, // Blacksmith (Oren)
|
||||
35272, // Blacksmith (Aden)
|
||||
35314, // Blacksmith (Innadril)
|
||||
35361, // Blacksmith (Goddard)
|
||||
35507, // Blacksmith (Rune)
|
||||
35553, // Blacksmith (Schuttgart)
|
||||
};
|
||||
|
||||
private CastleBlacksmith()
|
||||
{
|
||||
addStartNpc(NPCS);
|
||||
addTalkId(NPCS);
|
||||
addFirstTalkId(NPCS);
|
||||
}
|
||||
|
||||
private boolean hasRights(Player player, Npc npc)
|
||||
{
|
||||
final boolean isMyLord = player.isClanLeader() && (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1));
|
||||
return player.canOverrideCond(PlayerCondOverride.CASTLE_CONDITIONS) || isMyLord || ((player.getClanId() == npc.getCastle().getOwnerId()) && player.hasClanPrivilege(ClanPrivilege.CS_MANOR_ADMIN));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
return (event.equalsIgnoreCase(npc.getId() + "-02.html") && hasRights(player, npc)) ? event : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, Player player)
|
||||
{
|
||||
return (hasRights(player, npc)) ? npc.getId() + "-01.html" : "no.html";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new CastleBlacksmith();
|
||||
}
|
||||
}
|
3
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/no.html
vendored
Normal file
3
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleBlacksmith/no.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Blacksmith:<br>
|
||||
Leave me alone! I'm very busy!
|
||||
</body></html>
|
30
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-d.html
vendored
Normal file
30
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-d.html
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180001 24180002">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180001 24180002">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180013 24180012">Open the western inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180013 24180012">Close the western inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180014 24180015">Open the easten inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180014 24180015">Close the easten inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180005 24180004">Open the hall entrance castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180005 24180004">Close the hall entrance castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180008 24180007">Open the second level western castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180008 24180007">Close the second level western castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180009 24180010">Open the second level easten castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180009 24180010">Close the second level easten castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180016">Open the terrace entrance castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180016">Close the terrace entrance castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180019">Open the easten sky walk castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180019">Close the easten sky walk castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180018">Open the easten outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180018">Close the easten outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180021">Open the western sky walk castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180021">Close the western sky walk castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180020">Open the western outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180020">Close the western outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24180001 24180002 24180013 24180012 24180014 24180015 24180005 24180004 24180008 24180007 24180009 24180010 24180016 24180019 24180018 24180021 24180020">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24180001 24180002 24180013 24180012 24180014 24180015 24180005 24180004 24180008 24180007 24180009 24180010 24180016 24180019 24180018 24180021 24180020">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
13
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-du.html
vendored
Normal file
13
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-du.html
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<html><body>
|
||||
Reinforce castle gates:<br>
|
||||
Strengthens gates and walls. A good measure against the incursion of enemy troops into the castle.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 24180001 24180002">Reinforce outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 24180013 24180012">Reinforce western inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 24180014 24180015">Reinforce eastern inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 24180005 24180004">Reinforce entrance to inner castle hall</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 24180011 24180006">Reinforce outer castle wall</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 24180003">Reinforce inner castle wall</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-t1.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-t1.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13032" msg="811;Front Of Aden Castle">Front Of Aden Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13033" msg="811;Aden Town Square">Aden Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13034" msg="811;Front of the Narsell Fortress">Front of the Narsell Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13035" msg="811;Front of the Bayou Fortress">Front of the Bayou Fortress</Button>
|
||||
</body></html>
|
12
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-t2.html
vendored
Normal file
12
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-t2.html
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13032" msg="811;Front Of Aden Castle">Front Of Aden Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13033" msg="811;Aden Town Square">Aden Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13034" msg="811;Front of the Narsell Fortress">Front of the Narsell Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13035" msg="811;Front of the Bayou Fortress">Front of the Bayou Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13036" msg="811;Enchanted Valley, Northen Region">Enchanted Valley, Northen Region - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13071" msg="811;Blazing Swamp">Blazing Swamp - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13038" msg="811;Forest of Mirrors">Forest of Mirrors - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13039" msg="811;Anghel Waterfall">Anghel Waterfall - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13072" msg="811;The Giant's Cave Upper Layer">The Giant's Cave Upper Layer - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13073" msg="811;The Giant's Cave Lower Layer">The Giant's Cave Lower Layer - 500 Adena</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-tu.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Aden-tu.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body><br>
|
||||
Activate the trap that is located in the inner part of the island. Then, the trap function produces a magical fire that emanates from the device, slowing movement of those passing above it and setting them afire.<br>
|
||||
This device has the same effect on allies so it must be carefully deployed... Used correctly there is no greater defense for a castle.<br>
|
||||
Of course, quality has its price...<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Deploy the device east of the castle</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Deploy the device west of the castle</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
1260
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/CastleChamberlain.java
vendored
Normal file
1260
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/CastleChamberlain.java
vendored
Normal file
File diff suppressed because it is too large
Load Diff
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-d.html
vendored
Normal file
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-d.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20220001 20220002">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20220001 20220002">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20220005 20220006">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20220005 20220006">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20220008">Open the moring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20220008">Close the moring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20220001 20220002 20220005 20220006 20220008">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20220001 20220002 20220005 20220006 20220008">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-du.html
vendored
Normal file
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-du.html
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>
|
||||
Reinforce castle gates:<br>
|
||||
Strengthens gates and walls. Since it significantly enhances the durability of castle gates and castle walls, it is a good measure against the incursion of enemy troops into the castle. <center><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 20220001 20220002">Reinforce outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 20220005 20220006">Reinforce inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 20220003 20220004">Reinforce castle walls</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.htm">Go back</Button>
|
||||
</center>
|
||||
</body> </html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-t1.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-t1.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13008" msg="811;Front Of Dion Castle">Front Of Dion Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13009" msg="811;Dion Town Square">Dion Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13010" msg="811;Front of the Hive Fortress">Front of the Hive Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13011" msg="811;Entrance to Floran Village">Entrance to Floran Village</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-t2.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-t2.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13008" msg="811;Front Of Dion Castle">Front Of Dion Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13009" msg="811;Dion Town Square">Dion Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13010" msg="811;Front of the Hive Fortress">Front of the Hive Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13011" msg="811;Entrance to Floran Village">Entrance to Floran Village</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13012" msg="811;Cruma Marshlands">Cruma Marshlands - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13013" msg="811;Fortress of Resistance">Fortress of Resistance - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13014" msg="811;Plains of Dion">Plains of Dion - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13015" msg="811;Tanor Canyon">Tanor Canyon - 500 Adena</Button>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-tu.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Dion-tu.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body><br>
|
||||
Activate the traps located in the interior of the island. Once activated, the flames do not distinguish friend from foe. Used properly, the trap is a very effective deterrent to invasion. Of course, it costs a fortune!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the entrance of the inner castle</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap behind the garden in the inner castle</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</a>
|
||||
</center>
|
||||
</body></html>
|
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-d.html
vendored
Normal file
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-d.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23220001 23220002">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23220001 23220002">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23220005 23220006">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23220005 23220006">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23220008">Open the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23220008">Close the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23220001 23220002 23220005 23220006 23220008">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23220001 23220002 23220005 23220006 23220008">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-du.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-du.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>
|
||||
Reinforce castle gates:<br>
|
||||
Strengthens gates and walls. Since it significantly enhances the durability of castle gates and castle walls, it is a good measure against the incursion of enemy troops into the castle.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 23220001 23220002">Reinforce outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 23220005 23220006">Reinforce inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 23220003 23220004">Reinforce castle walls</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-t1.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-t1.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13016" msg="811;Front Of Giran Castle">Front Of Giran Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13017" msg="811;Giran Town Square">Giran Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13018" msg="811;Front of the Valley Fortress">Front of the Valley Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13019" msg="811;Giran Harbor">Giran Harbor</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-t2.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-t2.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13016" msg="811;Front Of Giran Castle">Front Of Giran Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13017" msg="811;Giran Town Square">Giran Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13018" msg="811;Front of the Valley Fortress">Front of the Valley Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13019" msg="811;Giran Harbor">Giran Harbor</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13020" msg="811;Breka's Stronghold">Breka's Stronghold - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13021" msg="811;Devil's Isle">Devil's Isle - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13022" msg="811;Dragon Valley">Dragon Valley - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13023" msg="811;Tanor Canyon">Tanor Canyon - 500 Adena</Button>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-tu.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Giran-tu.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body><br>
|
||||
Activate the traps located in the interior of the island. Once activated, the flames do not distinguish friend from foe. Used properly, the trap is a very effective deterrent to invasion. Of course, it costs a fortune!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the entrance of the inner castle</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap behind the garden in the inner castle</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</a>
|
||||
</center>
|
||||
</body></html>
|
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-d.html
vendored
Normal file
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-d.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 19210001 19210002">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 19210001 19210002">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 19210005 19210006">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 19210005 19210006">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 19210008">Open the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 19210008">Close the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 19210001 19210002 19210005 19210006 19210008">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 19210001 19210002 19210005 19210006 19210008">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-du.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-du.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>
|
||||
Reinforce castle gates:<br>
|
||||
Strengthens gates and walls. Since it significantly enhances the durability of castle gates and castle walls, it is a good measure against the incursion of enemy troops into the castle.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 19210001 19210002">Reinforce outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 19210005 19210006">Reinforce inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 19210003 19210004">Reinforce castle walls</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-t1.html
vendored
Normal file
6
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-t1.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13000" msg="811;Front of the Gludio Castle">Front of the Gludio Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13001" msg="811;Gludio Town Square">Gludio Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13002" msg="811;Front of the Shanty Fortress">Front of the Shanty Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13003" msg="811;Front of the Southern Fortress">Front of the Southern Fortress</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-t2.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-t2.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13000" msg="811;Front of the Gludio Castle">Front of the Gludio Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13001" msg="811;Gludio Town Square">Gludio Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13002" msg="811;Front of the Shanty Fortress">Front of the Shanty Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13003" msg="811;Front of the Southern Fortress">Front of the Southern Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13004" msg="811;Ruins of Agony">Ruins of Agony - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13005" msg="811;Ruins of Despair">Ruins of Despair - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13006" msg="811;The Ant Nest">The Ant Nest - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13007" msg="811;Windawood Manor">Windawood Manor - 500 Adena</Button>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-tu.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Gludio-tu.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body><br>
|
||||
Activate the traps located in the interior of the island. Once activated, the flames do not distinguish friend from foe. Used properly, the trap is a very effective deterrent to invasion. Of course, it costs a fortune!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the entrance of the inner castle.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap behind the garden in the inner castle.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
16
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-d.html
vendored
Normal file
16
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-d.html
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24160010 24160009">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24160010 24160009">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24160011 24160012">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24160011 24160012">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24160013 24160014">Open the inner 2nd floor castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24160013 24160014">Close the inner 2nd floor castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24160015 24160016">Open the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24160015 24160016">Close the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 24160010 24160009 24160011 24160012 24160013 24160014 24160015 24160016">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 24160010 24160009 24160011 24160012 24160013 24160014 24160015 24160016">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-du.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-du.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Door Reinforcement:<br>
|
||||
The doors or walls of the castle are currently being reinforced. This will help defend against enemy attacks.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 24160010 24160009">Outer Door Reinforcement</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 24160011 24160012">Inner Door Reinforcement 1F</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 24160013 24160014">Inner Door Reinforcement 2F</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 24160021 24160022">Wall Reinforcement</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-t1.html
vendored
Normal file
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-t1.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13047" msg="811;Front Of Goddard Castle">Front Of Goddard Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13048" msg="811;Goddard Town Square">Goddard Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13049" msg="811;Front of the Borderland Fortress">Front of the Borderland Fortress</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-t2.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-t2.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13047" msg="811;Front Of Goddard Castle">Front Of Goddard Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13048" msg="811;Goddard Town Square">Goddard Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13049" msg="811;Front of the Borderland Fortress">Front of the Borderland Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13050" msg="811;Hot Springs">Hot Springs - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13051" msg="811;Varka Silenos Stronghold">Varka Silenos Stronghold - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13052" msg="811;Ketra Orc Outpost">Ketra Orc Outpost - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13053" msg="811;Entrance to the Forge of the Gods">Entrance to the Forge of the Gods - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13054" msg="811;Wall of Argos">Wall of Argos - 500 Adena</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-tu.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Goddard-tu.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body><br>
|
||||
Activates a trap inside the castle. When activated, magic fire shoots from the trap, slowing those crossing it and engulfing them in flames.<br>
|
||||
These flames will consume friends as well as foes. Used with great care, this is one of the most effective security devices available.<br>
|
||||
Of course, it's not cheap!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the east entrance of the 2nd floor.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap near the west entrance of the 2nd floor.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-d.html
vendored
Normal file
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-d.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23250002 23250001">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23250002 23250001">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23250006 23250005">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23250006 23250005">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23250008">Open the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23250008">Close the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 23250002 23250001 23250006 23250005 23250008">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 23250002 23250001 23250006 23250005 23250008">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-du.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-du.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>
|
||||
Reinforce castle gates:<br>
|
||||
Strengthens gates and walls. Since it significantly enhances the durability of castle gates and castle walls, it is a good measure against the incursion of enemy troops into the castle.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 23250002 23250001">Reinforce outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 23250006 23250005">Reinforce inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 23250003 23250004">Reinforce castle walls</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-t1.html
vendored
Normal file
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-t1.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13040" msg="811;Front Of Innadril Castle">Front Of Innadril Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13041" msg="811;Heine Town Square">Heine Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13042" msg="811;Front of the White Sands Fortress">Front of the White Sands Fortress</Button>
|
||||
</body></html>
|
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-t2.html
vendored
Normal file
9
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-t2.html
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13040" msg="811;Front Of Innadril Castle">Front Of Innadril Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13041" msg="811;Heine Town Square">Heine Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13042" msg="811;Front of the White Sands Fortress">Front of the White Sands Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13043" msg="811;The Center of Alligator Island">The Center of Alligator Island - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13044" msg="811;Field of Silence">Field of Silence - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13045" msg="811;Field of Whispers">Field of Whispers - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13046" msg="811;Inside the Garden of Eva">Inside the Garden of Eva - 500 Adena</Button>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-tu.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Innadril-tu.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body><br>
|
||||
Activate the traps located in the interior of the island. Once activated, the flames do not distinguish friend from foe. Used properly, the trap is a very effective deterrent to invasion. Of course, it costs a fortune!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the entrance of the inner castle.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap behind the garden in the inner castle.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-d.html
vendored
Normal file
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-d.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22190001 22190002">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22190001 22190002">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22190005 22190006">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22190005 22190006">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22190008">Open the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22190008">Close the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22190001 22190002 22190005 22190006 22190008">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22190001 22190002 22190005 22190006 22190008">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-du.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-du.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>
|
||||
Reinforce castle gates:<br>
|
||||
Strengthens gates and walls. Since it significantly enhances the durability of castle gates and castle walls, it is a good measure against the incursion of enemy troops into the castle.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 22190001 22190002">Reinforce outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 22190005 22190006">Reinforce inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 22190003 22190004">Reinforce castle walls</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-t1.html
vendored
Normal file
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-t1.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13024" msg="811;Front Of Oren Castle">Front Of Oren Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13025" msg="811;Oren Town Square">Oren Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13026" msg="811;Front of the Ivory Fortress">Front of the Ivory Fortress</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-t2.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-t2.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13024" msg="811;Front Of Oren Castle">Front Of Oren Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13025" msg="811;Oren Town Square">Oren Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13026" msg="811;Front of the Ivory Fortress">Front of the Ivory Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13027" msg="811;Ivory Tower">Ivory Tower - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13028" msg="811;Near the frontier post">Near the frontier post - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13029" msg="811;Sea of Spores">Sea of Spores - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13030" msg="811;Enchanted Valley, Southern Region">Enchanted Valley, Southern Region - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13031" msg="811;Ancient Battleground">Ancient Battleground - 500 Adena</Button>
|
||||
</body></html>
|
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-tu.html
vendored
Normal file
8
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Oren-tu.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body><br>
|
||||
Activate the traps located in the interior of the island. Once activated, the flames do not distinguish friend from foe. Used properly, the trap is a very effective deterrent to invasion. Of course, it costs a fortune!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the entrance of the inner castle.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap behind the garden in the inner castle.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-d.html
vendored
Normal file
14
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-d.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20160002 20160001">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20160002 20160001">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20160004 20160003">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20160004 20160003">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20160006">Open the east inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20160006">Close the east inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 20160002 20160001 20160004 20160003 20160006">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 20160002 20160001 20160004 20160003 20160006">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
12
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-du.html
vendored
Normal file
12
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-du.html
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>
|
||||
Castle Gate Reinforcement:<br>
|
||||
Castle gates and walls should be thoroughly reinforced to keep the enemy at bay!<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 1 20160002 20160001">Reinforce the outer gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 20160004 20160003">Reinforce the inner gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 2 20160006">Reinforce the east inner gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 20160007 20160008">Reinforce the outer wall</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_doors 3 20160009">Reinforce the inner wall</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-t1.html
vendored
Normal file
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-t1.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13055" msg="811;Front Of Rune Castle">Front Of Rune Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13056" msg="811;Rune Town Square">Rune Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13057" msg="811;Front of the Swamp Fortress">Front of the Swamp Fortress</Button>
|
||||
</body></html>
|
11
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-t2.html
vendored
Normal file
11
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-t2.html
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13055" msg="811;Front Of Rune Castle">Front Of Rune Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13056" msg="811;Rune Town Square">Rune Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13057" msg="811;Front of the Swamp Fortress">Front of the Swamp Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13058" msg="811;Forest of the Dead">Forest of the Dead - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13059" msg="811;Wild Beast Pastures">Wild Beast Pastures - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13060" msg="811;Swamp of Screams">Swamp of Screams - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13061" msg="811;Valley of Saints">Valley of Saints - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13062" msg="811;Monastery of Silence">Monastery of Silence - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 14063" msg="811;Shyeed's Cavern">Shyeed's Cavern - 500 Adena</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-tu.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Rune-tu.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body><br>
|
||||
Activates a trap inside the castle. When activated, magic fire shoots from the trap, slowing those crossing it and engulfing them in flames.<br>
|
||||
These flames will consume friends as well as foes. Used with great care, this is one of the most effective security devices available.<br>
|
||||
Of course, it's not cheap!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the east entrance of the 2nd floor.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap near the west entrance of the 2nd floor.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
16
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-d.html
vendored
Normal file
16
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-d.html
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22130002 22130001">Open the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22130002 22130001">Close the outer castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22130007 22130006">Open the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22130007 22130006">Close the inner castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22130009 22130008">Open the inner 2nd floor castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22130009 22130008">Close the inner 2nd floor castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22130015 22130014">Open the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22130015 22130014">Close the mooring castle gate</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 1 22130002 22130001 22130007 22130006 22130009 22130008 22130015 22130014">Open all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain operate_door 0 22130002 22130001 22130007 22130006 22130009 22130008 22130015 22130014">Close all gates</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-du.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-du.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Door Reinforcement:<br>
|
||||
The doors or walls of the castle are currently being reinforced. This will help defend against enemy attacks.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h bypass -h Quest CastleChamberlain manage_doors 1 22130002 22130001">Outer Door Reinforcement</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h bypass -h Quest CastleChamberlain manage_doors 2 22130007 22130006">Inner Door Reinforcement 1F</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h bypass -h Quest CastleChamberlain manage_doors 2 22130009 22130008">Inner Door Reinforcement 2F</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h bypass -h Quest CastleChamberlain manage_doors 3 22130005 22130004">Wall Reinforcement</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-t1.html
vendored
Normal file
5
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-t1.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13063" msg="811;Front Of Schuttgart Castle">Front Of Schuttgart Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13064" msg="811;Schuttgart Town Square">Schuttgart Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13065" msg="811;Front of the Archaic Fortress">Front of the Archaic Fortress</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-t2.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-t2.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>&$556;<br><br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13063" msg="811;Front Of Schuttgart Castle">Front Of Schuttgart Castle</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13064" msg="811;Schuttgart Town Square">Schuttgart Town Square</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13065" msg="811;Front of the Archaic Fortress">Front of the Archaic Fortress</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13066" msg="811;The Center of the Abandoned Coal Mines">The Center of the Abandoned Coal Mines - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13067" msg="811;Plunderous Plains">Plunderous Plains - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13068" msg="811;Den of Evil">Den of Evil - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13069" msg="811;Ice Merchant Cabin">Ice Merchant Cabin - 500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest CastleChamberlain goto 13070" msg="811;Crypts of Disgrace">Crypts of Disgrace - 500 Adena</Button>
|
||||
</body></html>
|
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-tu.html
vendored
Normal file
10
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/Schuttgard-tu.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body><br>
|
||||
Activates a trap inside the castle. When activated, magic fire shoots from the trap, slowing those crossing it and engulfing them in flames.<br>
|
||||
These flames will consume friends as well as foes. Used with great care, this is one of the most effective security devices available.<br>
|
||||
Of course, it's not cheap!<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 0">Activate the trap near the east entrance of the 2nd floor.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain manage_trap 1">Activate the trap near the west entrance of the 2nd floor.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain chamberlain-01.html">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
You have cast support magic.<br>
|
||||
The MP remaining is <font color="00FFFF">%MPLeft%</font>.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain buffer">Back to the List</Button>
|
||||
</center>
|
||||
</body></html>
|
22
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castlebuff-05.html
vendored
Normal file
22
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castlebuff-05.html
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<html><body>
|
||||
Select the support magic that you wish to cast.<br1>
|
||||
The amount of magic that can be cast is limited by the Chamberlain's MP.<br>
|
||||
The Chamberlain's MP is currently <font color="00FFFF">%MPLeft%</font>.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 0">Wind Walk Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 1">Decrease Weight Lv.3</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 2">Shield Lv.3</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 3">Mental Shield Lv.4</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 4">Might Lv.3</Button><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 5">Bless the Body Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 6">Magic Barrier Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 7">Resist Shock Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 8">Bless the Soul Lv.2</Button><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 9">Concentration Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 10">Berserker Spirit Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 11">Bless Shield Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 12">Guidance Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 13">Vampiric Rage Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain functions">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
27
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castlebuff-08.html
vendored
Normal file
27
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castlebuff-08.html
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
<html><body>
|
||||
Select the support magic that you wish to cast.<br1>
|
||||
The amount of magic that can be cast is limited by the Chamberlain's MP.<br>
|
||||
The Chamberlain's MP is currently <font color="00FFFF">%MPLeft%</font>.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 0">Wind Walk Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 1">Decrease Weight Lv.3</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 2">Shield Lv.3</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 3">Mental Shield Lv.4</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 4">Might Lv.3</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 14">Bless the Body Lv.6</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 15">Magic Barrier Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 16">Resist Shock Lv.4</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 17">Bless the Soul Lv.6</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 18">Concentration Lv.6</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 19">Berserker Spirit Lv.2</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 20">Bless Shield Lv.6</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 21">Guidance Lv.3</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 22">Vampiric Rage Lv.4</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 23">Acumen Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 24">Empower Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 25">Haste Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 26">Focus Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain cast_buff 27">Death Whisper Lv.1</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest CastleChamberlain functions">Go back</Button>
|
||||
</center>
|
||||
</body></html>
|
26
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-01.html
vendored
Normal file
26
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-01.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Castle Facilities Management]</font><br>
|
||||
<table width=275 cellspacing=3 cellpadding=0>
|
||||
<tr>
|
||||
<td FIXWIDTH=45><font color="999999">Name</font></td><td FIXWIDTH=230>Teleport Facility</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Cost</font></td><td><font color="00FFFF">%AgitDecoCost%</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top><font color="999999">Use</font></td>
|
||||
<td>Teleports the Blood Alliance members in the castle to the target area of <font color="00FFFF">%AgitDecoEffect%</font></td>
|
||||
</tr>
|
||||
</table><br>
|
||||
You must pay in advance to use this facility.<br>
|
||||
The first usage fee is <font color="LEVEL">deducted from the inventory</font> of the clan lord; subsequent fees are automatically withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
|
||||
If there is not sufficient Adena in the clan warehouse to pay the fee, <font color="LEVEL">the facility is reset</font>.<br>
|
||||
<center>
|
||||
<table width=200>
|
||||
<tr>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain set_func %AgitDecoSubmit%" value="OK" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain additional_functions" value="Cancel" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body></html>
|
25
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-02.html
vendored
Normal file
25
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-02.html
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Castle Facilities Management]</font><br>
|
||||
<table width=275 cellspacing=3 cellpadding=0>
|
||||
<tr>
|
||||
<td FIXWIDTH=45><font color="999999">Name</font></td><td FIXWIDTH=230>HP Recovery Facility</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Cost</font></td><td>%AgitDecoCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top><font color="999999">Use</font></td>
|
||||
<td>HP of blood alliance members in the castle <font color="00FFFF">%AgitDecoEffect%</font> is restored.</td>
|
||||
</tr>
|
||||
</table><br>
|
||||
You must pay in advance to use this facility.<br>The first usage fee is <font color="LEVEL">deducted from the inventory</font> of the clan lord; subsequent fees are automatically withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
|
||||
If there is not sufficient Adena in the clan warehouse to pay the fee, <font color="LEVEL">the facility is reset</font>.<br>
|
||||
<center>
|
||||
<table width=200>
|
||||
<tr>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain set_func %AgitDecoSubmit%" value="OK" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain additional_functions" value="Cancel" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body></html>
|
26
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-03.html
vendored
Normal file
26
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-03.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Castle Facility Management]</font><br>
|
||||
<table width=275 cellspacing=3 cellpadding=0>
|
||||
<tr>
|
||||
<td FIXWIDTH=45><font color="999999">Name</font></td><td FIXWIDTH=230>MP Recovery Facility</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Cost</font></td><td><font color="00FFFF">%AgitDecoCost%</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top><font color="999999">Use</font></td>
|
||||
<td>MP of clan members in the castle is <font color="00FFFF">%AgitDecoEffect%</font> restored.</td>
|
||||
</tr>
|
||||
</table><br>
|
||||
You must pay in advance to use this facility.<br>
|
||||
The first usage fee is <font color="LEVEL">deducted from the inventory</font> of the clan lord; subsequent fees are automatically withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
|
||||
If there is not sufficient Adena in the clan warehouse to pay the fee, <font color="LEVEL">the facility is reset</font>.<br>
|
||||
<center>
|
||||
<table width=200>
|
||||
<tr>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain set_func %AgitDecoSubmit%" value="OK" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain additional_functions" value="Cancel" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body></html>
|
27
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-04.html
vendored
Normal file
27
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-04.html
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Castle Facilities Management]</font><br>
|
||||
<table width=275 cellspacing=3 cellpadding=0>
|
||||
<tr>
|
||||
<td FIXWIDTH=45><font color="999999">Name</font></td><td FIXWIDTH=230>Experience Value Recovery Facility</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Cost</font></td><td><font color="00FFFF">%AgitDecoCost%</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top><font color="999999">Use</font></td>
|
||||
<td>When Blood Alliance members are resurrected in the castle, their experience value is <font color="00FFFF">%AgitDecoEffect%</font>restored.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
You must pay in advance to use this facility.<br>
|
||||
The first usage fee is <font color="LEVEL">deducted from the inventory</font> of the clan lord; subsequent fees are automatically withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
|
||||
If there is not sufficient Adena in the clan warehouse to pay the fee, <font color="LEVEL">the facility is reset</font>.<br>
|
||||
<center>
|
||||
<table width=200>
|
||||
<tr>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain set_func %AgitDecoSubmit%" value="OK" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain additional_functions" value="Cancel" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body></html>
|
26
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-05.html
vendored
Normal file
26
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-05.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Castle Facilities Management]</font><br>
|
||||
<table width=275 cellspacing=3 cellpadding=0>
|
||||
<tr>
|
||||
<td FIXWIDTH=45><font color="999999">Name</font></td><td FIXWIDTH=230>Supplementary Magic Facility</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Cost</font></td><td>%AgitDecoCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top><font color="999999">Use</font></td>
|
||||
<td>Allows use of supplementary magic.</td>
|
||||
</tr>
|
||||
</table><br>
|
||||
You must pay in advance to use this facility.<br>
|
||||
The first usage fee is <font color="LEVEL">deducted from the inventory</font> of the clan lord; subsequent fees are automatically withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
|
||||
If there is not sufficient Adena in the clan warehouse to pay the fee, <font color="LEVEL">the facility is reset</font>.<br>
|
||||
<center>
|
||||
<table width=200>
|
||||
<tr>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain set_func %AgitDecoSubmit%" value="OK" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
<td align=center><button action="bypass -h Quest CastleChamberlain additional_functions" value="Cancel" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body></html>
|
30
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-AE01.html
vendored
Normal file
30
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-AE01.html
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Castle Management]</font><br>
|
||||
<table width=100% cellspacing=2 cellpadding=0>
|
||||
<tr>
|
||||
<td width=55><font color="999999">Facility</font></td>
|
||||
<td width=230><font color="LEVEL">Teleport</font> <font color="00FFFF">%TPDepth%</font> %TPCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Period</font></td>
|
||||
<td>%TPExpire%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Change</font><br></td>
|
||||
<td>%TPReset%<Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain TP 1">Level 1</Button><Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain TP 2">Level 2</Button><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Facility</font></td>
|
||||
<td><font color="LEVEL">Support Magic</font> <font color="00FFFF">%BFDepth%</font> %BFCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Period</font></td>
|
||||
<td>%BFExpire%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Change</font><br></td>
|
||||
<td>%BFReset%<Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain BF 5">Level 5</Button><Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain BF 8">Level 8</Button><br></td>
|
||||
</tr>
|
||||
</table><br>
|
||||
<button action="bypass -h Quest CastleChamberlain additional_functions" value="List" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
|
||||
</body></html>
|
42
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-AR01.html
vendored
Normal file
42
L2J_Mobius_Classic_1.0/dist/game/data/scripts/ai/others/CastleChamberlain/castledeco-AR01.html
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<html><body><br>
|
||||
<font color="LEVEL">[Managing Castle]</font><br>
|
||||
<table width=100% cellspacing=2 cellpadding=0>
|
||||
<tr>
|
||||
<td width=55><font color="999999">Function</font></td>
|
||||
<td width=230><font color="LEVEL">HP Recovery</font> <font color="00FFFF">%HPDepth%</font> %HPCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Period</font></td>
|
||||
<td>%HPExpire%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Changed To</font><br></td>
|
||||
<td>%HPReset%<Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain HP 300">300%</Button><Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain HP 400">400%</Button><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Function</font></td>
|
||||
<td><font color="LEVEL">MP Recovery</font> <font color="00FFFF">%MPDepth%</font> %MPCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Period</font></td>
|
||||
<td>%MPExpire%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Changed To</font><br></td>
|
||||
<td>%MPReset%<Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain MP 40">40%</Button><Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain MP 50">50%</Button><br></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Function</font></td>
|
||||
<td><font color="LEVEL">Exp. Points Recovery</font> <font color="00FFFF">%XPDepth%</font> %XPCost%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Period</font></td>
|
||||
<td>%XPExpire%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font color="999999">Changed To</font><br></td>
|
||||
<td>%XPReset%<Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain XP 45">45%</Button><Button ALIGN=LEFT ICON="NORMAL" width=230 action="bypass -h Quest CastleChamberlain XP 50">50%</Button><br></td>
|
||||
</tr>
|
||||
</table><br>
|
||||
<button action="bypass -h Quest CastleChamberlain additional_functions" value="List" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
|
||||
</body></html>
|
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
It is already set to <font color="00FFFF">%AgitDecoEffect%</font>.<br>
|
||||
The castle facility setting has not been changed.<br>
|
||||
<center><br>
|
||||
<button action="bypass -h Quest CastleChamberlain additional_functions" value="Management Screen" width=90 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
|
||||
</center>
|
||||
</body></html>
|
@@ -0,0 +1,12 @@
|
||||
<html><body>
|
||||
Special functions for Castle are available to use.<br>
|
||||
To use these functions, please adjust them through the menu. <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest CastleChamberlain additional_functions">Castle Management</Button><br>
|
||||
<center><br>
|
||||
<font color="LEVEL">HP Recovery</font> : <font color="00FFFF">%HPDepth%</font> % is being applied<br>
|
||||
<font color="LEVEL">MP Recovery</font> : <font color="00FFFF">%MPDepth%</font> % is being applied<br>
|
||||
<font color="LEVEL">Exp Resurrection Recovery</font> : <font color="00FFFF">%XPDepth%</font> % is being applied<br>
|
||||
<button action="bypass -h Quest CastleChamberlain teleport" value="Teleport" width=150 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
|
||||
<button action="bypass -h Quest CastleChamberlain buffer" value="Supplemental Magic" width=150 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
|
||||
<button action="bypass -h Quest CastleChamberlain chamberlain-01.html" value="Main Screen" width=150 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
|
||||
</center>
|
||||
</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