Raxus 0 Опубликовано 6 мая, 2012 дать Х итем, в базе убрать все манипуляции с нимесли есть итем - удаляем,выходим иначе идем дальше Скрытый текст final int ITEM_ID=57; if(getInventory().getItemByItemId(ITEM_ID)!=null) { destroyItemByItemId("Anti_PK", ITEM_ID, 1, this, false); return; } вообщем я нашёл условие при котором не будет дропаться чар. (если у персонажа есть х скил, он не дропается), как сделать теперь чтобы этот скилл удалялся когда тебя слили будучи пк Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 6 мая, 2012 (изменено) Cделал в начале кода (когда у персонажа не дропаются итемы) for (L2Skill Skill : SkillTable.getInstance().getInfo(194, 1) ) if (!isInsideZone(ZONE_PVP) && (!isGM() || Config.KARMA_DROP_GM) && (getKnownSkill(Skill) != null )) { boolean isKarmaDrop = false; boolean isKillerNpc = (killer instanceof L2NpcInstance); int pkLimit = Config.KARMA_PK_LIMIT;; int dropEquip = 0; int dropEquipWeapon = 0; int dropItem = 0; int dropLimit = 0; int dropPercent = 0; removeSkill(getKnownSkill(Skill)); Выдаёт такие ошибки [javac] E:\selleon\source\java\net\sf\l2j\gameserver\model\actor\instance\L2PcInstance.java:4270: foreach not applicable to expression type [javac] for (L2Skill Skill : SkillTable.getInstance().getInfo(194, 1) ) [javac] ^ [javac] E:\selleon\source\java\net\sf\l2j\gameserver\model\actor\instance\L2PcInstance.java:4271: getKnownSkill(int) in net.sf.l2j.gameserver.model.L2Character cannot be applied to (net.sf.l2j.gameserver.model.L2Skill) [javac] if (!isInsideZone(ZONE_PVP) && (!isGM() || Config.KARMA_DROP_GM) || (getKnownSkill(Skill) != null )) [javac] ^ [javac] E:\selleon\source\java\net\sf\l2j\gameserver\model\actor\instance\L2PcInstance.java:4282: getKnownSkill(int) in net.sf.l2j.gameserver.model.L2Character cannot be applied to (net.sf.l2j.gameserver.model.L2Skill) [javac] removeSkill(getKnownSkill(Skill)); [javac] ^ Изменено 6 мая, 2012 пользователем Raxus Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 6 мая, 2012 if (!isInsideZone(ZONE_PVP) && (!isGM() || Config.KARMA_DROP_GM) && (((L2PcInstance)killer).getInventory().getInventoryItemCount(6673, 0) < 10)) { boolean isKarmaDrop = false; boolean isKillerNpc = (killer instanceof L2NpcInstance); int pkLimit = Config.KARMA_PK_LIMIT;; int dropEquip = 0; int dropEquipWeapon = 0; int dropItem = 0; int dropLimit = 0; int dropPercent = 0; сделал так для начала, скомпилил, дроп не падает ни при >10 ни при <10 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 6 мая, 2012 Чего понаписали XD Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 6 мая, 2012 Чего понаписали XD всмысле? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 7 мая, 2012 После моих издевательств над кодом, пришол к более менее близко к решению проблемы. if (!isInsideZone(ZONE_PVP) && (!isGM() || Config.KARMA_DROP_GM) && ((L2PcInstance)killer).getInventory().getItemByItemId(4037).getCount() != 1) { boolean isKarmaDrop = false; boolean isKillerNpc = (killer instanceof L2NpcInstance); int pkLimit = Config.KARMA_PK_LIMIT;; int dropEquip = 0; int dropEquipWeapon = 0; int dropItem = 0; int dropLimit = 0; int dropPercent = 0; if (getKarma() > 0 && getPkKills() >= pkLimit && ((L2PcInstance)killer).getInventory().getItemByItemId(4037).getCount() == 1 ) { isKarmaDrop = true; dropPercent = Config.KARMA_RATE_DROP; dropEquip = Config.KARMA_RATE_DROP_EQUIP; dropEquipWeapon = Config.KARMA_RATE_DROP_EQUIP_WEAPON; dropItem = Config.KARMA_RATE_DROP_ITEM; dropLimit = Config.KARMA_DROP_LIMIT; } не при итеме ==1 не при !=1 ничего не дропается. Как так-то?? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 7 мая, 2012 После моих издевательств над кодом, пришол к более менее близко к решению проблемы. if (!isInsideZone(ZONE_PVP) && (!isGM() || Config.KARMA_DROP_GM) && ((L2PcInstance)killer).getInventory().getItemByItemId(4037).getCount() != 1) { boolean isKarmaDrop = false; boolean isKillerNpc = (killer instanceof L2NpcInstance); int pkLimit = Config.KARMA_PK_LIMIT;; int dropEquip = 0; int dropEquipWeapon = 0; int dropItem = 0; int dropLimit = 0; int dropPercent = 0; if (getKarma() > 0 && getPkKills() >= pkLimit && ((L2PcInstance)killer).getInventory().getItemByItemId(4037).getCount() == 1 ) { isKarmaDrop = true; dropPercent = Config.KARMA_RATE_DROP; dropEquip = Config.KARMA_RATE_DROP_EQUIP; dropEquipWeapon = Config.KARMA_RATE_DROP_EQUIP_WEAPON; dropItem = Config.KARMA_RATE_DROP_ITEM; dropLimit = Config.KARMA_DROP_LIMIT; } не при итеме ==1 не при !=1 ничего не дропается. Как так-то?? Потому что вы написали полный бред, по причини того, что вы не понимаете данный алгоритм. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 7 мая, 2012 Потому что вы написали полный бред, по причини того, что вы не понимаете данный алгоритм. ну просто у меня такой бзик, если скомпилилось значит всё должно работать. Может подскажете, что нужно видоизменять? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 7 мая, 2012 ну просто у меня такой бзик, если скомпилилось значит всё должно работать. Может подскажете, что нужно видоизменять? может всё-таки по делу ответите, а не удалять мои апы. Я ведь не прошу мне весь код написать, а просто сказать что я делаю неправильно в понятной форме Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 7 мая, 2012 ну просто у меня такой бзик, если скомпилилось значит всё должно работать. Может подскажете, что нужно видоизменять? Вам нужно не видоизменять, а начать понимать структуру программы. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kasperok 30 Опубликовано 7 мая, 2012 Акуму вы говорите просто умными словами от этих слов даному человеку не помочь, вы типо такой умный и знаете что да как раз если это бред! Дак просто помогите а не цитируйте его словА! мне кажеться вы тупо набиваете поСТ! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 7 мая, 2012 Вам нужно не видоизменять, а начать понимать структуру программы. ну это уже второстепенный вопрос, мне на данный момент главное разобраться в реализации сией фишки Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 7 мая, 2012 ну это уже второстепенный вопрос, мне на данный момент главное разобраться в реализации сией фишки Я вам уже говорил выше, в топике, что для отказа от дропа с пк достаточно прерывать выполнения данного метода. А вот конкретно условия, я так и не понял. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 7 мая, 2012 Я вам уже говорил выше, в топике, что для отказа от дропа с пк достаточно прерывать выполнения данного метода. А вот конкретно условия, я так и не понял. Попытаюсь объснить доступнее: Если у персонажа есть определённый скил (итем), то дропа с него не будет только 1 раз (то есть как только его убьют когда он будет пк, дропа не будет, а потом, как и у обычных игроков, дроп будет) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 9 мая, 2012 сам реализовал, благодаря вашей "помощи" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 мая, 2012 сам реализовал, благодаря вашей "помощи" Вот так и учатся. Практической помощи я не даю, в теории всегда пожалуйста. В теории вам распишу досконально что и как сделать, обращайтесь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты