malder 96 Опубликовано 7 октября, 2014 Здравствуйте Очень интересует, как можно реализовать такую штуку: свиток, который покупается в магазине, живёт у вас в паке 15 дней и при нажатии на него даёт вам бафф или по вашему таргету (сам при этом не исчезает). Пробовал делать такое с l2Day, но это совсем не то или я не там смотрел 0_о . Вот ид l2Day'ки: <item id="3926" type="EtcItem" name="L2Day - Scroll of Guidance"> <set name="default_action" val="skill_reduce"/> <set name="etcitem_type" val="scroll"/> <set name="material" val="PAPER"/> <set name="weight" val="120"/> <set name="is_stackable" val="true"/> <set name="is_oly_restricted" val="true"/> <set name="handler" val="ItemSkills"/> <set name="item_skill" val="2050-1"/> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}"/> </item> С меня "+" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 7 октября, 2014 хроники какие Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 7 октября, 2014 узнал, что аттрибут <time> отвечает за дни, хотя количество оставшихся дней на предмете не пишет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 7 октября, 2014 хроники какие Тьфу, самое главное забыл хД ц6, сборка l2Dimension (aCis) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 7 октября, 2014 не помню как шадов оружие ано по времени тоже но в часах можно переделать на дни а не проще зделать шапочьку каторая при одевании будет довать скилы на баф 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 7 октября, 2014 не помню как шадов оружие ано по времени тоже но в часах можно переделать на дни а не проще зделать шапочьку каторая при одевании будет довать скилы на баф в принципе это идея, но тогда все мои идеи перемещаются в иное русло хД. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 7 октября, 2014 ну у меня зделано по примеру шадов аксэсуара и игроки давольны и красиво и скилы есть только пасивки не баф 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 7 октября, 2014 ну у меня зделано по примеру шадов аксэсуара и игроки давольны и красиво и скилы есть только пасивки не баф Убедили! Теперь осталось найти нормальные шапочки для ц6 и скачать. А ещё амуницию с ХФ и ГоДа, но это уже другая тема =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Firs 34 Опубликовано 7 октября, 2014 (изменено) а ты пробывал давать итуму 2 скила <set name="item_skill" val="2050-1, 2051-1"/> бафает 2 скила ? Изменено 7 октября, 2014 пользователем Firs Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Sania 116 Опубликовано 7 октября, 2014 для реализации идеи тса нужен скрипт. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 7 октября, 2014 а ты пробывал давать итуму 2 скила <set name="item_skill" val="2050-1, 2051-1"/> бафает 2 скила ? Нет, для этого нужно изменять/добавлять сам скилл Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MultiCrazy 934 Опубликовано 8 октября, 2014 Вот держите может сможете прикрутить для aCis. Изначально написанная для PW 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.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(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) }); **/ SCROLLS.put(4355, new Integer[] { 1204, 2, 2036, 1, 0 }); SCROLLS.put(4356, new Integer[] { 269, 1, 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; } } Маленькое описание: Скрипт позволяет привязать к любому предмету определенный бафф. Настройки внутри скрипта, по шаблону: /**шаблон **SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) }); **/ Пример, при нажатии правой кнопкой на итем 4355, игрок получет бафф 1204 2 уровня.: SCROLLS.put(4355, new Integer[] { 1204, 2, 2036, 1, 0 }); прописать в data/scripts.cfg #Скроллы баффа items/DonateScrolls.java ну или скачать готовый вариант)) 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 8 октября, 2014 поверить не могу, что для того, чтобы свиток не исчезал после использования, нужно писать скрипт 0_________о Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Detect 618 Опубликовано 9 октября, 2014 поверить не могу, что для того, чтобы свиток не исчезал после использования, нужно писать скрипт 0_________о duration не поможет ? Теневвым сделай как минимум Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
malder 96 Опубликовано 9 октября, 2014 duration не поможет ? Теневвым сделай как минимум Вот какая штука выходит. Если я сделаю теневым, то при использовании со свитка не будет забираться мана. В добавок, я не знаю как сделать так, чтобы после использования он не исчезал. Иными словами: лежит у вас в паке свиток, на который вы нажали, получили баф, а со свитка сняло 1 поинт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Detect 618 Опубликовано 9 октября, 2014 Вот какая штука выходит. Если я сделаю теневым, то при использовании со свитка не будет забираться мана. В добавок, я не знаю как сделать так, чтобы после использования он не исчезал. Иными словами: лежит у вас в паке свиток, на который вы нажали, получили баф, а со свитка сняло 1 поинт Выше тебе дали скрипт только под пв. Читай внимательно /**шаблон **SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) }); **/ Делаешь этот итем через duration высчитай 15 дней сколько минут, и все. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты