Перейти к содержанию
Авторизация  
MeRDox

Dead Code

Рекомендуемые сообщения

В скрипте на зону для новичков, когда запускаешь 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; 
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

if(count >= 0 && Bool == true) просто  if(count >= 0 && Bool )

ну "программист"... это вовсе не ошибка, можно и так и так, у каждого свой стиль

Изменено пользователем Blueeyer
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

В скрипте на зону для новичков, когда запускаешь 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 Попробуйте поставить ловушку исключений в этом месте и сделайте вывод ошибки в консоль сборки.

Изменено пользователем Blueeyer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот полный код

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");
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас бул объявлен, как финал и не может быть изменён.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вообще стиль кода угнетает...

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может знаете ещё, чтобы после собирания ресурсов(спойла) давало дополнительные итемы.

PS: скрипт не мой)

Изменено пользователем Merdox

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну "программист"... это вовсе не ошибка, можно и так и так, у каждого свой стиль

Это не стиль а незнание логических операций.

надо убрать 

final

с переменной Bool

капитан очевидность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не стиль а незнание логических операций.

капитан очевидность.

когда я начал отвечать - еще не было других ответов :)

 

Какое незнание логических операций? По вашему - нельзя к булевым переменным применять операторы равенства? Многие программисты для того, чтобы код был более читабильным используют операторы сравнения в подобных случаях, вы же указали на то, что это ошибка. Спасибо, повеселили.

 

P.S Кстати, многие источники с примерами и авторы книг зачастую используют подобные стили. Я не говорю, что этот стиль хорош, он скорее нежелателен, но существует.

Изменено пользователем Blueeyer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может знаете ещё, чтобы после собирания ресурсов(спойла) давало дополнительные итемы.

PS: скрипт не мой)

Вы имеете ввиду, чтобы давало не только фарм монеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы имеете ввиду, чтобы давало не только фарм монеты?

Весь скрипт хочу сделать, чтобы после того как собрал ресурсы спойлом, давало монеты...Тоисть переделать этот скрипт.

Это реально сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

когда я начал отвечать - еще не было других ответов :)

 

Какое незнение логических операций? По вашему - нельзя к булевым переменным применять операторы равенства? Многие программисты для того, чтобы код был более читабильным используют операторы сравнения в подобных случаях. Спасибо, повеселили.

(true && true) : Всегда true. и дописывание доп условий не придаст читабельности . с вами все понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Весь скрипт хочу сделать, чтобы после того как собрал ресурсы спойлом, давало монеты...Тоисть переделать этот скрипт.

Это реально сделать?

А, я вас понял. На данном этапе ваш скрипт со спойлом работает правильно? Все делается по этому принципу

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 тут вы какраз и выдаете предмет. В качестве параметров: (айди предмета, кол-во)
}
Изменено пользователем Blueeyer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(true && true) : Всегда true. и дописывание доп условий не придаст читабельности . с вами все понятно.

что же вы тогда (Bool == true) восприняли как ошибку? Уж поверьте, меня то не стоит учить программированию ;)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

А, я вас понял. На данном этапе ваш скрипт со спойлом работает правильно? Все делается по этому принципу

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 тут вы какраз и выдаете предмет. В качестве параметров: (айди предмета, кол-во)
}

Да, работает, только дропом.

Дело в том что оно дает итем после убийства моба, а хотелось бы чтобы после того как соспойлил, это бред конечно, ну задумка такая. То есть, при определенном итеме будет давать столько спойл ресурсов, при другом столько. Это реально сделать? или только после убийства моба?

Изменено пользователем Merdox

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, работает, только дропом.

Дело в том что оно дает итем после убийства моба, а хотелось бы чтобы после того как соспойлил, это бред конечно, ну задумка такая. То есть, при определенном итеме будет давать столько спойл ресурсов, при другом столько. Это реально сделать? или только после убийства моба?

Да, реально, только немного иначе. Ранее не работал с системой спойла, но могу на выходных взглянуть, если не найдете решения до того времени. Какая сборка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(true && true) : Всегда true. и дописывание доп условий не придаст читабельности . с вами все понятно.

Смотрю не способны аргументировать нормально свою точку зрения и принялись минусовать? :) учитесь признавать свои ошибки. Изначально вы указали, что это ошибка, затем приняли мое мнение о плохом тоне, однако всеравно пытаетесь сделать себя правым. По детски как-то

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, реально, только немного иначе. Ранее не работал с системой спойла, но могу на выходных взглянуть, если не найдете решения до того времени. Какая сборка?

Буду работать, искать решение. Было бы замечательно, буду благодарен если хоть как-то направете на путь истины)

Сборка PWSoft

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрю не способны аргументировать нормально свою точку зрения и принялись минусовать? :) учитесь признавать свои ошибки. Изначально вы указали, что это ошибка, затем приняли мое мнение о плохом тоне, однако всеравно пытаетесь сделать себя правым. По детски как-то

Ткните носом где я сказал что ошибка и за этого?  И всмотритесь в мой аватар и поймете всё суть.

 

Буду работать, искать решение. Было бы замечательно, буду благодарен если хоть как-то направете на путь истины)

Сборка PWSoft

к примеру у l2j есть события связанные с использованием умений. ну или там через обработчик эффектов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ткните носом где я сказал что ошибка и за этого? 

Это не стиль а незнание логических операций.


И всмотритесь в мой аватар и поймете всё суть.

Успешный бизнесмен с домом за городом может поставить спокойно себе аватарку бомжа. Так что аватар - не показатель, впоследствии и нет толку искать в нем сути.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

 

Успешный бизнесмен с домом за городом может поставить спокойно себе аватарку бомжа. Так что аватар - не показатель, впоследствии и нет толку искать в нем сути.

 

и вы ту даже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Автор пытается узнать - из-за чего все летит, в чем же ошибка

 

В скрипте на зону для новичков, когда запускаешь GameServer пишет ошибку Dead COde, ...

 

Ваш ответ на это

if(count >= 0 && Bool == true) просто  if(count >= 0 && Bool )

 

Затем, далее, ваши слова.

Это не стиль а незнание логических операций.

капитан очевидность.

 

В итоге, при понижении репутации вы уже признаете, что это стиль, но плохой.

30c802347715.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

 

я повторюсь еще раз где здесь я сказал что ошибка и-за Этого ( if(count >= 0 && Bool == true) просто  if(count >= 0 && Bool ) )?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...