Везде видел, что данные в функцию, которая используется в функциях ForGroup(...), GroupEnumUnits...(...) передаются через глобальные переменные. Но недавно, когда мне отвечали на вопросы, увидел вот что:
quq_CCCP:
kano, Какая такая в доте логика? Где? Крутнулся раз, нанес урон и все.function UJ3 takes nothing returns nothing call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl", GetEnumUnit(), "origin")) call TDI(GetTriggerUnit(), GetEnumUnit(), 2, GetUnitAbilityLevel(GetTriggerUnit(), 'A0C6') * 35 + 65) endfunction //Calls: // M2I // UWI // MWI // MOI //Functions as argument: // AD1 // UJ3 function UK3 takes nothing returns nothing local group g = M2I() local unit MJI = GetTriggerUnit() call GroupEnumUnitsInRange(g, GetUnitX(MJI), GetUnitY(MJI), 300, Condition(function AD1)) call ForGroup(g, function UJ3) call SetUnitAnimation(MJI, "spin") call UWI(MJI, 0.6) call MWI(MJI, 4267, 0.5 - 0.05 * GetUnitAbilityLevel(GetTriggerUnit(), 'A0C6')) call MOI(g) set g = null set MJI = null endfunction //Calls: // UK3 function UL3 takes nothing returns boolean if GetUnitAbilityLevel(GetTriggerUnit(), 'B03P') > 0 and IsUnitType(GetAttacker(), UNIT_TYPE_STRUCTURE) == false and IsUnitType(GetAttacker(), UNIT_TYPE_MECHANICAL) == false and GetUnitAbilityLevel(GetAttacker(), 'A04R') == 0 and IsUnitAlly(GetAttacker(), GetOwningPlayer(GetTriggerUnit())) == false and GetRandomReal(0, 100) < 17 and (LoadInteger(XY, GetHandleId(GetTriggerUnit()), 4267) == 1) == false then call UK3() endif return false endfunction //Calls: // Q0I //Functions as argument: // UL3 function Y01 takes nothing returns nothing local trigger t = CreateTrigger() call Q0I(t, EVENT_PLAYER_UNIT_ATTACKED) call TriggerAddCondition(t, Condition(function UL3)) set t = null endfunction
Вот вам пассивка акса, че то не вижу ничего того что вы описываете?
Функция UWU это функция создает триггер, который ждет указанное время или когда юнит сдохнет и влепляет ему станд анимацию. (фрог не дружит с головой и юзает триггер там где можно обойтись таймером)
MWI такой же таймер, записывает на акса бульку чтобы он не смог крутнутся дважды, кулдаун пассивки так сказать...
Здесь, в функции UJ3(..) используется GetTriggerUnit(), то есть, данные передаются не через глобальные переменные. Почему это не использовалось в наработках, которые я ранее видел? У этого способа есть какие-то проблемы? Разумеется, имеется ввиду, когда это используется в триггерах, где функции GetTriggerUnit() могут что-то вернуть.
Принятый ответ
дочерние потоки наследуют свойства основных
то же касается и екзекута
то же касается и екзекута
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
Отредактирован MpW
то же касается и екзекута
это ведь один и тот же поток
дочерние потоки это енумы и екзекуты
Отредактирован avuremybe
Но мискликнул и пожаловася на тебя модератору (: