Addition of Blackbird Campsite AI.

Source: Liamxroy
This commit is contained in:
MobiusDevelopment 2020-04-25 22:03:31 +00:00
parent 8e20923030
commit 2ba03ae802
33 changed files with 438 additions and 0 deletions

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Harpas</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Garp</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Moricks</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
<font color="LEVEL">Raid</font> is already engaged into a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
To summon raid, you must have an <font color="LEVEL">Soul Quartz</font>.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Soul Summon Stone:<br>
Ordinary-looking, but this altar has seen many bloody sacrifices.<br>
There is transparent space where you can place an <font color="LEVEL">Soul Quartz</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite request_boss">Place an Soul Quartz there</Button>
</body></html>

View File

@ -0,0 +1,12 @@
<html><body>Ivory Tower Wizard Valleria:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_blackbird">"Exchange Medal of Honor for 100 Blackbird Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_mt">"Exchange Medal of Honor for 100 Mother Tree Guardians Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_giant">"Exchange Medal of Honor for 100 Giant's Trackers Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_unworldly">"Exchange Medal of Honor for 100 Unworldly Visitors Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_kingdom">"Exchange Medal of Honor for 100 Kingdom's Royal Guard Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_blackbird">"Exchange Grand Medal of Honor for 1000 Blackbird Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_mt">"Exchange Grand Medal of Honor for 1000 Mother Tree Guardians Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_giant">"Exchange Grand Medal of Honor for 1000 Giant's Trackers Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_unworldly">"Exchange Grand Medal of Honor for 1000 Unworldly Visitors Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_kingdom">"Exchange Grand Medal of Honor for 1000 Kingdom's Royal Guard Faction Points."</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Ivory Tower Wizard Valleria:<br>
The wind has changed. I don't like how this feels.<br>
The Embryo are expanding their influence by the day, and the Atelia Fortress is becoming stronger. I heard that they build a <font color="LEVEL">Command Post</font> inside the fortress. I hear that terrible things are going on in there.<br>
<button align="left" icon="NORMAL" action="bypass -h npc_%objectId%_multisell 34435"><font color="LEVEL">"I want to buy Soul Quartz."</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite 34435-01.html">"Exchange Medals of Honor for Faction Points."</Button>
<button align="left" icon="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -0,0 +1,101 @@
/*
* 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.BlackbirdCampsite;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import ai.AbstractNpcAI;
/**
* Soul Summon Stone AI.
* @author NviX
*/
public final class BlackbirdCampsite extends AbstractNpcAI
{
// NPCs
private static final int SOUL_SUMMON_STONE = 34434;
private static final int VALLERIA = 34435;
// Bosses
private static final int SUMMONED_HARPAS = 26347;
private static final int SUMMONED_GARP = 26348;
private static final int SUMMONED_MORICKS = 26349;
// Items
private static final int SOUL_QUARTZ = 48536;
// Misc
private Npc BOSS;
private BlackbirdCampsite()
{
addStartNpc(SOUL_SUMMON_STONE, VALLERIA);
addFirstTalkId(SOUL_SUMMON_STONE, VALLERIA);
addTalkId(SOUL_SUMMON_STONE, VALLERIA);
addKillId(SUMMONED_HARPAS, SUMMONED_GARP, SUMMONED_MORICKS);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
switch (event)
{
case "request_boss":
{
if ((BOSS != null) && !BOSS.isDead())
{
return "34434-4.html";
}
if (hasQuestItems(player, SOUL_QUARTZ))
{
takeItems(player, SOUL_QUARTZ, 1);
int i = getRandom(100);
if (i < 40)
{
BOSS = addSpawn(SUMMONED_HARPAS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-1.html";
}
else if (i < 80)
{
BOSS = addSpawn(SUMMONED_GARP, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-2.html";
}
else
{
BOSS = addSpawn(SUMMONED_MORICKS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-3.html";
}
}
return "34434-5.html";
}
}
return super.onAdvEvent(event, npc, player);
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
if (npc.getId() == VALLERIA)
{
return "34435.html";
}
return "34434.html";
}
public static void main(String[] args)
{
new BlackbirdCampsite();
}
}

View File

@ -0,0 +1,3 @@
<html><body>Ivory Tower Wizard Valleria:<br>
You no have that medal to exchange.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Ivory Tower Wizard Valleria:<br>
You have successfully received faction points.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Harpas</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Garp</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Moricks</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
<font color="LEVEL">Raid</font> is already engaged into a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
To summon raid, you must have an <font color="LEVEL">Soul Quartz</font>.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Soul Summon Stone:<br>
Ordinary-looking, but this altar has seen many bloody sacrifices.<br>
There is transparent space where you can place an <font color="LEVEL">Soul Quartz</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite request_boss">Place an Soul Quartz there</Button>
</body></html>

View File

@ -0,0 +1,12 @@
<html><body>Ivory Tower Wizard Valleria:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_blackbird">"Exchange Medal of Honor for 100 Blackbird Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_mt">"Exchange Medal of Honor for 100 Mother Tree Guardians Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_giant">"Exchange Medal of Honor for 100 Giant's Trackers Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_unworldly">"Exchange Medal of Honor for 100 Unworldly Visitors Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_kingdom">"Exchange Medal of Honor for 100 Kingdom's Royal Guard Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_blackbird">"Exchange Grand Medal of Honor for 1000 Blackbird Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_mt">"Exchange Grand Medal of Honor for 1000 Mother Tree Guardians Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_giant">"Exchange Grand Medal of Honor for 1000 Giant's Trackers Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_unworldly">"Exchange Grand Medal of Honor for 1000 Unworldly Visitors Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_kingdom">"Exchange Grand Medal of Honor for 1000 Kingdom's Royal Guard Faction Points."</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Ivory Tower Wizard Valleria:<br>
The wind has changed. I don't like how this feels.<br>
The Embryo are expanding their influence by the day, and the Atelia Fortress is becoming stronger. I heard that they build a <font color="LEVEL">Command Post</font> inside the fortress. I hear that terrible things are going on in there.<br>
<button align="left" icon="NORMAL" action="bypass -h npc_%objectId%_multisell 34435"><font color="LEVEL">"I want to buy Soul Quartz."</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite 34435-01.html">"Exchange Medals of Honor for Faction Points."</Button>
<button align="left" icon="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -0,0 +1,101 @@
/*
* 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.BlackbirdCampsite;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import ai.AbstractNpcAI;
/**
* Soul Summon Stone AI.
* @author NviX
*/
public final class BlackbirdCampsite extends AbstractNpcAI
{
// NPCs
private static final int SOUL_SUMMON_STONE = 34434;
private static final int VALLERIA = 34435;
// Bosses
private static final int SUMMONED_HARPAS = 26347;
private static final int SUMMONED_GARP = 26348;
private static final int SUMMONED_MORICKS = 26349;
// Items
private static final int SOUL_QUARTZ = 48536;
// Misc
private Npc BOSS;
private BlackbirdCampsite()
{
addStartNpc(SOUL_SUMMON_STONE, VALLERIA);
addFirstTalkId(SOUL_SUMMON_STONE, VALLERIA);
addTalkId(SOUL_SUMMON_STONE, VALLERIA);
addKillId(SUMMONED_HARPAS, SUMMONED_GARP, SUMMONED_MORICKS);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
switch (event)
{
case "request_boss":
{
if ((BOSS != null) && !BOSS.isDead())
{
return "34434-4.html";
}
if (hasQuestItems(player, SOUL_QUARTZ))
{
takeItems(player, SOUL_QUARTZ, 1);
int i = getRandom(100);
if (i < 40)
{
BOSS = addSpawn(SUMMONED_HARPAS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-1.html";
}
else if (i < 80)
{
BOSS = addSpawn(SUMMONED_GARP, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-2.html";
}
else
{
BOSS = addSpawn(SUMMONED_MORICKS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-3.html";
}
}
return "34434-5.html";
}
}
return super.onAdvEvent(event, npc, player);
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
if (npc.getId() == VALLERIA)
{
return "34435.html";
}
return "34434.html";
}
public static void main(String[] args)
{
new BlackbirdCampsite();
}
}

View File

@ -0,0 +1,3 @@
<html><body>Ivory Tower Wizard Valleria:<br>
You no have that medal to exchange.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Ivory Tower Wizard Valleria:<br>
You have successfully received faction points.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Harpas</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Garp</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
You've challenged <font color="LEVEL">Summoned Moricks</font> to a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
<font color="LEVEL">Raid</font> is already engaged into a battle.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Soul Summon Stone:<br>
To summon raid, you must have an <font color="LEVEL">Soul Quartz</font>.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Soul Summon Stone:<br>
Ordinary-looking, but this altar has seen many bloody sacrifices.<br>
There is transparent space where you can place an <font color="LEVEL">Soul Quartz</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite request_boss">Place an Soul Quartz there</Button>
</body></html>

View File

@ -0,0 +1,12 @@
<html><body>Ivory Tower Wizard Valleria:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_blackbird">"Exchange Medal of Honor for 100 Blackbird Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_mt">"Exchange Medal of Honor for 100 Mother Tree Guardians Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_giant">"Exchange Medal of Honor for 100 Giant's Trackers Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_unworldly">"Exchange Medal of Honor for 100 Unworldly Visitors Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite medal_for_kingdom">"Exchange Medal of Honor for 100 Kingdom's Royal Guard Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_blackbird">"Exchange Grand Medal of Honor for 1000 Blackbird Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_mt">"Exchange Grand Medal of Honor for 1000 Mother Tree Guardians Clan Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_giant">"Exchange Grand Medal of Honor for 1000 Giant's Trackers Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_unworldly">"Exchange Grand Medal of Honor for 1000 Unworldly Visitors Faction Points."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite grand_medal_for_kingdom">"Exchange Grand Medal of Honor for 1000 Kingdom's Royal Guard Faction Points."</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Ivory Tower Wizard Valleria:<br>
The wind has changed. I don't like how this feels.<br>
The Embryo are expanding their influence by the day, and the Atelia Fortress is becoming stronger. I heard that they build a <font color="LEVEL">Command Post</font> inside the fortress. I hear that terrible things are going on in there.<br>
<button align="left" icon="NORMAL" action="bypass -h npc_%objectId%_multisell 34435"><font color="LEVEL">"I want to buy Soul Quartz."</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlackbirdCampsite 34435-01.html">"Exchange Medals of Honor for Faction Points."</Button>
<button align="left" icon="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -0,0 +1,101 @@
/*
* 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.BlackbirdCampsite;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import ai.AbstractNpcAI;
/**
* Soul Summon Stone AI.
* @author NviX
*/
public final class BlackbirdCampsite extends AbstractNpcAI
{
// NPCs
private static final int SOUL_SUMMON_STONE = 34434;
private static final int VALLERIA = 34435;
// Bosses
private static final int SUMMONED_HARPAS = 26347;
private static final int SUMMONED_GARP = 26348;
private static final int SUMMONED_MORICKS = 26349;
// Items
private static final int SOUL_QUARTZ = 48536;
// Misc
private Npc BOSS;
private BlackbirdCampsite()
{
addStartNpc(SOUL_SUMMON_STONE, VALLERIA);
addFirstTalkId(SOUL_SUMMON_STONE, VALLERIA);
addTalkId(SOUL_SUMMON_STONE, VALLERIA);
addKillId(SUMMONED_HARPAS, SUMMONED_GARP, SUMMONED_MORICKS);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
switch (event)
{
case "request_boss":
{
if ((BOSS != null) && !BOSS.isDead())
{
return "34434-4.html";
}
if (hasQuestItems(player, SOUL_QUARTZ))
{
takeItems(player, SOUL_QUARTZ, 1);
int i = getRandom(100);
if (i < 40)
{
BOSS = addSpawn(SUMMONED_HARPAS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-1.html";
}
else if (i < 80)
{
BOSS = addSpawn(SUMMONED_GARP, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-2.html";
}
else
{
BOSS = addSpawn(SUMMONED_MORICKS, player.getX() + getRandom(-300, 300), player.getY() + getRandom(-300, 300), player.getZ() + 10, getRandom(64000), false, 0, true);
return "34434-3.html";
}
}
return "34434-5.html";
}
}
return super.onAdvEvent(event, npc, player);
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
if (npc.getId() == VALLERIA)
{
return "34435.html";
}
return "34434.html";
}
public static void main(String[] args)
{
new BlackbirdCampsite();
}
}

View File

@ -0,0 +1,3 @@
<html><body>Ivory Tower Wizard Valleria:<br>
You no have that medal to exchange.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Ivory Tower Wizard Valleria:<br>
You have successfully received faction points.
</body></html>