Автоатака после трансформации

Gigi

Прославленный
Проверенный
Легенда Истоков
Старожил I степени
Сообщения
330
Розыгрыши
0
Решения
2
Репутация
163
Реакции
94
Баллы
1 403
Хроники
  1. Master Class
Исходники
Присутствуют
Сборка
Mobius (507 протокол)
Смысл проблемы, после трансформации как правило все активные скилы класса отключаются. Но если скилл закинуть в макросс, и юзать их через авто-охуту или вкоючить его через панел (автоюз) то они всё равно юзаются, хотя сами скилы не активные

Может кто подсказать решение?
 
А проблема в том что после трансформа все активные скилы (кроме трансформ скилов) неактивны и в дискрипшене макроса они обозначены как "Not Used" и костыль там не помогает ....
 
А проблемма в том что после трансформа все активные скилы (кроме трансформ скилов) неактивны и в дискрипшене макроса они обозначены как "Not Used" и кастыл там не помогает ....
Пример:

Код:
if (activeChar.isTransformed())
{
    if (!activeChar.hasTransformSkill(skill.getId()))
    {
        activeChar.sendMessage("Этот навык нельзя использовать во время трансформации..");
        return;
    }
}

или

public boolean hasTransformSkill(int skillId)
{
    if (!isTransformed())
        return true;

    return getTransformation().getSkills().containsKey(skillId);
}

смотря что вы хотите сделать.
 
по сути тут нету нечего сложного сделать проверки...
я работаю с кодом мобиуса и заметил уж много проблеблемных моментов которые устраняю по мере поступления...

есть вариант
Код:
if (skill != null && !player.isSkillDisabled(skill)) {
    if (player.isTransformed()) {
        if (!player.getTransformation().canUseSkill(skill)) {
            return; // или continue, если внутри цикла
        }
    }
    player.useMagic(skill, false, false);
}
или добавить
if (player.isTransformed() && !player.getTransformation().getSkills().containsKey(skill.getId())) {
    return;
}

или/
for (Skill skill : autoSkills)
{
    if (player.isSkillDisabled(skill))
        continue;

    if (player.isTransformed() && !player.getTransformation().canUseSkill(skill))
        continue;

    player.useMagic(skill, false, false);
}
 
  • Мне нравится
Реакции: Gigi
И в каком именно классе это добро проверить
 
*** Скрытый текст не может быть процитирован. ***
Нее это совсем другое, это при трансфоме в волка происходит, и не имеет отношения к юзе скилов через макрос.
 
Оверпостинг
Нее это совсем другое, это при трансфоме в волка происходит, и не имеет отношения к юзе скилов через макрос.
В чем проблема сделать дебаг? я же тебя учил делать это ?

пишите в лс помогу чем смогу )) потстскрипту... (нелязя забивать тех кто учил)
 
В чем проблема сделать дебаг? я же тебя учил делать это ?
Дебаг помогает когда что то не происходит и ищем стоп, а тут даже не знаю куда вставить

даже у меня нет метода player.getTransformation().getSkills()
 
Дебаг помогает когда что то не происходит и ищеи стоп а тут даже не знаю куда вставить

даже у меня нет метода player.getTransformation().getSkills()
метод может быть по другому назван мобиус обновлял код и некоторые методы стали по другому называтся даже есть изминения названия класса.
 
Получилось таким способом, отдельное спасибо GolinFast

в RequestMagicSkillUse добавить проверку

Код:
        if (player.isTransformed() && !player.getAllTransformSkills().contains(skill))
        {
            player.sendPacket(ActionFailed.STATIC_PACKET);
            return;
        }
 
Последнее редактирование:
Назад
Сверху