32

» WarCraft 3 / Отследить приказ

Событие такое есть, в гуях Особый юнит обнаружил цель в пределах досягаемости.
в jass это EVENT_UNIT_TARGET_IN_RANGE на конкретного юнита.
32

» WarCraft 3 / Можно Ли Спелу сделать перезарядку до ево применение

Чаво? Моя ваш русский не понимать!
P.S Сбросить перезарядку у способности можно либо удалив её и снова добавив (если только одну) или спец функцией UnitResetColdownAbilites( unit ) - которая сбросит перезарядку у всех способностей указанного юнита.
32

» WarCraft 3 / TriggerAddCondition создает хэндл или нет?

И кстати да, чуть не забыл Использовать Boolexpr как IceFrog не нужно, ничего хорошего в этом нет.
для тех кто в танке ниже пример кода айсфрога
код

function A takes nothing returns boolean
	return IsUnitDead( GetFilterUnit() ) == false and IsUnitType( GetFilterUnit(), UNIT_TYPE_ANCIENT )) == false and IsUnitEnemy( GetFilterUnit(), bj_groupEnumOwningPlayer()
endfunction

function B takes nothing returns boolean
	return IsUnitDead( GetFilterUnit() ) == false and IsUnitType( GetFilterUnit(), UNIT_TYPE_ANCIENT )) == false and IsUnitEnemy( GetFilterUnit(), bj_groupEnumOwningPlayer()
endfunction

function C takes nothing returns boolean
	return IsUnitDead( GetFilterUnit() ) == false and IsUnitType( GetFilterUnit(), UNIT_TYPE_ANCIENT )) == false and IsUnitEnemy( GetFilterUnit(), bj_groupEnumOwningPlayer()
endfunction
// ...
// потом где то в коде спеллов
// 
call GroupEnumUnitsInRange( grp, x,y, 450.00, Condition( function A ) )
...
call GroupEnumUnitsInRange( grp, x,y, 450.00, Condition( function B ) )
...
call GroupEnumUnitsInRange( grp, x,y, 450.00, Condition( function C ) )
32

» WarCraft 3 / TriggerAddCondition создает хэндл или нет?

Кет:
quq_CCCP, а как удалить triggercondition и triggeraction? Они не удаляются при уничтожении триггера?
Нет не удаляются, есть TriggerRemoveCondition\Action и TriggerClearConditions\Actions
Ивенты триггера тоже никуда не деются, пока есть связанный с ними обьект.
        method FlushData takes nothing returns nothing
            call DisableTrigger( .trg )
            call TriggerRemoveCondition( .trg, .trc )
            call TriggerRemoveAction( .trg, .tra )
            call TriggerRemoveAction( .trg, .extra )
            call TriggerClearActions( .trg )
            call TriggerClearConditions( .trg )
            call RemoveDataBX( .trg )
            call RemoveDataBX( .trix )
            call DestroyTrigger( .trg )
            call DestroyTimer( .trix )
// и так далее...
32

» WarCraft 3 / Оптимизация: один большой или много мелких?

nvc123:
1 триггер лучше чем 2
размер триггера в данном случае значения не имеет
исключения касаются лишь утечек и прочий фигни
Ну или 10005000 триггеров примерно одного содержания, по большей части потому что создается куча обьектов и карта загружается медленне, актуально для гуи в первую очередь.
32

» WarCraft 3 / TriggerAddCondition создает хэндл или нет?

Zeuz:
nvc123, тогда получается boolexpr не утечна?
его можно создать где угодно)
и использовать как фрог
Лол, обьясняю еще раз
  • Condition( function SomeFunc ) и Filter( function SomeFunc ) возвращают Boolexpr, он кешируется, и не утекает
Но в триггере еще есть TriggerAddCondition( trigger, boolexpr ) который возвращает triggercondition - который какраз и утекает, это хендл который висит в памяти и требует удаления... туда же triggeraction .
Поэтому там где используются локальные триггеры которые будут удалены нужно удалять и triggeraction и triggercondition а для этого их нужно куда то сохранить, много городушек и лишних действий, посему там где можно не юзать триггеры лучше их не юзать.
32

» WarCraft 3 / Оптимизация: один большой или много мелких?

Есть, триггер для триггерных скиллов 1, 3 ивента, кастанул, завершил каст, выучил - все, далее условие что абилка в базе данных и собственно действие екзикут функции взятой из базы данных.
32

» WarCraft 3 / TriggerAddCondition создает хэндл или нет?

Период 0.5 - и счетчик, если кол-во циклов таймера больше 8 то удалить там спеллбук, запаузить таймер и удалить. И точно так же проверяешь хп кастера раз в 0.5 сек, вот и ненужно триггера.
32

» WarCraft 3 / TriggerAddCondition создает хэндл или нет?

Сам TriggerCondition и TriggerAction хендлы, их надо бы удалять, есть специальные функции для этого.
Таймером можно проверять хп кастера, если хп менье 0.405 то кастер сдох...
Триггеры на манеру Ледяной Лягухи не лучшее решение....
32

» WarCraft 3 / Заставить скачать файл .mix при загрузке карты.

Кикать из игры с сообщением что требуется Файл такой то с сайта такого то...
Ну иначе никак...
32

» WarCraft 3 / Баг в Worldeditor'e

Это древняя бага ВЕ, много кто такое видел...
Ни будет робить, нужна основа где ипользуется это поле, в данном случае будут работать только поля от трансмутации ну и мб еще какое то, если близзы сделали еще какой то эффект у этой способности а потом убрали на уровне РО.
Прочие поля даже если будут записны в файл, будут тупо мусором, движек не смотрит на поля, движек смотрит на ID, от чего наследуются и какие свойста, а после работает с ними.
32

» WarCraft 3 / Триггерный спелл не хочет работать

НУ во первых нужно это как то без вейтов и массивов, с такой реализацией не удивительно что не работает.
Во вторых - это делается без баффов, если вы планируйте маг имун, добовляйте юниту просто спеллбук с пассивным маг имунном и скиллом на доп. защиту.
Попробуйте почитать про хештаблицы и таймеры.
32

» WarCraft 3 / Как отследить момент когда юнит приносит золото?

Событие кол-во золота увеличилось, проверяем на сколько, если допустим на 8 то ура, раб притащил мешок золота...
32

» WarCraft 3 / Захват созданных иллюзий в переменные

Melissa:

Триггерно иллюзию ведь не создать (для Last created unit)
дать руну со способностью жезла иллюзий ему
Нафига? Дамми кастера который будет кастовать посох иллюзий в юнита, а в переменную занести изи, достаточно создать за ранее 1 триггер и темповую глобалку, событие что дамми создал юнита, действие занести вызваного юнита в переменную и все, потом в том потоке где отдали приказ каста даммику делаем с глоблкой что нужно, меняем владельца, отдаем приказы и прочее...
32

» WarCraft 3 / Взрыв мины - спецэффект

Ну нужно в настройках способности - Урон от взрыва (граффика - эффект) указать путь к желаемой модели спецэффекта, и будет тебе счастье.
32

» WarCraft 3 / Захват созданных иллюзий в переменные

Почему это нет, Event_Unit_Summon и Summoned unit (событие именно конкретный юнит вызвал), так же EventUnitInRect (входит в область) и условие IsUnitIllusion И проверяем на бафф от жезла иллюзий у иллюзии (GetUnitAbilityLevel( u, 'B000') > 0)
32

» WarCraft 3 / Как сделать триггерный стан

Использовать маг сети или одержимость дамми юнитом, но баффы этих способностей не складываются зато у них легко регулировать длительность жизнью дамми юнита.
32

» WarCraft 3 / в чем разница между, condition и addaction?

Это дебильная мода из GUI, оформлять в отдельную функцию каждое условие и вызывать его через if, там где можно и просто return.
Разница в том что на эти дополнительные функции тратится больше ресурсов, вот и вся разница - производительность.
32

» WarCraft 3 / Мгновенный каст

Мгновенных абилок у нас 6, для таргет абилок нам нужен изврат.
Требуется:
  • Спосбность цель точка\обьект (для триггерных лучше всего канал)
  • Дамми герой 1 штука (скорость анимации 0.00, все скорости поворота в макс и так далее)
  • Скилл на основе 'Aave' Avenger form или "Сфинкс" на русском, норм форма дамми герой, альтернативная форма нужный нам герой, флаги постоянное, не требует оплаты.
  • Руна с скиллом на основе 'Aave' который мы приготовили выше.
  • Нехитрый триггер в котором мы после приобретения скилла мы вручим герою нашу руну и морфним.
Суть, это бага морфов, параметры каста и скорость анимации наследуются от базового юнита неучитывая что юнит уже морфнулся и поэтому всяки скиллы требуюшие махания руками будут кастоватся почти мгновенно.
32

» WarCraft 3 / Скрыть юнитов для всех игроков кроме одного

Добавить\удалить москитов предварительно хайднув, после сделать прозрачным для всех кроме нужного игрока...
Так сделали ульту сларка в доте, криво, коряво но достаточно чтобы другие не видели...
32

» WarCraft 3 / Как сделать пассивка с кд!

Мб это негейшин (амулет защиты) из него мона делать пассивку с кулдауном, для активации кастануть даммиком какойнить скилл в юнита с негейшином, будет кд.
Потом как кд пройдет негейшин удалить и добавить пассивку, ну и так далее.
32

» WarCraft 3 / Как сделать пассивка с кд!

У пассивок нету базового ид приказа, они не кастуются...
Есть тока 1 пассивка с кулдаун индикатором, это Перерождение минотавра, оно может ресать мгновенно, так что когда юнит умирает это незаметно, будто ничего и небыло, но вот тока с него спадут все стандартные баффы и враги потеряют его из фокуса, летящие в него молотки бурь промажут.... ну кароче не вариант с ней морочится.