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

Удаление Лишних Скилов

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

каким методом, можно удалить те скилы у персонажа, которые не соответсвуют его уровню.

 

 

 

player.removeSkill(player.getAllSkills() - player.sendSkillList());

 

 

 

компилятор на это ругается(.

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


Ссылка на сообщение
Поделиться на другие сайты
каким методом, можно удалить те скилы у персонажа, которые не соответсвуют его уровню.

 

 

 

player.removeSkill(player.getAllSkills() - player.sendSkillList());

 

 

 

компилятор на это ругается(.

Понятное дело будет ругатся если ты бред пишешь)....

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


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

 

ну а есть идеи как это осуществить?

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


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

хз для чего это тебе надо но попробуй так мб поможет.

через for "пробегись" по скилам чара и сравнимай левел скила с левелом чара

если например он больше то скилл удаляешь.

Надеюсь ты понял о чём я.

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


Ссылка на сообщение
Поделиться на другие сайты
хз для чего это тебе надо но попробуй так мб поможет.

через for "пробегись" по скилам чара и сравнимай левел скила с левелом чара

если например он больше то скилл удаляешь.

Надеюсь ты понял о чём я.

 

 

for (L2Skill skill : player.getAllSkills())

player.removeSkills(а тут хз чо писать)

 

Дело в том, что я сделал Нпс делевел. Он снижает уровень с 80 на 70, но скилы остаются с 80 уровня(

 

Что значит сравнивать левел скила и чара, ведь они не зависят друг от друга

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

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


Ссылка на сообщение
Поделиться на другие сайты
for (L2Skill skill : player.getAllSkills())

player.removeSkills(а тут хз чо писать)

 

Дело в том, что я сделал Нпс делевел. Он снижает уровень с 80 на 70, но скилы остаются с 80 уровня(

 

Что значит сравнивать левел скила и чара, ведь они не зависят друг от друга

for(L2Skill s : player.getAllSkills())

{

 

if(s.getLevel() > player.getLevel()){

player.removeSkill(s);

 

}

}

вот так пробуй.

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


Ссылка на сообщение
Поделиться на другие сайты
for(L2Skill s : player.getAllSkills())

{

 

if(s.getLevel() > player.getLevel()){

player.removeSkill(s);

 

}

}

вот так пробуй.

 

ничего не изменилось, скилы остались на месте

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


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

Это тупость)) уровень скила не может быть больше уровня чара)) я вообще скилы уровня больше 36 не видел)) тут надо в базу прыгать)) я не знаю метод который должен возвращать значение разрешенного для скила уровня

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

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


Ссылка на сообщение
Поделиться на другие сайты
Это тупость)) уровень скила не может быть больше уровня чара)) я вообще скилы уровня больше 36 не видел)) тут надо в базу прыгать)) я не знаю метод который должен возвращать значение разрешенного для скила уровня

 

 

а какже стан сороковой?

есть такой метод rewardSkills(). Он ввостанавливает скилы согласно уровню, но не удаляет старые. Вот его как то минусануть из getAllSkills(), и будет норм, вот только как?

 

player.removeSkill(player.getAllSkills() - player.rewardSkills());

 

только надо правильно это сделать как-то

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

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


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

В классе SkillTreeTable есть замечательный метод: SkillTreeTable.getAvailableSkills(L2PcInstance, ClassId)

Он вернет вам список доступных умений на данный момент. Пляшите от него.

Так же имеет смысл глянуть метод L2PcInstance.giveAvailableSkills()

 

Вперед работать :)

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


Ссылка на сообщение
Поделиться на другие сайты
В классе SkillTreeTable есть замечательный метод: SkillTreeTable.getAvailableSkills(L2PcInstance, ClassId)

Он вернет вам список доступных умений на данный момент. Пляшите от него.

Так же имеет смысл глянуть метод L2PcInstance.giveAvailableSkills()

 

Вперед работать :)

 

я знаю какие методы дают умения для соответствующего уровня, я не знаю как этот метод минусануть из общего количества умений, чтобы удалить ненужные

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


Ссылка на сообщение
Поделиться на другие сайты
я знаю какие методы дают умения для соответствующего уровня, я не знаю как этот метод минусануть из общего количества умений, чтобы удалить ненужные

 

Нет такого понятия "минусануть". Вы получаете коллекцию объектов, и математические операции к ней не применимы. Стройте цикл, на основе например цикла из L2PcInstance.giveAvailableSkills, и по ходу его работы удаляйте у чара лишние скилы. И будет вам счастье.

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


Ссылка на сообщение
Поделиться на другие сайты
Нет такого понятия "минусануть". Вы получаете коллекцию объектов, и математические операции к ней не применимы. Стройте цикл, на основе например цикла из L2PcInstance.giveAvailableSkills, и по ходу его работы удаляйте у чара лишние скилы. И будет вам счастье.

 

ну почему player.removeExpAndSp((player.getExp() - Experience.LEVEL[70]), 0); в пример

 

из общего количества експы, вычитается столько , сколько нужно для 70 уровня

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

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


Ссылка на сообщение
Поделиться на другие сайты
ну почему player.removeExpAndSp((player.getExp() - Experience.LEVEL[70]), 0); в пример

 

Вы не улавливаете суть.

 

метод player.getExp() возвращает объект типа long (скорей всего, не помню), а это объект с математическими свойствами.

в свою очередь, Experience.LEVEL[] - есть массив аналогичных статических объектов.

 

Вот вам и математика.

 

 

Вы же пытаетесь вычесть мячик из автомобиля.

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

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


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

 

метод player.getExp() возвращает объект типа long (скорей всего, не помню), а это объект с математическими свойствами.

в свою очередь, Experience.LEVEL[] - есть массив аналогичных статических объектов.

 

Вот вам и математика.

 

 

Вы же пытаетесь вычесть мячик из автомобиля.

 

Можете хотя бы сказать с чего начать?

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


Ссылка на сообщение
Поделиться на другие сайты
Можете хотя бы сказать с чего начать?

 

Я уже сказал :)

 

Можно и проще, не находите? Удаляем все скилы, даем доступные на текущий лвл.

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


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

 

Можно и проще, не находите? Удаляем все скилы, даем доступные на текущий лвл.

 

я так делал, оно работало, но тупо шо удаляло все скилы с панельки, очень неудобно

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


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

 

Ну тогда берите и циклом сверяйте текущие скилы, со всеми доступными на нужный уровень. При необходимости - удаляйте.

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


Ссылка на сообщение
Поделиться на другие сайты
Ну тогда берите и циклом сверяйте текущие скилы, со всеми доступными на нужный уровень. При необходимости - удаляйте.

 

ну ща попробую, отпишу о результате

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


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

	for(L2Skill skill : player.getAllSkills())
	{
	L2Skill skills = SkillTreeTable.getInstance().getAvailableSkills(this, player.getClassId());
	if(skill != skills)
	{
	player.removeSkill(skill);
	}
	}

 

сделал такую лабуду. ругается на метод getAvailableSkills()......

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


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

	for(L2Skill skill : player.getAllSkills())
	{
	L2Skill skills = SkillTreeTable.getInstance().getAvailableSkills(this, player.getClassId());
	if(skill != skills)
	{
	player.removeSkill(skill);
	}
	}

 

сделал такую лабуду. ругается на метод getAvailableSkills()......

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


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

просто нету getAvailableSkills в SkillTreeTable

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


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

 

почему тогда в L2PcInstance он обращается к этому методу

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


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

я хз, скачай netbeans и работай в ней те будет подчеркивать сразу все ошибки, очень упрощает все программа

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


Ссылка на сообщение
Поделиться на другие сайты
я хз, скачай netbeans и работай в ней те будет подчеркивать сразу все ошибки, очень упрощает все программа

 

слишком громоздкая

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


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

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

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

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

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

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

Войти

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

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

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

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

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