Идем по пути gameserver/data/scripts/handler/items открываем BeastShot.java ищем: Код: switch(item.getItemId()) { case 6645: case 20332: if(pet.getChargedSoulShot()) return false; consumption = pet.getSoulshotConsumeCount(); if(!player.getInventory().destroyItem(item, consumption)) { player.sendPacket(Msg.YOU_DONT_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR); return false; } pet.chargeSoulShot(); skillid = 2033; break; case 6646: case 20333: if(pet.getChargedSpiritShot() > 0) return false; consumption = pet.getSpiritshotConsumeCount(); if(!player.getInventory().destroyItem(item, consumption)) { player.sendPacket(Msg.YOU_DONT_HAVE_ENOUGH_SPIRITSHOTS_NEEDED_FOR_A_PET_SERVITOR); return false; } pet.chargeSpiritShot(ItemInstance.CHARGED_SPIRITSHOT); skillid = 2008; break; case 6647: case 20334: if(pet.getChargedSpiritShot() > 1) return false; consumption = pet.getSpiritshotConsumeCount(); if(!player.getInventory().destroyItem(item, consumption)) { player.sendPacket(Msg.YOU_DONT_HAVE_ENOUGH_SPIRITSHOTS_NEEDED_FOR_A_PET_SERVITOR); return false; } pet.chargeSpiritShot(ItemInstance.CHARGED_BLESSED_SPIRITSHOT); skillid = 2009; break; } меняем на: Код: switch(item.getItemId()) { case 6645: case 20332: if (!Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST) { if(pet.getChargedSoulShot()) return false; consumption = pet.getSoulshotConsumeCount(); if(!player.getInventory().destroyItem(item, consumption)) { player.sendPacket(Msg.YOU_DONT_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR); return false; } pet.chargeSoulShot(); skillid = 2033; break; } else if (Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST) { pet.chargeSoulShot(); skillid = 2033; break; } case 6646: case 20333: if (!Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST) { if(pet.getChargedSpiritShot() > 0) return false; consumption = pet.getSpiritshotConsumeCount(); if(!player.getInventory().destroyItem(item, consumption)) { player.sendPacket(Msg.YOU_DONT_HAVE_ENOUGH_SPIRITSHOTS_NEEDED_FOR_A_PET_SERVITOR); return false; } pet.chargeSpiritShot(ItemInstance.CHARGED_SPIRITSHOT); skillid = 2008; break; } else if (Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST) { pet.chargeSpiritShot(ItemInstance.CHARGED_SPIRITSHOT); skillid = 2008; break; } case 6647: case 20334: if (!Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST) { if(pet.getChargedSpiritShot() > 1) return false; consumption = pet.getSpiritshotConsumeCount(); if(!player.getInventory().destroyItem(item, consumption)) { player.sendPacket(Msg.YOU_DONT_HAVE_ENOUGH_SPIRITSHOTS_NEEDED_FOR_A_PET_SERVITOR); return false; } pet.chargeSpiritShot(ItemInstance.CHARGED_BLESSED_SPIRITSHOT); skillid = 2009; break; } else if (Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST) { pet.chargeSpiritShot(ItemInstance.CHARGED_BLESSED_SPIRITSHOT); skillid = 2009; break; } } далее идем по пути в исходниках l2ft/gameserver/ открываем Config.java добавляем: Код: public static boolean ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST; ищем настройки итемов: Код: public static void loadItemsSettings() { ExProperties itemsProperties = load(ITEMS_FILE); CAN_BE_TRADED_NO_TARADEABLE = itemsProperties.getProperty("CanBeTradedNoTradeable", false); CAN_BE_TRADED_NO_SELLABLE = itemsProperties.getProperty("CanBeTradedNoSellable", false); CAN_BE_TRADED_NO_STOREABLE = itemsProperties.getProperty("CanBeTradedNoStoreable", false); CAN_BE_TRADED_SHADOW_ITEM = itemsProperties.getProperty("CanBeTradedShadowItem", false); CAN_BE_TRADED_HERO_WEAPON = itemsProperties.getProperty("CanBeTradedHeroWeapon", false); CAN_BE_WH_NO_TARADEABLE = itemsProperties.getProperty("CanBeWhNoTradeable", false); CAN_BE_CWH_NO_TARADEABLE = itemsProperties.getProperty("CanBeCwhNoTradeable", false); CAN_BE_CWH_IS_AUGMENTED = itemsProperties.getProperty("CanBeCwhIsAugmented", false); CAN_BE_WH_IS_AUGMENTED = itemsProperties.getProperty("CanBeWhIsAugmented", false); ALLOW_SOUL_SPIRIT_SHOT_INFINITELY = itemsProperties.getProperty("AllowSoulSpiritShotInfinitely", false); ALLOW_ARROW_INFINITELY = itemsProperties.getProperty("AllowArrowInfinitely", false); ALLOW_START_ITEMS = itemsProperties.getProperty("AllowStartItems", false); START_ITEMS_MAGE = itemsProperties.getProperty("StartItemsMageIds", new int[] { 57 }); START_ITEMS_MAGE_COUNT = itemsProperties.getProperty("StartItemsMageCount", new int[] { 1 }); START_ITEMS_FITHER = itemsProperties.getProperty("StartItemsFigtherIds", new int[] { 57 }); START_ITEMS_FITHER_COUNT = itemsProperties.getProperty("StartItemsFigtherCount", new int[] { 1 }); } меняем на: Код: public static void loadItemsSettings() { ExProperties itemsProperties = load(ITEMS_FILE); CAN_BE_TRADED_NO_TARADEABLE = itemsProperties.getProperty("CanBeTradedNoTradeable", false); CAN_BE_TRADED_NO_SELLABLE = itemsProperties.getProperty("CanBeTradedNoSellable", false); CAN_BE_TRADED_NO_STOREABLE = itemsProperties.getProperty("CanBeTradedNoStoreable", false); CAN_BE_TRADED_SHADOW_ITEM = itemsProperties.getProperty("CanBeTradedShadowItem", false); CAN_BE_TRADED_HERO_WEAPON = itemsProperties.getProperty("CanBeTradedHeroWeapon", false); CAN_BE_WH_NO_TARADEABLE = itemsProperties.getProperty("CanBeWhNoTradeable", false); CAN_BE_CWH_NO_TARADEABLE = itemsProperties.getProperty("CanBeCwhNoTradeable", false); CAN_BE_CWH_IS_AUGMENTED = itemsProperties.getProperty("CanBeCwhIsAugmented", false); CAN_BE_WH_IS_AUGMENTED = itemsProperties.getProperty("CanBeWhIsAugmented", false); ALLOW_SOUL_SPIRIT_SHOT_INFINITELY = itemsProperties.getProperty("AllowSoulSpiritShotInfinitely", false); ALLOW_SOUL_SPIRIT_SHOT_INFINITELY_BEAST = itemsProperties.getProperty("AllowSoulSpiritShotInfinitelyBeast", false); ALLOW_ARROW_INFINITELY = itemsProperties.getProperty("AllowArrowInfinitely", false); ALLOW_START_ITEMS = itemsProperties.getProperty("AllowStartItems", false); START_ITEMS_MAGE = itemsProperties.getProperty("StartItemsMageIds", new int[] { 57 }); START_ITEMS_MAGE_COUNT = itemsProperties.getProperty("StartItemsMageCount", new int[] { 1 }); START_ITEMS_FITHER = itemsProperties.getProperty("StartItemsFigtherIds", new int[] { 57 }); START_ITEMS_FITHER_COUNT = itemsProperties.getProperty("StartItemsFigtherCount", new int[] { 1 }); } после чего идем в конфиги, открываем items.ini и добавляем туда строку: Код: # Включить бесконечные шоты у петов? AllowSoulSpiritShotInfinitelyBeast = True все сохраняем, билдим ядро, если надо то и скрипты, запускаем и радуемся бесконечным шотам у петов