Kst 2 Опубликовано 5 августа, 2016 Подскажите пожалуйста умные скриптера, как сделать ограничение дропа с моба в зависимости от шмоток.. Я хочу сделать фарм зону, где с моба будет падать фарм только для тех, кто одет в классик шмот.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BigZy 1 Опубликовано 5 августа, 2016 Посмотри ограничение на дроп если персонаж выше моба на 9 лвлов, ну и добавь туда проверку по типу if itemisequipped.rhand.getitemid == айди шмотки Ну это просто набросок, может сделать можно проще,я хз Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 5 августа, 2016 Посмотри ограничение на дроп если персонаж выше моба на 9 лвлов, ну и добавь туда проверку по типу if itemisequipped.rhand.getitemid == айди шмотки Ну это просто набросок, может сделать можно проще,я хз Подскажи, как файл называется, где редактировать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
gawric 49 Опубликовано 5 августа, 2016 (изменено) не успел Изменено 5 августа, 2016 пользователем gawric Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 5 августа, 2016 Проблема не решена, подскажите как сделать.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 5 августа, 2016 а почему просто не написать скрипт который будет с определенного моба дропать шмотки только если на персонаже не одеты шмотки с ID выше определенного уровня Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 5 августа, 2016 а почему просто не написать скрипт который будет с определенного моба дропать шмотки только если на персонаже не одеты шмотки с ID выше определенного уровня Я думаю это и является решением проблемы, даже без исходников.. Но вот каким образом мне это сделать, хотя бы какой-то примерчик.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 5 августа, 2016 Я думаю это и является решением проблемы, даже без исходников.. Но вот каким образом мне это сделать, хотя бы какой-то примерчик.. есть много примеров скриптов где за убийство РБ например дается нублесс или хиро ну или прем, сделай на этом примере, потом добавь проверку и все Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexZr 95 Опубликовано 5 августа, 2016 ну что бы подсказать, наверно надо знать какие исходники юзаете Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 5 августа, 2016 ну что бы подсказать, наверно надо знать какие исходники юзаете Прошу прощения, Lucera 2.0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 5 августа, 2016 (изменено) Кое как сделал скрипт на выдачу итема при убийстве моба, нужно теперь добавить условие... С функциями плохова-то у меня, подскажите какой функцией проверить какие предметы надеты import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.catssoftware.gameserver.listener.actor.OnDeathListener; import ru.catssoftware.gameserver.model.L2Character; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.listeners.CharListenerList; public class AddDrop { public static int MONSTER_FARM_ID = 27101; private static int[] FARM_ID_COIN = { 9209, 5}; private static Logger _log = LoggerFactory.getLogger(AddDrop.class); public static void main(String... arg) { CharListenerList.addGlobal(new OnDeathListenerImpl()); _log.info("Mass drop from custom RB loaded."); } private static class OnDeathListenerImpl implements OnDeathListener { @Override public void onDeath(L2Character actor, L2Character killer) { if (!actor.isNpc() || actor.getNpc().getNpcId() != MONSTER_FARM_ID) return; if (killer == null || killer.getPlayer() == null) return; L2PcInstance player = killer.getPlayer(); player.addItem("DropCoin", FARM_ID_COIN[0], FARM_ID_COIN[1], actor, true); } } } Изменено 5 августа, 2016 пользователем Kst Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexZr 95 Опубликовано 5 августа, 2016 Прошу прощения, Lucera 2.0 с люсей не знаком Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 5 августа, 2016 Спасибо всем, сам додумался.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
adam1 23 Опубликовано 5 августа, 2016 (изменено) Выложите пример для обшего обозрения, всётаки люди вам пытались помоч Спасибо всем, сам додумался.. Изменено 5 августа, 2016 пользователем adam1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
unroot 221 Опубликовано 5 августа, 2016 Выложите пример для обшего обозрения, всётаки люди вам пытались помоч таким изначально не надо помогать, не выложит он не фига 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 6 августа, 2016 таким изначально не надо помогать, не выложит он не фига Не надо наговаривать на людей.. Меня не было дома, не следил за темой. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 6 августа, 2016 (изменено) Выложите пример для обшего обозрения, всётаки люди вам пытались помоч Конечно, держи сделал на примере AddDrop Lucera от ro0tt package ro0tt; import ru.catssoftware.gameserver.listener.actor.OnDeathListener; import ru.catssoftware.gameserver.model.L2Character; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.listeners.CharListenerList; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.tools.random.Rnd; public class AddDrop { private static int[] INV_ITEM_WEAPON = {25700,25707}; // Оружие private static int[] INV_ITEM_SHIELD = {25708,25714}; // Щиты private static int[] INV_ITEM_ARMOR_BLACK = {25800,25812}; // Шмот BLACK private static int[] INV_ITEM_ARMOR_CRISTAL = {25825,25837}; // Шмот CRISTAL private static int[] INV_ITEM_TATTOO = {25821,25823}; // Тату (Кроме дон тату) private static int[] INV_ITEM_WINGS = {25814,25820}; // Крылья/Флаги private static int[] INV_ITEM_ACCESSORIES = {25838,25839}; // Маска private static int MONSTER_FARM_ID = 27101; private static int FARM_ID_COIN = 9209; private static int[] FARM_COUNT = {5,6}; // Рандом выпадения (От и До) public static void main(String... arg) { CharListenerList.addGlobal(new OnDeathListenerImpl()); } private static class OnDeathListenerImpl implements OnDeathListener { @Override public void onDeath(L2Character actor, L2Character killer) { if (!actor.isNpc() || actor.getNpc().getNpcId() != MONSTER_FARM_ID) return; if (killer == null || killer.getPlayer() == null) return; for (L2ItemInstance itemDrop : killer.getInventory().getItems()) { if ((itemDrop.getItemId() >= INV_ITEM_WEAPON[0] && itemDrop.getItemId() <= INV_ITEM_WEAPON[1]) || (itemDrop.getItemId() >= INV_ITEM_SHIELD[0] && itemDrop.getItemId() <= INV_ITEM_SHIELD[1]) || (itemDrop.getItemId() >= INV_ITEM_ARMOR_BLACK[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_BLACK[1]) || (itemDrop.getItemId() >= INV_ITEM_ARMOR_CRISTAL[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_CRISTAL[1]) || (itemDrop.getItemId() >= INV_ITEM_TATTOO[0] && itemDrop.getItemId() <= INV_ITEM_TATTOO[1]) || (itemDrop.getItemId() >= INV_ITEM_WINGS[0] && itemDrop.getItemId() <= INV_ITEM_WINGS[1]) || (itemDrop.getItemId() >= INV_ITEM_ACCESSORIES[0] && itemDrop.getItemId() <= INV_ITEM_ACCESSORIES[1])) if (itemDrop.isEquipped()) return; } L2PcInstance player = killer.getPlayer(); int counts = FARM_COUNT[0] + Rnd.get(FARM_COUNT[0]-FARM_COUNT[1]); player.addItem("DropCoin", FARM_ID_COIN, counts, actor, true); } } } Изменено 6 августа, 2016 пользователем Kst Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
hodor 1 Опубликовано 6 августа, 2016 Спасибо всем, сам додумался.. Выложи скриптик, пожалуйста Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 7 августа, 2016 Выложи скриптик, пожалуйста Вон же выше скинул 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arrow 24 Опубликовано 9 августа, 2016 Конечно, держи сделал на примере AddDrop Lucera от ro0tt package ro0tt; import ru.catssoftware.gameserver.listener.actor.OnDeathListener; import ru.catssoftware.gameserver.model.L2Character; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.listeners.CharListenerList; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.tools.random.Rnd; public class AddDrop { private static int[] INV_ITEM_WEAPON = {25700,25707}; // Оружие private static int[] INV_ITEM_SHIELD = {25708,25714}; // Щиты private static int[] INV_ITEM_ARMOR_BLACK = {25800,25812}; // Шмот BLACK private static int[] INV_ITEM_ARMOR_CRISTAL = {25825,25837}; // Шмот CRISTAL private static int[] INV_ITEM_TATTOO = {25821,25823}; // Тату (Кроме дон тату) private static int[] INV_ITEM_WINGS = {25814,25820}; // Крылья/Флаги private static int[] INV_ITEM_ACCESSORIES = {25838,25839}; // Маска private static int MONSTER_FARM_ID = 27101; private static int FARM_ID_COIN = 9209; private static int[] FARM_COUNT = {5,6}; // Рандом выпадения (От и До) public static void main(String... arg) { CharListenerList.addGlobal(new OnDeathListenerImpl()); } private static class OnDeathListenerImpl implements OnDeathListener { @Override public void onDeath(L2Character actor, L2Character killer) { if (!actor.isNpc() || actor.getNpc().getNpcId() != MONSTER_FARM_ID) return; if (killer == null || killer.getPlayer() == null) return; for (L2ItemInstance itemDrop : killer.getInventory().getItems()) { if ((itemDrop.getItemId() >= INV_ITEM_WEAPON[0] && itemDrop.getItemId() <= INV_ITEM_WEAPON[1]) || (itemDrop.getItemId() >= INV_ITEM_SHIELD[0] && itemDrop.getItemId() <= INV_ITEM_SHIELD[1]) || (itemDrop.getItemId() >= INV_ITEM_ARMOR_BLACK[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_BLACK[1]) || (itemDrop.getItemId() >= INV_ITEM_ARMOR_CRISTAL[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_CRISTAL[1]) || (itemDrop.getItemId() >= INV_ITEM_TATTOO[0] && itemDrop.getItemId() <= INV_ITEM_TATTOO[1]) || (itemDrop.getItemId() >= INV_ITEM_WINGS[0] && itemDrop.getItemId() <= INV_ITEM_WINGS[1]) || (itemDrop.getItemId() >= INV_ITEM_ACCESSORIES[0] && itemDrop.getItemId() <= INV_ITEM_ACCESSORIES[1])) if (itemDrop.isEquipped()) return; } L2PcInstance player = killer.getPlayer(); int counts = FARM_COUNT[0] + Rnd.get(FARM_COUNT[0]-FARM_COUNT[1]); player.addItem("DropCoin", FARM_ID_COIN, counts, actor, true); } } } пот It.su пойдет ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kst 2 Опубликовано 10 августа, 2016 пот It.su пойдет ? Не знаю даже, думаю что да.. Попробуй Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arrow 24 Опубликовано 10 августа, 2016 Не знаю даже, думаю что да.. Попробуй Ок как буду дома затестю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты