Moved Faeron Village scripts to zones package.

This commit is contained in:
MobiusDev
2016-04-29 08:10:50 +00:00
parent 874e84864e
commit 570cd3e457
14 changed files with 9 additions and 7 deletions

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
You've challenged <font color="LEVEL">Earth Terakan</font> to a battle.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
You've challenged <font color="LEVEL">Wind Cassius</font> to a battle.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
You've challenged <font color="LEVEL">Flaming Ladar</font> to a battle.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
<font color="LEVEL">Earth Terakan</font> is already engaged into a battle.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
<font color="LEVEL">Wind Cassius</font> is already engaged into a battle.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
<font color="LEVEL">Flaming Ladar</font> is already engaged into a battle.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
To summon Earth Terakan, you must have an <font color="LEVEL">Apparition Stone (Lv. 88)</font>.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
To summon Wind Cassius, you must have an <font color="LEVEL">Apparition Stone (Lv. 93)</font>.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Altar of Souls:<br>
To summon Flaming Ladar, you must have an <font color="LEVEL">Apparition Stone (Lv. 98)</font>.
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Altar of Souls:<br>
Ordinary-looking, but this altar has seen many bloody sacrifices.<br>
There is transparent space where you can place an <font color="LEVEL">Apparition Stone (Lv. 88)</font>, an <font color="LEVEL">Apparition Stone (Lv. 93)</font> and an <font color="LEVEL">Apparition Stone (Lv. 98)</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfSouls request_boss_88">Place an Apparition Stone (Lv. 88) there</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfSouls request_boss_93">Place an Apparition Stone (Lv. 93) there</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfSouls request_boss_98">Place an Apparition Stone (Lv. 98) there</Button>
</body></html>

View File

@@ -0,0 +1,113 @@
/*
* 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.zones.FaeronVillage.AltarOfSouls;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import ai.AbstractNpcAI;
/**
* Altar of Souls AI.
* @author Mobius
*/
final class AltarOfSouls extends AbstractNpcAI
{
// NPCs
private static final int ALTAR_OF_SOULS = 33920;
private static final int LADAR = 25942;
private static final int CASSIUS = 25943;
private static final int TERAKAN = 25944;
// Items
private static final int APPARITION_STONE_88 = 38572;
private static final int APPARITION_STONE_93 = 38573;
private static final int APPARITION_STONE_98 = 38574;
// Misc
private L2Npc BOSS_88;
private L2Npc BOSS_93;
private L2Npc BOSS_98;
private AltarOfSouls()
{
super(AltarOfSouls.class.getSimpleName(), "ai/zones/FaeronVillage");
addStartNpc(ALTAR_OF_SOULS);
addFirstTalkId(ALTAR_OF_SOULS);
addTalkId(ALTAR_OF_SOULS);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
switch (event)
{
case "request_boss_88":
{
if ((BOSS_88 != null) && !BOSS_88.isDead())
{
return "33920-4.html";
}
if (hasQuestItems(player, APPARITION_STONE_88))
{
takeItems(player, APPARITION_STONE_88, 1);
BOSS_88 = addSpawn(TERAKAN, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "33920-1.html";
}
return "33920-7.html";
}
case "request_boss_93":
{
if ((BOSS_93 != null) && !BOSS_93.isDead())
{
return "33920-5.html";
}
if (hasQuestItems(player, APPARITION_STONE_93))
{
takeItems(player, APPARITION_STONE_93, 1);
BOSS_93 = addSpawn(CASSIUS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "33920-2.html";
}
return "33920-8.html";
}
case "request_boss_98":
{
if ((BOSS_98 != null) && !BOSS_98.isDead())
{
return "33920-6.html";
}
if (hasQuestItems(player, APPARITION_STONE_98))
{
takeItems(player, APPARITION_STONE_98, 1);
BOSS_98 = addSpawn(LADAR, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "33920-3.html";
}
return "33920-9.html";
}
}
return super.onAdvEvent(event, npc, player);
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "33920.html";
}
public static void main(String[] args)
{
new AltarOfSouls();
}
}

View File

@@ -0,0 +1,8 @@
<html><body>Remembrance Tower:<br>
On the day Faeron passed through the Dimensional Rift into the Material Realm, we were attacked by the monsters of the Material Realm.<br>
We were not prepared for such a sudden attack and suffered a great loss of life.<br>
In remembrance of those poor lives we could not protect, this tower is hereby erected.<br>
<center>Queen Navari</center><br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest RemembranceTower action">"I offer my condolences for the dead."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@@ -0,0 +1,65 @@
/*
* 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.zones.FaeronVillage.RemembranceTower;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.serverpackets.OnEventTrigger;
import ai.AbstractNpcAI;
/**
* Remembrance Tower AI.
* @author St3eT
*/
final class RemembranceTower extends AbstractNpcAI
{
// NPCs
private static final int REMEMBRANCE_TOWER = 33989;
// Misc
private static final int EMMITER_ID = 17250700;
private RemembranceTower()
{
super(RemembranceTower.class.getSimpleName(), "ai/zones/FaeronVillage");
addStartNpc(REMEMBRANCE_TOWER);
addTalkId(REMEMBRANCE_TOWER);
addFirstTalkId(REMEMBRANCE_TOWER);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equals("action") && npc.isScriptValue(0))
{
npc.broadcastPacket(new OnEventTrigger(EMMITER_ID, true));
npc.setScriptValue(1);
startQuestTimer("TRIGGER", 3000, npc, null);
}
else if (event.equals("TRIGGER"))
{
npc.setScriptValue(0);
npc.broadcastPacket(new OnEventTrigger(EMMITER_ID, false));
}
return super.onAdvEvent(event, npc, player);
}
public static void main(String[] args)
{
new RemembranceTower();
}
}