RetZs 71 Опубликовано 23 мая, 2013 (изменено) Помогите пожалуйста решить проблему. вообщем как сделать так чтоб в верхнем окне: http://rghost.ru/46194791.view не показывало какой итем и к-во забирает но когда его нету чтоб писало: Неправильное количество предметов. Изменено 23 мая, 2013 пользователем RetZs Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 мая, 2013 Не там создал тему извиняюсь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 мая, 2013 (изменено) Решил проблему. Возникает следующий вопрос что дописать в скрипте чтобы за простые бафы брали опеределёний ID и к-во которое в конфиге а за другие бафы брали ID и к-во 2-о итема. Изменено 23 мая, 2013 пользователем RetZs Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
La2Bash 87 Опубликовано 23 мая, 2013 в бд есть таблица которая отвечает за бафы и предметы. Название таблицы - нескажу, ищи сам. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1d3x 379 Опубликовано 23 мая, 2013 custom_npcbuffer таблица, там выставлять ИД для каждого баффа можно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 мая, 2013 Не правильно вопрос задал, мне нужно сделать чтоб предмет за баф не забирало а только проверяло типа так: предмет есть в инвентаре - давать баф, нету - не давать. такое реализовать можно только через скрипт на сколько я знаю. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1d3x 379 Опубликовано 23 мая, 2013 Ну так поставьте цену баффа 0, но ИД сделайте тот, который вам нужно. По идее должно сработать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
La2Bash 87 Опубликовано 23 мая, 2013 Ищем аналог, делаем по примеру. Тыкаем, тыкаем - в конце концов всё получиться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 мая, 2013 Ну так поставьте цену баффа 0, но ИД сделайте тот, который вам нужно. По идее должно сработать. Если так сделать то выбивает в верхнем чате в L2, "Исчезло 0 Adena" а мне надо чтоб не чего не писало. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 23 мая, 2013 Это сам скрипт бафера надо редактить и убирать сообщение о успешном бафе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
La2Bash 87 Опубликовано 23 мая, 2013 это надо просто добавить 1 проверку на наличие предмета в инвентаре, для удобства чтобы весь инвентарь не чекать сделайте предмет квестовым чекайте только квестовые итемы... если предмет есть - даём баф, итем не убираем, если нет - шлём на три буквы. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
La2Bash 87 Опубликовано 23 мая, 2013 вот нарыл метод который проверит наличие предмета у игрока и кол-во player.getInventory().getInventoryItemCount(ITEM_ID, -1) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 26 мая, 2013 вот нарыл метод который проверит наличие предмета у игрока и кол-во player.getInventory().getInventoryItemCount(ITEM_ID, -1) Сейчас проверим а то у меня вроде чёт похоже я писал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 26 мая, 2013 Не не работает как ты написал решил проблему по 2-ом) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
devillord 23 Опубликовано 26 мая, 2013 а кусок кода посмотреть можно? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 26 мая, 2013 } private boolean useBuff(L2NpcInstance buffer, int grpid, int []npcBuffGroupInfo, L2PcInstance player, L2Character target) { for(int i=0;i int skillId = npcBuffGroupInfo; int skillLevel = npcBuffGroupInfo[i+1]; int skillFeeId = npcBuffGroupInfo[i+2]; int skillFeeAmount = npcBuffGroupInfo[i+3]; if (skillFeeId != 0) { L2ItemInstance itemInstance = player.getInventory().getItemByItemId(skillFeeId); if (itemInstance == null || (!itemInstance.isStackable() && player.getInventory().getInventoryItemCount(skillFeeId, -1) < skillFeeAmount)) { SystemMessage sm = new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS); player.sendPacket(sm); return false; } if (itemInstance.isStackable()) { if (!player.destroyItemByItemId("Npc Buffer", skillFeeId, skillFeeAmount, player.getTarget(), true)) { SystemMessage sm = new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS); player.sendPacket(sm); return false; } } else { for (int k = 0;k < skillFeeAmount;++ k) { player.destroyItemByItemId("Npc Buffer", skillFeeId, 1, player.getTarget(), true); } } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты