Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 38.15 KB | None | 0 0
  1. package custom.AIONpc;
  2.  
  3. import java.util.Map;
  4.  
  5. import javolution.util.FastMap;
  6.  
  7. import com.l2jserver.gameserver.SevenSigns;
  8. import com.l2jserver.gameserver.datatables.SkillTable;
  9. import com.l2jserver.gameserver.model.L2ItemInstance;
  10. import com.l2jserver.gameserver.model.actor.L2Npc;
  11. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  12. import com.l2jserver.gameserver.model.quest.Quest;
  13. import com.l2jserver.gameserver.network.SystemMessageId;
  14. import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
  15. import com.l2jserver.gameserver.network.serverpackets.PledgeShowInfoUpdate;
  16. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  17. import com.l2jserver.gameserver.network.serverpackets.UserInfo;
  18. import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
  19.  
  20. public class AIONpc extends Quest
  21. {
  22.    
  23.     private final static int NPC = 999999;
  24.     private final static int[][] teleports = {
  25.     /** Girazxn Area **/
  26.     { 1, 70000, 126636, -3804 }, // Death Pass
  27.     { 2, 47114, 187152, -3485 }, // Giran Harbor
  28.     { 3, 42006, 208234, -3756 }, // Devil's Isle
  29.     { 4, 41298, 200350, -4583 }, // Pirate's Tunnel
  30.     { 5, 122881, 110792, -3727 }, // Dragon Valley
  31.     { 6, 131355, 114451, -3718 }, // Antharas' Lair Entrance
  32.     { 7, 173826, 115333, -7708 }, // Antharas' Nest
  33.     /** Aden **/
  34.     { 8, 165584, 85997, -2338 }, // Anghel Waterfall
  35.     { 9, 146828, -12859, -4455 }, // The Blazing Swamp
  36.     { 10, 109699, -7908, -2902 }, // Border Outpost(East Side)
  37.     { 11, 114172, -18034, -1875 }, // Border Outpost(West Side)
  38.     { 12, 172136, 20325, -3326 }, // Cemetary
  39.     { 13, 150086, 46733, -3412 }, // Coliseum
  40.     { 14, 185395, 20359, -3270 }, // The Forbidden Gateway
  41.     { 15, 150477, 85907, -2753 }, // The Forest Of Mirrors
  42.     { 16, 174528, 52683, -4369 }, // The Giants Cave
  43.     /** Tower of Insolence **/
  44.     { 17, 121685, 15749, -3852 }, // 1st Floor
  45.     { 18, 114665, 12697, -3609 }, // 2nd Floor
  46.     { 19, 111249, 16031, -2127 }, // 3rd Floor
  47.     { 20, 114605, 19371, -645 }, // 4th Floor
  48.     { 21, 117996, 16103, 843 }, // 5th Floor
  49.     { 22, 114743, 19707, 1947 }, // 6th Floor
  50.     { 23, 114552, 12354, 2957 }, // 7th Floor
  51.     { 24, 110963, 16147, 3967 }, // 8th Floor
  52.     { 25, 117356, 18462, 4977 }, // 9th Floor
  53.     { 26, 118250, 15858, 5897 }, // 10th Floor
  54.     { 27, 115824, 17242, 6760 }, // 11th Floor
  55.     { 28, 113288, 14692, 7997 }, // 12th Floor
  56.     { 29, 115322, 16756, 9007 }, // 13th Floor
  57.     /** Goddard **/
  58.     { 30, 107944, -87728, -2917 }, // Monastery of Silence
  59.     { 31, 149616, -112428, -2065 }, // Hot Springs
  60.     { 32, 108275, -53785, -2524 }, // Varka Silenos Outpost
  61.     { 33, 170723, -116207, -2067 }, // Forge of the Gods
  62.     { 34, 188191, -74959, -2738 }, // Imperial Tomb
  63.     { 35, 178293, -83983, -7209 }, // Four Sepulchers
  64.     { 36, 149774, -81243, -5624 }, // Ketra Orc OutPost
  65.     { 37, 176886, -50812, -3394 }, // Wall of Agros
  66.     /** Heine **/
  67.     { 38, 101712, 174198, -2457 }, // Alligator Island
  68.     { 39, 84904, 182410, -3670 }, // Field Of Silence
  69.     { 40, 86519, 211911, -3764 }, // Field Of Whispers
  70.     { 41, 149361, 172327, -945 }, // Parnassus
  71.     { 42, 159111, 183721, -3720 }, // Isle of Prayer
  72.     { 43, 152857, 149040, -3280 }, // Chromatic Highlands
  73.     /** Rune **/
  74.     { 44, 38015, -38305, -3609 }, // Rune Harbor
  75.     { 45, 93078, -58289, -2854 }, // Swamp of Screams
  76.     { 46, 89685, -44666, -2147 }, // Stakato Nest
  77.     { 47, 52063, -54448, -3166 }, // Forest of the Dead
  78.     { 48, 59425, -47753, -2562 }, // Cursed Village
  79.     { 49, 52270, -81456, -2767 }, // Beast Farm
  80.     { 50, 67992, -72012, -3748 }, // Vally of Saints
  81.     { 51, 40723, -92245, -3747 }, // Windtail Waterfall
  82.     { 52, 36603, -51202, 712 }, // Pagan's Temple
  83.     /** Dion **/
  84.     { 53, 51055, 141959, -2869 }, // Execution Grounds
  85.     { 54, 17192, 114178, -3439 }, // Cruma Tower Entrance
  86.     { 55, 17724, 114004, -11672 }, // Cruma Tower 1st Floor
  87.     { 56, 17730, 108301, -9057 }, // Cruma Tower 2nd Floor
  88.     { 57, 17719, 115430, -6582 }, // Cruma Tower 3rd Floor
  89.     /** Oren **/
  90.     { 58, 62425, 30856, -3779 }, // Sea Of Spores
  91.     { 59, 85332, 16186, -3673 }, // Ivory Tower (Lobby)
  92.     { 60, 70833, 6426, -3639 }, // Northern Waterfall
  93.     /** Guldio **/
  94.     { 61, -56235, 106668, -3773 }, // Ruins of Agony
  95.     { 62, -20043, 137688, -3896 }, // Ruins of Despair
  96.     { 63, -26111, 173692, -4152 }, // Ant's Nest
  97.     { 64, -16730, 209417, -3664 }, // South of Wastelands
  98.     { 65, -23403, 186599, -4317 }, // Wastelands
  99.     { 66, -149365, 255309, -86 }, // Gludio AirShip Field
  100.     /** Gludin **/
  101.     { 67, -56742, 140569, -2625 }, // Abandoned Camp
  102.     { 68, -66931, 120296, -3651 }, // Fellmere Lake
  103.     { 69, -53838, 179285, -4640 }, // Forgotten Temple
  104.     { 70, -94841, 147430, -2675 }, // Gludin Clelse iffside Estate
  105.     { 71, -89199, 149962, -3586 }, // Gludin Harbor
  106.     { 72, -90562, 108182, -3546 }, // Orc Barracks
  107.     /** Schuttgart **/
  108.     { 73, 56095, -118952, -3290 }, // Crypts of Disgrace
  109.     { 74, 76860, -125169, -3414 }, // Den of Evil
  110.     { 75, 108090, -120925, -3628 }, // Frost Lake
  111.     { 76, 113487, -109888, -865 }, // Ice Merchant Cabin
  112.     { 77, 23006, -126115, -870 }, // Valley of The Lords
  113.     { 78, 88275, -125690, -3815 }, // Pavel Ruins
  114.     { 79, 113900, -154175, -1488 }, // Plunderous Plains
  115.     { 80, 48336, -107734, -1577 }, // Graverobber Hideout
  116.     { 81, 69762, -111260, -1807 }, // Caron's Dungeon
  117.     { 82, 40825, -90317, -3095 }, // Windtail Waterfall
  118.     { 83, 87475, -109835, -3330 }, // Archaic Laboratory
  119.     { 84, 117715, -141750, -2700 }, // Sky Wagon Relic
  120.     { 85, 124585, -160240, -1180 }, // Brigand Stronghold
  121.     /** Hunters Vilage **/
  122.     { 86, 105751, 113370, -3199 }, // Hardin's Academy
  123.     { 87, 104413, 33734, -3795 }, // Enchanted Valley (North)
  124.     { 88, 124899, 61995, -3915 }, // Enchanted Valley (South)
  125.     /** HellBound **/
  126.     { 89, -11802, 236360, -3271 }, // HellBound
  127.     /** Necropolis **/
  128.     { 90, 83357, 209207, -5437 }, // Saints
  129.     { 91, 172600, -17599, -4899 }, // Desciple  
  130.     { 92, 118576, 132800, -4832 }, // Martydom  
  131.     { 93, -51942, 79096, -4739 }, // Devotion  
  132.     { 94, -21423, 77375, -5171 }, // Patriot  
  133.     { 95, 111552, 174014, -5440 }, // Warshipper  
  134.     { 96, 45249, 123548, -5411 }, // Piligrims  
  135.     { 97, -41569, 210082, -5085 }, // Sacrafice
  136.     /** Catacombs **/
  137.     { 98, -19176, 13504, -4899 }, // Dark Omens
  138.     { 99, 12521, -248481, -9585 }, // Forbiden Path
  139.     { 100, 140690, 79679, -5429 }, // Witch
  140.     { 101, -20195, -250764, -8163 }, // Apostate
  141.     { 102, 46542, 170305, -4979 }, // Branded
  142.     { 103, -53174, -250275, -7911 }, // Heretics
  143.     };
  144.    
  145.     private static final int[][] town_teleports = { { 1, 82698, 148638, -3473 }, // Giran Center
  146.     { 2, 147450, 27064, -2208 }, // Aden Center
  147.     { 3, 147725, -56517, -2780 }, // Goddard Center
  148.     { 4, 44070, -50243, -796 }, // Rune Center
  149.     { 5, 18748, 145437, -3132 }, // Dion Center
  150.     { 6, 82321, 55139, -1529 }, // Oren Center
  151.     { 7, -14225, 123540, -3121 }, // Gludio Center
  152.     { 8, -83063, 150791, -3133 }, // Gludin Center
  153.     { 9, 87358, -141982, -1341 }, // Schuttgart Center
  154.     { 10, 111115, 219017, -3547 }, // Heine Center
  155.     { 11, 116589, 76268, -2734 }, // Hunters Center
  156.     { 12, 85332, 16186, -3673 }, // Ivory Tower
  157.     { 13, 10691, -24165, -3649 }, // Primevile Island
  158.     { 14, 12428, 16551, -4588 }, // Dark elven
  159.     { 15, 45873, 49288, -3064 }, // Elven elven
  160.     { 16, -82687, 243157, -3734 }, // Human elven
  161.     { 17, 116551, -182493, -1525 }, // Dwarven
  162.     { 18, -44133, -113911, -244 }, // Orc
  163.     { 19, -116934, 46616, 368 }, // Kamael
  164.    
  165.     };
  166.    
  167.     private static final Map<Integer, Integer> PP_SKILLS = new FastMap<Integer, Integer>();
  168.    
  169.     static
  170.     {
  171.         // skillId, skilllevel
  172.         PP_SKILLS.put(1204, 2); // Wind Walk
  173.         PP_SKILLS.put(1040, 3); // Shield
  174.         PP_SKILLS.put(1068, 3); // Might
  175.         PP_SKILLS.put(1035, 4); // Mental Shield
  176.         PP_SKILLS.put(1062, 2); // Berserker Spirit
  177.         PP_SKILLS.put(1086, 2); // Haste
  178.         PP_SKILLS.put(1240, 3); // Guidance
  179.         PP_SKILLS.put(1085, 3); // Acumen
  180.         PP_SKILLS.put(1062, 2); // Berserker Spirit
  181.         PP_SKILLS.put(1077, 3); // Focus
  182.         PP_SKILLS.put(1242, 3); // Death Whisper
  183.         PP_SKILLS.put(1388, 3); // Greater Might
  184.         PP_SKILLS.put(1389, 3); // Greater Shield
  185.         PP_SKILLS.put(1356, 1); // Prophecy of Fire
  186.         PP_SKILLS.put(1043, 1); // Holy Weapon
  187.         PP_SKILLS.put(1499, 1); // Improved Combat
  188.         PP_SKILLS.put(1502, 1); // Improved Critical
  189.         PP_SKILLS.put(1501, 1); // Improved Condition
  190.         PP_SKILLS.put(1354, 1); // Arcane Protection
  191.         PP_SKILLS.put(1036, 2); // Magic Barrier
  192.     }
  193.    
  194.     private static final Map<Integer, Integer> SE_SKILLS = new FastMap<Integer, Integer>();
  195.    
  196.     static
  197.     {
  198.         // skillId, skilllevel
  199.         SE_SKILLS.put(1059, 3); // Empower
  200.         SE_SKILLS.put(1268, 4); // Vampiric Rage
  201.         SE_SKILLS.put(1392, 3); // Holy Resistance
  202.         SE_SKILLS.put(1393, 3); // Unholy Resistance
  203.         SE_SKILLS.put(1303, 2); // Wild Magic
  204.         SE_SKILLS.put(1357, 1); // Prophecy of Wind
  205.         SE_SKILLS.put(1352, 1); // Elemental Protection
  206.         SE_SKILLS.put(1078, 6); // Concentration
  207.     }
  208.    
  209.     private static final Map<Integer, Integer> EE_SKILLS = new FastMap<Integer, Integer>();
  210.    
  211.     static
  212.     {
  213.         // skillId, skilllevel
  214.         EE_SKILLS.put(1087, 3); // Agility
  215.         EE_SKILLS.put(1355, 1); // Prophecy of Water
  216.         EE_SKILLS.put(1397, 2); // Clarity
  217.         EE_SKILLS.put(1259, 2); // Resist Shock
  218.        
  219.     }
  220.    
  221.     private static final Map<Integer, Integer> WC_SKILLS = new FastMap<Integer, Integer>();
  222.    
  223.     static
  224.     {
  225.         // skillId, skilllevel
  226.         WC_SKILLS.put(1363, 1); // Chant of Victory
  227.         WC_SKILLS.put(1413, 1); // Magnus' Chant
  228.         WC_SKILLS.put(1284, 3); // Chant of Revenge
  229.         WC_SKILLS.put(1362, 1); // Chant of Spirit
  230.     }
  231.    
  232.     private static final Map<Integer, Integer> SWS_SKILLS = new FastMap<Integer, Integer>();
  233.    
  234.     static
  235.     {
  236.         // skillId, skilllevel
  237.         SWS_SKILLS.put(264, 1); // Song of Earth
  238.         SWS_SKILLS.put(268, 1); // Song of Wind
  239.         SWS_SKILLS.put(266, 1); // Song of Water
  240.         SWS_SKILLS.put(267, 1); // Song of Warding
  241.         SWS_SKILLS.put(304, 1); // Song of Vitality
  242.         SWS_SKILLS.put(265, 1); // Song of Life
  243.         SWS_SKILLS.put(270, 1); // Song of Invocation
  244.         SWS_SKILLS.put(349, 1); // Song of Renewal
  245.         SWS_SKILLS.put(364, 1); // Song of Champion
  246.         SWS_SKILLS.put(305, 1); // Song of Vengeance
  247.         SWS_SKILLS.put(308, 1); // Song of Storm Guard
  248.         SWS_SKILLS.put(306, 1); // Song of Flame Guard
  249.         SWS_SKILLS.put(269, 1); // Song of Hunter
  250.         SWS_SKILLS.put(363, 1); // Song of Meditation
  251.         SWS_SKILLS.put(529, 1); // Song of Elemental
  252.     }
  253.    
  254.     private static final Map<Integer, Integer> BD_SKILLS = new FastMap<Integer, Integer>();
  255.    
  256.     static
  257.     {
  258.         // skillId, skilllevel
  259.         BD_SKILLS.put(530, 1); // Dance of Aligment
  260.         BD_SKILLS.put(271, 1); // Dance of Warrior
  261.         BD_SKILLS.put(272, 1); // Dance of Inspiration
  262.         BD_SKILLS.put(273, 1); // Dance of the Mystic
  263.         BD_SKILLS.put(276, 1); // Dance of Concentration
  264.         BD_SKILLS.put(310, 1); // Dance of Vampire
  265.         BD_SKILLS.put(275, 1); // Dance of Fury
  266.         BD_SKILLS.put(274, 1); // Dance of Fire
  267.         BD_SKILLS.put(365, 1); // Siren's Dance
  268.         BD_SKILLS.put(277, 1); // Dance of Light
  269.         BD_SKILLS.put(307, 1); // Dance of Aqua Guard
  270.         BD_SKILLS.put(309, 1); // Dance of Earth Guard
  271.     }
  272.    
  273.     private static final Map<Integer, Integer> OL_SKILLS = new FastMap<Integer, Integer>();
  274.    
  275.     static
  276.     {
  277.         // skillId, skilllevel
  278.         OL_SKILLS.put(1414, 1); // Victory Pa'agrio
  279.         OL_SKILLS.put(1416, 1); // Pa'agrio's Fists
  280.     }
  281.    
  282.     public AIONpc(int questId, String name, String descr)
  283.     {
  284.         super(questId, name, descr);
  285.        
  286.         addStartNpc(NPC);
  287.         addFirstTalkId(NPC);
  288.         addTalkId(NPC);
  289.     }
  290.    
  291.     @Override
  292.     public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  293.     {
  294.         String htmltext = "";
  295.         String prefix = "";
  296.         boolean isPet = false;
  297.         if (player == null || event == null)
  298.             return htmltext;
  299.            
  300.         if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.getPvpFlag() > 0)
  301.             return "<html><body>Please come down then we can talk again</body></html>";
  302.            
  303.         if (event.equals("pet_buffer"))
  304.             return "buffer/pet_main.htm";
  305.        
  306.         if (event.startsWith("pet_"))
  307.         {
  308.             isPet = true;
  309.             prefix = "pet_";
  310.             event = event.substring(4);
  311.         }
  312.        
  313.         try
  314.         {
  315.             int skill;
  316.            
  317.             skill = Integer.parseInt(event);
  318.            
  319.             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))
  320.             {
  321.                 if (PP_SKILLS.containsKey(skill))
  322.                 {
  323.                     SkillTable.getInstance().getInfo(skill, PP_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  324.                     htmltext = "buffer/" + prefix + "prophet.htm";
  325.                 }
  326.                
  327.                 else if (SE_SKILLS.containsKey(skill))
  328.                 {
  329.                     SkillTable.getInstance().getInfo(skill, SE_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  330.                     htmltext = "buffer/" + prefix + "shillien-elder.htm";
  331.                 }
  332.                
  333.                 else if (EE_SKILLS.containsKey(skill))
  334.                 {
  335.                     SkillTable.getInstance().getInfo(skill, EE_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  336.                     htmltext = "buffer/" + prefix + "elven-elder.htm";
  337.                 }
  338.                
  339.                 else if (SWS_SKILLS.containsKey(skill))
  340.                 {
  341.                     SkillTable.getInstance().getInfo(skill, SWS_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  342.                     htmltext = "buffer/" + prefix + "sword-singer.htm";
  343.                 }
  344.                
  345.                 else if (BD_SKILLS.containsKey(skill))
  346.                 {
  347.                     SkillTable.getInstance().getInfo(skill, BD_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  348.                     htmltext = "buffer/" + prefix + "blade-dancer.htm";
  349.                 }
  350.                
  351.                 else if (OL_SKILLS.containsKey(skill))
  352.                 {
  353.                     SkillTable.getInstance().getInfo(skill, OL_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  354.                     htmltext = "buffer/" + prefix + "overlord.htm";
  355.                 }
  356.                
  357.                 else if (WC_SKILLS.containsKey(skill))
  358.                 {
  359.                     SkillTable.getInstance().getInfo(skill, WC_SKILLS.get(skill)).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player);
  360.                     htmltext = "buffer/" + prefix + "war-cryer.htm";
  361.                 }
  362.             }
  363.         }
  364.         catch (NumberFormatException nfe)
  365.         {}
  366.        
  367.         //Restore HP/MP
  368.         if (event.equals("fullhpmp"))
  369.         {
  370.             if (isPet && player.getPet() != null)
  371.             {
  372.                 player.getPet().setCurrentCp(player.getPet().getMaxCp()); // Full CP
  373.                 player.getPet().setCurrentHp(player.getPet().getMaxHp()); // Full HP
  374.                 player.getPet().setCurrentMp(player.getPet().getMaxMp()); // Full MP
  375.             }
  376.             else
  377.             {
  378.                 player.setCurrentCp(player.getMaxCp()); // Full CP
  379.                 player.setCurrentHp(player.getMaxHp()); // Full HP
  380.                 player.setCurrentMp(player.getMaxMp()); // Full MP
  381.             }
  382.             htmltext = "buffer/" + prefix + "main.htm";
  383.         }
  384.        
  385.         //Cancel All Buffs
  386.         else if (event.equals("cancel"))
  387.         {
  388.             if (isPet && player.getPet() != null)
  389.                 player.getPet().stopAllEffects(); // Cancel All
  390.             else
  391.                 player.stopAllEffects(); // Cancel All
  392.             htmltext = "buffer/" + prefix + "main.htm";
  393.         }
  394.        
  395.         //Prophet Buffs
  396.         else if (event.equals("prophet"))
  397.         {
  398.             htmltext = "buffer/" + prefix + "prophet.htm";
  399.         }
  400.        
  401.         //Shillien Elder Buffs
  402.         else if (event.equals("shillienelder"))
  403.         {
  404.             htmltext = "buffer/" + prefix + "shillien-elder.htm";
  405.         }
  406.        
  407.         //Elven Elder Buffs
  408.         else if (event.equals("elvenelder"))
  409.         {
  410.             htmltext = "buffer/" + prefix + "elven-elder.htm";
  411.         }
  412.        
  413.         //Doom Cryer Buffs
  414.         else if (event.equals("warcryer"))
  415.         {
  416.             htmltext = "buffer/" + prefix + "war-cryer.htm";
  417.         }
  418.        
  419.         //Overlord Buffs
  420.         else if (event.equals("overlord"))
  421.         {
  422.             htmltext = "buffer/" + prefix + "overlord.htm";
  423.         }
  424.        
  425.         //Sword Singer
  426.         else if (event.equals("swordsinger"))
  427.         {
  428.             htmltext = "buffer/" + prefix + "sword-singer.htm";
  429.         }
  430.        
  431.         //Blade Dancer Buffs
  432.         else if (event.equals("blacedancer"))
  433.         {
  434.             htmltext = "buffer/" + prefix + "blade-dancer.htm";
  435.         }
  436.        
  437.         //Other Buffs
  438.         else if (event.equals("other"))
  439.         {
  440.             htmltext = "buffer/" + prefix + "other.htm";
  441.         }
  442.        
  443.         //Custom Fighter
  444.         else if (event.equals("fullfighter"))
  445.         {
  446.             /** Buffs **/
  447.            
  448.             SkillTable.getInstance().getInfo(1204, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Wind Walk
  449.             SkillTable.getInstance().getInfo(1035, 4).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Mental Shield
  450.             SkillTable.getInstance().getInfo(1086, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Haste
  451.             SkillTable.getInstance().getInfo(1240, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Guidence
  452.             SkillTable.getInstance().getInfo(1388, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Greater Might
  453.             SkillTable.getInstance().getInfo(1499, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Combat
  454.             SkillTable.getInstance().getInfo(1502, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Critical
  455.             SkillTable.getInstance().getInfo(1501, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Condition
  456.             SkillTable.getInstance().getInfo(1268, 4).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Vampiric Rage
  457.             SkillTable.getInstance().getInfo(1363, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Chant of Victory
  458.             SkillTable.getInstance().getInfo(1352, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Elemental Protection
  459.             SkillTable.getInstance().getInfo(1036, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Magic Barrier
  460.             SkillTable.getInstance().getInfo(1354, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Arcane Protection
  461.             SkillTable.getInstance().getInfo(1062, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Berserker Spirit
  462.  
  463.             /** Song **/
  464.            
  465.             SkillTable.getInstance().getInfo(264, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Earth
  466.             SkillTable.getInstance().getInfo(268, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Wind
  467.             SkillTable.getInstance().getInfo(267, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Warding
  468.             SkillTable.getInstance().getInfo(304, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Vitality
  469.             SkillTable.getInstance().getInfo(349, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Renewal
  470.             SkillTable.getInstance().getInfo(364, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Champion
  471.             SkillTable.getInstance().getInfo(269, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Hunter
  472.            
  473.             /** Dance **/
  474.            
  475.             SkillTable.getInstance().getInfo(271, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Warrior
  476.             SkillTable.getInstance().getInfo(272, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Inspiration
  477.             SkillTable.getInstance().getInfo(310, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Vampire
  478.             SkillTable.getInstance().getInfo(274, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Fire
  479.             SkillTable.getInstance().getInfo(275, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Fury
  480.            
  481.             if (isPet && player.getPet() != null)
  482.             {
  483.                 player.getPet().setCurrentCp(player.getPet().getMaxCp()); // Full CP
  484.                 player.getPet().setCurrentHp(player.getPet().getMaxHp()); // Full HP
  485.                 player.getPet().setCurrentMp(player.getPet().getMaxMp()); // Full MP
  486.             }
  487.             player.setCurrentCp(player.getMaxCp()); // Full CP
  488.             player.setCurrentHp(player.getMaxHp()); // Full HP
  489.             player.setCurrentMp(player.getMaxMp()); // Full MP
  490.             htmltext = "buffer/" + prefix + "main.htm";
  491.            
  492.         }
  493.        
  494.         //Custom Mage
  495.         else if (event.equals("fullmage"))
  496.         {
  497.             /** Buffs **/
  498.            
  499.             SkillTable.getInstance().getInfo(1204, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Wind Walk
  500.             SkillTable.getInstance().getInfo(1035, 4).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Mental Shield
  501.             SkillTable.getInstance().getInfo(1352, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Elemental Protection
  502.             SkillTable.getInstance().getInfo(1036, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Magic Barrier
  503.             SkillTable.getInstance().getInfo(1354, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Arcane Protection
  504.             SkillTable.getInstance().getInfo(1062, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Berserker Spirit
  505.             SkillTable.getInstance().getInfo(1085, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Acumen
  506.             SkillTable.getInstance().getInfo(1389, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Greater Shiled
  507.             SkillTable.getInstance().getInfo(1501, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Improved Condition
  508.             SkillTable.getInstance().getInfo(1040, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Shield
  509.             SkillTable.getInstance().getInfo(1059, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Empower
  510.             SkillTable.getInstance().getInfo(1078, 6).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Concentration
  511.             SkillTable.getInstance().getInfo(1303, 2).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Wild Magic
  512.             SkillTable.getInstance().getInfo(1413, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Magnus' Chant
  513.             SkillTable.getInstance().getInfo(1392, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Holy Resistence
  514.             SkillTable.getInstance().getInfo(1393, 3).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Unholy Resistence
  515.            
  516.             /** Song **/
  517.            
  518.             SkillTable.getInstance().getInfo(264, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Earth
  519.             SkillTable.getInstance().getInfo(268, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Wind
  520.             SkillTable.getInstance().getInfo(267, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Warding
  521.             SkillTable.getInstance().getInfo(304, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Vitality
  522.             SkillTable.getInstance().getInfo(349, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Renewal
  523.             SkillTable.getInstance().getInfo(529, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Elemental
  524.             SkillTable.getInstance().getInfo(270, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Invocation
  525.             SkillTable.getInstance().getInfo(305, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Song of Vengeance
  526.            
  527.             /** Dance **/
  528.            
  529.             SkillTable.getInstance().getInfo(273, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of the Mystic
  530.             SkillTable.getInstance().getInfo(276, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Concentration
  531.             SkillTable.getInstance().getInfo(365, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Siren's Dance
  532.             SkillTable.getInstance().getInfo(530, 1).getEffects(player, isPet && player.getPet() != null ? player.getPet() : player); // Dance of Aligment
  533.            
  534.             if (isPet && player.getPet() != null)
  535.             {
  536.                 player.getPet().setCurrentCp(player.getPet().getMaxCp()); // Full CP
  537.                 player.getPet().setCurrentHp(player.getPet().getMaxHp()); // Full HP
  538.                 player.getPet().setCurrentMp(player.getPet().getMaxMp()); // Full MP
  539.             }
  540.            
  541.             player.setCurrentCp(player.getMaxCp()); // Full CP
  542.             player.setCurrentHp(player.getMaxHp()); // Full HP
  543.             player.setCurrentMp(player.getMaxMp()); // Full MP
  544.            
  545.             htmltext = "buffer/" + prefix + "main.htm";
  546.         }
  547.        
  548.         else if (event.equals("buffer"))
  549.         {
  550.             htmltext = "buffer/" + prefix + "main.htm";
  551.         }
  552.        
  553.         else if (event.equals("merchant"))
  554.         {
  555.             htmltext = "merchant/main.htm";
  556.         }
  557.        
  558.         else if (event.equals("weapons.htm"))
  559.         {
  560.             htmltext = "merchant/" + event;
  561.         }
  562.        
  563.         else if (event.equals("armors.htm"))
  564.         {
  565.             htmltext = "merchant/" + event;
  566.         }
  567.        
  568.         else if (event.equals("jevels.htm"))
  569.         {
  570.             htmltext = "merchant/" + event;
  571.         }
  572.        
  573.         else if (event.equals("teleporter"))
  574.         {
  575.             htmltext = "teleporter/main.htm";
  576.         }
  577.        
  578.         else if (event.equals("convertors.htm"))
  579.         {
  580.             htmltext = "merchant/" + event;
  581.         }
  582.        
  583.         /** Merchant Menus **/
  584.        
  585.         else if (event.equals("mammon"))
  586.         {
  587.             htmltext = "merchant/mammon/main.htm";
  588.         }
  589.        
  590.         else if (event.equals("mammon_s"))
  591.         {
  592.             htmltext = "merchant/mammon/s.htm";
  593.         }
  594.        
  595.         else if (event.equals("mammon_a"))
  596.         {
  597.             htmltext = "merchant/mammon/a.htm";
  598.         }
  599.        
  600.         else if (event.equals("fame"))
  601.         {
  602.             htmltext = "merchant/fame/main.htm";
  603.         }
  604.        
  605.         else if (event.equals("fame_items"))
  606.         {
  607.             htmltext = "merchant/fame/items.htm";
  608.         }
  609.        
  610.         else if (event.equalsIgnoreCase("aa_convert"))
  611.         {
  612.             L2ItemInstance blueStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_BLUE_ID);
  613.             L2ItemInstance greenStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_GREEN_ID);
  614.             L2ItemInstance redStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_RED_ID);
  615.            
  616.             long blueStoneCountAll = blueStonesAll == null ? 0 : blueStonesAll.getCount();
  617.             long greenStoneCountAll = greenStonesAll == null ? 0 : greenStonesAll.getCount();
  618.             long redStoneCountAll = redStonesAll == null ? 0 : redStonesAll.getCount();
  619.             long ancientAdenaRewardAll = 0;
  620.            
  621.             ancientAdenaRewardAll = SevenSigns.calcAncientAdenaReward(blueStoneCountAll, greenStoneCountAll, redStoneCountAll);
  622.            
  623.             if (ancientAdenaRewardAll == 0)
  624.             {
  625.                 return "You dont have enough stones.";
  626.             }
  627.            
  628.             if (blueStoneCountAll > 0)
  629.                 player.destroyItemByItemId("SevenSigns", SevenSigns.SEAL_STONE_BLUE_ID, blueStoneCountAll, npc, true);
  630.             if (greenStoneCountAll > 0)
  631.                 player.destroyItemByItemId("SevenSigns", SevenSigns.SEAL_STONE_GREEN_ID, greenStoneCountAll, npc, true);
  632.             if (redStoneCountAll > 0)
  633.                 player.destroyItemByItemId("SevenSigns", SevenSigns.SEAL_STONE_RED_ID, redStoneCountAll, npc, true);
  634.            
  635.             player.addAncientAdena("SevenSigns", ancientAdenaRewardAll, npc, true);
  636.            
  637.             return "Convertion Complete.";
  638.            
  639.         }
  640.        
  641.         else if (event.equals("fame_pk"))
  642.         {
  643.             if (player.getFame() >= 5000 && player.getClassId().level() >= 2 && player.getClan() != null && player.getClan().getLevel() >= 5)
  644.             {
  645.                 if (player.getPkKills() > 0)
  646.                 {
  647.                     player.setFame(player.getFame() - 5000);
  648.                     player.setPkKills(player.getPkKills() - 1);
  649.                     player.sendPacket(new UserInfo(player));
  650.                     player.sendPacket(new ExBrExtraUserInfo(player));
  651.                     player.sendMessage("You PK Points has been decreased.");
  652.                 }
  653.                 else
  654.                     player.sendMessage("You dont have enough PK.");
  655.             }
  656.             else
  657.                 player.sendMessage("You dont have enough Fame.");
  658.            
  659.             return "merchant/fame/main.htm";
  660.         }
  661.        
  662.         else if (event.equals("fame_crp"))
  663.         {
  664.             if (player.getClan() != null && player.getClan().getLevel() >= 5)
  665.             {
  666.                 if (player.getFame() >= 1000 && player.getClassId().level() >= 2)
  667.                 {
  668.                     player.setFame(player.getFame() - 1000);
  669.                     player.sendPacket(new UserInfo(player));
  670.                     player.sendPacket(new ExBrExtraUserInfo(player));
  671.                     player.getClan().addReputationScore(50, true);
  672.                     player.sendPacket(new SystemMessage(SystemMessageId.ACQUIRED_50_CLAN_FAME_POINTS));
  673.                 }
  674.                 else
  675.                     player.sendMessage("You dont have enough Fame.");
  676.             }
  677.             else
  678.                 player.sendMessage("If you are not part of a clan, or if your clan status is too low, your victory cannot be recognized.");
  679.            
  680.             return "merchant/fame/main.htm";
  681.         }
  682.         else if (event.equalsIgnoreCase("ishuma"))
  683.         {
  684.             return "merchant/ishuma/main.htm";
  685.         }
  686.        
  687.         /** Teleports **/
  688.         else if (event.equals("giran.htm"))
  689.         {
  690.             htmltext = "teleporter/townareas/" + event;
  691.         }
  692.        
  693.         else if (event.equals("aden.htm"))
  694.         {
  695.             htmltext = "teleporter/townareas/" + event;
  696.         }
  697.        
  698.         else if (event.equals("toi.htm"))
  699.         {
  700.             htmltext = "teleporter/townareas/" + event;
  701.         }
  702.        
  703.         else if (event.equals("goddard.htm"))
  704.         {
  705.             htmltext = "teleporter/townareas/" + event;
  706.         }
  707.        
  708.         else if (event.equals("rune.htm"))
  709.         {
  710.             htmltext = "teleporter/townareas/" + event;
  711.         }
  712.        
  713.         else if (event.equals("dion.htm"))
  714.         {
  715.             htmltext = "teleporter/townareas/" + event;
  716.         }
  717.        
  718.         else if (event.equals("oren.htm"))
  719.         {
  720.             htmltext = "teleporter/townareas/" + event;
  721.         }
  722.        
  723.         else if (event.equals("gludio.htm"))
  724.         {
  725.             htmltext = "teleporter/townareas/" + event;
  726.         }
  727.        
  728.         else if (event.equals("gludin.htm"))
  729.         {
  730.             htmltext = "teleporter/townareas/" + event;
  731.         }
  732.        
  733.         else if (event.equals("schuttgart.htm"))
  734.         {
  735.             htmltext = "teleporter/townareas/" + event;
  736.         }
  737.        
  738.         else if (event.equals("heine.htm"))
  739.         {
  740.             htmltext = "teleporter/townareas/" + event;
  741.         }
  742.        
  743.         else if (event.equals("hv.htm"))
  744.         {
  745.             htmltext = "teleporter/townareas/" + event;
  746.         }
  747.        
  748.         else if (event.equals("towns.htm"))
  749.         {
  750.             htmltext = "teleporter/" + event;
  751.         }
  752.        
  753.         else if (event.equals("custom.htm"))
  754.         {
  755.             htmltext = event;
  756.         }
  757.        
  758.         else if (event.equals("remove_clan_wait"))
  759.         {
  760.             if (player.getFame() < 5000)
  761.             {
  762.                 player.sendMessage("You don't have enough Fame points");
  763.                 return "";
  764.             }
  765.             else if (player.getClanJoinExpiryTime() > 0)
  766.             {
  767.                 player.sendMessage("Your clan wait penalty has been reset.");
  768.                 player.setClanJoinExpiryTime(0);
  769.                 player.setFame(player.getFame() - 5000);
  770.                 player.broadcastUserInfo();
  771.                 return "";
  772.             }
  773.             else
  774.             {
  775.                 player.sendMessage("You don't have clan wait penalty");
  776.                 return "";
  777.             }
  778.         }
  779.         else if (event.equals("remove_karma"))
  780.         {
  781.             if (player.getFame() < 5000)
  782.             {
  783.                 player.sendMessage("You don't have enough Fame points");
  784.                 return "";
  785.             }
  786.             else if (player.getKarma() > 0)
  787.             {
  788.                 player.setKarma(0);
  789.                 player.setFame(player.getFame() - 5000);
  790.                 player.sendMessage("Your Karma Points were successfully cleared");
  791.                 player.broadcastUserInfo();
  792.                 return "";
  793.             }
  794.             else
  795.             {
  796.                 player.sendMessage("You don't have karma currently");
  797.                 return "";
  798.             }
  799.            
  800.         }
  801.         else if (event.equals("decrease_pk"))
  802.         {
  803.             if (player.getFame() < 5000)
  804.             {
  805.                 player.sendMessage("You don't have enough Fame points");
  806.                 return "";
  807.             }
  808.             else if (player.getPkKills() > 0)
  809.             {
  810.                 player.setPkKills(player.getPkKills() - 1);
  811.                 player.setFame(player.getFame() - 5000);
  812.                 player.sendMessage("You have successfully removed 1 PK point");
  813.                 player.broadcastUserInfo();
  814.                 return "";
  815.             }
  816.             else
  817.             {
  818.                 player.sendMessage("You don't have pk currently");
  819.                 return "";
  820.             }
  821.            
  822.         }
  823.         else if (event.equals("receive_recommend"))
  824.         {
  825.             if (player.getFame() < 2000)
  826.             {
  827.                 player.sendMessage("You don't have enough Fame points");
  828.                 return "";
  829.             }
  830.             else
  831.             {
  832.                 player.setRecomHave(player.getRecomHave() + 5);
  833.                 player.setFame(player.getFame() - 2000);
  834.                 player.sendMessage("You have successfully received 5 recommendation points");
  835.                 player.broadcastUserInfo();
  836.                 return "";
  837.             }
  838.            
  839.         }
  840.         else if (event.equals("increase_crp"))
  841.         {
  842.             if (player.getClan() != null && player.getClan().getLevel() >= 5)
  843.             {
  844.                 if (player.getFame() < 10000)
  845.                 {
  846.                     player.sendMessage("You don't have enough Fame points");
  847.                     return "";
  848.                 }
  849.                 else
  850.                 {
  851.                     player.getClan().addReputationScore(1000, true);
  852.                     player.getClan().broadcastToOnlineMembers(new PledgeShowInfoUpdate(player.getClan()));
  853.                     player.getClan().broadcastToOnlineMembers(SystemMessage.sendString("Clan Reputation points have been increased by 1000 from " + player.getName()));
  854.                     player.setFame(player.getFame() - 10000);
  855.                     player.sendMessage("You have successfully increased your Clan Points by 1000 points");
  856.                     player.broadcastUserInfo();
  857.                     return "";
  858.                 }
  859.             }
  860.             else
  861.             {
  862.                 player.sendMessage("Sorry " + player.getName() + " clans level 5 and above can receive clan reputation points only");
  863.                 return "";
  864.             }
  865.         }
  866.         else if (event.equals("delevel"))
  867.         {
  868.             if (player.getFame() < 1000)
  869.             {
  870.                 player.sendMessage("You don't have enough Fame points");
  871.                 return "";
  872.             }
  873.             else if (player.getLevel() > 70)
  874.             {
  875.                 int playerLevel = player.getLevel();
  876.                 long xpcur = player.getStat().getExp();
  877.                 long xpres = player.getStat().getExpForLevel(playerLevel - 1);
  878.                 player.getStat().removeExp(xpcur - xpres);
  879.                 player.sendMessage("You have successfully deleveled");
  880.                 player.setFame(player.getFame() - 1000);
  881.                 player.broadcastUserInfo();
  882.                 return "";
  883.             }
  884.             else
  885.             {
  886.                 player.sendMessage("You can delevel only to 70 lvl.");
  887.             }
  888.         }
  889.        
  890.         else if (event.equals("augument"))
  891.         {
  892.             htmltext = "merchant/augumentation/augument.htm";
  893.         }
  894.        
  895.         else if (event.equals("catacombs.htm"))
  896.         {
  897.             htmltext = "teleporter/" + event;
  898.         }
  899.        
  900.         else if (event.equals("necropolis.htm"))
  901.         {
  902.             htmltext = "teleporter/" + event;
  903.         }
  904.        
  905.         else if (event.equals("move_to_sellers"))
  906.         {
  907.             player.setInstanceId(20000);
  908.             player.teleToLocation(83428, 148616, -3400);
  909.             if (player.getPet() != null)
  910.             {
  911.                 player.getPet().setInstanceId(player.getInstanceId());
  912.                 player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
  913.             }
  914.             htmltext = "You are moved into Sellers zone now you can sit on private store sell or just buy something :)";
  915.         }
  916.        
  917.         else if (event.equals("move_to_buyers"))
  918.         {
  919.             player.setInstanceId(20001);
  920.             player.teleToLocation(83428, 148616, -3400);
  921.             if (player.getPet() != null)
  922.             {
  923.                 player.getPet().setInstanceId(player.getInstanceId());
  924.                 player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
  925.             }
  926.             htmltext = "You are moved into Buyers zone now you can sit on private store buy or just sell something :)";
  927.         }
  928.        
  929.         else if (event.equals("move_to_crafters"))
  930.         {
  931.             player.setInstanceId(20002);
  932.             player.teleToLocation(83428, 148616, -3400);
  933.             if (player.getPet() != null)
  934.             {
  935.                 player.getPet().setInstanceId(player.getInstanceId());
  936.                 player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
  937.             }
  938.             htmltext = "You are moved into Crafters zone now you can sit on private store craft or just craft something :)";
  939.         }
  940.        
  941.         else if (event.equals("move_to_package_sellers"))
  942.         {
  943.             player.setInstanceId(20003);
  944.             player.teleToLocation(83428, 148616, -3400);
  945.             if (player.getPet() != null)
  946.             {
  947.                 player.getPet().setInstanceId(player.getInstanceId());
  948.                 player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
  949.             }
  950.             htmltext = "You are moved into Package Sellers zone now you can sit on private package store sell or just buy something :)";
  951.         }
  952.        
  953.         else if (event.equals("move_to_normal"))
  954.         {
  955.             player.setInstanceId(0);
  956.             player.teleToLocation(player.getX(), player.getY(), player.getZ());
  957.             if (player.getPet() != null)
  958.             {
  959.                 player.getPet().setInstanceId(player.getInstanceId());
  960.                 player.getPet().teleToLocation(player.getX(), player.getY(), player.getZ(), true);
  961.             }
  962.             htmltext = "You are moved into normal world";
  963.         }
  964.        
  965.         else if (event.equals("wh"))
  966.         {
  967.             htmltext = "merchant/warehouse/main.htm";
  968.         }
  969.        
  970.         else if (event.equals("wh_private"))
  971.         {
  972.             htmltext = "merchant/warehouse/private.htm";
  973.         }
  974.        
  975.         else if (event.equals("wh_clan"))
  976.         {
  977.             htmltext = "merchant/warehouse/clan.htm";
  978.         }
  979.         else if (event.equals("event.htm"))
  980.         {
  981.             htmltext = event;
  982.         }
  983.         else if (event.startsWith("teleport_"))
  984.         {
  985.             htmltext = "";
  986.             String[] teleport = event.split("_");
  987.             if (teleport != null)
  988.             {
  989.                 int id = Integer.parseInt(teleport[1]);
  990.                 if (id > 0)
  991.                 {
  992.                     for (int[] tele : teleports)
  993.                     {
  994.                         if (tele[0] == id)
  995.                         {
  996.                             if (player.getInstanceId() > 0)
  997.                                 player.setInstanceId(0);
  998.                             player.teleToLocation(tele[1], tele[2], tele[3], true);
  999.                             htmltext = "You have been teleported.";
  1000.                         }
  1001.                     }
  1002.                 }
  1003.             }
  1004.         }
  1005.        
  1006.         else if (event.startsWith("townteleport_"))
  1007.         {
  1008.             htmltext = "";
  1009.             String[] teleport = event.split("_");
  1010.             if (teleport != null)
  1011.             {
  1012.                 int id = Integer.parseInt(teleport[1]);
  1013.                 if (id > 0)
  1014.                 {
  1015.                     for (int[] tele : town_teleports)
  1016.                     {
  1017.                         if (tele[0] == id)
  1018.                         {
  1019.                             if (player.getInstanceId() > 0)
  1020.                                 player.setInstanceId(0);
  1021.                             player.teleToLocation(tele[1], tele[2], tele[3], true);
  1022.                             htmltext = "You have been teleported.";
  1023.                         }
  1024.                     }
  1025.                 }
  1026.             }
  1027.         }
  1028.        
  1029.         return htmltext;
  1030.     }
  1031.    
  1032.     @Override
  1033.     public String onTalk(L2Npc npc, L2PcInstance player)
  1034.     {
  1035.         if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.getPvpFlag() > 0)
  1036.             return "<html><body>Please come down then we can talk again</body></html>";
  1037.        
  1038.         return "main.htm";
  1039.     }
  1040.    
  1041.     @Override
  1042.     public String onFirstTalk(L2Npc npc, L2PcInstance player)
  1043.     {
  1044.         if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.getPvpFlag() > 0)
  1045.             return "<html><body>Please come down then we can talk again</body></html>";
  1046.        
  1047.         return "home.htm";
  1048.     }
  1049.    
  1050.     public static void main(String[] args)
  1051.     {
  1052.         new AIONpc(-1, "AIONpc", "custom");
  1053.     }
  1054. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement