Так же можно создавать юнитов с тем же хендлом при помощи вейта
Это как?
Был такой баг, что после вейта с каким то периодом создается обьект с тем же хендлом ..
local timer t = CreateTimer()
call BJDebugMsg( I2S(GetHandleId(t)) )
call DestroyTimer()
call TriggerSleepAction( 0.00 ) // хз скока там надо
set t = CreateTimer()
call BJDebugMsg( I2S(GetHandleId(t)) )
этот код выдаст нам 2 одинаковых дебага, первое сообщение с хендлом первого таймера будет равно хендлу второго таймера, если вейта не будет то у таймеров будут разные хендлы...
А нафига его удалять, если есть он уже создан, смотрите всякие кофетные войны от близзард, там в центре карты сидит один дамми юнит который угощает всех и стунами и фрост новами....
Так же можно создавать юнитов с тем же хендлом при помощи вейта, но это слишком говенная идея для применения в своей карте.
Мне нравится делать такое дамми аттакерами, создаем N дамми с атакой (настроенной по области) и приказываем им выстрелить 1 раз в случайную точку в пределах нужной области, вот вам и урон, правда он какой попало в центре области цель может как и не получить урона так и сдохнуть с 1 залпа.
Ну записывать на ид региона, ид ректа в хт и после в потоке триггера брать ид региона GetTriggerRegion или как то так ну и выгружать ид ректа, того самого в который залез юнит ну далее уже делать что хочется...
Эмм а че вам мешает написать её самому, так же гугл в помощь.
Делаем по 1 таймеру для игрока а так же массив целочисленных, и при убийстве игроком проверяем истек или нет таймер, если истек то запускаем на N сек, если нет - то в первый раз дабл килл, запускаем снова на N сек и записываем в переменную текущий стрик игрока, на каждый таймер делаем событие в отдельном триггере что таймер истек, действие обнулить переменную со стриком.
зажимаешь ctrl и лкм на функцию
откроется её содержимое
и там смотри
утекает она или нет
Storm_dll:
bj_LastCreatedUnit, bj_ForLoopAIndex
если используются одновременно в нескольких триггерах то можно словить кучу багов
Можно, если руки растут не из того места...
Это темповые глобалки, в них можно записывать данные с которыми вы будите работать сразу же, без вейтов и таймеров а в том же потоке где им присвоено значение, тогда никаких багов не будет.
bj_lastCreatedUnit - годится для создания дамми юнита и добавления ему абилок, свойств, времени жизни и приказа.
Я ставил опыты на разных морфах с разными настройками и зависимостями:
Превратится в ворона 'Amrf'' с такими параметрами и морфом в летающего дамми юнита, гарантированно дают такой эффект.
Чтобы сбить этот эффект, юнит должен пройти полный морф (подходит метаморфоза или превратися в сфинкса) с удаленными параметрами, начальная и конечная форма наземный дамми герой (какой неважно, его параметры не важны, главное чтобы земной и все, так же для юнитов для летунов летуны, для наземных земные )
С рунами добится этого эффекта не получилось, потому мы останавливаем юнита и вручаем ему морф сфинкса и отдаем приказ кастануть его, морф сфинкса не сбивает приказы и не блочится сайленсом, главное чтобы в момент добавления у юнита не было никаких приказов.
Это грубый пример для рассмотрения бага мофров, для юза в своей карте надо писать свой код с 0, думая о всех если и как бы это по оптимальнее..
Как как, я уже выкладывал наработку...
Суть в баге некоторых морфов, после чего боевая единица выполняет первый отданный приказ до талого, никакие действия игрока на это не повлияют но панель приказов не скрывается, кнопки нажимаются но ничего не происходит.
Первое отличается от второго названием, первое предпочтительнее ибо нативка. Ну несколько версий предметов, вот не помню работают ли формулы типа < DataA1 > в описании предметов, но вот уровни предметных абилок менять можно.
Потому что у модели для этих состояний предусмотрена именно такая анимация, это свойство модели и кроме как заставить триггерно юнита проигрывать нужную анимацию или переделывать модель путей нету.
Эмм а сделать через сферу чародея крови никак? У зданий куча точек, к примеру точки для крепления огня, пропиши их в сфере и установи модель того что тебе нужно, добавляя сферу зданию ты прилепиш к нему эти самые модели в точки крепления огня, здание развалится и.ничего удалять ненужно, само удалится.
Ну раз группы для вас ресурсоёмки используйте event units in range - этот ивент берт boolexpr, так же можно добавить любое условие триггеру на enterning unit.
Ну как бы там все одно да потому, код тот же что я описал выше, вот только проверять все надо в МУИ это раз, два время затраченное на синхронизацию может быть пипец каким большим...
function Trig_SyncStr_Actions takes nothing returns nothing
local string splayer = null
local player pl = Player(0)
if GetLocalPlayer() == pl then
call StoreString( udg_Data, "A", "B", "твоя строка!" )
endif
call TriggerSyncReady()
if GetLocalPlayer) == pl then
call SyncStoredString( udg_Data, "A", "B" )
endif
call TriggerSleepAction( 2.00 )
call TriggerSyncReady()
set splayer = GetStoredString( udg_Data, "A", "B" ) // выгрузи строку из кеша в локалку и делай с ней что хочешь
endfunction
//===========================================================================
function InitTrig_SyncStr takes nothing returns nothing
set gg_trg_SyncStr = CreateTrigger( )
call TriggerAddAction( gg_trg_SyncStr, function Trig_SyncStr_Actions )
endfunction
Триггер запускаем ExecuteTrigger а "Твоя строка" заменяется на глобальную переменную.
» WarCraft 3 / как создать один то же handle дамми?
» WarCraft 3 / как создать один то же handle дамми?
Так же можно создавать юнитов с тем же хендлом при помощи вейта, но это слишком говенная идея для применения в своей карте.
» WarCraft 3 / Артиллерийская установка
» WarCraft 3 / TriggerRegisterEnterRectSimple, альтерантива есть?
» WarCraft 3 / Gui система двойных и тройных убийств
Делаем по 1 таймеру для игрока а так же массив целочисленных, и при убийстве игроком проверяем истек или нет таймер, если истек то запускаем на N сек, если нет - то в первый раз дабл килл, запускаем снова на N сек и записываем в переменную текущий стрик игрока, на каждый таймер делаем событие в отдельном триггере что таймер истек, действие обнулить переменную со стриком.
» WarCraft 3 / Все ли красные тексты и bj jass триггере утечны?
Это темповые глобалки, в них можно записывать данные с которыми вы будите работать сразу же, без вейтов и таймеров а в том же потоке где им присвоено значение, тогда никаких багов не будет.
bj_lastCreatedUnit - годится для создания дамми юнита и добавления ему абилок, свойств, времени жизни и приказа.
» WarCraft 3 / Вопрос: приказ боевой единице от игрока?
» WarCraft 3 / Вопрос: приказ боевой единице от игрока?
Суть в баге некоторых морфов, после чего боевая единица выполняет первый отданный приказ до талого, никакие действия игрока на это не повлияют но панель приказов не скрывается, кнопки нажимаются но ничего не происходит.
» WarCraft 3 / Как отследить попадание заклинания?
» WarCraft 3 / Новый Bloodrage из DotA
» WarCraft 3 / не работает call IssueTargetOrder(d, "thunderbolt, u)?
так же правильнее будет делать так
» WarCraft 3 / Как программно добавить/удалить морф алхимику?
» WarCraft 3 / Как программно добавить/удалить морф алхимику?
» WarCraft 3 / Как сделать кастомное описание предемтов во время игры?
Ну несколько версий предметов, вот не помню работают ли формулы типа < DataA1 > в описании предметов, но вот уровни предметных абилок менять можно.
» WarCraft 3 / Анимация "Горгулья" Работает не правильно.
» WarCraft 3 / можно ли триггерно сделать отображение манабаров?
» WarCraft 3 / Москиты и бафы (и красивые здания!)
» WarCraft 3 / Багается код
» WarCraft 3 / Багается код
» WarCraft 3 / Триггерный урон для способностей типа волна
Ред. quq_CCCP
» WarCraft 3 / Pick Up a ll items?
» WarCraft 3 / Триггерный урон
Ред. quq_CCCP
» WarCraft 3 / SyncStoredString не работает?
» WarCraft 3 / Урон по области врагам