chiton 12 Опубликовано 9 сентября, 2015 (изменено) Всем привет,ну из названия темы я думаю все понятно.1 мысля. создать итем-баф с пером (слишком просто и не удобно) нужно использовать пока живой, занимает 1 баф слот. 2 мысля. сам итем с хендлером в ядре, но с моими знаниями тут мне будет нужна помощь. 3 мысля. пасивний скилл, с кодом аля, иф чаректер из дед, чек инвентору фор а итем "свиток восрещения" иф труе "свиток воскрешения" -1 делей 5 сек рес перса. иф фалсе енд. ну тут суть я понял но без учебника не напишу)какой из вариатов будет лучше всего?? Изменено 9 сентября, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MrMix3r 1 Опубликовано 9 сентября, 2015 жЫвой блять! через Ы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 9 сентября, 2015 В 09.09.2015 в 07:34, MrMix3r сказал: жЫвой блять! через Ы ну не по сути конечно, но я учту (сорян за орфографию Русский не учил) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 9 сентября, 2015 Какой толк то от этого всего? Я бы сказал что 1 вариант самый гуманный для l2. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 9 сентября, 2015 ну ета затея для евента. вариант со скилом мне кажется оч харош. его можно прикрутить к зоне. например: если перс умер в зоне действия скила то проверять инвентарь на свиток, если таковой есть, то воскрешаем перса, если нету то "ту виладж". может у когото есть идеи лучше, буду рад. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 9 сентября, 2015 По такому типу как на твт ты имеешь в виду? Просто никто не понимает сути эвента из-за этого не уверен что кто-то что-то скажет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 9 сентября, 2015 ну тут в принцыпе суть евента не важна. основную задачу я написал.нужно создать скил(который я пожже примотаю к зоне) если ктото погиб в етой зоне, его инвентарь проверяется на итем, если таковой есть, то через 5 сек воскрешает перса и забирает итем, если нету то по стандарту "ту виладж" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
(D)uality 700 Опубликовано 9 сентября, 2015 В 09.09.2015 в 07:28, chiton сказал: Всем привет, ну из названия темы я думаю все понятно. 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 621 Опубликовано 17 сентября, 2015 а можно просто листенер на смерть заюзать (если сборкой поддерживается) и там выдавать запрос на воскрешение Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 17 сентября, 2015 В 09.09.2015 в 14:07, (D)uality сказал: Делаем итем, который при двойном клике дает бафф. Сам пример бафа можно взять с пера. Немного примера скрипта 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 В 09.09.2015 в 07:28, chiton сказал: Всем привет, ну из названия темы я думаю все понятно. 1 мысля. создать итем-баф с пером (слишком просто и не удобно) нужно использовать пока живой, занимает 1 баф слот. 2 мысля. сам итем с хендлером в ядре, но с моими знаниями тут мне будет нужна помощь. 3 мысля. пасивний скилл, с кодом аля, иф чаректер из дед, чек инвентору фор а итем "свиток восрещения" иф труе "свиток воскрешения" -1 делей 5 сек рес перса. иф фалсе енд. ну тут суть я понял но без учебника не напишу) какой из вариатов будет лучше всего?? если будете юзать первый вариант - не забудьте проверить перса на согласие резурекшена. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты