Addition of Mammons.

Contributed by Minzee.
This commit is contained in:
MobiusDevelopment
2020-07-14 13:46:19 +00:00
parent f2ffffe9c1
commit 843efe8245
34 changed files with 21304 additions and 3059 deletions

View File

@@ -0,0 +1,6 @@
<html><body>Blacksmith of Mammon:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 31126004">Craft S-Grade Dualsword.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126005">Bestow special capability on S-Grade weapon.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126006">Release seal on S-Grade armor.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126007">Release seal on S-Grade accessory.</Button>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Blacksmith of Mammon:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 31126008">Craft A-Grade Dualsword.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126009">Bestow special capability on A-Grade weapon.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126010">Release seal on A-Grade armor.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126011">Release seal on A-Grade accessory.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126012">Re-seal A-Grade armor.</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Blacksmith of Mammon:<br>
I'll exchange the weapon that you've been using for a weapon that is one level stronger. Pay me the difference in Ancient Adena.<br>
There's something you should know. <font color="LEVEL">Special abilities</font> don't transfer. And if you transfer <font color="LEVEL">enchantments</font>, the new weapon will not be enchanted.<br>
<Button ALIGN=LEFT ICON="normal" action="bypass -h npc_%objectId%_exc_multisell 31126002">Upgrade weapon.</Button>
<Button ALIGN=LEFT ICON="return" action="bypass -h npc_%objectId%_Quest BlacksmithOfMammon 31126.html">Back</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Blacksmith of Mammon:<br>
I'll make an even exchange of weapons with you. For example, I will exchange a Mithril Dagger for a two-handed Claymore of the same level. However, there are a couple of things you should know.<br>
There's something you should know. <font color="LEVEL">Special abilities</font> don't transfer. And if you transfer <font color="LEVEL">enchantments</font>, the new weapon will not be enchanted.<br>
<Button ALIGN=LEFT ICON="normal" action="bypass -h npc_%objectId%_exc_multisell 31126003">Make an even exchange of weapons.</Button>
<Button ALIGN=LEFT ICON="return" action="bypass -h npc_%objectId%_Quest BlacksmithOfMammon 31126.html">Back</Button>
</body></html>

View File

@@ -0,0 +1,11 @@
<html><body>Blacksmith of Mammon:<br>
Ah, yes, the seal of gnosis! May you receive the blessings of Mammon! You have come a long way to find me. I can provide you with the highest-quality weapons and armor.<br>
Blacksmiths the world over try to mimic my refined techniques, but their work pales in comparison to mine.<br>
I must ask you but one thing. As a dwarf of Mammon, I cannot accept money from the outside world. I can only accept payment in<font color="LEVEL"> Ancient Adena</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest BlacksmithOfMammon 31126-01.html">S-Grade</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest BlacksmithOfMammon 31126-02.html">A-Grade</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 31126001">Remove a weapon's special capability.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest BlacksmithOfMammon 31126-03.html">Upgrade a weapon.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest BlacksmithOfMammon 31126-04.html">Exchange a weapon.</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -0,0 +1,91 @@
/*
* 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.Mammons.BlacksmithOfMammon;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.Broadcast;
import ai.AbstractNpcAI;
/**
* @author Mobius, Minzee
*/
public class BlacksmithOfMammon extends AbstractNpcAI
{
// NPC
private static final int BLACKSMITH = 31126;
// Locations
private static final Location[] LOCATIONS =
{
new Location(-19360, 13278, -4901, 0), // Dark Omens
new Location(-53131, -250502, -7909, 0), // Heretic
new Location(46303, 170091, -4981, 0), // Branded
new Location(-20485, -251008, -8165, 0), // Apostate
new Location(12669, -248698, -9581, 0), // Forbidden Path
new Location(140519, 79464, -5429, 0), // Witch
};
// Misc
private static final int TELEPORT_DELAY = 1800000; // 30 minutes
private static Npc _lastSpawn;
private BlacksmithOfMammon()
{
addFirstTalkId(BLACKSMITH);
onAdvEvent("RESPAWN_BLACKSMITH", null, null);
startQuestTimer("RESPAWN_BLACKSMITH", TELEPORT_DELAY, null, null, true);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "31126.html":
case "31126-01.html":
case "31126-02.html":
case "31126-03.html":
case "31126-04.html":
{
htmltext = event;
break;
}
case "RESPAWN_BLACKSMITH":
{
if (_lastSpawn != null)
{
_lastSpawn.deleteMe();
}
_lastSpawn = addSpawn(BLACKSMITH, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY);
if (Config.ANNOUNCE_MAMMON_SPAWN)
{
Broadcast.toAllOnlinePlayers("Blacksmith of Mammon has been spawned near the Town of " + _lastSpawn.getCastle().getName() + ".", false);
}
break;
}
}
return htmltext;
}
public static void main(String[] args)
{
new BlacksmithOfMammon();
}
}

View File

@@ -0,0 +1,5 @@
<html><body>Merchant of Mammon:<br>
Ancient Adena is the currency that was used during the Elmoreden Empire. It was minuted from gold of the highest purity, of a much higher quality than the coins used today. It is said that the emblem on the back of the coins possesses a mysterious power...<br>
The Priest of Mammon are given bonuses in Ancient Adena. Sell them<font color="LEVEL"> Seal Stones</font> and they'll pay for them with Ancient Adena.<br>
<Button ALIGN=LEFT ICON="return" action="bypass -h npc_%objectId%_Quest MerchantOfMammon 31113.html">Back</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Merchant of Mammon:<br>
A Blank Scroll is the papyrus that remains after the enchantment has been removed from a magic scroll.<br>
Visit<font color="LEVEL"> Gatekeeper Ziggurat</font> at the entrance to the Necropolis, he'll tell you how to get a Blank Scroll. But this knowledge won't come cheap...<br>
He's been a bit down on his luck lately... This will do him good...<br>
<Button ALIGN=LEFT ICON="return" action="bypass -h npc_%objectId%_Quest MerchantOfMammon 31113.html">Back</Button>
</body></html>

View File

@@ -0,0 +1,9 @@
<html><body>Merchant of Mammon:<br>
May you receive the blessings of Mammon! We of the Mammon Guild have come far to show you some exquisite items!<br>
Before you start shopping there are a few things I should tell you... We don't accept today's currency, but instead use only<font color="LEVEL"> Ancient Adena</font>.<br>
Also, if you wish to purchase an enchanted scroll, you must bring a<font color="LEVEL"> Blank Scroll</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 31113001">I Wish to Buy Something.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest MerchantOfMammon 31113-01.html">Tell me about Ancient Adena.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest MerchantOfMammon 31113-02.html">Tell me about Blank Scrolls.</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -0,0 +1,91 @@
/*
* 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.Mammons.MerchantOfMammon;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.Broadcast;
import ai.AbstractNpcAI;
/**
* @author Mobius, Minzee
*/
public class MerchantOfMammon extends AbstractNpcAI
{
// NPC
private static final int MERCHANT = 31113;
// Locations
private static final Location[] LOCATIONS =
{
new Location(-52172, 78884, -4741, 0), // Devotion
new Location(-41350, 209876, -5087, 0), // Sacrifice
new Location(-21657, 77164, -5173, 0), // Patriots
new Location(45029, 123802, -5413, 0), // Pilgrims
new Location(83175, 208998, -5439, 0), // Saints
new Location(111337, 173804, -5439, 0), // Worship
new Location(118343, 132578, -4831, 0), // Martyrdom
new Location(172373, -17833, -4901, 0), // Disciple
};
// Misc
private static final int TELEPORT_DELAY = 1800000; // 30 minutes
private static Npc _lastSpawn;
private MerchantOfMammon()
{
addFirstTalkId(MERCHANT);
onAdvEvent("RESPAWN_MERCHANT", null, null);
startQuestTimer("RESPAWN_MERCHANT", TELEPORT_DELAY, null, null, true);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "31113.html":
case "31113-01.html":
case "31113-02.html":
{
htmltext = event;
break;
}
case "RESPAWN_MERCHANT":
{
if (_lastSpawn != null)
{
_lastSpawn.deleteMe();
}
_lastSpawn = addSpawn(MERCHANT, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY);
if (Config.ANNOUNCE_MAMMON_SPAWN)
{
Broadcast.toAllOnlinePlayers("Merchant of Mammon has been spawned near the Town of " + _lastSpawn.getCastle().getName() + ".", false);
}
break;
}
}
return htmltext;
}
public static void main(String[] args)
{
new MerchantOfMammon();
}
}

View File

@@ -0,0 +1,7 @@
<html><body>Priest of Mammon:<br>
The door to the Necropolis and Catacombs is again opened. I heard that the monsters coming back in dungeons... hmm... I don't know.<br>
No matter, both the Dawn and Dusk were caught horribly unprepared by Shilen's resurrection. Haha... Because of this, I started taking on the work normally done by the priests of Dawn and Dusk.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 33511001">I want to buy consumable items.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 33511002">I'd like to exchange a seal stone for an item.</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -0,0 +1,86 @@
/*
* 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.Mammons.PriestOfMammon;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.Broadcast;
import ai.AbstractNpcAI;
/**
* @author Mobius, Minzee
*/
public class PriestOfMammon extends AbstractNpcAI
{
// NPC
private static final int PRIEST = 33511;
// Locations
private static final Location[] LOCATIONS =
{
new Location(146882, 29665, -2264, 0), // Aden
new Location(81284, 150155, -3528, 891), // Giran
new Location(42784, -41236, -2192, 37972), // Rune
};
// Misc
private static final int TELEPORT_DELAY = 1800000; // 30 minutes
private static Npc _lastSpawn;
private PriestOfMammon()
{
addFirstTalkId(PRIEST);
onAdvEvent("RESPAWN_PRIEST", null, null);
startQuestTimer("RESPAWN_PRIEST", TELEPORT_DELAY, null, null, true);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "31113.html":
case "31113-01.html":
case "31113-02.html":
{
htmltext = event;
break;
}
case "RESPAWN_PRIEST":
{
if (_lastSpawn != null)
{
_lastSpawn.deleteMe();
}
_lastSpawn = addSpawn(PRIEST, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY);
if (Config.ANNOUNCE_MAMMON_SPAWN)
{
Broadcast.toAllOnlinePlayers("Priest of Mammon has been spawned in Town of " + _lastSpawn.getCastle().getName() + ".", false);
}
break;
}
}
return htmltext;
}
public static void main(String[] args)
{
new PriestOfMammon();
}
}