diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/handlers/MasterHandler.java b/L2J_Mobius_Helios/dist/game/data/scripts/handlers/MasterHandler.java index 16746843ac..12f4d55aac 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/handlers/MasterHandler.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/handlers/MasterHandler.java @@ -199,6 +199,7 @@ import handlers.itemhandlers.ItemSkillsTemplate; import handlers.itemhandlers.Maps; import handlers.itemhandlers.MercTicket; import handlers.itemhandlers.NicknameColor; +import handlers.itemhandlers.PaulinasSupportBox; import handlers.itemhandlers.PetFood; import handlers.itemhandlers.Recipes; import handlers.itemhandlers.RollingDice; @@ -538,6 +539,7 @@ public class MasterHandler Maps.class, MercTicket.class, NicknameColor.class, + PaulinasSupportBox.class, PetFood.class, Recipes.class, RollingDice.class, diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/PaulinasSupportBox.java b/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/PaulinasSupportBox.java new file mode 100644 index 0000000000..6cad0b227f --- /dev/null +++ b/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/PaulinasSupportBox.java @@ -0,0 +1,290 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.itemhandlers; + +import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.enums.CategoryType; +import com.l2jmobius.gameserver.enums.Race; +import com.l2jmobius.gameserver.handler.IItemHandler; +import com.l2jmobius.gameserver.model.actor.L2Playable; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.base.ClassId; +import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance; +import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate; + +/** + * @author Mobius + */ +public class PaulinasSupportBox implements IItemHandler +{ + // Items + private static final int BOX_D_GRADE = 46849; + private static final int BOX_C_GRADE = 46850; + private static final int BOX_A_GRADE = 46851; + private static final int BOX_S_GRADE = 46852; + // Rewards + private static final int BOX_D_HEAVY = 46837; + private static final int BOX_D_LIGHT = 46838; + private static final int BOX_D_ROBE = 46839; + private static final int BOX_C_HEAVY = 46840; + private static final int BOX_C_LIGHT = 46841; + private static final int BOX_C_ROBE = 46842; + private static final int BOX_A_HEAVY = 46843; + private static final int BOX_A_LIGHT = 46844; + private static final int BOX_A_ROBE = 46845; + private static final int BOX_S_HEAVY = 46846; + private static final int BOX_S_LIGHT = 46847; + private static final int BOX_S_ROBE = 46848; + + @Override + public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) + { + if (!playable.isPlayer()) + { + playable.sendPacket(SystemMessageId.YOUR_PET_CANNOT_CARRY_THIS_ITEM); + return false; + } + + final L2PcInstance player = playable.getActingPlayer(); + final Race race = player.getRace(); + final ClassId classId = player.getClassId(); + + if (!player.isInventoryUnder80(false)) + { + player.sendPacket(SystemMessageId.YOU_VE_EXCEEDED_THE_LIMIT_AND_CANNOT_RETRIEVE_THE_ITEM_PLEASE_CHECK_YOUR_LIMIT_IN_THE_INVENTORY); + return false; + } + + player.getInventory().destroyItem(getClass().getSimpleName(), item, 1, player, null); + player.sendPacket(new InventoryUpdate(item)); + + switch (item.getId()) + { + case BOX_D_GRADE: + { + switch (race) + { + case HUMAN: + case ELF: + case DARK_ELF: + case DWARF: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_D_ROBE, 1, player, true); + } + else if (CategoryData.getInstance().isInCategory(CategoryType.RECOM_ROGUE_GROUP, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_D_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_D_HEAVY, 1, player, true); + } + break; + } + case ORC: + case KAMAEL: + { + player.addItem(getClass().getSimpleName(), BOX_D_LIGHT, 1, player, true); + break; + } + case ERTHEIA: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_D_ROBE, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_D_LIGHT, 1, player, true); + } + break; + } + } + break; + } + case BOX_C_GRADE: + { + switch (race) + { + case HUMAN: + case ELF: + case DARK_ELF: + case DWARF: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_C_ROBE, 1, player, true); + } + else if (CategoryData.getInstance().isInCategory(CategoryType.RECOM_ROGUE_GROUP, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_C_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_C_HEAVY, 1, player, true); + } + break; + } + case ORC: + { + if (player.isMageClass() || CategoryData.getInstance().isInCategory(CategoryType.TYRR_CANDIDATE, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_C_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_C_HEAVY, 1, player, true); + } + break; + } + case KAMAEL: + { + player.addItem(getClass().getSimpleName(), BOX_C_LIGHT, 1, player, true); + break; + } + case ERTHEIA: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_C_ROBE, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_C_LIGHT, 1, player, true); + } + break; + } + } + break; + } + case BOX_A_GRADE: + { + switch (race) + { + case HUMAN: + case ELF: + case DARK_ELF: + case DWARF: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_A_ROBE, 1, player, true); + } + else if (CategoryData.getInstance().isInCategory(CategoryType.RECOM_ROGUE_GROUP, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_A_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_A_HEAVY, 1, player, true); + } + break; + } + case ORC: + { + if (player.isMageClass() || CategoryData.getInstance().isInCategory(CategoryType.TYRR_CANDIDATE, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_A_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_A_HEAVY, 1, player, true); + } + break; + } + case KAMAEL: + { + player.addItem(getClass().getSimpleName(), BOX_A_LIGHT, 1, player, true); + break; + } + case ERTHEIA: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_A_ROBE, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_A_LIGHT, 1, player, true); + } + break; + } + } + break; + } + case BOX_S_GRADE: + { + switch (race) + { + case HUMAN: + case ELF: + case DARK_ELF: + case DWARF: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_S_ROBE, 1, player, true); + } + else if (CategoryData.getInstance().isInCategory(CategoryType.RECOM_ROGUE_GROUP, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_S_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_S_HEAVY, 1, player, true); + } + break; + } + case ORC: + { + if (player.isMageClass() || CategoryData.getInstance().isInCategory(CategoryType.TYRR_CANDIDATE, classId.getId())) + { + player.addItem(getClass().getSimpleName(), BOX_S_LIGHT, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_S_HEAVY, 1, player, true); + } + break; + } + case KAMAEL: + { + player.addItem(getClass().getSimpleName(), BOX_S_LIGHT, 1, player, true); + break; + } + case ERTHEIA: + { + if (player.isMageClass()) + { + player.addItem(getClass().getSimpleName(), BOX_S_ROBE, 1, player, true); + } + else + { + player.addItem(getClass().getSimpleName(), BOX_S_LIGHT, 1, player, true); + } + break; + } + } + break; + } + } + return true; + } +} diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java b/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java index 3c0411c4a3..200dfa969f 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/quests/ThirdClassTransferQuest.java @@ -69,15 +69,16 @@ public abstract class ThirdClassTransferQuest extends Quest RACE_TAGS.put(Race.DWARF, 17752); RACE_TAGS.put(Race.KAMAEL, 17753); } - private static final int STEEL_DOOR_COIN = 37045; - private static final int SOUL_SHOT_PACK = 22576; - private static final int SPIRIT_SHOT_PACK = 22607; + private static final int SOULSHOTS = 1467; + private static final int SPIRITSHOTS = 3952; + private static final int BLESSED_SCROLL_OF_RESURRECTION = 33518; + private static final int PAULINAS_EQUIPMENT_SET = 46852; // Skills private static final SkillHolder SHOW_SKILL = new SkillHolder(5103, 1); // Misc + private static final int QUESTION_MARK_ID = 101; private final int _minLevel; private final Race _race; - private static final int QUESTIONMARK_ID = 101; public ThirdClassTransferQuest(int questId, int minLevel, Race race) { @@ -241,10 +242,11 @@ public abstract class ThirdClassTransferQuest extends Quest player.store(false); player.broadcastUserInfo(); player.sendSkillList(); - giveItems(player, SOUL_SHOT_PACK, 1); - giveItems(player, SPIRIT_SHOT_PACK, 1); - giveItems(player, STEEL_DOOR_COIN, 87); - addExpAndSp(player, 2050000, 0); + giveItems(player, SOULSHOTS, 8000); + giveItems(player, SPIRITSHOTS, 8000); + giveItems(player, BLESSED_SCROLL_OF_RESURRECTION, 3); + giveItems(player, PAULINAS_EQUIPMENT_SET, 1); + addExpAndSp(player, 42000000, 0); st.exitQuest(true, true); htmltext = npc.getId() + "-09.html"; } @@ -336,7 +338,7 @@ public abstract class ThirdClassTransferQuest extends Quest @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS) public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event) { - if (event.getMarkId() == QUESTIONMARK_ID) + if (event.getMarkId() == QUESTION_MARK_ID) { final L2PcInstance player = event.getActiveChar(); player.sendPacket(new TutorialShowHtml(getHtm(player.getHtmlPrefix(), "popupInvite.html"))); @@ -358,7 +360,7 @@ public abstract class ThirdClassTransferQuest extends Quest if ((oldLevel < newLevel) && (newLevel == _minLevel) && (player.getRace() == _race) && (player.isInCategory(CategoryType.THIRD_CLASS_GROUP))) { - player.sendPacket(new TutorialShowQuestionMark(QUESTIONMARK_ID, 1)); + player.sendPacket(new TutorialShowQuestionMark(QUESTION_MARK_ID, 1)); } } @@ -378,7 +380,7 @@ public abstract class ThirdClassTransferQuest extends Quest final QuestState qs = getQuestState(player, true); if (qs.isCreated()) { - player.sendPacket(new TutorialShowQuestionMark(QUESTIONMARK_ID, 1)); + player.sendPacket(new TutorialShowQuestionMark(QUESTION_MARK_ID, 1)); } } } diff --git a/L2J_Mobius_Helios/dist/game/data/stats/items/46800-46899.xml b/L2J_Mobius_Helios/dist/game/data/stats/items/46800-46899.xml index 0e0c195642..57cb10160b 100644 --- a/L2J_Mobius_Helios/dist/game/data/stats/items/46800-46899.xml +++ b/L2J_Mobius_Helios/dist/game/data/stats/items/46800-46899.xml @@ -933,12 +933,27 @@ - - + + + + + + + + + + + + + + + + + @@ -962,112 +977,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1080,38 +995,316 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + - + + + + + + + - - + + + + + +