lotos 0 Опубликовано 9 ноября, 2012 Добрый вечер! У меня возникла проблемка. У меня дропаются вещи НЕ в сумку, а на пол. Кто знает команду, чтобы поменять дроп в сумку ?? Буду очень благодарен. Скрипт на Java private static final void dropItem(L2NpcInstance mob, L2PcInstance player) { final int npcId = mob.getNpcId(); final int chance = Rnd.get(100); for (int i = 0; i < DROPLIST.length; i++) { int[] drop = DROPLIST[i]; if (npcId == drop[0]) { if (chance < drop[2] && contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId())) { if(drop[1] > 20000) ((L2MonsterInstance)mob).dropItem(player, drop[1], 2); else ((L2MonsterInstance)mob).dropItem(player, drop[1], Rnd.get(1, 3)); continue; } } if (npcId < drop[0]) return; // not found } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 9 ноября, 2012 Может через st.giveItems как то замутить ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mixer 67 Опубликовано 9 ноября, 2012 в конфигах ищи ! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 9 ноября, 2012 в конфигах ищи ! Я пишу свой скрипт. Тут не в конфигах дело ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Noobasik24 214 Опубликовано 9 ноября, 2012 апну темку)) 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 9 ноября, 2012 Столько людей тему просмотрело, НО никто не ответил.. Может я не правильно вопрос задал ?? Или что-то не так написал тут ?? Может не в ту тему написал или что ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CHITER 25 Опубликовано 9 ноября, 2012 public void doAutoLoot(L2Attackable target, L2Attackable.RewardItem item) { if(isInParty()) { getParty().distributeItem(this, item, false, target); } else if(item.getItemId() == 57) { addAdena("AutoLoot", item.getCount(), target, true); } else { addItem("AutoLoot", item.getItemId(), item.getCount(), target, true); } } Простейший пример Не забывай про конфиг файл и т.д. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 9 ноября, 2012 public void doAutoLoot(L2Attackable target, L2Attackable.RewardItem item) { if(isInParty()) { getParty().distributeItem(this, item, false, target); } else if(item.getItemId() == 57) { addAdena("AutoLoot", item.getCount(), target, true); } else { addItem("AutoLoot", item.getItemId(), item.getCount(), target, true); } } Простейший пример Не забывай про конфиг файл и т.д. Спасибо конечно, НО как мне присобачить автолут к моему скрипту ?)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CHITER 25 Опубликовано 9 ноября, 2012 Спасибо конечно, НО как мне присобачить автолут к моему скрипту ?)) Сделай вывод, что бы твой скрипт использовал похожий кусок кода. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 9 ноября, 2012 Сделай вывод, что бы твой скрипт использовал похожий кусок кода. Жестко отвечаешь )) Все понял как пустить функцию. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 up Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 11 ноября, 2012 Чьи исходники? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 (изменено) Чьи исходники? PW soft Я пишу что-то вроде квеста. Сделал уже все, НО дроп падает на пол, хотя на сервере стоит автолут. Изменено 11 ноября, 2012 пользователем lotos Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 11 ноября, 2012 (изменено) private static final void dropItem(L2NpcInstance mob, L2PcInstance player) { final int npcId = mob.getNpcId(); final int chance = Rnd.get(100); for (int i = 0; i < DROPLIST.length; i++) { int[] drop = DROPLIST[i]; if (npcId == drop[0]) { if (chance < drop[2] && contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId())) { if(drop[1] > 20000) player.getInventory().addItem("Quest", drop[1], 2, player, true); else player.getInventory().addItem("Quest", drop[1], Rnd.get(1, 3), player, true); continue; } } if (npcId < drop[0]) return; // not found } } Изменено 11 ноября, 2012 пользователем xINVIZIBLx 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 Огромное спасибо! Сейчас проверю на деле. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 11 ноября, 2012 (изменено) Я конечно нищеброд в Java, но разве можно сравнивать ID нпц с 1-й элементом дропа? Или [0] - ID npc, [1] - ItemID, [2] - Chance? if (npcId == drop[0]) { И в DROPLIST получается 1-й элемент это ID итема, а 2-й элемент это шанс? Для куска: chance < drop[2] Изменено 11 ноября, 2012 пользователем Main 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 Я конечно нищеброд в Java, но разве можно сравнивать ID нпц с 1-й элементом дропа? Или [0] - ID npc, [1] - ItemID, [2] - Chanse? if (npcId == drop[0]) { И в DROPLIST получается 1-й элемент это ID итема, а 2-й элемент это шанс? Для куска: chance < drop[2] Или [0] - ID npc, [1] - ItemID, [2] - Chanse? Да, именно так. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 Блин.. Он чего-то выпендривается на "addItem" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 11 ноября, 2012 log скиньте 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 (изменено) ---------- 1. ERROR in \SquashEvent.java (at line 178) player.getInventory().addItem("Quest", drop[1], Rnd.get(drop[3], drop[4] ), player, true); ^^^^^^^ The method addItem(String, int, int, L2PcInstance, L2Object) in the type PcInven tory is not applicable for the arguments (String, int, int, L2PcInstance, boolea n) ---------- 2. ERROR in \SquashEvent.java (at line 180) player.getInventory().addItem(player, drop[1], Rnd.get(drop[3], drop[4]) , player, true); ^^^^^^^ The method addItem(String, int, int, L2PcInstance, L2Object) in the type PcInven tory is not applicable for the arguments (L2PcInstance, int, int, L2PcInstance, boolean) ---------- 2 problems (2 errors)The method addItem(java.lang.String, int, int, net.sf.l2j.g ameserver.model.actor.instance.L2PcInstance, net.sf.l2j.gameserver.model.L2Objec t) in the type net.sf.l2j.gameserver.model.PcInventory is not applicable for the arguments (java.lang.String, int, int, net.sf.l2j.gameserver.model.actor.instan ce.L2PcInstance, boolean) The method addItem(java.lang.String, int, int, net.sf.l2j.gameserver.model.actor .instance.L2PcInstance, net.sf.l2j.gameserver.model.L2Object) in the type net.sf .l2j.gameserver.model.PcInventory is not applicable for the arguments (net.sf.l2 j.gameserver.model.actor.instance.L2PcInstance, int, int, net.sf.l2j.gameserver. model.actor.instance.L2PcInstance, boolean) Failed executing script: D:\Lineage 2 PROJECT inter\PWSOFT\gameserver\data\scrip ts\quests\SquashEvent\SquashEvent.java. See SquashEvent.java.error.log for detai ls. ---------- Изменено 11 ноября, 2012 пользователем lotos Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 Я скинул прямо из консоля, так как в файле SquashEvent.java.error.log Лежит это: Error on: D:\Lineage 2 PROJECT inter\PWSOFT\gameserver\data\scripts\quests\SquashEvent\SquashEvent.java.error.log Line: -1 - Column: -1 compilation failed Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 11 ноября, 2012 private static final void dropItem(L2NpcInstance mob, L2PcInstance player) { final int npcId = mob.getNpcId(); final int chance = Rnd.get(100); for (int i = 0; i < DROPLIST.length; i++) { int[] drop = DROPLIST[i]; if (npcId == drop[0]) { if (chance < drop[2] && contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId())) { if(drop[1] > 20000) player.getInventory().addItem("Quest", drop[1], 2, player, null); else player.getInventory().addItem("Quest", drop[1], Rnd.get(1, 3), player, null); continue; } } if (npcId < drop[0]) return; // not found } } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lotos 0 Опубликовано 11 ноября, 2012 Спасибо! Все запустилось без ошибок, НО почему-то дроп вообще пропал.. Видимо просто надо другой дроп написать.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 11 ноября, 2012 (изменено) chance < drop[2] Ну если судить по шансам Lineage 2 то там 100<1000000 всегда будет вроде как. Могу ошибатся. Изменено 11 ноября, 2012 пользователем Main 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 11 ноября, 2012 (изменено) Спасибо! Все запустилось без ошибок, НО почему-то дроп вообще пропал.. Видимо просто надо другой дроп написать.. Значит ошибка вот тут: contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId() Даже не ошибка, а оружие которым ты убиваешь моба не из списка CHRONO_LIST (я так думаю). Изменено 11 ноября, 2012 пользователем Main 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты