AlonD 0 Опубликовано 4 августа, 2011 Есть скрипт при нажатии на Итем повышает виталити. Мне нужно что бы при нажатии с определенный шансом выпадал какой либо другой итем. Вот код с Виталити: package items; import l2open.extensions.scripts.Functions; import l2open.extensions.scripts.ScriptFile; import l2open.gameserver.cache.Msg; import l2open.gameserver.handler.IItemHandler; import l2open.gameserver.handler.ItemHandler; import l2open.gameserver.model.L2Playable; import l2open.gameserver.model.L2Player; import l2open.gameserver.model.items.L2ItemInstance; /** * @create by brrr * @date 20.10.10 */ public class TS implements IItemHandler, ScriptFile { private static final int[] _itemIds = { 10254 }; public void useItem(L2Playable playable, L2ItemInstance item, Boolean ctrl) { if(playable == null || !playable.isPlayer()) return; L2Player player = (L2Player) playable; player.setVitality(20000); player.sendPacket(Msg.YOU_HAVE_GAINED_VITALITY_POINTS); Functions.removeItem(player, 10254, 1); } public final int[] getItemIds() { return _itemIds; } public void onLoad() { ItemHandler.getInstance().registerItemHandler(this); } public void onReload() {} public void onShutdown() {} } Как я понял необходимо редактирование выделенной части скрипта, кто разберется прошу ответить. Как бы раньше не приходилось. Жду предложений, буду благодарен. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 4 августа, 2011 http://l2maxi.ru/lineage2/article/2602-gay...yy-predmet.html а это не легче? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlonD 0 Опубликовано 4 августа, 2011 http://l2maxi.ru/lineage2/article/2602-gay...yy-predmet.htmlа это не легче? 1. Ну во первых это Freya 2. Во вторых практически все сборки Epilogue+ основаны на движке L2Phoenix 3. Я пытаюсь сделать скрипт на L2Open (Движек L2Phoenix) 4. У L2Phoenix никогда не было файла extractable_items.csv Жду ваших предложений дальше =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 4 августа, 2011 Я знаю чтоб выдать но с шансом надо попробовать сделать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlonD 0 Опубликовано 4 августа, 2011 Я знаю чтоб выдать но с шансом надо попробовать сделать C шансом делается не сложно, вот так где то if(Rnd.chance(100)) <<100%>> { addItem( А вот тут ХЗ че дальше); } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 4 августа, 2011 а там ид Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlonD 0 Опубликовано 4 августа, 2011 а там ид чего я там только не писал =/ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 4 августа, 2011 if(Rnd.chance(50)) addItem(player, id, Количество) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlonD 0 Опубликовано 4 августа, 2011 if(Rnd.chance(50)) addItem(player, id, Количество) Не Канает не та и даже не Эта package items; import l2open.extensions.scripts.Functions; import l2open.extensions.scripts.ScriptFile; import l2open.gameserver.cache.Msg; import l2open.gameserver.handler.IItemHandler; import l2open.gameserver.handler.ItemHandler; import l2open.gameserver.model.L2Playable; import l2open.gameserver.model.L2Player; import l2open.gameserver.model.items.L2ItemInstance; import l2open.gameserver.model.L2Character; import l2open.gameserver.model.L2Spawn; import l2open.util.Files; import l2open.util.Rnd; public class TS implements IItemHandler, ScriptFile { private static final int[] _itemIds = { 10254 }; public void useItem(L2Playable playable, L2ItemInstance item, Boolean ctrl) { if(playable == null || !playable.isPlayer()) return; L2Player player = (L2Player) playable; player.setVitality(20000); player.sendPacket(Msg.YOU_HAVE_GAINED_VITALITY_POINTS); Functions.removeItem(player, 10254, 1); Functions.addItem(player, 57, 1000); } public final int[] getItemIds() { return _itemIds; } public void onLoad() { ItemHandler.getInstance().registerItemHandler(this); } public void onReload() {} public void onShutdown() {} } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 4 августа, 2011 public void ItemHandler_14897(L2Player player, Boolean ctrl) { if(player == null) return; if(!canBeExtracted(ид вещи с которай котрой выпадет итем, player)) return; removeItem(player, ид вещи с которай котрой выпадет итем, скок заберёт); if(Rnd.chance(50)) addItem(player, Ид итем который даст, Количество); if(Rnd.chance(50)) addItem(player, Ид итем который даст, Количество); else player.sendPacket(Msg.THERE_WAS_NOTHING_FOUND_INSI DE_OF_THAT); } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlonD 0 Опубликовано 4 августа, 2011 Я СЗСЗСДЕЛАЛ ЭТО!!! Урррааа!! package items; import l2open.extensions.scripts.Functions; import l2open.extensions.scripts.ScriptFile; import l2open.gameserver.cache.Msg; import l2open.gameserver.handler.IItemHandler; import l2open.gameserver.handler.ItemHandler; import l2open.gameserver.model.L2Playable; import l2open.gameserver.model.L2Player; import l2open.gameserver.model.items.L2ItemInstance; import l2open.gameserver.model.L2Character; import l2open.gameserver.model.L2Spawn; import l2open.util.Files; import l2open.util.Rnd; public class TS implements IItemHandler, ScriptFile { private static final int[] _itemIds = { 10254 }; public void useItem(L2Playable playable, L2ItemInstance item, Boolean ctrl) { if(playable == null || !playable.isPlayer()) return; L2Player player = (L2Player) playable; player.setVitality(20000); player.sendPacket(Msg.YOU_HAVE_GAINED_VITALITY_POINTS); Functions.removeItem(player, 10254, 1); if(Rnd.chance(10)) { Functions.addItem(player, 57, 1000); } } public final int[] getItemIds() { return _itemIds; } public void onLoad() { ItemHandler.getInstance().registerItemHandler(this); } public void onReload() {} public void onShutdown() {} } Все спасиб!! Уже не надо =) Шанс выпада 10% предемета 57 в количестве 1000 Еаа Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты