Анимация каста умений у НПЦ

dieorl2

Знаменитый
Пользователь
Сообщения
10
Розыгрыши
0
Репутация
0
Реакции
3
Баллы
1 225
Хроники
  1. Fafurion
Исходники
Присутствуют
Сборка
none
Отображаю нпц id 30009 пакетом NpcInfo.

Далее пытаюсь с эмулировать баф от нпц на перса.
MagicSkillUse(objid npc, objid target)
MagicSkillLaunched

но ни какой анимации не происходит.

с мобом такая манипуляция работает. и каст видно и конечный эффект на персонаже.
либо клиент не обрабатывает каст от нпц?

тогда как можно отобразить эффект бафа на персонажа , без каста скила?
 
Ну у MagicSkillLaunched есть список целей, которые попадают под умение.
Java:
    @Override
    public void write()
    {
        ServerPackets.MAGIC_SKILL_LAUNCHED.writeId(this);
        writeInt(_castingType.getClientBarId()); // MagicSkillUse castingType
        writeInt(_objectId);
        writeInt(_skillId);
        writeInt(_skillLevel);
        writeInt(_targets.size());
        for (WorldObject target : _targets)
        {
            writeInt(target.getObjectId());
        }
    }
К примеру, для того, чтоб заставить ёлку на мобиусе показывать анимацию (кружочек вокруг ёлки) и анимацию наложения эффекта (Marry Christmas 1686663961000.png ) на персонажа - пришлось делать что-то типо такого
Java:
            if (event.equalsIgnoreCase("BUFF_AROUND_PLAYERS"))
            {
                for (Npc tree : TREE_NPCs)
                {
                    final List<PlayerInstance> aroundPlayers = World.getInstance().getVisibleObjectsInRange(tree, PlayerInstance.class, 300);
                    if (aroundPlayers.isEmpty())
                    {
                        continue;
                    }
                    tree.doCast(TREE_SKILL.getSkill());
                    for (PlayerInstance p : aroundPlayers)
                    {
                        TREE_SKILL.getSkill().activateSkill(tree, (CubicInstance) null, null, p);
                        p.sendPacket(new MagicSkillLaunched(tree, TREE_SKILL.getSkillId(), TREE_SKILL.getSkillLevel(), SkillCastingType.NORMAL, new HashSet<>(aroundPlayers)));
                    }
                }
Тут именно нужен каст через цикл, ибо бродкаст работает не корректно.
 
дело в том что если заменить нпц, на монстра например, то еффекты работают и каст и анимация бафа. Как будто у нпц не прописан каст скила. Но бафы в кх у таких же нпц как-то работают(они скил не кастуют, но конечный эффект бафа отображается)
 
дело в том что если заменить нпц, на монстра например, то еффекты работают и каст и анимация бафа. Как будто у нпц не прописан каст скила. Но бафы в кх у таких же нпц как-то работают(они скил не кастуют, но конечный эффект бафа отображается)
Как вариант - просто нету анимаций у НПС для каста или неправильное оружие в руке.
 
Если так происходит то 100% у этого нпц просто нету анимации скила. Делать новую очень геморно лучше взять другого нпц и смирится) ну можешь попробовать гайдов тонна
 
Ну конечно дело было в отсутствии анимации у нпц. Проверил через дев мод. Просто не ожидал что самому скилу есть дело до того как нпц будут проигрывать скилл. Так вот для такого случая нарисовали отдельные скилы для нпц) именно их кастуют нпц в кх и нубибаферы
 
Просто не ожидал что самому скилу есть дело до того как нпц будут проигрывать скилл.
Дак что бы что то было, нужно что-то сделать, клиент сам ведь не придумает себе анимацию 😁 функция сама себя не напишет, анимация сама себя не создаст.
 
ну в моем понимании скилу должно быть все равно кто его кастует. хоть игрок ,хоть нпц ,хоть елка с ивента. Скил должен вызвать что-то типо метода doanimation у нпц. и не зависимо есть у нпц анимация или нет, выполнить свою часть,тоесть эффект над кастующим и эффект на таргете. Но видимо не так все устроено..)
 
ну в моем понимании скилу должно быть все равно кто его кастует. хоть игрок ,хоть нпц ,хоть елка с ивента. Скил должен вызвать что-то типо метода doanimation у нпц. и не зависимо есть у нпц анимация или нет, выполнить свою часть,тоесть эффект над кастующим и эффект на таргете. Но видимо не так все устроено..)
можете проверить все скиллы, которые бафает нубобафер, есть будт анимация - можете слать её вместо вашего умения, правда мало сурсов так умеют - прийдется слать пакет MagicSkillUse
 
Как я написал чуть выше. для нпц без анимации каста скилов, били нарисованы специальные
PHP:
private static final int[] ALLOWED_BUFFS =
    {
        4342, // Wind Walk
        4343, // Decrease Weight
        4344, // Shield
        4346, // Mental Shield
        4345, // Might
        4347, // Blessed Body
        4349, // Magic Barrier
        4350, // Resist Shock
        4348, // Blessed Soul
        4351, // Concentration
        4352, // Berserker Spirit
        4353, // Blessed Shield
        4358, // Guidance
        4354, // Vampiric Rage
        4355, // Acumen
        4356, // Empower
        4357, // Haste
        4359, // Focus
        4360, // Death Whisper
    };

они не вызывают анимацию у нпц. а также ни как не отображаются на кастующем нпц, но на игроке эти эффекты уже видно визуально. Другое дело чтобы добавить например кастомный баф( бафы варка овера бд или свса) и чтобы было видно их анимацию от нпц, нужно их специально рисовать, по типу бафов из кх. ну тоесть на стороне сервера, или в скилл групп это не изменить.
 
Не проверял но вполне должен быть вариант со стороны сервера отправлять уже еффект умения на персонажа минуя кастующего типо аи для нпц, должно выглядеть как Селф но без кастующего то есть без первой части анимации
 
  • Мне нравится
Реакции: Rolo
Назад
Сверху Снизу