SoFace 315 Опубликовано 14 октября, 2013 Доброго времени суток. Суть скрипта такова, персонаж использует предмет (который будет указан в скрипте) и на него вешается бафф. Так же можно поставить в виде Хиро предмета. Все, что угодно можно сделать, главное мозги.) Кстати говоря, постараюсь помочь вам в ваших пожеланиях по этому скрипту. Покажу как использовать: SCROLLS.put(ID вашего предмета который будет использоваться в качестве скролла, new Integer[] { ID баффа который будет вешаться на персонажа при юзе этого скролла, уровень вашего баффа, ID скилла анимации которая будет показана при юзе этого скролла, продолжительность анимации, кушать ли скролл при юзе ? (1 - да, 0 - нет) }); package items; import javolution.util.FastMap; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.cache.Static; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser; import scripts.items.ItemHandler; import scripts.items.IItemHandler; public class DonateScrolls implements IItemHandler { private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS"); private static int[] ITEM_IDS = null; public DonateScrolls() { SCROLLS.put(4355, new Integer[] { 1204, 2, 2036, 1, 0 }); // Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[sCROLLS.size()]); ITEM_IDS = toIntArray(tmp_ids); tmp_ids = null; ItemHandler.getInstance().registerItemHandler(this); } public static void main (String... arguments ) { new DonateScrolls(); } public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if (!playable.isPlayer()) return; L2PcInstance player = (L2PcInstance) playable; if (player.isAllSkillsDisabled()) { player.sendActionFailed(); return; } if (player.isInOlympiadMode()) { player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT); player.sendActionFailed(); return; } Integer[] data = SCROLLS.get(item.getItemId()); if(data != null) { player.stopSkillEffects(data[0]); SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player); player.broadcastPacket(new MagicSkillUser(player, player, data[2], 1, data[3], 0)); if (data[4] == 1) player.destroyItem("Consume", item.getObjectId(), 1, null, false); } } private int[] toIntArray(Integer[] arr) { int[] ret = new int[arr.length]; int i = 0; for (Integer e : arr) ret[i++] = e.intValue(); return ret; } public int[] getItemIds() { return ITEM_IDS; } } 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aeore 326 Опубликовано 14 октября, 2013 Старо как мир. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 14 октября, 2013 Старо как мир. Я в курсе. Тут многие не являются клиентами PW Soft'а, я думаю им скрипты тоже нужны. Может они вообще о таких не знали. Все во благо людям. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 14 октября, 2013 Я заказывал данный скрипт, точнее мой "друг". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Castiel 302 Опубликовано 14 октября, 2013 Старо как мир. Зашарь что то "не старое", раз умный такой. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 14 октября, 2013 Я заказывал данный скрипт, точнее мой "друг". Он в клиент разделе лежит на форуме PW.) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aeore 326 Опубликовано 14 октября, 2013 Зашарь что то "не старое", раз умный такой. Этот скрипт в море шаро сборок лежит... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aeore 326 Опубликовано 14 октября, 2013 Я заказывал данный скрипт, точнее мой "друг". Еще при моем клиентстве в пв года 2 назад он его написал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Castiel 302 Опубликовано 14 октября, 2013 Этот скрипт в море шаро сборок лежит... Я это знаю, но в общем он же шарит не для тебя, а для тех у кого его нет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GhostRider 14 Опубликовано 21 июня, 2016 пытаюсь поправить под ядро 2015никак не получается, нашел ошибку только в методе UseItem - не хватало одного параметра. В ГС пишет Failed running: C.UseItem //java.lang.NullPointerExceptionМожет кто укажет где правитьКод аналогичный первому посту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 21 июня, 2016 useItem(L2PlayableInstance playable, L2ItemInstance item, boolean ctrl) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GhostRider 14 Опубликовано 21 июня, 2016 useItem(L2PlayableInstance playable, L2ItemInstance item, boolean ctrl) так и сделал предмет не используется вот ошибка В ГС пишет Failed running: C.UseItem //java.lang.NullPointerException возможно нужно использовать ctrl в коде? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GhostRider 14 Опубликовано 22 июня, 2016 ап Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты