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

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

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
28
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, нужно проверять все баффы невидимости, которых, к счастью, не так уж и много.
0
26
5 лет назад
0
NazarPunk:
Вкратце, необходима проверка Unit is Visible for .
Проверяет только Fog of War, нужно проверять все баффы невидимости, которых, к счастью, не так уж и много.
у меня работало и с невидимостью вроде как
0
29
5 лет назад
0
у меня работало и с невидимостью вроде как
Буду за компом, сделаю тесты. Самому интересно.
2
13
5 лет назад
2
Всё таки написал туда~Hate:
0
28
5 лет назад
0
Вкратце, необходима проверка Unit is Visible for ...
Эта функция пашет только для людей, для ИИ возвращает false.
NazarPunk:
Проверяет только Fog of War
Да нет, с невидимость проверяет.
0
29
5 лет назад
0
Да нет, с невидимость проверяет.
Если руки дойдут, потещу.
0
28
5 лет назад
0
Если руки дойдут, потещу.
Ну я тестил, вернёт ложь, если юнит невидим. Если игрок ИИ, то всегда ложь, почему-то.
Но проверь и ты, вдруг я где-то накосячил.
0
29
5 лет назад
0
Но проверь и ты, вдруг я где-то накосячил.
Я вот точно помню, что есть n+ подводных камней с видимотью на баффах. К сожалению сейчас просто нет времени, но самому интересно, потещу)
0
23
5 лет назад
0
а не проше проверить если кастер игрок не видит его то не заносить в группу...
4
32
5 лет назад
4
Веер ножей мБ?
2
13
5 лет назад
Отредактирован Esea
2
quq_CCCP:
Веер ножей мБ?
и как же это сделать?
да и не думаю что если поставить гигантскую дальность то он не будет бить тех которых ты не видишь
2
20
5 лет назад
2
вы о чем вообще
если отдавать приказ на каст дамми юниту - он не сможет кастануть его на инвизерного юнита, если рядом нет варда или другого детектора

единственное что - дамми создаются, но самого каста нет
Загруженные файлы
0
32
5 лет назад
0
Esea, ShareVision не не слышал, ты можешь выдать видимость над всеми юнитами, сделать каст и тут же забрать видимость, все.
0
28
5 лет назад
0
ShareVision
Вот это ржачная вещь, сделал ShareVision невидимому юниту, мои войска его атаковали, но сам я его не видел.
2
13
5 лет назад
2
мде, так и не понимаю о чём вы? повторюсь:нужен спелл, активируешь дамажит всех ВИДИМЫХ врагов на карте (не важно где они находятся). И если враг в невидимости, значит - ты его не видишь - спелл на него не работает.
0
26
5 лет назад
0
Скрин триггера приложи, как ты сделал с проверкой видимости, что не работало. Потому что это должно очень просто делаться, то есть скорее всего допущена ошибка.
2
13
5 лет назад
2
8gabriel8:
Скрин триггера приложи, как ты сделал с проверкой видимости, что не работало. Потому что это должно очень просто делаться, то есть скорее всего допущена ошибка.
смысл в том, что я вообще не понимаю какие события/условия/действия подобрать
0
26
5 лет назад
0
Но что-то всё-таки делал?
Esea:
PrincePhoenix:
Вкратце, необходима проверка Unit is Visible for ...
попробую
Esea:
PrincePhoenix:
Вкратце, необходима проверка Unit is Visible for ...
попробую
Не получилось..
2
13
5 лет назад
2
8gabriel8:
Но что-то всё-таки делал?
Esea:
PrincePhoenix:
Вкратце, необходима проверка Unit is Visible for ...
попробую
Esea:
PrincePhoenix:
Вкратце, необходима проверка Unit is Visible for ...
попробую
Не получилось..
да, но что уже забыл. (поверь там ничего интересного)
0
26
5 лет назад
0
Наверное, ты не сделал ничего и в результате всю эту болтологию опытных посетителей развёл, не?)
Спорят они здесь, как же оно так не работает.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.