MeRDox 60 Опубликовано 19 августа, 2015 В скрипте на зону для новичков, когда запускаешь GameServer пишет ошибку Dead COde, в этой части killer.giveItem(Farm_Coin,nagrada);Я так понял что нужно разъяснение добавить типа int killer....? public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet) { int nagrada = Rnd.get(Drop_Count_Min,Drop_Count_Max); int count = killer.getInventory().getInventoryItemCount(newbay_item,0); if(count >= 0 && Bool == true) { killer.giveItem(Farm_Coin,nagrada); } return null; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 19 августа, 2015 if(count >= 0 && Bool == true) просто if(count >= 0 && Bool ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 (изменено) if(count >= 0 && Bool == true) просто if(count >= 0 && Bool ) ну "программист"... это вовсе не ошибка, можно и так и так, у каждого свой стиль Изменено 19 августа, 2015 пользователем Blueeyer 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 (изменено) В скрипте на зону для новичков, когда запускаешь GameServer пишет ошибку Dead COde, в этой части killer.giveItem(Farm_Coin,nagrada); Я так понял что нужно разъяснение добавить типа int killer....? public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet) { int nagrada = Rnd.get(Drop_Count_Min,Drop_Count_Max); int count = killer.getInventory().getInventoryItemCount(newbay_item,0); if(count >= 0 && Bool == true) { killer.giveItem(Farm_Coin,nagrada); } return null; } Данный кусок вроде без ошибок, желательно скиньте весь кусок кода, может какие-то проблемы с константами или еще что. Проверьте, объявлены ли все эти newbay_item, FarmCoin... И нет более детальной информации об ошибке? P.S Попробуйте поставить ловушку исключений в этом месте и сделайте вывод ошибки в консоль сборки. Изменено 19 августа, 2015 пользователем Blueeyer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 19 августа, 2015 Вот полный код package ai; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; import net.sf.l2j.util.Rnd; public class newbay_farm3 extends QuestJython { //мобы которых можно убивать private final static int newbay_mobs = 61011; //ID сертификата новичка private final static int newbay_item = 14059; //Включить или выключить дополнительный дроп private final static boolean Bool = false; //ID фарм монет private final static int Farm_Coin = 10007; //Сколько давать за убитого моба //От Drop_Count_Min до Drop_Count_Max private final static int Drop_Count_Min = 1; private final static int Drop_Count_Max = 5; //Что говорит НПЦ если игрок без статуса новичка? private final static String mob_massage = "Тебе нужен сертификат спойлера!"; public newbay_farm3(int questId, String name, String descr) { super(questId, name, descr, 1); this.addFocusId(newbay_mobs); this.addAttackId(newbay_mobs); this.addKillId(newbay_mobs); } public String onFocus(L2NpcInstance npc, L2PcInstance attacker) { int count = attacker.getInventory().getInventoryItemCount(newbay_item,0); if(count == 0) { npc.sayString(mob_massage, 0); } else npc.setIsInvul(false); return null; } public String onAttack(L2NpcInstance npc, L2PcInstance attacker, int damage, boolean isPet) { int count = attacker.getInventory().getInventoryItemCount(newbay_item,0); if(count == 0) npc.setIsInvul(true); else npc.setIsInvul(false); return null; } @Override public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet) { int nagrada = Rnd.get(Drop_Count_Min,Drop_Count_Max); int count = killer.getInventory().getInventoryItemCount(newbay_item,0); if(count >= 0 && Bool == true) { killer.giveItem(Farm_Coin,nagrada); } return null; } public static void main(String... arguments ) { new newbay_farm3(-1, "newbay_farm3", "newbay_farm3"); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 19 августа, 2015 У вас бул объявлен, как финал и не может быть изменён. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 надо убрать final с переменной Bool 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 19 августа, 2015 И вообще стиль кода угнетает... 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 19 августа, 2015 (изменено) может знаете ещё, чтобы после собирания ресурсов(спойла) давало дополнительные итемы. PS: скрипт не мой) Изменено 19 августа, 2015 пользователем Merdox Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 19 августа, 2015 ну "программист"... это вовсе не ошибка, можно и так и так, у каждого свой стиль Это не стиль а незнание логических операций. надо убрать final с переменной Bool капитан очевидность. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 (изменено) Это не стиль а незнание логических операций. капитан очевидность. когда я начал отвечать - еще не было других ответов Какое незнание логических операций? По вашему - нельзя к булевым переменным применять операторы равенства? Многие программисты для того, чтобы код был более читабильным используют операторы сравнения в подобных случаях, вы же указали на то, что это ошибка. Спасибо, повеселили. P.S Кстати, многие источники с примерами и авторы книг зачастую используют подобные стили. Я не говорю, что этот стиль хорош, он скорее нежелателен, но существует. Изменено 19 августа, 2015 пользователем Blueeyer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 может знаете ещё, чтобы после собирания ресурсов(спойла) давало дополнительные итемы. PS: скрипт не мой) Вы имеете ввиду, чтобы давало не только фарм монеты? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 19 августа, 2015 Вы имеете ввиду, чтобы давало не только фарм монеты? Весь скрипт хочу сделать, чтобы после того как собрал ресурсы спойлом, давало монеты...Тоисть переделать этот скрипт. Это реально сделать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 19 августа, 2015 когда я начал отвечать - еще не было других ответов Какое незнение логических операций? По вашему - нельзя к булевым переменным применять операторы равенства? Многие программисты для того, чтобы код был более читабильным используют операторы сравнения в подобных случаях. Спасибо, повеселили. (true && true) : Всегда true. и дописывание доп условий не придаст читабельности . с вами все понятно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 (изменено) Весь скрипт хочу сделать, чтобы после того как собрал ресурсы спойлом, давало монеты...Тоисть переделать этот скрипт. Это реально сделать? А, я вас понял. На данном этапе ваш скрипт со спойлом работает правильно? Все делается по этому принципу int nagrada = Rnd.get(Drop_Count_Min,Drop_Count_Max); int count = killer.getInventory().getInventoryItemCount(newbay_item,0); if(count >= 0 && Bool == true) { killer.giveItem(Farm_Coin,nagrada); // с помощью метода giveItem экземпляра L2PcInstance тут вы какраз и выдаете предмет. В качестве параметров: (айди предмета, кол-во) } Изменено 19 августа, 2015 пользователем Blueeyer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 (true && true) : Всегда true. и дописывание доп условий не придаст читабельности . с вами все понятно. что же вы тогда (Bool == true) восприняли как ошибку? Уж поверьте, меня то не стоит учить программированию 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 19 августа, 2015 (изменено) А, я вас понял. На данном этапе ваш скрипт со спойлом работает правильно? Все делается по этому принципу int nagrada = Rnd.get(Drop_Count_Min,Drop_Count_Max); int count = killer.getInventory().getInventoryItemCount(newbay_item,0); if(count >= 0 && Bool == true) { killer.giveItem(Farm_Coin,nagrada); // с помощью метода giveItem экземпляра L2PcInstance тут вы какраз и выдаете предмет. В качестве параметров: (айди предмета, кол-во) } Да, работает, только дропом. Дело в том что оно дает итем после убийства моба, а хотелось бы чтобы после того как соспойлил, это бред конечно, ну задумка такая. То есть, при определенном итеме будет давать столько спойл ресурсов, при другом столько. Это реально сделать? или только после убийства моба? Изменено 19 августа, 2015 пользователем Merdox Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 Да, работает, только дропом. Дело в том что оно дает итем после убийства моба, а хотелось бы чтобы после того как соспойлил, это бред конечно, ну задумка такая. То есть, при определенном итеме будет давать столько спойл ресурсов, при другом столько. Это реально сделать? или только после убийства моба? Да, реально, только немного иначе. Ранее не работал с системой спойла, но могу на выходных взглянуть, если не найдете решения до того времени. Какая сборка? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 19 августа, 2015 (true && true) : Всегда true. и дописывание доп условий не придаст читабельности . с вами все понятно. Смотрю не способны аргументировать нормально свою точку зрения и принялись минусовать? учитесь признавать свои ошибки. Изначально вы указали, что это ошибка, затем приняли мое мнение о плохом тоне, однако всеравно пытаетесь сделать себя правым. По детски как-то Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 19 августа, 2015 Да, реально, только немного иначе. Ранее не работал с системой спойла, но могу на выходных взглянуть, если не найдете решения до того времени. Какая сборка? Буду работать, искать решение. Было бы замечательно, буду благодарен если хоть как-то направете на путь истины) Сборка PWSoft Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 19 августа, 2015 Смотрю не способны аргументировать нормально свою точку зрения и принялись минусовать? учитесь признавать свои ошибки. Изначально вы указали, что это ошибка, затем приняли мое мнение о плохом тоне, однако всеравно пытаетесь сделать себя правым. По детски как-то Ткните носом где я сказал что ошибка и за этого? И всмотритесь в мой аватар и поймете всё суть. Буду работать, искать решение. Было бы замечательно, буду благодарен если хоть как-то направете на путь истины) Сборка PWSoft к примеру у l2j есть события связанные с использованием умений. ну или там через обработчик эффектов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mizuwokiru 181 Опубликовано 19 августа, 2015 Ткните носом где я сказал что ошибка и за этого? Это не стиль а незнание логических операций. И всмотритесь в мой аватар и поймете всё суть. Успешный бизнесмен с домом за городом может поставить спокойно себе аватарку бомжа. Так что аватар - не показатель, впоследствии и нет толку искать в нем сути. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 19 августа, 2015 Успешный бизнесмен с домом за городом может поставить спокойно себе аватарку бомжа. Так что аватар - не показатель, впоследствии и нет толку искать в нем сути. и вы ту даже. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 20 августа, 2015 Автор пытается узнать - из-за чего все летит, в чем же ошибка В скрипте на зону для новичков, когда запускаешь GameServer пишет ошибку Dead COde, ... Ваш ответ на это if(count >= 0 && Bool == true) просто if(count >= 0 && Bool ) Затем, далее, ваши слова. Это не стиль а незнание логических операций. капитан очевидность. В итоге, при понижении репутации вы уже признаете, что это стиль, но плохой. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 20 августа, 2015 я повторюсь еще раз где здесь я сказал что ошибка и-за Этого ( if(count >= 0 && Bool == true) просто if(count >= 0 && Bool ) )? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты