Raxus 0 Опубликовано 2 мая, 2012 каким методом, можно удалить те скилы у персонажа, которые не соответсвуют его уровню. player.removeSkill(player.getAllSkills() - player.sendSkillList()); компилятор на это ругается(. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 2 мая, 2012 каким методом, можно удалить те скилы у персонажа, которые не соответсвуют его уровню. player.removeSkill(player.getAllSkills() - player.sendSkillList()); компилятор на это ругается(. Понятное дело будет ругатся если ты бред пишешь).... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 2 мая, 2012 Понятное дело будет ругатся если ты бред пишешь).... ну а есть идеи как это осуществить? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 2 мая, 2012 хз для чего это тебе надо но попробуй так мб поможет. через for "пробегись" по скилам чара и сравнимай левел скила с левелом чара если например он больше то скилл удаляешь. Надеюсь ты понял о чём я. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 2 мая, 2012 (изменено) хз для чего это тебе надо но попробуй так мб поможет.через for "пробегись" по скилам чара и сравнимай левел скила с левелом чара если например он больше то скилл удаляешь. Надеюсь ты понял о чём я. for (L2Skill skill : player.getAllSkills()) player.removeSkills(а тут хз чо писать) Дело в том, что я сделал Нпс делевел. Он снижает уровень с 80 на 70, но скилы остаются с 80 уровня( Что значит сравнивать левел скила и чара, ведь они не зависят друг от друга Изменено 2 мая, 2012 пользователем Raxus Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 2 мая, 2012 for (L2Skill skill : player.getAllSkills())player.removeSkills(а тут хз чо писать) Дело в том, что я сделал Нпс делевел. Он снижает уровень с 80 на 70, но скилы остаются с 80 уровня( Что значит сравнивать левел скила и чара, ведь они не зависят друг от друга for(L2Skill s : player.getAllSkills()) { if(s.getLevel() > player.getLevel()){ player.removeSkill(s); } } вот так пробуй. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 2 мая, 2012 for(L2Skill s : player.getAllSkills()) { if(s.getLevel() > player.getLevel()){ player.removeSkill(s); } } вот так пробуй. ничего не изменилось, скилы остались на месте Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KFan 7 Опубликовано 2 мая, 2012 (изменено) Это тупость)) уровень скила не может быть больше уровня чара)) я вообще скилы уровня больше 36 не видел)) тут надо в базу прыгать)) я не знаю метод который должен возвращать значение разрешенного для скила уровня Изменено 2 мая, 2012 пользователем KFan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 (изменено) Это тупость)) уровень скила не может быть больше уровня чара)) я вообще скилы уровня больше 36 не видел)) тут надо в базу прыгать)) я не знаю метод который должен возвращать значение разрешенного для скила уровня а какже стан сороковой? есть такой метод rewardSkills(). Он ввостанавливает скилы согласно уровню, но не удаляет старые. Вот его как то минусануть из getAllSkills(), и будет норм, вот только как? player.removeSkill(player.getAllSkills() - player.rewardSkills()); только надо правильно это сделать как-то Изменено 3 мая, 2012 пользователем Raxus Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 мая, 2012 В классе SkillTreeTable есть замечательный метод: SkillTreeTable.getAvailableSkills(L2PcInstance, ClassId) Он вернет вам список доступных умений на данный момент. Пляшите от него. Так же имеет смысл глянуть метод L2PcInstance.giveAvailableSkills() Вперед работать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 В классе SkillTreeTable есть замечательный метод: SkillTreeTable.getAvailableSkills(L2PcInstance, ClassId)Он вернет вам список доступных умений на данный момент. Пляшите от него. Так же имеет смысл глянуть метод L2PcInstance.giveAvailableSkills() Вперед работать я знаю какие методы дают умения для соответствующего уровня, я не знаю как этот метод минусануть из общего количества умений, чтобы удалить ненужные Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 мая, 2012 я знаю какие методы дают умения для соответствующего уровня, я не знаю как этот метод минусануть из общего количества умений, чтобы удалить ненужные Нет такого понятия "минусануть". Вы получаете коллекцию объектов, и математические операции к ней не применимы. Стройте цикл, на основе например цикла из L2PcInstance.giveAvailableSkills, и по ходу его работы удаляйте у чара лишние скилы. И будет вам счастье. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 (изменено) Нет такого понятия "минусануть". Вы получаете коллекцию объектов, и математические операции к ней не применимы. Стройте цикл, на основе например цикла из L2PcInstance.giveAvailableSkills, и по ходу его работы удаляйте у чара лишние скилы. И будет вам счастье. ну почему player.removeExpAndSp((player.getExp() - Experience.LEVEL[70]), 0); в пример из общего количества експы, вычитается столько , сколько нужно для 70 уровня Изменено 3 мая, 2012 пользователем Raxus Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 мая, 2012 (изменено) ну почему player.removeExpAndSp((player.getExp() - Experience.LEVEL[70]), 0); в пример Вы не улавливаете суть. метод player.getExp() возвращает объект типа long (скорей всего, не помню), а это объект с математическими свойствами. в свою очередь, Experience.LEVEL[] - есть массив аналогичных статических объектов. Вот вам и математика. Вы же пытаетесь вычесть мячик из автомобиля. Изменено 3 мая, 2012 пользователем Akumu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 Вы не улавливаете суть. метод player.getExp() возвращает объект типа long (скорей всего, не помню), а это объект с математическими свойствами. в свою очередь, Experience.LEVEL[] - есть массив аналогичных статических объектов. Вот вам и математика. Вы же пытаетесь вычесть мячик из автомобиля. Можете хотя бы сказать с чего начать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 мая, 2012 Можете хотя бы сказать с чего начать? Я уже сказал Можно и проще, не находите? Удаляем все скилы, даем доступные на текущий лвл. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 Я уже сказал Можно и проще, не находите? Удаляем все скилы, даем доступные на текущий лвл. я так делал, оно работало, но тупо шо удаляло все скилы с панельки, очень неудобно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 мая, 2012 я так делал, оно работало, но тупо шо удаляло все скилы с панельки, очень неудобно Ну тогда берите и циклом сверяйте текущие скилы, со всеми доступными на нужный уровень. При необходимости - удаляйте. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 Ну тогда берите и циклом сверяйте текущие скилы, со всеми доступными на нужный уровень. При необходимости - удаляйте. ну ща попробую, отпишу о результате Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 for(L2Skill skill : player.getAllSkills()) { L2Skill skills = SkillTreeTable.getInstance().getAvailableSkills(this, player.getClassId()); if(skill != skills) { player.removeSkill(skill); } } сделал такую лабуду. ругается на метод getAvailableSkills()...... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 for(L2Skill skill : player.getAllSkills()) { L2Skill skills = SkillTreeTable.getInstance().getAvailableSkills(this, player.getClassId()); if(skill != skills) { player.removeSkill(skill); } } сделал такую лабуду. ругается на метод getAvailableSkills()...... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexMan 27 Опубликовано 3 мая, 2012 просто нету getAvailableSkills в SkillTreeTable Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 просто нету getAvailableSkills в SkillTreeTable почему тогда в L2PcInstance он обращается к этому методу Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexMan 27 Опубликовано 3 мая, 2012 я хз, скачай netbeans и работай в ней те будет подчеркивать сразу все ошибки, очень упрощает все программа Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Raxus 0 Опубликовано 3 мая, 2012 я хз, скачай netbeans и работай в ней те будет подчеркивать сразу все ошибки, очень упрощает все программа слишком громоздкая Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты