Helperis Posted December 2, 2016 Share Posted December 2, 2016 Hello, i need auto potio for frozen tried to use this code http://www.maxcheaters.com/topic/187787-automatic-potions-free-code-for-all-l2j-packs/ But frozen doest have class itemskills. any suggestion how to fix it? Quote Link to comment Share on other sites More sharing options...
0 Reborn12 Posted December 2, 2016 Share Posted December 2, 2016 Potion.java maybe? Quote Link to comment Share on other sites More sharing options...
0 Helperis Posted December 2, 2016 Author Share Posted December 2, 2016 Potion.java maybe? here is the code of potion.java /* * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.handler.itemhandlers; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javolution.util.FastMap; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.datatables.SkillTable; import com.l2jfrozen.gameserver.handler.IItemHandler; import com.l2jfrozen.gameserver.model.L2Effect; import com.l2jfrozen.gameserver.model.L2Effect.EffectType; import com.l2jfrozen.gameserver.model.L2Skill; import com.l2jfrozen.gameserver.model.L2Summon; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PetInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2StaticObjectInstance; import com.l2jfrozen.gameserver.model.entity.event.CTF; import com.l2jfrozen.gameserver.model.entity.event.DM; import com.l2jfrozen.gameserver.model.entity.event.TvT; import com.l2jfrozen.gameserver.model.entity.event.VIP; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; import com.l2jfrozen.gameserver.thread.ThreadPoolManager; /** * This class ... * * @version $Revision: 1.2.4.4 $ $Date: 2005/03/27 15:30:07 $ */ public class Potions implements IItemHandler { protected static final Logger _log = Logger.getLogger(Potions.class.getName()); private int _herbstask = 0; private static FastMap<Integer,PotionsSkills> potions = new FastMap<Integer,PotionsSkills>(); private static void loadPotions(){ for(PotionsSkills actual_potion: PotionsSkills.values()){ potions.put(actual_potion.potion_id, actual_potion); } } public static PotionsSkills get_skills_for_potion(Integer potion_id){ if(potions.isEmpty()) loadPotions(); return potions.get(potion_id); } public static List<Integer> get_potions_for_skill(Integer skill_id, Integer skill_level){ if(potions.isEmpty()) loadPotions(); List<Integer> output_potions = new ArrayList<Integer>(); for(Integer actual_potion_item: potions.keySet()){ FastMap<Integer,Integer> actual_item_skills = null; if(potions.get(actual_potion_item)!=null) actual_item_skills = potions.get(actual_potion_item).skills; if(actual_item_skills!=null && actual_item_skills.get(skill_id)!=null && actual_item_skills.get(skill_id)==skill_level){ output_potions.add(actual_potion_item); } } return output_potions; } /** Task for Herbs */ private class HerbTask implements Runnable { private L2PcInstance _activeChar; private int _magicId; private int _level; HerbTask(L2PcInstance activeChar, int magicId, int level) { _activeChar = activeChar; _magicId = magicId; _level = level; } @Override public void run() { try { usePotion(_activeChar, _magicId, _level); } catch(Throwable t) { if(Config.ENABLE_ALL_EXCEPTIONS) t.printStackTrace(); _log.log(Level.WARNING, "", t); } } } private static final int[] ITEM_IDS = { 65, 725, 726, 727, 728, 733, 734, 735, 1060, 1061, 1062, 1073, 1374, 1375, 1539, 1540, 4667, 4679, 4680, 5283, 5591, 5592, 6035, 6036, 6652, 6653, 6654, 6655, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, //elixir of life 8622, 8623, 8624, 8625, 8626, 8627, //elixir of Strength 8628, 8629, 8630, 8631, 8632, 8633, //elixir of cp 8634, 8635, 8636, 8637, 8638, 8639 }; @Override public synchronized void useItem(L2PlayableInstance playable, L2ItemInstance item) { L2PcInstance activeChar; if(playable instanceof L2PcInstance) { activeChar = (L2PcInstance) playable; } else if(playable instanceof L2PetInstance) { activeChar = ((L2PetInstance) playable).getOwner(); } else return; //if(activeChar._inEventTvT && TvT._started && !Config.TVT_ALLOW_POTIONS) if(activeChar._inEventTvT && TvT.is_started() && !Config.TVT_ALLOW_POTIONS) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } //if(activeChar._inEventDM && DM._started && !Config.DM_ALLOW_POTIONS) if(activeChar._inEventDM && DM.is_started() && !Config.DM_ALLOW_POTIONS) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } //if(activeChar._inEventCTF && CTF._started && !Config.CTF_ALLOW_POTIONS) if(activeChar._inEventCTF && CTF.is_started() && !Config.CTF_ALLOW_POTIONS) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } //if(activeChar._inEventVIP && VIP._started) if(activeChar._inEventVIP && VIP._started) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } if(activeChar.isInOlympiadMode()) { activeChar.sendPacket(new SystemMessage(SystemMessageId.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT)); return; } /*if(activeChar.isAllSkillsDisabled()) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; }*/ if(!Config.ALLOW_POTS_IN_PVP && (activeChar.isInDuel() || activeChar.getPvpFlag() != 0)) { activeChar.sendMessage("You Cannot Use Potions In PvP!"); return; } int itemId = item.getItemId(); switch(itemId) { // MANA POTIONS case 726: // mana drug, xml: 2003 if(!isEffectReplaceable(playable, L2Effect.EffectType.MANA_HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2003, 1); break; case 728: // mana_potion, xml: 2005 usePotion(playable, 2005, 1); break; // HEALING AND SPEED POTIONS case 65: // red_potion, xml: 2001 usePotion(playable, 2001, 1); break; case 725: // healing_drug, xml: 2002 if(!isEffectReplaceable(playable, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2002, 1); break; case 727: // _healing_potion, xml: 2032 if(!isEffectReplaceable(playable, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2032, 1); break; case 733: // endeavor_potion usePotion(playable, 2010, 1); break; case 734: // quick_step_potion, xml: 2011 usePotion(playable, 2011, 1); break; case 735: // swift_attack_potion, xml: 2012 usePotion(playable, 2012, 1); break; case 1060: // lesser_healing_potion, case 1073: // beginner's potion, xml: 2031 if(!isEffectReplaceable(playable, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2031, 1); break; case 1061: // healing_potion, xml: 2032 if(!isEffectReplaceable(playable, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2032, 1); break; case 1062: // haste_potion, xml: 2011 usePotion(playable, 2011, 1); break; case 1374: // adv_quick_step_potion, xml: 2034 usePotion(playable, 2034, 1); break; case 1375: // adv_swift_attack_potion, xml: 2035 usePotion(playable, 2035, 1); break; case 1539: // greater_healing_potion, xml: 2037 if(!isEffectReplaceable(playable, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2037, 1); break; case 1540: // quick_healing_potion, xml: 2038 usePotion(playable, 2038, 1); break; case 4667: // potion_of_critical_escape usePotion(playable, 2074, 1); break; case 4679: // bless of eva usePotion(playable, 2076, 1); break; case 4680: // rsk_damage_shield_potion usePotion(playable, 2077, 1); break; case 5283: // Rice Cake, xml: 2136 if(!isEffectReplaceable(playable, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; usePotion(playable, 2136, 1); break; case 5591: // CP usePotion(playable, 2166, 1); break; case 5592: // Greater CP usePotion(playable, 2166, 2); break; case 6035: // Magic Haste Potion, xml: 2169 usePotion(playable, 2169, 1); break; case 6036: // Greater Magic Haste Potion, xml: 2169 usePotion(playable, 2169, 2); break; // ELIXIR case 8622: case 8623: case 8624: case 8625: case 8626: case 8627: // elixir of Life if(!isEffectReplaceable(activeChar, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; if(itemId == 8622 && activeChar.getExpertiseIndex() == 0 || itemId == 8623 && activeChar.getExpertiseIndex() == 1 || itemId == 8624 && activeChar.getExpertiseIndex() == 2 || itemId == 8625 && activeChar.getExpertiseIndex() == 3 || itemId == 8626 && activeChar.getExpertiseIndex() == 4 || itemId == 8627 && activeChar.getExpertiseIndex() == 5) { usePotion(activeChar, 2287, (activeChar.getExpertiseIndex() + 1)); } else { SystemMessage sm = new SystemMessage(SystemMessageId.INCOMPATIBLE_ITEM_GRADE); // INCOMPATIBLE_ITEM_GRADE sm.addItemName(itemId); activeChar.sendPacket(sm); sm = null; return; } break; case 8628: case 8629: case 8630: case 8631: case 8632: case 8633: // elixir of Strength if(!isEffectReplaceable(activeChar, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; if(itemId == 8628 && activeChar.getExpertiseIndex() == 0 || itemId == 8629 && activeChar.getExpertiseIndex() == 1 || itemId == 8630 && activeChar.getExpertiseIndex() == 2 || itemId == 8631 && activeChar.getExpertiseIndex() == 3 || itemId == 8632 && activeChar.getExpertiseIndex() == 4 || itemId == 8633 && activeChar.getExpertiseIndex() == 5) { usePotion(activeChar, 2288, (activeChar.getExpertiseIndex() + 1)); } else { SystemMessage sm = new SystemMessage(SystemMessageId.INCOMPATIBLE_ITEM_GRADE); // INCOMPATIBLE_ITEM_GRADE sm.addItemName(itemId); activeChar.sendPacket(sm); sm = null; return; } break; case 8634: case 8635: case 8636: case 8637: case 8638: case 8639: // elixir of cp if(!isEffectReplaceable(activeChar, L2Effect.EffectType.HEAL_OVER_TIME, itemId)) return; if(itemId == 8634 && activeChar.getExpertiseIndex() == 0 || itemId == 8635 && activeChar.getExpertiseIndex() == 1 || itemId == 8636 && activeChar.getExpertiseIndex() == 2 || itemId == 8637 && activeChar.getExpertiseIndex() == 3 || itemId == 8638 && activeChar.getExpertiseIndex() == 4 || itemId == 8639 && activeChar.getExpertiseIndex() == 5) { usePotion(activeChar, 2289, (activeChar.getExpertiseIndex() + 1)); } else { SystemMessage sm = new SystemMessage(SystemMessageId.INCOMPATIBLE_ITEM_GRADE); // INCOMPATIBLE_ITEM_GRADE sm.addItemName(itemId); activeChar.sendPacket(sm); sm = null; return; } break; // VALAKAS AMULETS case 6652: // Amulet Protection of Valakas usePotion(playable, 2231, 1); break; case 6653: // Amulet Flames of Valakas usePotion(playable, 2233, 1); break; case 6654: // Amulet Flames of Valakas usePotion(playable, 2233, 1); break; case 6655: // Amulet Slay Valakas usePotion(playable, 2232, 1); break; // HERBS case 8600: // Herb of Life usePotion(playable, 2278, 1); break; case 8601: // Greater Herb of Life usePotion(playable, 2278, 2); break; case 8602: // Superior Herb of Life usePotion(playable, 2278, 3); break; case 8603: // Herb of Mana usePotion(playable, 2279, 1); break; case 8604: // Greater Herb of Mane usePotion(playable, 2279, 2); break; case 8605: // Superior Herb of Mane usePotion(playable, 2279, 3); break; case 8606: // Herb of Strength usePotion(playable, 2280, 1); break; case 8607: // Herb of Magic usePotion(playable, 2281, 1); break; case 8608: // Herb of Atk. Spd. usePotion(playable, 2282, 1); break; case 8609: // Herb of Casting Spd. usePotion(playable, 2283, 1); break; case 8610: // Herb of Critical Attack usePotion(playable, 2284, 1); break; case 8611: // Herb of Speed usePotion(playable, 2285, 1); break; case 8612: // Herb of Warrior usePotion(playable, 2280, 1); usePotion(playable, 2282, 1); usePotion(playable, 2284, 1); break; case 8613: // Herb of Mystic usePotion(playable, 2281, 1); usePotion(playable, 2283, 1); break; case 8614: // Herb of Warrior usePotion(playable, 2278, 3); usePotion(playable, 2279, 3); break; // FISHERMAN POTIONS case 8193: // Fisherman's Potion - Green if(playable.getSkillLevel(1315) <= 3) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 1); break; case 8194: // Fisherman's Potion - Jade if(playable.getSkillLevel(1315) <= 6) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 2); break; case 8195: // Fisherman's Potion - Blue if(playable.getSkillLevel(1315) <= 9) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 3); break; case 8196: // Fisherman's Potion - Yellow if(playable.getSkillLevel(1315) <= 12) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 4); break; case 8197: // Fisherman's Potion - Orange if(playable.getSkillLevel(1315) <= 15) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 5); break; case 8198: // Fisherman's Potion - Purple if(playable.getSkillLevel(1315) <= 18) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 6); break; case 8199: // Fisherman's Potion - Red if(playable.getSkillLevel(1315) <= 21) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 7); break; case 8200: // Fisherman's Potion - White if(playable.getSkillLevel(1315) <= 24) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); playable.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED)); return; } usePotion(playable, 2274, 8); break; case 8201: // Fisherman's Potion - Black usePotion(playable, 2274, 9); break; case 8202: // Fishing Potion usePotion(playable, 2275, 1); break; default: } activeChar = null; /* if(res) { playable.destroyItem("Consume", item.getObjectId(), 1, null, false); } */ } private boolean isEffectReplaceable(L2PlayableInstance activeChar, Enum<EffectType> effectType, int itemId) { L2Effect[] effects = activeChar.getAllEffects(); if(effects == null) return true; for(L2Effect e : effects) { if(e.getEffectType() == effectType) { if(e.getSkill().isPotion()) { // One can reuse pots after 2/3 of their duration is over. // It would be faster to check if its > 10 but that would screw custom pot durations... if(e.getTaskTime() > e.getSkill().getBuffDuration() * 67 / 100000) return true; SystemMessage sm = new SystemMessage(SystemMessageId.S1_PREPARED_FOR_REUSE); sm.addItemName(itemId); activeChar.sendPacket(sm); sm = null; return false; } } } return true; } public boolean usePotion(L2PlayableInstance activeChar, int magicId, int level) { if(activeChar.isCastingNow() && magicId > 2277 && magicId < 2285 && activeChar instanceof L2PcInstance) { _herbstask += 100; ThreadPoolManager.getInstance().scheduleAi(new HerbTask((L2PcInstance)activeChar, magicId, level), _herbstask); } else { if(magicId > 2277 && magicId < 2285 && _herbstask >= 100) { _herbstask -= 100; } L2Skill skill = SkillTable.getInstance().getInfo(magicId, level); if(activeChar.getTarget() instanceof L2StaticObjectInstance) { activeChar.setTarget(activeChar); } if(skill != null) { activeChar.doCast(skill); if(skill.isPotion() && !activeChar.isParalyzed() ){ if(activeChar instanceof L2PcInstance){ L2PcInstance instance = (L2PcInstance) activeChar; if(!instance.isSitting() && !instance.isAway() && !instance.isFakeDeath()) return true; }else return true; } //if(!((activeChar.isSitting() || activeChar.isParalyzed() || activeChar.isAway() || activeChar.isFakeDeath()) && !skill.isPotion())) // return true; } } return false; } @Override public int[] getItemIds() { return ITEM_IDS; } public static void delete_Potion_Item (L2PlayableInstance playable, Integer skill_id, Integer skill_level){ if(!(playable instanceof L2PcInstance) && !(playable instanceof L2Summon)){ return; } List<Integer> possible_potions = Potions.get_potions_for_skill(skill_id, skill_level); if(!possible_potions.isEmpty()){ for(Integer potion: possible_potions){ if(potion >= 8600 && potion <= 8614){ //herbs are directly destroyed continue; } if(playable instanceof L2PcInstance) { L2PcInstance activeChar = (L2PcInstance) playable; if(activeChar.getInventory().getInventoryItemCount(potion, 0)>0){ L2ItemInstance item = activeChar.getInventory().getItemByItemId(potion); activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false); }else{ if(Config.DEBUG) _log.log(Level.WARNING, "Attention: playable "+playable.getName()+" has not potions "+potion+"!"); } } else if(playable instanceof L2Summon) { L2Summon activeChar = (L2Summon) playable; if(activeChar.getInventory().getInventoryItemCount(potion, 0)>0){ L2ItemInstance item = activeChar.getInventory().getItemByItemId(potion); activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false); }else{ if(Config.DEBUG) _log.log(Level.WARNING, "Attention: playable "+playable.getName()+" has not potions "+potion+"!"); } } } }else{ _log.log(Level.WARNING, "Attention: Can't destroy potion for skill "+skill_id+" level "+skill_level); } } enum PotionsSkills{ mana_drug( 726, 2003, 1), mana_potion( 728, 2005, 1), red_potion( 65, 2001, 1), healing_drug(725, 2002, 1), healing_potion_ring(727, 2032, 1), quick_step_potion (734, 2011, 1), swift_attack_potion (735,2012, 1), lesser_healing_potion (1060,2031, 1), beginner_s_potion (1073, 2031, 1), healing_potion (1061, 2032, 1), haste_potion (1062, 2011, 1), adv_quick_step_potion (1374, 2034, 1), adv_swift_attack_potion (1375, 2035, 1), greater_healing_potion (1539, 2037, 1), quick_healing_potion(1540, 2038, 1), bless_of_eva(4679, 2076, 1), endeavor_potion(733, 2010, 1), potion_of_critical_escape(4667, 2074, 1), rsk_damage_shield_potion(4680, 2077, 1), Rice_Cake (5283, 2136, 1), CP (5591, 2166, 1), Greater_CP (5592, 2166, 2), Magic_Haste_Potion (6035, 2169, 1), Greater_Magic_Haste_Potion (6036, 2169, 2), elixir_of_Life_nog(8622,2287, 1), elixir_of_Life_d(8623,2287, 2), elixir_of_Life_c(8624,2287, 3), elixir_of_Life_b(8625,2287, 4), elixir_of_Life_a(8626,2287, 5), elixir_of_Life_s(8627,2287, 6), elixir_of_Strength_nog(8628, 2288, 1), elixir_of_Strength_d(8629, 2288, 2), elixir_of_Strength_c(8630, 2288, 3), elixir_of_Strength_b(8631, 2288, 4), elixir_of_Strength_a(8632, 2288, 5), elixir_of_Strength_s(8633, 2288, 6), elixir_of_cp_nog(8634,2289, 1), elixir_of_cp_d(8635,2289, 2), elixir_of_cp_c(8636,2289, 3), elixir_of_cp_b(8637,2289, 4), elixir_of_cp_a(8638,2289, 5), elixir_of_cp_s(8639,2289, 6), Amulet_Protection_of_Valakas(6652, 2231, 1), Amulet_Flames_of_Valakas_1 (6653, 2233, 1), Amulet_Flames_of_Valakas_2 (6654, 2233, 1), Amulet_Slay_Valakas (6655, 2232, 1), Herb_of_Life (8600, 2278, 1), Greater_Herb_of_Life (8601, 2278, 2), Superior_Herb_of_Life (8602, 2278, 3), Herb_of_Mana (8603, 2279, 1), Greater_Herb_of_Mane (8604, 2279, 2), Superior_Herb_of_Mane (8605, 2279, 3), Herb_of_Strength (8606, 2280, 1), Herb_of_Magic (8607, 2281, 1), Herb_of_Atk_Spd (8608, 2282, 1), Herb_of_Casting_Spd (8609, 2283, 1), Herb_of_Critical_Attack (8610, 2284, 1), Herb_of_Speed (8611, 2285, 1), Herb_of_Warrior (8612, new Integer[]{2280,2282,2284},new Integer[]{1,1,1}), Herb_of_Mystic (8613, new Integer[]{2281,2283},new Integer[]{1,1}), Herb_of_Recovery (8614, new Integer[]{2278,2279},new Integer[]{3,3}), Fisherman_s_Potion_Green (8193, 2274, 1), Fisherman_s_Potion_Jade (8194, 2274, 2), Fisherman_s_Potion_Blue (8195, 2274, 3), Fisherman_s_Potion_Yellow (8196, 2274, 4), Fisherman_s_Potion_Orange (8197, 2274, 5), Fisherman_s_Potion_Purple (8198, 2274, 6), Fisherman_s_Potion_Red (8199, 2274, 7), Fisherman_s_Potion_White (8200, 2274, 8), Fisherman_s_Potion_Black (8201, 2274, 9), Fishing_Potion (8202, 2275, 1); public Integer potion_id; public FastMap<Integer, Integer> skills = new FastMap<Integer, Integer>(); private PotionsSkills(int potion_item, int skill_identifier , int skill_level){ //FastMap<Integer, Integer> skills = new FastMap<Integer, Integer>(); skills.put(skill_identifier, skill_level); //potion_id_skills.put(potion_item, skills); potion_id=potion_item; } private PotionsSkills(int potion_item, Integer[] skill_identifiers , Integer[] skill_levels){ //FastMap<Integer, Integer> skills = new FastMap<Integer, Integer>(); for(int i = 0;i<skill_identifiers.length;i++){ skills.put(skill_identifiers[i], skill_levels[i]); //each skill of a particular potion //can have just 1 level, not more } potion_id=potion_item; //potion_id_skills.put(potion_item, skills); } /* public final FastMap<Integer,Integer> get_skills_for_potion(Integer potion_id){ return potion_id_skills.get(potion_id); } public final List<Integer> get_potions_for_skill(Integer skill_id, Integer skill_level){ List<Integer> output_potions = new ArrayList<Integer>(); for(Integer actual_potion_item: potion_id_skills.keySet()){ FastMap<Integer,Integer> actual_item_skills = potion_id_skills.get(actual_potion_item); if(actual_item_skills!=null && actual_item_skills.get(skill_id)!=null && actual_item_skills.get(skill_id)==skill_level){ output_potions.add(actual_potion_item); } } return output_potions; } */ } } and soulshot.java /* * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.handler.itemhandlers; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.handler.IItemHandler; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.ExAutoSoulShot; import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; import com.l2jfrozen.gameserver.skills.Stats; import com.l2jfrozen.gameserver.templates.L2Item; import com.l2jfrozen.gameserver.templates.L2Weapon; import com.l2jfrozen.gameserver.util.Broadcast; /** * This class ... * * @version $Revision: 1.2.4.5 $ $Date: 2009/04/13 03:12:07 $ * @author programmos */ public class SoulShots implements IItemHandler { // All the item IDs that this handler knows. private static final int[] ITEM_IDS = { 5789, 1835, 1463, 1464, 1465, 1466, 1467 }; private static final int[] SKILL_IDS = { 2039, 2150, 2151, 2152, 2153, 2154 }; /* (non-Javadoc) * @see com.l2jfrozen.gameserver.handler.IItemHandler#useItem(com.l2jfrozen.gameserver.model.L2PcInstance, com.l2jfrozen.gameserver.model.L2ItemInstance) */ @Override public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if(!(playable instanceof L2PcInstance)) return; L2PcInstance activeChar = (L2PcInstance) playable; L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance(); L2Weapon weaponItem = activeChar.getActiveWeaponItem(); int itemId = item.getItemId(); // Check if Soulshot can be used if(weaponInst == null || weaponItem.getSoulShotCount() == 0) { if(!activeChar.getAutoSoulShot().containsKey(itemId)) { activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_USE_SOULSHOTS)); } return; } if(activeChar.isParalyzed()) { activeChar.sendMessage("You Cannot Use This While You Are Paralyzed"); activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } // Check for correct grade int weaponGrade = weaponItem.getCrystalType(); if(weaponGrade == L2Item.CRYSTAL_NONE && itemId != 5789 && itemId != 1835 || weaponGrade == L2Item.CRYSTAL_D && itemId != 1463 || weaponGrade == L2Item.CRYSTAL_C && itemId != 1464 || weaponGrade == L2Item.CRYSTAL_B && itemId != 1465 || weaponGrade == L2Item.CRYSTAL_A && itemId != 1466 || weaponGrade == L2Item.CRYSTAL_S && itemId != 1467) { if(!activeChar.getAutoSoulShot().containsKey(itemId)) { activeChar.sendPacket(new SystemMessage(SystemMessageId.SOULSHOTS_GRADE_MISMATCH)); } return; } activeChar.soulShotLock.lock(); try { // Check if Soulshot is already active if(weaponInst.getChargedSoulshot() != L2ItemInstance.CHARGED_NONE) return; // Consume Soulshots if player has enough of them int saSSCount = (int) activeChar.getStat().calcStat(Stats.SOULSHOT_COUNT, 0, null, null); int SSCount = saSSCount == 0 ? weaponItem.getSoulShotCount() : saSSCount; weaponItem = null; // TODO: test ss if(!Config.DONT_DESTROY_SS) { if(!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), SSCount, null, false)) { if(activeChar.getAutoSoulShot().containsKey(itemId)) { activeChar.removeAutoSoulShot(itemId); activeChar.sendPacket(new ExAutoSoulShot(itemId, 0)); SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED); sm.addString(item.getItem().getName()); activeChar.sendPacket(sm); sm = null; } else { activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SOULSHOTS)); } return; } } // Charge soulshot weaponInst.setChargedSoulshot(L2ItemInstance.CHARGED_SOULSHOT); weaponInst = null; } finally { activeChar.soulShotLock.unlock(); } // Send message to client activeChar.sendPacket(new SystemMessage(SystemMessageId.ENABLED_SOULSHOT)); Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/); activeChar = null; } @Override public int[] getItemIds() { return ITEM_IDS; } } what should i change in code line? Quote Link to comment Share on other sites More sharing options...
0 Versus Posted December 2, 2016 Share Posted December 2, 2016 (edited) Just add w/e code the patch has at ItemSkills class to Potions class. Edited December 2, 2016 by Versus Quote Link to comment Share on other sites More sharing options...
0 Helperis Posted December 2, 2016 Author Share Posted December 2, 2016 Just add w/e code the patch has at ItemSkills class to Potions class. where is no such class as itemskills in frozen or i can find it. Quote Link to comment Share on other sites More sharing options...
0 Reborn12 Posted December 2, 2016 Share Posted December 2, 2016 He means open potions.java and what is in the patch for itemskills.java edit potions.java with this you dont have to search for itemskills Quote Link to comment Share on other sites More sharing options...
Question
Helperis
Hello,
i need auto potio for frozen tried to use this code http://www.maxcheaters.com/topic/187787-automatic-potions-free-code-for-all-l2j-packs/ But frozen doest have class itemskills. any suggestion how to fix it?
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.