Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package custom.AIONpc;
- import java.util.Map;
- import javolution.util.FastMap;
- import com.l2jserver.gameserver.SevenSigns;
- import com.l2jserver.gameserver.datatables.SkillTable;
- import com.l2jserver.gameserver.model.L2ItemInstance;
- import com.l2jserver.gameserver.model.actor.L2Npc;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.quest.Quest;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.PledgeShowInfoUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
- public class AIONpc extends Quest
- {
- private final static int NPC = 999999;
- private final static int[][] teleports = {
- /** Girazxn Area **/
- { 1, 70000, 126636, -3804 }, // Death Pass
- { 2, 47114, 187152, -3485 }, // Giran Harbor
- { 3, 42006, 208234, -3756 }, // Devil's Isle
- { 4, 41298, 200350, -4583 }, // Pirate's Tunnel
- { 5, 122881, 110792, -3727 }, // Dragon Valley
- { 6, 131355, 114451, -3718 }, // Antharas' Lair Entrance
- { 7, 173826, 115333, -7708 }, // Antharas' Nest
- /** Aden **/
- { 8, 165584, 85997, -2338 }, // Anghel Waterfall
- { 9, 146828, -12859, -4455 }, // The Blazing Swamp
- { 10, 109699, -7908, -2902 }, // Border Outpost(East Side)
- { 11, 114172, -18034, -1875 }, // Border Outpost(West Side)
- { 12, 172136, 20325, -3326 }, // Cemetary
- { 13, 150086, 46733, -3412 }, // Coliseum
- { 14, 185395, 20359, -3270 }, // The Forbidden Gateway
- { 15, 150477, 85907, -2753 }, // The Forest Of Mirrors
- { 16, 174528, 52683, -4369 }, // The Giants Cave
- /** Tower of Insolence **/
- { 17, 121685, 15749, -3852 }, // 1st Floor
- { 18, 114665, 12697, -3609 }, // 2nd Floor
- { 19, 111249, 16031, -2127 }, // 3rd Floor
- { 20, 114605, 19371, -645 }, // 4th Floor
- { 21, 117996, 16103, 843 }, // 5th Floor
- { 22, 114743, 19707, 1947 }, // 6th Floor
- { 23, 114552, 12354, 2957 }, // 7th Floor
- { 24, 110963, 16147, 3967 }, // 8th Floor
- { 25, 117356, 18462, 4977 }, // 9th Floor
- { 26, 118250, 15858, 5897 }, // 10th Floor
- { 27, 115824, 17242, 6760 }, // 11th Floor
- { 28, 113288, 14692, 7997 }, // 12th Floor
- { 29, 115322, 16756, 9007 }, // 13th Floor
- /** Goddard **/
- { 30, 107944, -87728, -2917 }, // Monastery of Silence
- { 31, 149616, -112428, -2065 }, // Hot Springs
- { 32, 108275, -53785, -2524 }, // Varka Silenos Outpost
- { 33, 170723, -116207, -2067 }, // Forge of the Gods
- { 34, 188191, -74959, -2738 }, // Imperial Tomb
- { 35, 178293, -83983, -7209 }, // Four Sepulchers
- { 36, 149774, -81243, -5624 }, // Ketra Orc OutPost
- { 37, 176886, -50812, -3394 }, // Wall of Agros
- /** Heine **/
- { 38, 101712, 174198, -2457 }, // Alligator Island
- { 39, 84904, 182410, -3670 }, // Field Of Silence
- { 40, 86519, 211911, -3764 }, // Field Of Whispers
- { 41, 149361, 172327, -945 }, // Parnassus
- { 42, 159111, 183721, -3720 }, // Isle of Prayer
- { 43, 152857, 149040, -3280 }, // Chromatic Highlands
- /** Rune **/
- { 44, 38015, -38305, -3609 }, // Rune Harbor
- { 45, 93078, -58289, -2854 }, // Swamp of Screams
- { 46, 89685, -44666, -2147 }, // Stakato Nest
- { 47, 52063, -54448, -3166 }, // Forest of the Dead
- { 48, 59425, -47753, -2562 }, // Cursed Village
- { 49, 52270, -81456, -2767 }, // Beast Farm
- { 50, 67992, -72012, -3748 }, // Vally of Saints
- { 51, 40723, -92245, -3747 }, // Windtail Waterfall
- { 52, 36603, -51202, 712 }, // Pagan's Temple
- /** Dion **/
- { 53, 51055, 141959, -2869 }, // Execution Grounds
- { 54, 17192, 114178, -3439 }, // Cruma Tower Entrance
- { 55, 17724, 114004, -11672 }, // Cruma Tower 1st Floor
- { 56, 17730, 108301, -9057 }, // Cruma Tower 2nd Floor
- { 57, 17719, 115430, -6582 }, // Cruma Tower 3rd Floor
- /** Oren **/
- { 58, 62425, 30856, -3779 }, // Sea Of Spores
- { 59, 85332, 16186, -3673 }, // Ivory Tower (Lobby)
- { 60, 70833, 6426, -3639 }, // Northern Waterfall
- /** Guldio **/
- { 61, -56235, 106668, -3773 }, // Ruins of Agony
- { 62, -20043, 137688, -3896 }, // Ruins of Despair
- { 63, -26111, 173692, -4152 }, // Ant's Nest
- { 64, -16730, 209417, -3664 }, // South of Wastelands
- { 65, -23403, 186599, -4317 }, // Wastelands
- { 66, -149365, 255309, -86 }, // Gludio AirShip Field
- /** Gludin **/
- { 67, -56742, 140569, -2625 }, // Abandoned Camp
- { 68, -66931, 120296, -3651 }, // Fellmere Lake
- { 69, -53838, 179285, -4640 }, // Forgotten Temple
- { 70, -94841, 147430, -2675 }, // Gludin Clelse iffside Estate
- { 71, -89199, 149962, -3586 }, // Gludin Harbor
- { 72, -90562, 108182, -3546 }, // Orc Barracks
- /** Schuttgart **/
- { 73, 56095, -118952, -3290 }, // Crypts of Disgrace
- { 74, 76860, -125169, -3414 }, // Den of Evil
- { 75, 108090, -120925, -3628 }, // Frost Lake
- { 76, 113487, -109888, -865 }, // Ice Merchant Cabin
- { 77, 23006, -126115, -870 }, // Valley of The Lords
- { 78, 88275, -125690, -3815 }, // Pavel Ruins
- { 79, 113900, -154175, -1488 }, // Plunderous Plains
- { 80, 48336, -107734, -1577 }, // Graverobber Hideout
- { 81, 69762, -111260, -1807 }, // Caron's Dungeon
- { 82, 40825, -90317, -3095 }, // Windtail Waterfall
- { 83, 87475, -109835, -3330 }, // Archaic Laboratory
- { 84, 117715, -141750, -2700 }, // Sky Wagon Relic
- { 85, 124585, -160240, -1180 }, // Brigand Stronghold
- /** Hunters Vilage **/
- { 86, 105751, 113370, -3199 }, // Hardin's Academy
- { 87, 104413, 33734, -3795 }, // Enchanted Valley (North)
- { 88, 124899, 61995, -3915 }, // Enchanted Valley (South)
- /** HellBound **/
- { 89, -11802, 236360, -3271 }, // HellBound
- /** Necropolis **/
- { 90, 83357, 209207, -5437 }, // Saints
- { 91, 172600, -17599, -4899 }, // Desciple
- { 92, 118576, 132800, -4832 }, // Martydom
- { 93, -51942, 79096, -4739 }, // Devotion
- { 94, -21423, 77375, -5171 }, // Patriot
- { 95, 111552, 174014, -5440 }, // Warshipper
- { 96, 45249, 123548, -5411 }, // Piligrims
- { 97, -41569, 210082, -5085 }, // Sacrafice
- /** Catacombs **/
- { 98, -19176, 13504, -4899 }, // Dark Omens
- { 99, 12521, -248481, -9585 }, // Forbiden Path
- { 100, 140690, 79679, -5429 }, // Witch
- { 101, -20195, -250764, -8163 }, // Apostate
- { 102, 46542, 170305, -4979 }, // Branded
- { 103, -53174, -250275, -7911 }, // Heretics
- };
- private static final int[][] town_teleports = { { 1, 82698, 148638, -3473 }, // Giran Center
- { 2, 147450, 27064, -2208 }, // Aden Center
- { 3, 147725, -56517, -2780 }, // Goddard Center
- { 4, 44070, -50243, -796 }, // Rune Center
- { 5, 18748, 145437, -3132 }, // Dion Center
- { 6, 82321, 55139, -1529 }, // Oren Center
- { 7, -14225, 123540, -3121 }, // Gludio Center
- { 8, -83063, 150791, -3133 }, // Gludin Center
- { 9, 87358, -141982, -1341 }, // Schuttgart Center
- { 10, 111115, 219017, -3547 }, // Heine Center
- { 11, 116589, 76268, -2734 }, // Hunters Center
- { 12, 85332, 16186, -3673 }, // Ivory Tower
- { 13, 10691, -24165, -3649 }, // Primevile Island
- { 14, 12428, 16551, -4588 }, // Dark elven
- { 15, 45873, 49288, -3064 }, // Elven elven
- { 16, -82687, 243157, -3734 }, // Human elven
- { 17, 116551, -182493, -1525 }, // Dwarven
- { 18, -44133, -113911, -244 }, // Orc
- { 19, -116934, 46616, 368 }, // Kamael
- };
- private static final Map<Integer, Integer> PP_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- PP_SKILLS.put(1204, 2); // Wind Walk
- PP_SKILLS.put(1040, 3); // Shield
- PP_SKILLS.put(1068, 3); // Might
- PP_SKILLS.put(1035, 4); // Mental Shield
- PP_SKILLS.put(1062, 2); // Berserker Spirit
- PP_SKILLS.put(1086, 2); // Haste
- PP_SKILLS.put(1240, 3); // Guidance
- PP_SKILLS.put(1085, 3); // Acumen
- PP_SKILLS.put(1062, 2); // Berserker Spirit
- PP_SKILLS.put(1077, 3); // Focus
- PP_SKILLS.put(1242, 3); // Death Whisper
- PP_SKILLS.put(1388, 3); // Greater Might
- PP_SKILLS.put(1389, 3); // Greater Shield
- PP_SKILLS.put(1356, 1); // Prophecy of Fire
- PP_SKILLS.put(1043, 1); // Holy Weapon
- PP_SKILLS.put(1499, 1); // Improved Combat
- PP_SKILLS.put(1502, 1); // Improved Critical
- PP_SKILLS.put(1501, 1); // Improved Condition
- PP_SKILLS.put(1354, 1); // Arcane Protection
- PP_SKILLS.put(1036, 2); // Magic Barrier
- }
- private static final Map<Integer, Integer> SE_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- SE_SKILLS.put(1059, 3); // Empower
- SE_SKILLS.put(1268, 4); // Vampiric Rage
- SE_SKILLS.put(1392, 3); // Holy Resistance
- SE_SKILLS.put(1393, 3); // Unholy Resistance
- SE_SKILLS.put(1303, 2); // Wild Magic
- SE_SKILLS.put(1357, 1); // Prophecy of Wind
- SE_SKILLS.put(1352, 1); // Elemental Protection
- SE_SKILLS.put(1078, 6); // Concentration
- }
- private static final Map<Integer, Integer> EE_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- EE_SKILLS.put(1087, 3); // Agility
- EE_SKILLS.put(1355, 1); // Prophecy of Water
- EE_SKILLS.put(1397, 2); // Clarity
- EE_SKILLS.put(1259, 2); // Resist Shock
- }
- private static final Map<Integer, Integer> WC_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- WC_SKILLS.put(1363, 1); // Chant of Victory
- WC_SKILLS.put(1413, 1); // Magnus' Chant
- WC_SKILLS.put(1284, 3); // Chant of Revenge
- WC_SKILLS.put(1362, 1); // Chant of Spirit
- }
- private static final Map<Integer, Integer> SWS_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- SWS_SKILLS.put(264, 1); // Song of Earth
- SWS_SKILLS.put(268, 1); // Song of Wind
- SWS_SKILLS.put(266, 1); // Song of Water
- SWS_SKILLS.put(267, 1); // Song of Warding
- SWS_SKILLS.put(304, 1); // Song of Vitality
- SWS_SKILLS.put(265, 1); // Song of Life
- SWS_SKILLS.put(270, 1); // Song of Invocation
- SWS_SKILLS.put(349, 1); // Song of Renewal
- SWS_SKILLS.put(364, 1); // Song of Champion
- SWS_SKILLS.put(305, 1); // Song of Vengeance
- SWS_SKILLS.put(308, 1); // Song of Storm Guard
- SWS_SKILLS.put(306, 1); // Song of Flame Guard
- SWS_SKILLS.put(269, 1); // Song of Hunter
- SWS_SKILLS.put(363, 1); // Song of Meditation
- SWS_SKILLS.put(529, 1); // Song of Elemental
- }
- private static final Map<Integer, Integer> BD_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- BD_SKILLS.put(530, 1); // Dance of Aligment
- BD_SKILLS.put(271, 1); // Dance of Warrior
- BD_SKILLS.put(272, 1); // Dance of Inspiration
- BD_SKILLS.put(273, 1); // Dance of the Mystic
- BD_SKILLS.put(276, 1); // Dance of Concentration
- BD_SKILLS.put(310, 1); // Dance of Vampire
- BD_SKILLS.put(275, 1); // Dance of Fury
- BD_SKILLS.put(274, 1); // Dance of Fire
- BD_SKILLS.put(365, 1); // Siren's Dance
- BD_SKILLS.put(277, 1); // Dance of Light
- BD_SKILLS.put(307, 1); // Dance of Aqua Guard
- BD_SKILLS.put(309, 1); // Dance of Earth Guard
- }
- private static final Map<Integer, Integer> OL_SKILLS = new FastMap<Integer, Integer>();
- static
- {
- // skillId, skilllevel
- OL_SKILLS.put(1414, 1); // Victory Pa'agrio
- OL_SKILLS.put(1416, 1); // Pa'agrio's Fists
- }
- public AIONpc(int questId, String name, String descr)
- {
- super(questId, name, descr);
- addStartNpc(NPC);
- addFirstTalkId(NPC);
- addTalkId(NPC);
- }
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = "";
- String prefix = "";
- boolean isPet = false;
- if (player == null || event == null)
- return htmltext;
- if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.getPvpFlag() > 0)
- return "<html><body>Please come down then we can talk again</body></html>";
- if (event.equals("pet_buffer"))
- return "buffer/pet_main.htm";
- if (event.startsWith("pet_"))
- {
- isPet = true;
- prefix = "pet_";
- event = event.substring(4);
- }
- try
- {
- int skill;
- skill = Integer.parseInt(event);
- if (PP_SKILLS.containsKey(skill) || SE_SKILLS.containsKey(skill) || EE_SKILLS.containsKey(skill) || SWS_SKILLS.containsKey(skill) || BD_SKILLS.containsKey(skill) || OL_SKILLS.containsKey(skill) || WC_SKILLS.containsKey(skill))
- {
- if (PP_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, PP_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "prophet.htm";
- }
- else if (SE_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, SE_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "shillien-elder.htm";
- }
- else if (EE_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, EE_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "elven-elder.htm";
- }
- else if (SWS_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, SWS_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "sword-singer.htm";
- }
- else if (BD_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, BD_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "blade-dancer.htm";
- }
- else if (OL_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, OL_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "overlord.htm";
- }
- else if (WC_SKILLS.containsKey(skill))
- {
- SkillTable.getInstance().getInfo(skill, WC_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
- htmltext = "buffer/" + prefix + "war-cryer.htm";
- }
- }
- }
- catch (NumberFormatException nfe)
- {}
- //Restore HP/MP
- if (event.equals("fullhpmp"))
- {
- if (isPet && player.getPet() != null)
- {
- player.getPet().setCurrentCp(player.getPet().getMaxCp()); // Full CP
- player.getPet().setCurrentHp(player.getPet().getMaxHp()); // Full HP
- player.getPet().setCurrentMp(player.getPet().getMaxMp()); // Full MP
- }
- else
- {
- player.setCurrentCp(player.getMaxCp()); // Full CP
- player.setCurrentHp(player.getMaxHp()); // Full HP
- player.setCurrentMp(player.getMaxMp()); // Full MP
- }
- htmltext = "buffer/" + prefix + "main.htm";
- }
- //Cancel All Buffs
- else if (event.equals("cancel"))
- {
- if (isPet && player.getPet() != null)
- player.getPet().stopAllEffects(); // Cancel All
- else
- player.stopAllEffects(); // Cancel All
- htmltext = "buffer/" + prefix + "main.htm";
- }
- //Prophet Buffs
- else if (event.equals("prophet"))
- {
- htmltext = "buffer/" + prefix + "prophet.htm";
- }
- //Shillien Elder Buffs
- else if (event.equals("shillienelder"))
- {
- htmltext = "buffer/" + prefix + "shillien-elder.htm";
- }
- //Elven Elder Buffs
- else if (event.equals("elvenelder"))
- {
- htmltext = "buffer/" + prefix + "elven-elder.htm";
- }
- //Doom Cryer Buffs
- else if (event.equals("warcryer"))
- {
- htmltext = "buffer/" + prefix + "war-cryer.htm";
- }
- //Overlord Buffs
- else if (event.equals("overlord"))
- {
- htmltext = "buffer/" + prefix + "overlord.htm";
- }
- //Sword Singer
- else if (event.equals("swordsinger"))
- {
- htmltext = "buffer/" + prefix + "sword-singer.htm";
- }
- //Blade Dancer Buffs
- else if (event.equals("blacedancer"))
- {
- htmltext = "buffer/" + prefix + "blade-dancer.htm";
- }
- //Other Buffs
- else if (event.equals("other"))
- {
- htmltext = "buffer/" + prefix + "other.htm";
- }
- //Custom Fighter
- else if (event.equals("fullfighter"))
- {
- /** Buffs **/
- SkillTable.getInstance().getInfo(1204, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Wind Walk
- SkillTable.getInstance().getInfo(1035, 4).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Mental Shield
- SkillTable.getInstance().getInfo(1086, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Haste
- SkillTable.getInstance().getInfo(1240, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Guidence
- SkillTable.getInstance().getInfo(1388, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Greater Might
- SkillTable.getInstance().getInfo(1499, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Combat
- SkillTable.getInstance().getInfo(1502, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Critical
- SkillTable.getInstance().getInfo(1501, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Condition
- SkillTable.getInstance().getInfo(1268, 4).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Vampiric Rage
- SkillTable.getInstance().getInfo(1363, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Chant of Victory
- SkillTable.getInstance().getInfo(1352, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Elemental Protection
- SkillTable.getInstance().getInfo(1036, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Magic Barrier
- SkillTable.getInstance().getInfo(1354, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Arcane Protection
- SkillTable.getInstance().getInfo(1062, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Berserker Spirit
- /** Song **/
- SkillTable.getInstance().getInfo(264, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Earth
- SkillTable.getInstance().getInfo(268, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Wind
- SkillTable.getInstance().getInfo(267, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Warding
- SkillTable.getInstance().getInfo(304, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Vitality
- SkillTable.getInstance().getInfo(349, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Renewal
- SkillTable.getInstance().getInfo(364, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Champion
- SkillTable.getInstance().getInfo(269, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Hunter
- /** Dance **/
- SkillTable.getInstance().getInfo(271, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Warrior
- SkillTable.getInstance().getInfo(272, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Inspiration
- SkillTable.getInstance().getInfo(310, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Vampire
- SkillTable.getInstance().getInfo(274, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Fire
- SkillTable.getInstance().getInfo(275, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Fury
- if (isPet && player.getPet() != null)
- {
- player.getPet().setCurrentCp(player.getPet().getMaxCp()); // Full CP
- player.getPet().setCurrentHp(player.getPet().getMaxHp()); // Full HP
- player.getPet().setCurrentMp(player.getPet().getMaxMp()); // Full MP
- }
- player.setCurrentCp(player.getMaxCp()); // Full CP
- player.setCurrentHp(player.getMaxHp()); // Full HP
- player.setCurrentMp(player.getMaxMp()); // Full MP
- htmltext = "buffer/" + prefix + "main.htm";
- }
- //Custom Mage
- else if (event.equals("fullmage"))
- {
- /** Buffs **/
- SkillTable.getInstance().getInfo(1204, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Wind Walk
- SkillTable.getInstance().getInfo(1035, 4).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Mental Shield
- SkillTable.getInstance().getInfo(1352, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Elemental Protection
- SkillTable.getInstance().getInfo(1036, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Magic Barrier
- SkillTable.getInstance().getInfo(1354, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Arcane Protection
- SkillTable.getInstance().getInfo(1062, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Berserker Spirit
- SkillTable.getInstance().getInfo(1085, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Acumen
- SkillTable.getInstance().getInfo(1389, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Greater Shiled
- SkillTable.getInstance().getInfo(1501, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Condition
- SkillTable.getInstance().getInfo(1040, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Shield
- SkillTable.getInstance().getInfo(1059, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Empower
- SkillTable.getInstance().getInfo(1078, 6).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Concentration
- SkillTable.getInstance().getInfo(1303, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Wild Magic
- SkillTable.getInstance().getInfo(1413, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Magnus' Chant
- SkillTable.getInstance().getInfo(1392, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Holy Resistence
- SkillTable.getInstance().getInfo(1393, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Unholy Resistence
- /** Song **/
- SkillTable.getInstance().getInfo(264, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Earth
- SkillTable.getInstance().getInfo(268, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Wind
- SkillTable.getInstance().getInfo(267, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Warding
- SkillTable.getInstance().getInfo(304, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Vitality
- SkillTable.getInstance().getInfo(349, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Renewal
- SkillTable.getInstance().getInfo(529, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Elemental
- SkillTable.getInstance().getInfo(270, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Invocation
- SkillTable.getInstance().getInfo(305, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Vengeance
- /** Dance **/
- SkillTable.getInstance().getInfo(273, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of the Mystic
- SkillTable.getInstance().getInfo(276, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Concentration
- SkillTable.getInstance().getInfo(365, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Siren's Dance
- SkillTable.getInstance().getInfo(530, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Aligment
- if (isPet && player.getPet() != null)
- {
- player.getPet().setCurrentCp(player.getPet().getMaxCp()); // Full CP
- player.getPet().setCurrentHp(player.getPet().getMaxHp()); // Full HP
- player.getPet().setCurrentMp(player.getPet().getMaxMp()); // Full MP
- }
- player.setCurrentCp(player.getMaxCp()); // Full CP
- player.setCurrentHp(player.getMaxHp()); // Full HP
- player.setCurrentMp(player.getMaxMp()); // Full MP
- htmltext = "buffer/" + prefix + "main.htm";
- }
- else if (event.equals("buffer"))
- {
- htmltext = "buffer/" + prefix + "main.htm";
- }
- else if (event.equals("merchant"))
- {
- htmltext = "merchant/main.htm";
- }
- else if (event.equals("weapons.htm"))
- {
- htmltext = "merchant/" + event;
- }
- else if (event.equals("armors.htm"))
- {
- htmltext = "merchant/" + event;
- }
- else if (event.equals("jevels.htm"))
- {
- htmltext = "merchant/" + event;
- }
- else if (event.equals("teleporter"))
- {
- htmltext = "teleporter/main.htm";
- }
- else if (event.equals("convertors.htm"))
- {
- htmltext = "merchant/" + event;
- }
- /** Merchant Menus **/
- else if (event.equals("mammon"))
- {
- htmltext = "merchant/mammon/main.htm";
- }
- else if (event.equals("mammon_s"))
- {
- htmltext = "merchant/mammon/s.htm";
- }
- else if (event.equals("mammon_a"))
- {
- htmltext = "merchant/mammon/a.htm";
- }
- else if (event.equals("fame"))
- {
- htmltext = "merchant/fame/main.htm";
- }
- else if (event.equals("fame_items"))
- {
- htmltext = "merchant/fame/items.htm";
- }
- else if (event.equalsIgnoreCase("aa_convert"))
- {
- L2ItemInstance blueStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_BLUE_ID);
- L2ItemInstance greenStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_GREEN_ID);
- L2ItemInstance redStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_RED_ID);
- long blueStoneCountAll = blueStonesAll == null ? 0 : blueStonesAll.getCount();
- long greenStoneCountAll = greenStonesAll == null ? 0 : greenStonesAll.getCount();
- long redStoneCountAll = redStonesAll == null ? 0 : redStonesAll.getCount();
- long ancientAdenaRewardAll = 0;
- ancientAdenaRewardAll = SevenSigns.calcAncientAdenaReward(blueStoneCountAll, greenStoneCountAll, redStoneCountAll);
- if (ancientAdenaRewardAll == 0)
- {
- return "You dont have enough stones.";
- }
- if (blueStoneCountAll > 0)
- player.destroyItemByItemId("SevenSigns", SevenSigns.SEAL_STONE_BLUE_ID, blueStoneCountAll, npc, true);
- if (greenStoneCountAll > 0)
- player.destroyItemByItemId("SevenSigns", SevenSigns.SEAL_STONE_GREEN_ID, greenStoneCountAll, npc, true);
- if (redStoneCountAll > 0)
- player.destroyItemByItemId("SevenSigns", SevenSigns.SEAL_STONE_RED_ID, redStoneCountAll, npc, true);
- player.addAncientAdena("SevenSigns", ancientAdenaRewardAll, npc, true);
- return "Convertion Complete.";
- }
- else if (event.equals("fame_pk"))
- {
- if (player.getFame() >= 5000 && player.getClassId().level() >= 2 && player.getClan() != null && player.getClan().getLevel() >= 5)
- {
- if (player.getPkKills() > 0)
- {
- player.setFame(player.getFame() - 5000);
- player.setPkKills(player.getPkKills() - 1);
- player.sendPacket(new UserInfo(player));
- player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendMessage("You PK Points has been decreased.");
- }
- else
- player.sendMessage("You dont have enough PK.");
- }
- else
- player.sendMessage("You dont have enough Fame.");
- return "merchant/fame/main.htm";
- }
- else if (event.equals("fame_crp"))
- {
- if (player.getClan() != null && player.getClan().getLevel() >= 5)
- {
- if (player.getFame() >= 1000 && player.getClassId().level() >= 2)
- {
- player.setFame(player.getFame() - 1000);
- player.sendPacket(new UserInfo(player));
- player.sendPacket(new ExBrExtraUserInfo(player));
- player.getClan().addReputationScore(50, true);
- player.sendPacket(new SystemMessage(SystemMessageId.ACQUIRED_50_CLAN_FAME_POINTS));
- }
- else
- player.sendMessage("You dont have enough Fame.");
- }
- else
- player.sendMessage("If you are not part of a clan, or if your clan status is too low, your victory cannot be recognized.");
- return "merchant/fame/main.htm";
- }
- else if (event.equalsIgnoreCase("ishuma"))
- {
- return "merchant/ishuma/main.htm";
- }
- /** Teleports **/
- else if (event.equals("giran.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("aden.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("toi.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("goddard.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("rune.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("dion.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("oren.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("gludio.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("gludin.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("schuttgart.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("heine.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("hv.htm"))
- {
- htmltext = "teleporter/townareas/" + event;
- }
- else if (event.equals("towns.htm"))
- {
- htmltext = "teleporter/" + event;
- }
- else if (event.equals("custom.htm"))
- {
- htmltext = event;
- }
- else if (event.equals("remove_clan_wait"))
- {
- if (player.getFame() < 5000)
- {
- player.sendMessage("You don't have enough Fame points");
- return "";
- }
- else if (player.getClanJoinExpiryTime() > 0)
- {
- player.sendMessage("Your clan wait penalty has been reset.");
- player.setClanJoinExpiryTime(0);
- player.setFame(player.getFame() - 5000);
- player.broadcastUserInfo();
- return "";
- }
- else
- {
- player.sendMessage("You don't have clan wait penalty");
- return "";
- }
- }
- else if (event.equals("remove_karma"))
- {
- if (player.getFame() < 5000)
- {
- player.sendMessage("You don't have enough Fame points");
- return "";
- }
- else if (player.getKarma() > 0)
- {
- player.setKarma(0);
- player.setFame(player.getFame() - 5000);
- player.sendMessage("Your Karma Points were successfully cleared");
- player.broadcastUserInfo();
- return "";
- }
- else
- {
- player.sendMessage("You don't have karma currently");
- return "";
- }
- }
- else if (event.equals("decrease_pk"))
- {
- if (player.getFame() < 5000)
- {
- player.sendMessage("You don't have enough Fame points");
- return "";
- }
- else if (player.getPkKills() > 0)
- {
- player.setPkKills(player.getPkKills() - 1);
- player.setFame(player.getFame() - 5000);
- player.sendMessage("You have successfully removed 1 PK point");
- player.broadcastUserInfo();
- return "";
- }
- else
- {
- player.sendMessage("You don't have pk currently");
- return "";
- }
- }
- else if (event.equals("receive_recommend"))
- {
- if (player.getFame() < 2000)
- {
- player.sendMessage("You don't have enough Fame points");
- return "";
- }
- else
- {
- player.setRecomHave(player.getRecomHave() + 5);
- player.setFame(player.getFame() - 2000);
- player.sendMessage("You have successfully received 5 recommendation points");
- player.broadcastUserInfo();
- return "";
- }
- }
- else if (event.equals("increase_crp"))
- {
- if (player.getClan() != null && player.getClan().getLevel() >= 5)
- {
- if (player.getFame() < 10000)
- {
- player.sendMessage("You don't have enough Fame points");
- return "";
- }
- else
- {
- player.getClan().addReputationScore(1000, true);
- player.getClan().broadcastToOnlineMembers(new PledgeShowInfoUpdate(player.getClan()));
- player.getClan().broadcastToOnlineMembers(SystemMessage.sendString("Clan Reputation points have been increased by 1000 from " + player.getName()));
- player.setFame(player.getFame() - 10000);
- player.sendMessage("You have successfully increased your Clan Points by 1000 points");
- player.broadcastUserInfo();
- return "";
- }
- }
- else
- {
- player.sendMessage("Sorry " + player.getName() + " clans level 5 and above can receive clan reputation points only");
- return "";
- }
- }
- else if (event.equals("delevel"))
- {
- if (player.getFame() < 1000)
- {
- player.sendMessage("You don't have enough Fame points");
- return "";
- }
- else if (player.getLevel() > 70)
- {
- int playerLevel = player.getLevel();
- long xpcur = player.getStat().getExp();
- long xpres = player.getStat().getExpForLevel(playerLevel - 1);
- player.getStat().removeExp(xpcur - xpres);
- player.sendMessage("You have successfully deleveled");
- player.setFame(player.getFame() - 1000);
- player.broadcastUserInfo();
- return "";
- }
- else
- {
- player.sendMessage("You can delevel only to 70 lvl.");
- }
- }
- else if (event.equals("augument"))
- {
- htmltext = "merchant/augumentation/augument.htm";
- }
- else if (event.equals("catacombs.htm"))
- {
- htmltext = "teleporter/" + event;
- }
- else if (event.equals("necropolis.htm"))
- {
- htmltext = "teleporter/" + event;
- }
- else if (event.equals("move_to_sellers"))
- {
- player.setInstanceId(20000);
- player.teleToLocation(83428, 148616, -3400);
- if (player.getPet() != null)
- {
- player.getPet().setInstanceId(player.getInstanceId());
- player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
- }
- htmltext = "You are moved into Sellers zone now you can sit on private store sell or just buy something :)";
- }
- else if (event.equals("move_to_buyers"))
- {
- player.setInstanceId(20001);
- player.teleToLocation(83428, 148616, -3400);
- if (player.getPet() != null)
- {
- player.getPet().setInstanceId(player.getInstanceId());
- player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
- }
- htmltext = "You are moved into Buyers zone now you can sit on private store buy or just sell something :)";
- }
- else if (event.equals("move_to_crafters"))
- {
- player.setInstanceId(20002);
- player.teleToLocation(83428, 148616, -3400);
- if (player.getPet() != null)
- {
- player.getPet().setInstanceId(player.getInstanceId());
- player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
- }
- htmltext = "You are moved into Crafters zone now you can sit on private store craft or just craft something :)";
- }
- else if (event.equals("move_to_package_sellers"))
- {
- player.setInstanceId(20003);
- player.teleToLocation(83428, 148616, -3400);
- if (player.getPet() != null)
- {
- player.getPet().setInstanceId(player.getInstanceId());
- player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
- }
- htmltext = "You are moved into Package Sellers zone now you can sit on private package store sell or just buy something :)";
- }
- else if (event.equals("move_to_normal"))
- {
- player.setInstanceId(0);
- player.teleToLocation(player.getX(), player.getY(), player.getZ());
- if (player.getPet() != null)
- {
- player.getPet().setInstanceId(player.getInstanceId());
- player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
- }
- htmltext = "You are moved into normal world";
- }
- else if (event.equals("wh"))
- {
- htmltext = "merchant/warehouse/main.htm";
- }
- else if (event.equals("wh_private"))
- {
- htmltext = "merchant/warehouse/private.htm";
- }
- else if (event.equals("wh_clan"))
- {
- htmltext = "merchant/warehouse/clan.htm";
- }
- else if (event.equals("event.htm"))
- {
- htmltext = event;
- }
- else if (event.startsWith("teleport_"))
- {
- htmltext = "";
- String[] teleport = event.split("_");
- if (teleport != null)
- {
- int id = Integer.parseInt(teleport[1]);
- if (id > 0)
- {
- for (int[] tele : teleports)
- {
- if (tele[0] == id)
- {
- if (player.getInstanceId() > 0)
- player.setInstanceId(0);
- player.teleToLocation(tele[1], tele[2], tele[3], true);
- htmltext = "You have been teleported.";
- }
- }
- }
- }
- }
- else if (event.startsWith("townteleport_"))
- {
- htmltext = "";
- String[] teleport = event.split("_");
- if (teleport != null)
- {
- int id = Integer.parseInt(teleport[1]);
- if (id > 0)
- {
- for (int[] tele : town_teleports)
- {
- if (tele[0] == id)
- {
- if (player.getInstanceId() > 0)
- player.setInstanceId(0);
- player.teleToLocation(tele[1], tele[2], tele[3], true);
- htmltext = "You have been teleported.";
- }
- }
- }
- }
- }
- return htmltext;
- }
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.getPvpFlag() > 0)
- return "<html><body>Please come down then we can talk again</body></html>";
- return "main.htm";
- }
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.getPvpFlag() > 0)
- return "<html><body>Please come down then we can talk again</body></html>";
- return "home.htm";
- }
- public static void main(String[] args)
- {
- new AIONpc(-1, "AIONpc", "custom");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement