21

» WarCraft 3 / GetTriggerPlayer( )

nvc123, я хотел заменить GetOwningPlayer(GetTriggerUnit()) на GetTriggerPlayer(). Видимо, не стоит, я правильно понял?
21

» WarCraft 3 / Ошибка в коде

nvc123, хы, лучше не буду говорить кто..)) вы все его знаете.
А за пояснения спасибо.
nvc123, хотел задать ещё один вопрос по выше написанному коду:
Если внутри функции GroupCallback() вызвать функцию GetAttacker(), то она почему-то возвращает того атакующего юнита, которого я пытался передать с помощью глобальных переменных. Это нормально вообще? Если всё и так работает, то зачем передавать данные с помощью глобальных переменных, когда можно получить юнитов с помощью подобных функции?
21

» WarCraft 3 / Counter Helix Axe'a из DotA

8gabriel8, весьма интересная наработка. Но то, что герой салится и немного стопится во время срабатывания, конечно, не очень приятно.
P.S: да не, в первой тоже от дальних атак срабатывало.
21

» WarCraft 3 / Ошибка в коде

nvc123, заменил на свои переменные. Пока что всё работает правильно. Но я всё же не могу понять, как могли переменные перезаписаться, если действие происходит очень быстро и нет никаких задержек. Да и одновременно в вк3 ничего не может произойти, насколько я знаю...
21

» WarCraft 3 / Counter Helix Axe'a из DotA

quq_CCCP, тогда прошу прощения. Давно не играл в доту 1, привык, что в дота 2 анимация не сбивается))
21

» WarCraft 3 / Ошибка в коде

nvc123, 1 раз при каждом вызове GroupEnumUnitsInRange. А обнуление я сделал специально, если где-нибудь будут использоваться эти переменные, они могут выдать данные из этой функции. Поэтому сделал на всякий случай.
А вообще обнуление убирать пробовал, это ни на что не влияет. По прежнему выдаёт null кроме первого раза.
21

» WarCraft 3 / Ошибка в коде

nvc123, Имя filterUnit выдает правильно, но имя attackingUnit выдаёт правильно лишь 1 раз, дальше начинает выдавать (null). Даже если где то есть перезапись данной переменной, то такого быть не должно, ведь тут действия происходят без задержек.
21

» WarCraft 3 / Проблема с аое ДоТ-ой

scope Spell initializer Init
    globals
        private constant integer BuffID         = 'BHad'
        private constant group   auraGroup = CreateGroup()
        private constant timer   auraTimer = CreateTimer()
        private  boolexpr auraBoolexpr
        
    endglobals
    
    private function GroupCallback takes nothing returns boolean
        local unit filterUnit = GetFilterUnit()

        local integer buffLevel    = GetUnitAbilityLevel(filterUnit, BuffID)

        if buffLevel > 0 then
            set bj_lastCreatedUnit = CreateUnit(Player(0), 'h000',0, 0, 0)
            call UnitAddAbility(bj_lastCreatedUnit, 'Acri')
            call IssueTargetOrder(bj_lastCreatedUnit, "cripple", filterUnit)
            call KillUnit(bj_lastCreatedUnit)
        endif

        set filterUnit = null
        return false
    endfunction

    private function Actions takes nothing returns nothing
        call GroupEnumUnitsInRect(auraGroup, bj_mapInitialPlayableArea, auraBoolexpr)
    endfunction

    function Init takes nothing returns nothing
        set auraBoolexpr = Condition(function GroupCallback)
        call TimerStart(auraTimer, 1.0, true, function Actions)
    endfunction

endscope
21

» WarCraft 3 / Ошибка в коде

nvc123, дебаг в функции GroupCallback не срабатывает. Кстати, плавающий текст тоже не появляется. Но если в функции call GroupEnumUnitsInRange( enumUnits, victimX, victimY, 675.0, boolexprForGroup ) заменить переменную на Сondition( function GroupCallback ), то плавающий текст начинает появляться, но урона всё также нету.
21

» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает

MATRITSA, потому что у Вас udg_TrigerUnit - НЕ ГЕРОЙ.
или замените формулу на
local real r = (I2R(GetHeroStr( udg_TrigerUnit, true)) * 5.00 ) + 100.0
21

» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает

MATRITSA, покажите функцию, которая использует функцию Trig_jamy_Udar_zemle_1_JamyGroup(). Попробуйте нанести 100 ед урона.
call UnitDamageTargetBJ( udg_TrigerUnit, GetEnumUnit(),r, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
call UnitDamageTargetBJ( udg_TrigerUnit, GetEnumUnit(),100.0, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
Уверен, что проблема здесь
21

» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает

А юнит стан является героем?? Если не является героем, то функция GetHeroStr() вернет "0", а 0 при умножении даёт 0. Поэтому у Вас наносится 0 урона.
21

» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает

MATRITSA, добавьте после этого
call UnitDamageTargetBJ( udg_TrigerUnit, GetEnumUnit(),(I2R(GetHeroStr( udg_TrigerUnit, true)) * 5.00 ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
это
	call BJDebugMsg(GetUnitName(udg_TrigerUnit))
и посмотрите, будет ли в игре после каста способности надпись на экране (имя кастера).
21

» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает

Лучше добавьте условие внуть самого спела. А когда будете запускать его , используете функцию ConditionalTriggerExecute( trigger ), вместо TriggerExecute( trigger ). так читабельность вашего кода возрастет.)
21

» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает

MATRITSA, инициализация перменной udg_TrigerUnit у тебя тут не влияет на произнесение заклинания (стана).
MATRITSA:
тогда стан не прошолбы
MATRITSA:
Теперь Дамаг не наносеца
эта может както на это влиять
а зачем запускать эти триггеры? Триггер сам запустится, когда кто-то применит заклинание.
21

» WarCraft 3 / Триггерные снаряды

quq_CCCP, нет , вы не поняли, например хук пуджа, или бласт, торнадо вокера из доты. чтобы был такой крюк, волна, торнадо, нужно создать юнитов такой модели. А я имею ввиду без редактора объекта, а только с помощью триггеров.
Или например, создать одного юнита на всю карту, и использовать только его, меняя его модель через мемхак, можно ли так сделать?
21

» WarCraft 3 / Триггерные снаряды

biridius, quq_CCCP, да и не всегда есть цель, возможно это будет просто эффект, который двигается куда-то (для красочности заклинания).
21

» WarCraft 3 / Освобождение хендла

ScopteRectuS:
biridius, нашел еще такую функцию:
	native RemoveSavedInteger takes hashtable table, integer parentKey, integer childKey returns nothing
думаю, она идеально сюда подходит.
nvc123, здесь я уже нашел решение. Но так как здесь продолжили отвечать, я читал, и думал, что могут подсказать решение по-лучше. И действительно, годных ответов было много.
21

» WarCraft 3 / Освобождение хендла

pro100master, сил противодействующей стороны достаточно, чтобы сдержать такой натиск противников. Да и карту я делаю только для себя. Просто нравится копашится в редакторе карт.
21

» WarCraft 3 / Освобождение хендла

pro100master, у меня юниты создаются каждые 0.16 секунд, и примерно с такой же скоростью дохнут...