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

Принятый ответ

NazarPunk:
И что тут сложного
//! zinc
library SpellDamageAllVisible {

    /* Настройки заклинания */
    
    constant integer SpellHero          = 'A000';   // Способность для героя.
    constant string SpellEffect         = "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl";
    constant string SpellEffectAttach   = "origin";
    
    constant attacktype DamageAttackType = ATTACK_TYPE_MAGIC;   /* Тип урона:
                                                                    ATTACK_TYPE_CHAOS
                                                                    ATTACK_TYPE_HERO
                                                                    ATTACK_TYPE_MAGIC
                                                                    ATTACK_TYPE_MELEE
                                                                    ATTACK_TYPE_NORMAL
                                                                    ATTACK_TYPE_PIERCE
                                                                    ATTACK_TYPE_SIEGE
                                                                */
    
    // Указываем количество нанесённого урона
    function getDamage(integer level) -> integer {
        return level * 100;
    }
  
    /* ВСЁ, ЧТО НИЖЕ, ПРАВИТЬ НА СВОЙ СТРАХ И РИСК!!! */
    function onInit(){
        trigger t = CreateTrigger();
        integer i;
        
        for (0 <= i < bj_MAX_PLAYER_SLOTS) {
            TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null);
        }
        TriggerAddCondition(t, Condition( function() -> boolean { return SpellHero == GetSpellAbilityId(); }));
        TriggerAddAction(t, function(){
            group g = CreateGroup();
            unit target, caster = GetTriggerUnit();
            integer level = GetUnitAbilityLevel(caster, SpellHero);
            
            GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Condition(function() -> boolean {
                return GetWidgetLife(GetFilterUnit()) >= 0.405;
            }));
           
            while (true) {
                target = FirstOfGroup(g);
                if (target == null) { break; }
                if (
                    IsPlayerEnemy(GetOwningPlayer(caster), GetOwningPlayer(target))
                    &&
                    IsUnitVisible(target, GetOwningPlayer(caster))
                ) {
                    DestroyEffect(AddSpecialEffectTarget(SpellEffect, target, SpellEffectAttach));
                    UnitDamageTarget(caster, target, getDamage(level), true, false, DamageAttackType, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS);                
                }
    
                GroupRemoveUnit(g, target);
            }
            
            DestroyGroup(g);
            g = null; caster = null;
        });

        t = null;
    }
}
//! endzinc
8gabriel8:
Странно вы группы удаляете, обычно перед перебором
set bj_wantDestroyGroup = true
О, во, чётко, пасиба. (жаль на джазе сделал, ну да ладно)
о, 8gabriel8 тоже сделал на "Заклинания на заказ" ща чекну..
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
19
5 лет назад
2
Похожие вопросы:

ответ
В этом архиве ищи свои скиллы, в [скобках] смотри нужный ID.
ответ
Конечно много мороки. Нужно создать предмет для каждого спелла. Для предмета задать id-код тот же что и в спела. Если id будет одинаковый, то описание, название и картинка предмета будет как у спелла. Если создать другое id, то нужно самому указывать пиктограммы, описание и название. Всем предметам даешь особенность использовать сразу или нет (на твой выбор). Всем предметам даешь нестандартную способность-пустышку. Дальше создаешь глобальные переменные для каждого героя твоей карты, в которые будут записываться id-способностей. Потом создаешь отдельный триггер для изучения нового или улучшение спелла. Событие "Юнит использует предмет". Условие "Классификация предмета == Усиливающие". (Так мы будем классифицировать предметы для изучения спеллов). Дальше нужно узнать id способности, которую хотят выучить. Если id ваших предметов такие же как у спеллов, то просто в переменную id способности записываешь id триггерного предмета. Если нет, то нужно через много условий типа "Если предмет равно == Благодать, то в переменную spell записать 'AHhb' ". Это много мороки. Потом проверяешь с глобальными переменными. Если у героя уже есть такой спелл, то нужно повысить его уровень. Если такого спелла нету, то удалить предыдущий спелл и дать этот.
ответ
Так триггер-то не MUI. Нужно через локальные переменные делать.
Статья про локальные переменные.
Исправил. Смотри, изучай - пригодится)
ответ
Проще сразу сделать триггено, торнадо вроде вручается абилка чтобы он сам ходил.
Канал с временем каста и обычный суммон, так же триггер с событием юнит завершил каст, дейсвтие найти вызванного им юнита и убить.
И событие юнит умирает, действие запаузить и тут же снять паузу с кастующего юнита. при услови что его текущий приказ равен - кастовать твою абилку.
Все просто.
ответ
Solo, "Отдать приказ - тип цель/точка/без цели" там находишь спелл, из которого сделал свой нестандартный. На джасе проще

1
26
5 лет назад
1
0
13
5 лет назад
0
Hate:
ну серьёзно что ли? нужно заполнять там заявку и ждать... ну, если здесь ответа не найду то придётся.
0
27
5 лет назад
0
Вкратце, необходима проверка Unit is Visible for ...
0
13
5 лет назад
0
PrincePhoenix:
Вкратце, необходима проверка Unit is Visible for ...
попробую
Esea:
PrincePhoenix:
Вкратце, необходима проверка Unit is Visible for ...
попробую
Не получилось..
0
29
5 лет назад
0
Вкратце, необходима проверка Unit is Visible for .
Проверяет только Fog of War, нужно проверять все баффы невидимости, которых, к счастью, не так уж и много.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.