Advertisement
Guest User

Untitled

a guest
Mar 4th, 2019
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.82 KB | None | 0 0
  1. /*
  2.  * This file is part of the L2J Mobius project.
  3.  *
  4.  * This program is free software: you can redistribute it and/or modify
  5.  * it under the terms of the GNU General Public License as published by
  6.  * the Free Software Foundation, either version 3 of the License, or
  7.  * (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12.  * General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16.  */
  17. package quests.Q00482_RecertificationOfValue;
  18.  
  19. import com.l2jmobius.gameserver.enums.CategoryType;
  20. import com.l2jmobius.gameserver.enums.QuestSound;
  21. import com.l2jmobius.gameserver.enums.QuestType;
  22. import com.l2jmobius.gameserver.model.Location;
  23. import com.l2jmobius.gameserver.model.actor.L2Npc;
  24. import com.l2jmobius.gameserver.model.actor.L2Summon;
  25. import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
  26. import com.l2jmobius.gameserver.model.holders.SkillHolder;
  27. import com.l2jmobius.gameserver.model.quest.Quest;
  28. import com.l2jmobius.gameserver.model.quest.QuestState;
  29. import com.l2jmobius.gameserver.model.skills.SkillCaster;
  30. import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
  31.  
  32. import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue;
  33.  
  34. /**
  35.  * Recertification Of Value (482)
  36.  * @author Zeusx
  37.  */
  38. public class Q00482_RecertificationOfValue extends Quest
  39. {
  40.     // NPCs
  41.     private static final int RIEYI = 33406;
  42.     private static final int KYUORI = 33358;
  43.     // Monsters
  44.     private static final int[] TOI_MONSTERS =
  45.     {
  46.         23044,
  47.         23045,
  48.         23046,
  49.         23047,
  50.         23048,
  51.         23049,
  52.         23050,
  53.         23051,
  54.         23052,
  55.         23053,
  56.         23054,
  57.         23055,
  58.         23056,
  59.         23057,
  60.         23058,
  61.         23059,
  62.         23060,
  63.         23061,
  64.         23062,
  65.         23063,
  66.         23064,
  67.         23065,
  68.         23066,
  69.         23067,
  70.         23068,
  71.         23101,
  72.         23102,
  73.         23103,
  74.         23104,
  75.         23105,
  76.         23106,
  77.         23107,
  78.         23108,
  79.         23109,
  80.         23110,
  81.         23111,
  82.         23112
  83.     };
  84.     // Buffs
  85.     private static final SkillHolder[] WARRIOR_BUFFS =
  86.     {
  87.         new SkillHolder(4322, 1), // Adventurer's Wind Walk
  88.         new SkillHolder(4323, 1), // Adventurer's Shield
  89.         new SkillHolder(5637, 1), // Adventurer's Magic Barrier
  90.         new SkillHolder(4324, 1), // Adventurer's Blessed Body
  91.         new SkillHolder(4325, 1), // Adventurer's Vampiric Rage
  92.         new SkillHolder(4326, 1), // Adventurer's Regeneration
  93.     };
  94.     private static final SkillHolder[] MAGE_BUFFS =
  95.     {
  96.         new SkillHolder(4322, 1), // Adventurer's Wind Walk
  97.         new SkillHolder(4323, 1), // Adventurer's Shield
  98.         new SkillHolder(5637, 1), // Adventurer's Magic Barrier
  99.         new SkillHolder(4328, 1), // Adventurer's Blessed Soul
  100.         new SkillHolder(4329, 1), // Adventurer's Acumen
  101.         new SkillHolder(4330, 1), // Adventurer's Concentration
  102.         new SkillHolder(4331, 1), // Adventurer's Empower
  103.     };
  104.     private static final SkillHolder[] SUMMON_BUFFS =
  105.     {
  106.         new SkillHolder(4322, 1), // Adventurer's Wind Walk
  107.         new SkillHolder(4323, 1), // Adventurer's Shield
  108.         new SkillHolder(5637, 1), // Adventurer's Magic Barrier
  109.         new SkillHolder(4324, 1), // Adventurer's Blessed Body
  110.         new SkillHolder(4325, 1), // Adventurer's Vampiric Rage
  111.         new SkillHolder(4326, 1), // Adventurer's Regeneration
  112.         new SkillHolder(4328, 1), // Adventurer's Blessed Soul
  113.         new SkillHolder(4329, 1), // Adventurer's Acumen
  114.         new SkillHolder(4330, 1), // Adventurer's Concentration
  115.         new SkillHolder(4331, 1), // Adventurer's Empower
  116.     };
  117.     private static final SkillHolder HASTE = new SkillHolder(4327, 1); // Adventurer's Haste
  118.     private static final SkillHolder HASTE2 = new SkillHolder(5632, 1); // Adventurer's Haste
  119.     private static final SkillHolder CUBIC = new SkillHolder(4338, 1); // Adventurer's Life Cubic
  120.     // Item
  121.     private static final int TOWER_OF_INSOLENCE_TOKEN = 17624;
  122.    
  123.     public Q00482_RecertificationOfValue()
  124.     {
  125.         super(482);
  126.         addStartNpc(RIEYI);
  127.         addTalkId(RIEYI, KYUORI);
  128.         addKillId(TOI_MONSTERS);
  129.         addCondMinLevel(48, "liason_starter2_q0482_02.htm");
  130.         addCondCompletedQuest(Q10353_CertificationOfValue.class.getSimpleName(), "liason_starter2_q0482_02.htm"); // TODO: Need proper Name
  131.     }
  132.    
  133.     @Override
  134.     public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  135.     {
  136.         final QuestState qs = getQuestState(player, false);
  137.         if (qs == null)
  138.         {
  139.             return null;
  140.         }
  141.        
  142.         String htmltext = null;
  143.         switch (event)
  144.         {
  145.             case "liason_starter2_q0482_05.htm":
  146.             case "liason_starter2_q0482_06.htm":
  147.             case "liason_starter2_q0482_07.htm":
  148.             {
  149.                 htmltext = event;
  150.                 break;
  151.             }
  152.             case "liason_starter2_q0482_08.htm":
  153.             {
  154.                 qs.startQuest();
  155.                 qs.setMemoState(1);
  156.                 htmltext = event;
  157.                 break;
  158.             }
  159.             case "oman_cuori_q0482_02.htm":
  160.             {
  161.                 qs.setCond(2, true);
  162.                 qs.setMemoState(2);
  163.                 htmltext = event;
  164.                 break;
  165.             }
  166.             case "oman_cuori_q0482_07.htm":
  167.             {
  168.                 qs.exitQuest(QuestType.DAILY, true);
  169.                 addExpAndSp(player, 1_500_000, 360);
  170.                 giveItems(player, TOWER_OF_INSOLENCE_TOKEN, 1);
  171.                 htmltext = event;
  172.                 break;
  173.             }
  174.             case "EXIT": // TODO: Need make Instance Kamaloka (Hall of Abyss).
  175.             {
  176.                 player.teleToLocation(new Location(114312, 13413, -5096));
  177.                 break;
  178.             }
  179.             case "BUFF_PLAYER":
  180.             {
  181.                 npc.setTarget(player.getPet());
  182.                 if (player.isInCategory(CategoryType.MAGE_GROUP))
  183.                 {
  184.                     for (SkillHolder skill : MAGE_BUFFS)
  185.                     {
  186.                         SkillCaster.triggerCast(npc, npc, skill.getSkill());
  187.                     }
  188.                     if ((player.getLevel() >= 16) && (player.getLevel() <= 34))
  189.                     {
  190.                         SkillCaster.triggerCast(npc, npc, CUBIC.getSkill());
  191.                     }
  192.                 }
  193.                 else
  194.                 {
  195.                     for (SkillHolder skill : WARRIOR_BUFFS)
  196.                     {
  197.                         SkillCaster.triggerCast(npc, npc, skill.getSkill());
  198.                     }
  199.                     if ((player.getLevel() >= 6) && (player.getLevel() <= 39))
  200.                     {
  201.                         SkillCaster.triggerCast(npc, npc, HASTE.getSkill());
  202.                     }
  203.                     else if ((player.getLevel() >= 40) && (player.getLevel() <= 75))
  204.                     {
  205.                         SkillCaster.triggerCast(npc, npc, HASTE2.getSkill());
  206.                     }
  207.                     else if ((player.getLevel() >= 16) && (player.getLevel() <= 34))
  208.                     {
  209.                         SkillCaster.triggerCast(npc, npc, CUBIC.getSkill());
  210.                     }
  211.                 }
  212.                 break;
  213.             }
  214.             case "BUFF_SUMMON":
  215.             {
  216.                 for (L2Summon servitors : player.getServitorsAndPets())
  217.                 {
  218.                     for (SkillHolder skill : SUMMON_BUFFS)
  219.                     {
  220.                         SkillCaster.triggerCast(npc, servitors, skill.getSkill());
  221.                     }
  222.                     if ((player.getLevel() >= 6) && (player.getLevel() <= 39))
  223.                     {
  224.                         SkillCaster.triggerCast(npc, servitors, HASTE.getSkill());
  225.                     }
  226.                     else if ((player.getLevel() >= 40) && (player.getLevel() <= 75))
  227.                     {
  228.                         SkillCaster.triggerCast(npc, servitors, HASTE2.getSkill());
  229.                     }
  230.                 }
  231.                 break;
  232.             }
  233.         }
  234.         return htmltext;
  235.     }
  236.    
  237.     @Override
  238.     public String onTalk(L2Npc npc, L2PcInstance player)
  239.     {
  240.         String htmltext = getNoQuestMsg(player);
  241.         final QuestState qs = getQuestState(player, false);
  242.        
  243.         if (qs == null)
  244.         {
  245.             return htmltext;
  246.         }
  247.        
  248.         switch (npc.getId())
  249.         {
  250.             case RIEYI:
  251.             {
  252.                 switch (qs.getCond())
  253.                 {
  254.                     case 0:
  255.                     {
  256.                         htmltext = qs.isNowAvailable() ? "liason_starter2_q0482_03.htm" : "liason_starter2_q0482_01.htm";
  257.                         break;
  258.                     }
  259.                     case 1:
  260.                     {
  261.                         htmltext = "liason_starter2_q0482_09.htm";
  262.                         break;
  263.                     }
  264.                 }
  265.                 break;
  266.             }
  267.             case KYUORI:
  268.             {
  269.                 if (qs.isCompleted())
  270.                 {
  271.                     htmltext = "oman_cuori_q0482_03.htm";
  272.                 }
  273.                 switch (qs.getCond())
  274.                 {
  275.                     case 1:
  276.                     {
  277.                         htmltext = "oman_cuori_q0482_01.htm";
  278.                         break;
  279.                     }
  280.                     case 2:
  281.                     {
  282.                         if (qs.getInt("23044") < 1)
  283.                         {
  284.                             htmltext = "oman_cuori_q0482_05.htm";
  285.                         }
  286.                         else if ((qs.getInt("23044") > 1) && (qs.getInt("23044") < 10))
  287.                         {
  288.                             htmltext = "oman_cuori_q0482_06.htm";
  289.                         }
  290.                         break;
  291.                     }
  292.                     case 3:
  293.                     {
  294.                         htmltext = "oman_cuori_q0482_07.htm";
  295.                         break;
  296.                     }
  297.                 }
  298.                 break;
  299.             }
  300.         }
  301.         return htmltext;
  302.     }
  303.    
  304.     @Override
  305.     public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
  306.     {
  307.         final QuestState st = getQuestState(killer, false);
  308.         if ((st != null) && st.isCond(1))
  309.         {
  310.             int npcId = npc.getId();
  311.            
  312.             String variable = String.valueOf(npcId); // i3
  313.             int currentValue = st.getInt(variable);
  314.             if (currentValue < 10)
  315.             {
  316.                 st.set(variable, String.valueOf(currentValue + 1)); // IncreaseNPCLogByID
  317.                
  318.                 if (currentValue >= 10)
  319.                 {
  320.                     st.setCond(3, true);
  321.                 }
  322.                 else
  323.                 {
  324.                     playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
  325.                 }
  326.                
  327.                 final ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
  328.                 log.addNpc(npcId, st.getInt("23044"));
  329.                 killer.sendPacket(log);
  330.             }
  331.         }
  332.         return super.onKill(npc, killer, isSummon);
  333.     }
  334. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement