chiton 12 Опубликовано 9 сентября, 2015 (изменено) Всем привет,ну из названия темы я думаю все понятно.1 мысля. создать итем-баф с пером (слишком просто и не удобно) нужно использовать пока живой, занимает 1 баф слот. 2 мысля. сам итем с хендлером в ядре, но с моими знаниями тут мне будет нужна помощь. 3 мысля. пасивний скилл, с кодом аля, иф чаректер из дед, чек инвентору фор а итем "свиток восрещения" иф труе "свиток воскрешения" -1 делей 5 сек рес перса. иф фалсе енд. ну тут суть я понял но без учебника не напишу)какой из вариатов будет лучше всего?? Изменено 9 сентября, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MrMix3r 1 Опубликовано 9 сентября, 2015 жЫвой блять! через Ы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 9 сентября, 2015 жЫвой блять! через Ы ну не по сути конечно, но я учту (сорян за орфографию Русский не учил) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 9 сентября, 2015 Какой толк то от этого всего? Я бы сказал что 1 вариант самый гуманный для l2. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 9 сентября, 2015 ну ета затея для евента. вариант со скилом мне кажется оч харош. его можно прикрутить к зоне. например: если перс умер в зоне действия скила то проверять инвентарь на свиток, если таковой есть, то воскрешаем перса, если нету то "ту виладж". может у когото есть идеи лучше, буду рад. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 9 сентября, 2015 По такому типу как на твт ты имеешь в виду? Просто никто не понимает сути эвента из-за этого не уверен что кто-то что-то скажет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 9 сентября, 2015 ну тут в принцыпе суть евента не важна. основную задачу я написал.нужно создать скил(который я пожже примотаю к зоне) если ктото погиб в етой зоне, его инвентарь проверяется на итем, если таковой есть, то через 5 сек воскрешает перса и забирает итем, если нету то по стандарту "ту виладж" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
(D)uality 700 Опубликовано 9 сентября, 2015 Всем привет, ну из названия темы я думаю все понятно. 1 мысля. создать итем-баф с пером (слишком просто и не удобно) нужно использовать пока живой, занимает 1 баф слот. 2 мысля. сам итем с хендлером в ядре, но с моими знаниями тут мне будет нужна помощь. 3 мысля. пасивний скилл, с кодом аля, иф чаректер из дед, чек инвентору фор а итем "свиток восрещения" иф труе "свиток воскрешения" -1 делей 5 сек рес перса. иф фалсе енд.ну тут суть я понял но без учебника не напишу) какой из вариатов будет лучше всего?? Делаем итем, который при двойном клике дает бафф. Сам пример бафа можно взять с пера. Немного примера скрипта 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(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) }); **/ SCROLLS.put(0, new Integer[] { 0, 1, 0, 1, 1 }); SCROLLS.put(0, new Integer[] { 0, 1, 0, 1, 1 }); SCROLLS.put(0, new Integer[] { 0, 1, 0, 1, 1 }); // 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; } } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 17 сентября, 2015 а можно просто листенер на смерть заюзать (если сборкой поддерживается) и там выдавать запрос на воскрешение Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 17 сентября, 2015 Делаем итем, который при двойном клике дает бафф. Сам пример бафа можно взять с пера. Немного примера скрипта 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(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) }); **/ SCROLLS.put(0, new Integer[] { 0, 1, 0, 1, 1 }); SCROLLS.put(0, new Integer[] { 0, 1, 0, 1, 1 }); SCROLLS.put(0, new Integer[] { 0, 1, 0, 1, 1 }); // 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; } } Зачем крутить Колин скрипт, если можно попросту присвоить сальву обычному свитку? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 17 сентября, 2015 Всем привет, ну из названия темы я думаю все понятно. 1 мысля. создать итем-баф с пером (слишком просто и не удобно) нужно использовать пока живой, занимает 1 баф слот. 2 мысля. сам итем с хендлером в ядре, но с моими знаниями тут мне будет нужна помощь. 3 мысля. пасивний скилл, с кодом аля, иф чаректер из дед, чек инвентору фор а итем "свиток восрещения" иф труе "свиток воскрешения" -1 делей 5 сек рес перса. иф фалсе енд. ну тут суть я понял но без учебника не напишу) какой из вариатов будет лучше всего?? если будете юзать первый вариант - не забудьте проверить перса на согласие резурекшена. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты