Merged with released L2J-Unity files.
This commit is contained in:
@@ -1,73 +1,73 @@
|
||||
/*
|
||||
* 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 village_master.Alliance;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
final class Alliance extends Quest
|
||||
{
|
||||
// @formatter:off
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
30026,30031,30037,30066,30070,30109,30115,30120,30154,30174,
|
||||
30175,30176,30187,30191,30195,30288,30289,30290,30297,30358,
|
||||
30373,30462,30474,30498,30499,30500,30503,30504,30505,30508,
|
||||
30511,30512,30513,30520,30525,30565,30594,30595,30676,30677,
|
||||
30681,30685,30687,30689,30694,30699,30704,30845,30847,30849,
|
||||
30854,30857,30862,30865,30894,30897,30900,30905,30910,30913,
|
||||
31269,31272,31276,31279,31285,31288,31314,31317,31321,31324,
|
||||
31326,31328,31331,31334,31336,31755,31958,31961,31965,31968,
|
||||
31974,31977,31996,32092,32093,32094,32095,32096,32097,32098,
|
||||
32145,32146,32147,32150,32153,32154,32157,32158,32160,32171,
|
||||
32193,32196,32199,32202,32205,32206,32209,32210,32213,32214,
|
||||
32217,32218,32221,32222,32225,32226,32229,32230,32233,32234
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
private Alliance()
|
||||
{
|
||||
super(-1, Alliance.class.getSimpleName(), "village_master");
|
||||
addStartNpc(NPCS);
|
||||
addTalkId(NPCS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (!"9001-01.htm".equals(event) && (player.getClan() == null))
|
||||
{
|
||||
return "9001-04.htm";
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
return "9001-01.htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Alliance();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 village_master.Alliance;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
public final class Alliance extends AbstractNpcAI
|
||||
{
|
||||
// @formatter:off
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
30026,30031,30037,30066,30070,30109,30115,30120,30154,30174,
|
||||
30175,30176,30187,30191,30195,30288,30289,30290,30297,30358,
|
||||
30373,30462,30474,30498,30499,30500,30503,30504,30505,30508,
|
||||
30511,30512,30513,30520,30525,30565,30594,30595,30676,30677,
|
||||
30681,30685,30687,30689,30694,30699,30704,30845,30847,30849,
|
||||
30854,30857,30862,30865,30894,30897,30900,30905,30910,30913,
|
||||
31269,31272,31276,31279,31285,31288,31314,31317,31321,31324,
|
||||
31326,31328,31331,31334,31336,31755,31958,31961,31965,31968,
|
||||
31974,31977,31996,32092,32093,32094,32095,32096,32097,32098,
|
||||
32145,32146,32147,32150,32153,32154,32157,32158,32160,32171,
|
||||
32193,32196,32199,32202,32205,32206,32209,32210,32213,32214,
|
||||
32217,32218,32221,32222,32225,32226,32229,32230,32233,32234
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
private Alliance()
|
||||
{
|
||||
addStartNpc(NPCS);
|
||||
addTalkId(NPCS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (!"9001-01.htm".equals(event) && (player.getClan() == null))
|
||||
{
|
||||
return "9001-04.htm";
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
return "9001-01.htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Alliance();
|
||||
}
|
||||
}
|
||||
|
@@ -1,91 +1,94 @@
|
||||
/*
|
||||
* 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 village_master.Clan;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
final class Clan extends Quest
|
||||
{
|
||||
// @formatter:off
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
30026,30031,30037,30066,30070,30109,30115,30120,30154,30174,
|
||||
30175,30176,30187,30191,30195,30288,30289,30290,30297,30358,
|
||||
30373,30462,30474,30498,30499,30500,30503,30504,30505,30508,
|
||||
30511,30512,30513,30520,30525,30565,30594,30595,30676,30677,
|
||||
30681,30685,30687,30689,30694,30699,30704,30845,30847,30849,
|
||||
30854,30857,30862,30865,30894,30897,30900,30905,30910,30913,
|
||||
31269,31272,31276,31279,31285,31288,31314,31317,31321,31324,
|
||||
31326,31328,31331,31334,31336,31755,31958,31961,31965,31968,
|
||||
31974,31977,31996,32092,32093,32094,32095,32096,32097,32098,
|
||||
32145,32146,32147,32150,32153,32154,32157,32158,32160,32171,
|
||||
32193,32196,32199,32202,32205,32206,32209,32210,32213,32214,
|
||||
32217,32218,32221,32222,32225,32226,32229,32230,32233,32234
|
||||
};
|
||||
// @formatter:on
|
||||
private static final Map<String, String> LEADER_REQUIRED = new HashMap<>();
|
||||
static
|
||||
{
|
||||
LEADER_REQUIRED.put("9000-03.htm", "9000-03-no.htm");
|
||||
LEADER_REQUIRED.put("9000-04.htm", "9000-04-no.htm");
|
||||
LEADER_REQUIRED.put("9000-05.htm", "9000-05-no.htm");
|
||||
LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-12a.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-12b.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-13a.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-13b.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-14a.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-14b.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-15.htm", "9000-07-no.htm");
|
||||
}
|
||||
|
||||
private Clan()
|
||||
{
|
||||
super(-1, Clan.class.getSimpleName(), "village_master");
|
||||
addStartNpc(NPCS);
|
||||
addTalkId(NPCS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (LEADER_REQUIRED.containsKey(event) && !player.isClanLeader())
|
||||
{
|
||||
return LEADER_REQUIRED.get(event);
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
return "9000-01.htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Clan();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 village_master.Clan;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
public final class Clan extends AbstractNpcAI
|
||||
{
|
||||
// @formatter:off
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
30026,30031,30037,30066,30070,30109,30115,30120,30154,30174,
|
||||
30175,30176,30187,30191,30195,30288,30289,30290,30297,30358,
|
||||
30373,30462,30474,30498,30499,30500,30503,30504,30505,30508,
|
||||
30511,30512,30513,30520,30525,30565,30594,30595,30676,30677,
|
||||
30681,30685,30687,30689,30694,30699,30704,30845,30847,30849,
|
||||
30854,30857,30862,30865,30894,30897,30900,30905,30910,30913,
|
||||
31269,31272,31276,31279,31285,31288,31314,31317,31321,31324,
|
||||
31326,31328,31331,31334,31336,31755,31958,31961,31965,31968,
|
||||
31974,31977,31996,32092,32093,32094,32095,32096,32097,32098,
|
||||
32145,32146,32147,32150,32153,32154,32157,32158,32160,32171,
|
||||
32193,32196,32199,32202,32205,32206,32209,32210,32213,32214,
|
||||
32217,32218,32221,32222,32225,32226,32229,32230,32233,32234
|
||||
};
|
||||
// @formatter:on
|
||||
private static final Map<String, String> LEADER_REQUIRED = new HashMap<>();
|
||||
static
|
||||
{
|
||||
LEADER_REQUIRED.put("9000-03.htm", "9000-03-no.htm");
|
||||
LEADER_REQUIRED.put("9000-04.htm", "9000-04-no.htm");
|
||||
LEADER_REQUIRED.put("9000-05.htm", "9000-05-no.htm");
|
||||
LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-12a.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-12b.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-13a.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-13b.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-14a.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-14b.htm", "9000-07-no.htm");
|
||||
LEADER_REQUIRED.put("9000-15.htm", "9000-07-no.htm");
|
||||
}
|
||||
|
||||
private Clan()
|
||||
{
|
||||
addStartNpc(NPCS);
|
||||
addTalkId(NPCS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (LEADER_REQUIRED.containsKey(event))
|
||||
{
|
||||
if (!player.isClanLeader())
|
||||
{
|
||||
return LEADER_REQUIRED.get(event);
|
||||
}
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
return "9000-01.htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Clan();
|
||||
}
|
||||
}
|
||||
|
@@ -1,75 +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 village_master.ProofOfCourage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.base.ClassId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Proof Of Courage implementation.
|
||||
* @author St3eT
|
||||
*/
|
||||
final class ProofOfCourage extends AbstractNpcAI
|
||||
{
|
||||
// Misc
|
||||
private static final Map<Integer, List<ClassId>> CLASSLIST = new HashMap<>();
|
||||
static
|
||||
{
|
||||
CLASSLIST.put(32146, Arrays.asList(ClassId.TROOPER, ClassId.WARDER));
|
||||
CLASSLIST.put(32147, Arrays.asList(ClassId.ELVEN_KNIGHT, ClassId.ELVEN_SCOUT, ClassId.ELVEN_WIZARD, ClassId.ORACLE));
|
||||
CLASSLIST.put(32150, Arrays.asList(ClassId.ORC_RAIDER, ClassId.ORC_MONK));
|
||||
CLASSLIST.put(32153, Arrays.asList(ClassId.WARRIOR, ClassId.KNIGHT, ClassId.ROGUE, ClassId.WIZARD, ClassId.CLERIC));
|
||||
CLASSLIST.put(32157, Arrays.asList(ClassId.SCAVENGER, ClassId.ARTISAN));
|
||||
CLASSLIST.put(32160, Arrays.asList(ClassId.PALUS_KNIGHT, ClassId.ASSASSIN, ClassId.DARK_WIZARD, ClassId.SHILLIEN_ORACLE));
|
||||
}
|
||||
|
||||
private ProofOfCourage()
|
||||
{
|
||||
super(ProofOfCourage.class.getSimpleName(), "village_master");
|
||||
addStartNpc(CLASSLIST.keySet());
|
||||
addTalkId(CLASSLIST.keySet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
if (talker.getClassId().level() == 0)
|
||||
{
|
||||
return npc.getId() + "-noclass.html";
|
||||
}
|
||||
if (!CLASSLIST.get(npc.getId()).contains(talker.getClassId()))
|
||||
{
|
||||
return npc.getId() + "-no.html";
|
||||
}
|
||||
MultisellData.getInstance().separateAndSend(717, talker, npc, false);
|
||||
return super.onTalk(npc, talker);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ProofOfCourage();
|
||||
}
|
||||
/*
|
||||
* 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 village_master.ProofOfCourage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.base.ClassId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Proof Of Courage implementation.
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class ProofOfCourage extends AbstractNpcAI
|
||||
{
|
||||
// Misc
|
||||
private static final Map<Integer, List<ClassId>> CLASSLIST = new HashMap<>();
|
||||
|
||||
static
|
||||
{
|
||||
CLASSLIST.put(32146, Arrays.asList(ClassId.TROOPER, ClassId.WARDER));
|
||||
CLASSLIST.put(32147, Arrays.asList(ClassId.ELVEN_KNIGHT, ClassId.ELVEN_SCOUT, ClassId.ELVEN_WIZARD, ClassId.ORACLE));
|
||||
CLASSLIST.put(32150, Arrays.asList(ClassId.ORC_RAIDER, ClassId.ORC_MONK));
|
||||
CLASSLIST.put(32153, Arrays.asList(ClassId.WARRIOR, ClassId.KNIGHT, ClassId.ROGUE, ClassId.WIZARD, ClassId.CLERIC));
|
||||
CLASSLIST.put(32157, Arrays.asList(ClassId.SCAVENGER, ClassId.ARTISAN));
|
||||
CLASSLIST.put(32160, Arrays.asList(ClassId.PALUS_KNIGHT, ClassId.ASSASSIN, ClassId.DARK_WIZARD, ClassId.SHILLIEN_ORACLE));
|
||||
}
|
||||
|
||||
private ProofOfCourage()
|
||||
{
|
||||
addStartNpc(CLASSLIST.keySet());
|
||||
addTalkId(CLASSLIST.keySet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
if (talker.getClassId().level() == 0)
|
||||
{
|
||||
return npc.getId() + "-noclass.html";
|
||||
}
|
||||
else if (!CLASSLIST.get(npc.getId()).contains(talker.getClassId()))
|
||||
{
|
||||
return npc.getId() + "-no.html";
|
||||
}
|
||||
MultisellData.getInstance().separateAndSend(717, talker, npc, false);
|
||||
return super.onTalk(npc, talker);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ProofOfCourage();
|
||||
}
|
||||
}
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>Grand Master Ellenia:<br>
|
||||
I am chared to educate the <font color="LEVEL">Temple Knights, Swordsinger, Plainswalker, and Silver Ranger</font> wo are of Elfish descent, and who have completed the second class transfer. I can not help you. Go find your master.
|
||||
<html><head><body>Grand Master Ellenia:<br>
|
||||
I am chared to educate the <font color="LEVEL">Temple Knights, Swordsinger, Plainswalker, and Silver Ranger</font> wo are of Elfish descent, and who have completed the second class transfer. I can not help you. Go find your master.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>Grand Master Elenia:<br>
|
||||
Is there something you want to tell me? <br>
|
||||
(This function is only for characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
<html><head><body>Grand Master Elenia:<br>
|
||||
Is there something you want to tell me? <br>
|
||||
(This function is only for characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30155-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30155-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master Elenia:<br>
|
||||
You've already exchanged everything.<br>
|
||||
(You don't have any exchangeable Certificates of Justice.)
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>Grand Magister Esrandell:<br>
|
||||
I educate <font color="LEVEL">Spell Singers, Elemental Summoners, and Elders</font> who have completed the second class transfer, and who are of the elfish race. Go now, find your own master.
|
||||
<html><head><body>Grand Magister Esrandell:<br>
|
||||
I educate <font color="LEVEL">Spell Singers, Elemental Summoners, and Elders</font> who have completed the second class transfer, and who are of the elfish race. Go now, find your own master.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>Grand Magister Esrandel:<br>
|
||||
Keep up your training! <br>
|
||||
(This is only available to characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
<html><head><body>Grand Magister Esrandel:<br>
|
||||
Keep up your training! <br>
|
||||
(This is only available to characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30158-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30158-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Grand Magister Esrandell:<br>
|
||||
It looks like you have already exchanged everything!<br>
|
||||
(You don't have any exchangeable Certificate of Justice.)
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<head><body>Grand Master Rains:<br>
|
||||
I train human <font color="LEVEL">Gladiators, Warlords, Paladins, Dark Avengers, Treasure Hunters, and Hawkeyes</font> who have completed the second class transfer.<br1>
|
||||
You should see your master.
|
||||
<head><body>Grand Master Rains:<br>
|
||||
I train human <font color="LEVEL">Gladiators, Warlords, Paladins, Dark Avengers, Treasure Hunters, and Hawkeyes</font> who have completed the second class transfer.<br1>
|
||||
You should see your master.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>Grand Master Rains:<br>
|
||||
Never neglect your training. <br>
|
||||
(This is a function only available for characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
<html><head><body>Grand Master Rains:<br>
|
||||
Never neglect your training. <br>
|
||||
(This is a function only available for characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30288-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30288-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master Rains:<br>
|
||||
It looks like you have already exchanged everything!<br>
|
||||
(You don't have any exchangeable Certificate of Justice.)
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>Bishop Raymond:<br>
|
||||
Sorry, I am not the master you're looking for. I only teach human <font color="LEVEL">Sorcerers, Necromancers, Warlocks, Bishops, and Prophets</font> who've completed a second class transfer.
|
||||
<html><head><body>Bishop Raymond:<br>
|
||||
Sorry, I am not the master you're looking for. I only teach human <font color="LEVEL">Sorcerers, Necromancers, Warlocks, Bishops, and Prophets</font> who've completed a second class transfer.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>High Priest Raymond:<br>
|
||||
I'm sorry, I think you have the wrong person. <br>
|
||||
(This is only available to characters who have completed their 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
<html><head><body>High Priest Raymond:<br>
|
||||
I'm sorry, I think you have the wrong person. <br>
|
||||
(This is only available to characters who have completed their 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30289-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30289-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Raymond:<br>
|
||||
Looks like you've exchanged them all.<br>
|
||||
(You don't have any exchangeable Certificates of Justice.)
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>Grand Master Tobias:<br>
|
||||
I train Dark Elves who have completed the second class transfer. In other words, I educate <font color="LEVEL">Shillien Knights, Blade Dancers, Abyss Walkers, Phantom Rangers, Spellhowlers, Phantom Summoners, and Shillien Elders</font>. Please go to see your master.
|
||||
<html><head><body>Grand Master Tobias:<br>
|
||||
I train Dark Elves who have completed the second class transfer. In other words, I educate <font color="LEVEL">Shillien Knights, Blade Dancers, Abyss Walkers, Phantom Rangers, Spellhowlers, Phantom Summoners, and Shillien Elders</font>. Please go to see your master.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>Grand Master Tobias:<br>
|
||||
Do you have more to tell me? <br>
|
||||
(This is a function only available for characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
<html><head><body>Grand Master Tobias:<br>
|
||||
Do you have more to tell me? <br>
|
||||
(This is a function only available for characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30297-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30297-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master Tobias:<br>
|
||||
You have already exchanged them all!<br>
|
||||
(You don't have any exchangeable Certificate of Justice.)
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>Head Blacksmith Mendio:<br>
|
||||
I'm a dwarf who has had the honor to complete the second class change. In other words, I educate only <font color="LEVEL">Bounty Hunters and Warsmiths</font>. I am sorry. You must find your own master.
|
||||
<html><head><body>Head Blacksmith Mendio:<br>
|
||||
I'm a dwarf who has had the honor to complete the second class change. In other words, I educate only <font color="LEVEL">Bounty Hunters and Warsmiths</font>. I am sorry. You must find your own master.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>Head Blacksmith Mendio:<br>
|
||||
Do you have something to say? <br>
|
||||
(This feature can only be fulfilled by a character who has completed 2nd class transfer via Certification of Fate.)
|
||||
<html><head><body>Head Blacksmith Mendio:<br>
|
||||
Do you have something to say? <br>
|
||||
(This feature can only be fulfilled by a character who has completed 2nd class transfer via Certification of Fate.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30504-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30504-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Mendio:<br>
|
||||
Greedy, greedy! You've already exchanged everything.<br>
|
||||
(There is no Certificate of Justice for exchange.)
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>High Prefect Drikus:<br>
|
||||
I train Orcs who have completed the second class transfer. I educate only <font color="LEVEL">Destroyers, Tyrants, Overlords, and Warcryers</font>. Please find your own master.
|
||||
<html><head><body>High Prefect Drikus:<br>
|
||||
I train Orcs who have completed the second class transfer. I educate only <font color="LEVEL">Destroyers, Tyrants, Overlords, and Warcryers</font>. Please find your own master.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>High Prefect Drikus:<br>
|
||||
Yes? What is it? <br>
|
||||
(This quest can only be fulfilled by characters who have completed the 2nd class transfer via Certification of Fate.)
|
||||
<html><head><body>High Prefect Drikus:<br>
|
||||
Yes? What is it? <br>
|
||||
(This quest can only be fulfilled by characters who have completed the 2nd class transfer via Certification of Fate.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30505-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/30505-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Prefect Drikus:<br>
|
||||
You have already exchanged everything. Did you forget?<br>
|
||||
(There is no Certificate of Justice for exchange.)
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><head><body>Grand Master Gershwin:<br>
|
||||
I train only those Kamael who have completed their second class transfer. In other words, I educate <font color="LEVEL">Beserkers, Soul Breakers, and Arbalesters</font>. You should seek out a master who can help you.
|
||||
<html><head><body>Grand Master Gershwin:<br>
|
||||
I train only those Kamael who have completed their second class transfer. In other words, I educate <font color="LEVEL">Beserkers, Soul Breakers, and Arbalesters</font>. You should seek out a master who can help you.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><head><body>Grand Master Gershwin:<br>
|
||||
Please do not neglect your training. <br>
|
||||
(This function is only available to characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
<html><head><body>Grand Master Gershwin:<br>
|
||||
Please do not neglect your training. <br>
|
||||
(This function is only available to characters who have completed the 2nd Class Transfer through the Proof of Destiny quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/32196-noitem.html
vendored
Normal file
4
trunk/dist/game/data/scripts/village_master/ProofOfJustice/32196-noitem.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master Gershwin<br>
|
||||
You have nothing to exchange.<br>
|
||||
(You don't have any exchangeable Certificates of Justice.)
|
||||
</body></html>
|
@@ -1,77 +1,83 @@
|
||||
/*
|
||||
* 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 village_master.ProofOfJustice;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.base.ClassId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Proof Of Justice implementation.
|
||||
* @author St3eT
|
||||
*/
|
||||
final class ProofOfJustice extends AbstractNpcAI
|
||||
{
|
||||
// Misc
|
||||
private static final Map<Integer, List<ClassId>> CLASSLIST = new HashMap<>();
|
||||
static
|
||||
{
|
||||
CLASSLIST.put(30505, Arrays.asList(ClassId.DESTROYER, ClassId.TYRANT, ClassId.OVERLORD, ClassId.WARCRYER));
|
||||
CLASSLIST.put(30504, Arrays.asList(ClassId.BOUNTY_HUNTER, ClassId.WARSMITH));
|
||||
CLASSLIST.put(30288, Arrays.asList(ClassId.GLADIATOR, ClassId.WARLORD, ClassId.PALADIN, ClassId.DARK_AVENGER, ClassId.TREASURE_HUNTER, ClassId.HAWKEYE));
|
||||
CLASSLIST.put(30297, Arrays.asList(ClassId.SHILLIEN_KNIGHT, ClassId.BLADEDANCER, ClassId.ABYSS_WALKER, ClassId.PHANTOM_RANGER, ClassId.SPELLHOWLER, ClassId.PHANTOM_SUMMONER, ClassId.SHILLIEN_ELDER));
|
||||
CLASSLIST.put(30158, Arrays.asList(ClassId.SPELLSINGER, ClassId.ELEMENTAL_SUMMONER, ClassId.ELDER));
|
||||
CLASSLIST.put(30155, Arrays.asList(ClassId.TEMPLE_KNIGHT, ClassId.SWORDSINGER, ClassId.PLAINS_WALKER, ClassId.SILVER_RANGER));
|
||||
CLASSLIST.put(30289, Arrays.asList(ClassId.SORCERER, ClassId.NECROMANCER, ClassId.WARLOCK, ClassId.BISHOP, ClassId.PROPHET));
|
||||
CLASSLIST.put(32196, Arrays.asList(ClassId.BERSERKER, ClassId.MALE_SOULBREAKER, ClassId.FEMALE_SOULBREAKER, ClassId.ARBALESTER));
|
||||
}
|
||||
|
||||
private ProofOfJustice()
|
||||
{
|
||||
super(ProofOfJustice.class.getSimpleName(), "village_master");
|
||||
addStartNpc(CLASSLIST.keySet());
|
||||
addTalkId(CLASSLIST.keySet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
if (talker.getClassId().level() < 2)
|
||||
{
|
||||
return npc.getId() + "-noclass.html";
|
||||
}
|
||||
if (!CLASSLIST.get(npc.getId()).contains(talker.getClassId()))
|
||||
{
|
||||
return npc.getId() + "-no.html";
|
||||
}
|
||||
MultisellData.getInstance().separateAndSend(718, talker, npc, false);
|
||||
return super.onTalk(npc, talker);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ProofOfJustice();
|
||||
}
|
||||
/*
|
||||
* 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 village_master.ProofOfJustice;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.base.ClassId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Proof Of Justice implementation.
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class ProofOfJustice extends AbstractNpcAI
|
||||
{
|
||||
// Items
|
||||
private static final int JUSTICE = 17822; // Proof of Justice
|
||||
// Misc
|
||||
private static final Map<Integer, List<ClassId>> CLASSLIST = new HashMap<>();
|
||||
|
||||
static
|
||||
{
|
||||
CLASSLIST.put(30505, Arrays.asList(ClassId.DESTROYER, ClassId.TYRANT, ClassId.OVERLORD, ClassId.WARCRYER));
|
||||
CLASSLIST.put(30504, Arrays.asList(ClassId.BOUNTY_HUNTER, ClassId.WARSMITH));
|
||||
CLASSLIST.put(30288, Arrays.asList(ClassId.GLADIATOR, ClassId.WARLORD, ClassId.PALADIN, ClassId.DARK_AVENGER, ClassId.TREASURE_HUNTER, ClassId.HAWKEYE));
|
||||
CLASSLIST.put(30297, Arrays.asList(ClassId.SHILLIEN_KNIGHT, ClassId.BLADEDANCER, ClassId.ABYSS_WALKER, ClassId.PHANTOM_RANGER, ClassId.SPELLHOWLER, ClassId.PHANTOM_SUMMONER, ClassId.SHILLIEN_ELDER));
|
||||
CLASSLIST.put(30158, Arrays.asList(ClassId.SPELLSINGER, ClassId.ELEMENTAL_SUMMONER, ClassId.ELDER));
|
||||
CLASSLIST.put(30155, Arrays.asList(ClassId.TEMPLE_KNIGHT, ClassId.SWORDSINGER, ClassId.PLAINS_WALKER, ClassId.SILVER_RANGER));
|
||||
CLASSLIST.put(30289, Arrays.asList(ClassId.SORCERER, ClassId.NECROMANCER, ClassId.WARLOCK, ClassId.BISHOP, ClassId.PROPHET));
|
||||
CLASSLIST.put(32196, Arrays.asList(ClassId.BERSERKER, ClassId.MALE_SOULBREAKER, ClassId.FEMALE_SOULBREAKER, ClassId.ARBALESTER));
|
||||
}
|
||||
|
||||
private ProofOfJustice()
|
||||
{
|
||||
addStartNpc(CLASSLIST.keySet());
|
||||
addTalkId(CLASSLIST.keySet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (player.getClassId().level() < 2)
|
||||
{
|
||||
return npc.getId() + "-noclass.html";
|
||||
}
|
||||
else if (!hasAtLeastOneQuestItem(player, JUSTICE))
|
||||
{
|
||||
return npc.getId() + "-noitem.html";
|
||||
}
|
||||
else if (!CLASSLIST.get(npc.getId()).contains(player.getClassId()))
|
||||
{
|
||||
return npc.getId() + "-no.html";
|
||||
}
|
||||
MultisellData.getInstance().separateAndSend(718, player, npc, false);
|
||||
return super.onTalk(npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ProofOfJustice();
|
||||
}
|
||||
}
|
11
trunk/dist/game/data/scripts/village_master/documentation.txt
vendored
Normal file
11
trunk/dist/game/data/scripts/village_master/documentation.txt
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
Scripts defined in the village_master folder control the AI for the dialogs of village masters.
|
||||
In particular, changing occupations, creating/disolving a clan, and many more options given by
|
||||
village masters often require additional checks. All such checks are implemented here.
|
||||
|
||||
For example, when a player attempts to change his occupation to SpellSinger, checks are needed
|
||||
in order to ensure that the player is currently an Elven Wizard and has successfully found all
|
||||
the necessary quest items for this class change. The dialogs offered are different when each of
|
||||
the checks fails or succeeds.
|
||||
|
||||
The mechanics and syntax of all village_master scripts are the same as all quest scripts. For more
|
||||
details, please see "scripts/quests/documentation.txt"
|
Reference in New Issue
Block a user