У многих абилок нежити стоит галочка "организм", но почти ни у одной абилки белых людей она не стоит. Мое воображение говорит мне, что организм может подразумевать нежить, ибо странно, что нет такой классификации в типе целей. Если нет, то как можно указать нежить как цель, не прописывая всем нежитям "самоубийцу"?
Хорошо, буду знать. Это помогает мне в моем вопросе?..(
Darknessay, Канал не чанеллистя в предметах и точка, это могут лишь некоторые абилки.
Слушай, но скролл в доте же ченнелится, верно?
Я пробовал добавить способность в спеллбук и при касте предмета добавлять его, блокировать и заставлять юнита кастовать оттуда способность, в надежде что он сможет читерным образом, через приказ, скастовать спелл из скрытого бука - не работает.
Я не шарю в тот джасс код. Если есть возможность обьяснить, что со свитком в д, то обьясните. Может там искусственный ченнел?
Darknessay, оно и неудивительно. Где триггер с событием юнит завершает применение способности, юнит начинает применять способность, триггер время истекло.
Все вейты нафиг удаляем, это никогда не будет работать...
Необходимо отловить начало каста, потом следить сбили ли каст и найти ближайшее здание возле точки телепорта, если время вышло и юниту не сбили телепорт, переместить юнита в ближашую точку возде здания, иначе ничего не делать...
код свитка из доты
//Calls:
// M7I
// Q3I
//Functions as argument:
// ZWO
function ZXO takes nothing returns boolean
local trigger t = GetTriggeringTrigger()
local integer MDI = GetHandleId(t)
local unit MJI = LoadUnitHandle(XY, MDI, 14)
local unit TFI = LoadUnitHandle(XY, MDI, 17)
local real x = LoadReal(XY, MDI, 6)
local real y = LoadReal(XY, MDI, 7)
local unit ZHO = LoadUnitHandle(XY, MDI, 448)
local unit ZZO = LoadUnitHandle(XY, MDI, 447)
local ubersplat O11 = LoadUbersplatHandle(XY, MDI, 131)
local integer M4I = LoadInteger(XY, MDI, 34)
local real BH1 = LoadReal(XY, MDI, 57)
local real EJ1 = LoadReal(XY, MDI, 442)
local integer id = GetPlayerId(GetOwningPlayer(MJI))
local boolean ZVO = false
local integer i = 0
local integer CS1
if GetTriggerEventId() == EVENT_UNIT_SPELL_ENDCAST then
if GetSpellAbilityId() == 'A231' then
call DestroyEffect(LoadEffectHandle(XY, MDI, 175))
call DestroyEffect(LoadEffectHandle(XY, MDI, 176))
call DestroyEffect(LoadEffectHandle(XY, MDI, 177))
call SaveInteger(XY, GetHandleId(MJI), 4256, 2)
call KillUnit(ZHO)
call KillUnit(ZZO)
call DestroyUbersplat(O11)
call FlushChildHashtable(XY, MDI)
call M7I(t)
call UnitRemoveType(TFI, UNIT_TYPE_PEON)
endif
elseif GetTriggerEventId() == EVENT_UNIT_DEATH then
call DestroyEffect(LoadEffectHandle(XY, MDI, 175))
call DestroyEffect(LoadEffectHandle(XY, MDI, 176))
call DestroyEffect(LoadEffectHandle(XY, MDI, 177))
call UnitRemoveType(TFI, UNIT_TYPE_PEON)
call SaveInteger(XY, GetHandleId(MJI), 4256, 2)
call KillUnit(ZHO)
call KillUnit(ZZO)
call DestroyUbersplat(O11)
call FlushChildHashtable(XY, MDI)
call M7I(t)
else
call DestroyEffect(LoadEffectHandle(XY, MDI, 175))
call DestroyEffect(LoadEffectHandle(XY, MDI, 176))
call DestroyEffect(LoadEffectHandle(XY, MDI, 177))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTarget.mdl", GetUnitX(MJI), GetUnitY(MJI)))
call SaveInteger(XY, GetHandleId(MJI), 4256, 2)
call KillUnit(ZHO)
call KillUnit(ZZO)
call DestroyUbersplat(O11)
call FlushChildHashtable(XY, MDI)
call M7I(t)
call UnitRemoveType(TFI, UNIT_TYPE_PEON)
call Q3I(GetUnitX(TFI) - 1, GetUnitY(TFI) - 1, 240)
call SetUnitX(MJI, GetUnitX(TFI) - 1)
call SetUnitY(MJI, GetUnitY(TFI) - 1)
call PauseUnit(MJI, true)
call PauseUnit(MJI, false)
set CK = MJI
call ExecuteFunc("ZWO")
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTarget.mdl", GetUnitX(MJI), GetUnitY(MJI)))
endif
set t = null
set MJI = null
set ZHO = null
set ZZO = null
set O11 = null
set TFI = null
return false
endfunction
//Calls:
// N7I
// ZAO
// PII
// R1I
// R5I
// Z5O
// Z6O
// Z4O
// Z3O
// QAI
// I51
//Functions as argument:
// ZGO
function ZYO takes nothing returns nothing
local unit MJI = GetTriggerUnit()
local unit TFI = GetSpellTargetUnit()
local location l
local real x
local real y
local real a
local trigger t
local integer MDI
local unit ZHO
local unit ZZO
local ubersplat O11
local integer id = GetPlayerId(GetOwningPlayer(MJI))
local integer M4I
local real ZJO
set t = CreateTrigger()
set MDI = GetHandleId(t)
call SaveInteger(XY, GetHandleId(MJI), 4256, 1)
if TFI == null then
set l = GetSpellTargetLoc()
set x = GetLocationX(l)
set y = GetLocationY(l)
if x == LU0[id] and y == M00[id] then
if N7I(GetOwningPlayer(MJI)) then
set x = GetUnitX(LQ)
set y = GetUnitY(LQ)
else
set x = GetUnitX(BF0)
set y = GetUnitY(BF0)
endif
endif
set TFI = ZAO(MJI, x, y)
call RemoveLocation(l)
else
set x = GetUnitX(TFI)
set y = GetUnitY(TFI)
endif
if PII(x, y, GetUnitX(TFI), GetUnitY(TFI)) > M50 then
set a = Atan2(y - GetUnitY(TFI), x - GetUnitX(TFI))
set x = GetUnitX(TFI) + M50 * Cos(a)
set y = GetUnitY(TFI) + M50 * Sin(a)
elseif PII(x, y, GetUnitX(TFI), GetUnitY(TFI)) < 50 then
set a = Atan2(y - GetUnitY(TFI), x - GetUnitX(TFI))
set x = GetUnitX(TFI) + 120 * Cos(a)
set y = GetUnitY(TFI) + 120 * Sin(a)
endif
if IsPointInRegion(XN, x, y) == true then
set a = Atan2(y - GetUnitY(TFI), x - GetUnitX(TFI))
set x = GetUnitX(TFI) + 200 * Cos(a)
set y = GetUnitY(TFI) + 200 * Sin(a)
endif
set x = R1I(x)
set y = R5I(y)
if (IsUnitAlly(MJI, GetLocalPlayer()) and GetLocalPlayer() != GetOwningPlayer(MJI)) or (C2 and (GetLocalPlayer() == D10 or GetLocalPlayer() == DO0)) then
call PingMinimapEx(x, y, 3, 255, 255, 255, false)
endif
set ZZO = CreateUnit(GetOwningPlayer(MJI), Z5O(id), x, y, 0)
set ZHO = CreateUnit(GetOwningPlayer(MJI), Z6O(id), GetUnitX(MJI), GetUnitY(MJI), 0)
set O11 = CreateUbersplat(GetUnitX(MJI), GetUnitY(MJI), "SCTP", 255, 255, 255, 255, false, false)
if IsUnitVisible(MJI, GetLocalPlayer()) == true then
call SetUbersplatRenderAlways(O11, true)
else
call SetUbersplatRenderAlways(O11, false)
endif
set M4I = Z4O(GetPlayerId(GetOwningPlayer(MJI)), x, y)
set ZJO = 3
if M4I > 0 then
set ZJO = 4.5 + 0.5 * M4I
endif
call Z3O(GetPlayerId(GetOwningPlayer(MJI)), x, y)
if M4I > 0 then
call SetUnitAnimationByIndex(ZHO, 2)
call SetUnitAnimationByIndex(ZZO, 2)
endif
call TriggerRegisterTimerEvent(t, ZJO - 3, false)
call TriggerRegisterTimerEvent(t, ZJO, false)
call TriggerRegisterUnitEvent(t, MJI, EVENT_UNIT_SPELL_ENDCAST)
call TriggerAddCondition(t, Condition(function ZGO))
call QAI(GetOwningPlayer(MJI), ZJO, x, y, 200)
call SaveUnitHandle(XY, MDI, 447, ZZO)
call SaveUnitHandle(XY, MDI, 448, ZHO)
call SaveReal(XY, MDI, 6, (x * 1.0))
call SaveReal(XY, MDI, 7, (y * 1.0))
call SaveReal(XY, MDI, 442, (TimerGetElapsed(M) * 1.0))
call SaveReal(XY, MDI, 57, (ZJO * 1.0))
call SaveUbersplatHandle(XY, MDI, 131, O11)
call SaveUnitHandle(XY, MDI, 14, MJI)
call SaveInteger(XY, MDI, 34, 0)
call I51(MJI, XF, x, y, 2400)
set MJI = null
set TFI = null
set ZHO = null
set ZZO = null
set l = null
set t = null
set O11 = null
endfunction
//Calls:
// N7I
// ZFO
// QAI
// I51
//Functions as argument:
// ZXO
function ZKO takes nothing returns nothing
local unit MJI = GetTriggerUnit()
local unit TFI = GetSpellTargetUnit()
local location l
local real x
local real y
local real a
local trigger t
local integer MDI
local unit ZHO
local unit ZZO
local ubersplat O11
local integer id = GetPlayerId(GetOwningPlayer(MJI))
local integer M4I
local real ZJO
set t = CreateTrigger()
set MDI = GetHandleId(t)
if TFI == null then
set l = GetSpellTargetLoc()
set x = GetLocationX(l)
set y = GetLocationY(l)
if x == LU0[id] and y == M00[id] then
if N7I(GetOwningPlayer(MJI)) then
set x = GetUnitX(LQ)
set y = GetUnitY(LQ)
else
set x = GetUnitX(BF0)
set y = GetUnitY(BF0)
endif
endif
set TFI = ZFO(MJI, x, y)
call RemoveLocation(l)
endif
call SaveInteger(XY, GetHandleId(MJI), 4256, 1)
set x = GetUnitX(TFI)
set y = GetUnitY(TFI)
if (IsUnitAlly(MJI, GetLocalPlayer()) and GetLocalPlayer() != GetOwningPlayer(MJI)) or (C2 and (GetLocalPlayer() == D10 or GetLocalPlayer() == DO0)) then
call PingMinimapEx(x, y, 3, 255, 255, 255, false)
endif
set O11 = CreateUbersplat(GetUnitX(MJI), GetUnitY(MJI), "SCTP", 255, 255, 255, 255, false, false)
if IsUnitVisible(MJI, GetLocalPlayer()) == true then
call SetUbersplatRenderAlways(O11, true)
else
call SetUbersplatRenderAlways(O11, false)
endif
set ZJO = 3
call UnitAddType(TFI, UNIT_TYPE_PEON)
call TriggerRegisterTimerEvent(t, ZJO, false)
call TriggerRegisterUnitEvent(t, MJI, EVENT_UNIT_SPELL_ENDCAST)
call TriggerRegisterUnitEvent(t, TFI, EVENT_UNIT_DEATH)
call TriggerAddCondition(t, Condition(function ZXO))
call QAI(GetOwningPlayer(MJI), ZJO, x, y, 200)
call SaveReal(XY, MDI, 6, (x * 1.0))
call SaveReal(XY, MDI, 7, (y * 1.0))
call SaveReal(XY, MDI, 442, (TimerGetElapsed(M) * 1.0))
call SaveReal(XY, MDI, 57, (ZJO * 1.0))
call SaveUbersplatHandle(XY, MDI, 131, O11)
call SaveUnitHandle(XY, MDI, 14, MJI)
call SaveUnitHandle(XY, MDI, 17, TFI)
call SaveInteger(XY, MDI, 34, 0)
call SaveEffectHandle(XY, MDI, 175, AddSpecialEffectTarget("Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTo.mdl", MJI, "origin"))
call SaveEffectHandle(XY, MDI, 176, AddSpecialEffectTarget("Abilities\\Spells\\Human\\MassTeleport\\MassTeleportCaster.mdl", MJI, "origin"))
call SaveEffectHandle(XY, MDI, 177, AddSpecialEffectTarget("Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTo.mdl", TFI, "origin"))
call I51(MJI, XF, x, y, 2400)
set MJI = null
set TFI = null
set ZHO = null
set ZZO = null
set l = null
set t = null
set O11 = null
endfunction
//Calls:
// STI
// ZYO
// ZKO
function ZLO takes nothing returns nothing
if GetSpellAbilityId() == 'A1R5' and STI(GetTriggerUnit()) == false then
call ZYO()
endif
if GetSpellAbilityId() == 'A231' then
call ZKO()
endif
endfunction
А вот сам спелл.
Я делаю не точную копию свитка из доты, у меня есть четкие области куда юнита должно ТПшить, мне нужно только сделать чтобы телепортация была:
в предмете
ченнелинг
Я втыкал в предмет и канал и торнадо, оно никак не ченнелится из итема. Почему ты рассказываешь мне что у меня что то не так в тригорах, если спелл даже не ченнелится в итеме и потому не работает? Может я в предмете накосячил, хз, вот предмет еще:
вызов торнадо с длительностью 20 с
по истечению определенного времени назначать новые координаты юниту и паузить-анпаузить для прерывания каста
Не догнал про пауз-анпауз. Торнадо дает ченнел в предмете? Если нет, то почему именно торнадо, а не любой поинт-таргет? И зачем мне пауза, если в ней у юнита нет приказов, чтобы он мог прервать ТП при желании?
Анимации просто отвратные. Этот гейский стояк, где у него ладошки к бёдрам прилегают и коленки рядышком. Этот гейский валк, будто единственной гениальной анимации ходьбы, подходящей всем бадасс чилл персам ещё не придумали - walk леорика(будь то из хотса или из доты).
Да, я знаю, что это анимации из ВоВ. Я и говорю о том, что в ВоВ гейские анимации. Притом, насколько я помню, у Артаса в вове всё таки нормальный сет анимок, более такой чилл и бадасс, но автор решил прикрутить этой модели вот этот дебильный сет. Впрочем, всё равно он там бегает как пёс, размахивая мечом у себя перед хлебалом.
Им нужно брать пример для анимации со всяких сенен анимешек, где всякие Гоки показывают что значит брутальный мужицкий станд, всякие Ичиги показывают что такое тру пафосный валк - когда персонаж стремится лицом вперед под наклоном, а меч держит на вытянутой руке, направленным взад-вбок, так что лезвие едва касается земли(конечно, опять же, Личу в тяжелых доспехах больше подойдет чилл волкин, аки "эвридей ама стар ин зе сити", как у Леорика).
можно сделать основу как "поставка ресурсов" там есть галочка манупулировать игрока приказа он работает как канал что позволяет скрыть счетчик количеств предметов или юнитов
Равкод 'AAns' копируй и меняй приказы на свой и поставить галку "заряд игрока владельца" = true
в ней можете поставить дерево или золото или маны
Кидалово, не работает эта способность. Ещё раз, способность применяется нейтральным зданием, от лица нейтрального здания, под предводительством 16-го игрока. Но способность нажимаю я, Игрок 1, и мне интересно, можно ли сослаться на этого игрока-Меня, который применил способность в нейтральном здании. KPOKODIL:
Сделай предметы на основе книг (что бы при покупке сразу использовались ) . Ну а дальше просто - отлавливаешь юзанье предмета , и даёшь способность тому , кто предмет задействовал.
library Flyout
private function MoveUnit takes unit u, real spd, real dir returns nothing
if IsTerrainPathable(GetUnitX(u),GetUnitY(u)+spd*Sin(dir),PATHING_TYPE_FLYABILITY)==false
SetUnitY(u,GetUnitY(u)+spd*Sin(dir))
endif
if IsTerrainPathable(GetUnitX(u)+spd*Cos(dir),GetUnitY(u),PATHING_TYPE_FLYABILITY)==false
SetUnitX(u,GetUnitX(u)+spd*Cos(dir))
endif
set u = null
endfunction
private function Parabola takes real h, real d, real x returns real
return (4 * h / d) * (d - x) * (x / d)
endfunction
private struct MUE_Struct
private static timer t = CreateTimer()
private static integer m[]
private static integer MUI = -1
unit c
real dist
integer check
real r
real r2 = 0
real fly
real rmax
real sr
real a
private method StopAction takes integer j returns nothing
set m[j] = m[MUI]
set MUI = MUI - 1
if MUI <= -1 then
call PauseTimer(t)
set MUI = -1
endif
endmethod
private static method Loop takes nothing returns nothing
local thistype this
local integer i = 0
loop
exitwhen i > MUI
set this = m[i]
if r<rmax then
set r = r + 0.01
MoveUnit(c,dist,a)
if check == 1 then
SetUnitFlyHeight(c,Parabola(fly,sr,r2),0)
set r2 = r2+dist
endif
else
if check == 1 then
SetUnitFlyHeight(c,GetUnitDefaultFlyHeight(c),0)
endif
set c = null
call StopAction(i)
call destroy()
endif
set i = i + 1
endloop
endmethod
public static method MUE_Start takes unit NewC, real NewDist,real NewRmax, real NewA,integer NewCheck,real NewFly returns nothing
local thistype this = thistype.create()
set MUI = MUI + 1
set m[MUI] = this
set c = NewC
set r = 0
set rmax = NewRmax
set dist = NewDist
set sr = NewDist
set dist = (dist/(rmax*100))
set check = NewCheck
set fly = NewFly
set r2= 0
if check == 1 then
endif
set a = NewA
if MUI == 0 then
call TimerStart(t, 0.01, true, function thistype.Loop)
endif
set NewC = null
endmethod
endstruct
function Flyout takes unit c,real distance,real timeformoving,real angle,integer checkingfly,real flyheight returns nothing
call MUE_Struct.MUE_Start(c,distance,timeformoving,angle*bj_DEGTORAD,checkingfly,flyheight)
c = null
endfunction
endlibrary
в методе StopAction
пропиши в самом верху
set m[j].destroy() должно помоч
Спасибо. Видимо ты разбираешься в муи)
Я попробую, но т.к. я не знаю как повторить это замыкание, я и не могу проверить помогло ли, так что подожду еще ответов... ledoed:
set m[j].destroy()
Если прописать в самом верху метода, выдает синтаксис эррор(чето end of line), а если в самом низу - просто вылетает JassHelper при сохранении...
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]
0.06 - это четко высчитанное таймером время жизни, необходимое для каста с 0.000 точкой броска и 3.00 поворотом, при изначальном положении при 180 градусов лицом от цели. Я специально это делал, специально перепрописывал везде на 0.06 и с тех пор все идеально работало. quq_CCCP:
Ты знаешь только что созданый даммик невидит ничего примерно 0.25 сек.
Способность на союзников, вижен там априори есть. Обратите внимание на ключевую часть текста: "Четко кастуется на двух героев и четко НЕ кастуется на двух других."
Пиши в переменные просто.
З.Ы.
Русифицированные триггеры, а карту делаешь на английском, это какая-то новая форма извращений?
Они не русифицированные. Это текста самого редактора на русском из-за русского варика("приводит способность в действие"), но все действия и условия на английском.
Куда в переменную? Даже если сделаю так, то мне нужно уровень этих способностей в новой форме устанавливать, а я не знаю какой ивент для этого выбрать, потому что при стандартных ивентах к этой способности, уровни устанавливаются только при обратной активации.
если не ошибаюсь то тексттаг можно крепить к юниту
В любом случае, он крепится неровно(там центр крепления - это начало текста, поэтому он смещен вправо). Я его смещенным на 70 влево всегда ставил, чтоб он ровно над героем был, так что мне нужны именно коорды.
Камон, ребят, я знаю что для вас, джассеров, это несложно. Сделайте пожалуйста наработку:с
если не ошибаюсь то тексттаг можно крепить к юниту
для отображения бара только тем кто видит героя нужно юзать локалплеер
на гуи этого не сделать
вывод - учи jass
А крепление к герою не утечно?
Потому я прошу наработку...
I. Можно просто зажать клавишу Shift. Это позволит накладывать декорации друг на друга при наличии текстуры путей у них (при данном методе нельзя поставить декорации непосредственно в одну точку, а только с небольшим расстоянием).
II. Можно это сделать по-другому. Убрать у необходимых декораций текстуру путей, поставить их на карте и вернуть ее в настройках объектов (текстуру путей).
III. Можно также сделать декорации без текстуры путей, поставить их в одну точку и подставить под них блокиратор, но в данной ситуации второй способ предпочтительнее.
Я вот нажимал шифт, а декор не ставится куда хочу, ну я и думаю чё за дела, может там не шифт был, а я уже залип как то, но нет, шифт же, так какого черта...(
В любом случае, спасибо.
Ред. Darknessay
» WarCraft 3 / Карта вылетает :(
» WarCraft 3 / Типы целей в Warcraft 3
» WarCraft 3 / Как сделать свиток телепорта из доты?
Я пробовал добавить способность в спеллбук и при касте предмета добавлять его, блокировать и заставлять юнита кастовать оттуда способность, в надежде что он сможет читерным образом, через приказ, скастовать спелл из скрытого бука - не работает.
Я не шарю в тот джасс код. Если есть возможность обьяснить, что со свитком в д, то обьясните. Может там искусственный ченнел?
» WarCraft 3 / Как сделать свиток телепорта из доты?
» WarCraft 3 / Как сделать свиток телепорта из доты?
» WarCraft 3 / Как сделать свиток телепорта из доты?
DracoL1ch: Спасибо.
» WarCraft 3 / Как сделать свиток телепорта из доты?
» WarCraft 3 / Как сделать свиток телепорта из доты?
» WarCraft 3 / Канал в предмете не channelится?
» WarCraft 3 / Артес из загрузочного экрана TFT
Да, я знаю, что это анимации из ВоВ. Я и говорю о том, что в ВоВ гейские анимации. Притом, насколько я помню, у Артаса в вове всё таки нормальный сет анимок, более такой чилл и бадасс, но автор решил прикрутить этой модели вот этот дебильный сет. Впрочем, всё равно он там бегает как пёс, размахивая мечом у себя перед хлебалом.
Им нужно брать пример для анимации со всяких сенен анимешек, где всякие Гоки показывают что значит брутальный мужицкий станд, всякие Ичиги показывают что такое тру пафосный валк - когда персонаж стремится лицом вперед под наклоном, а меч держит на вытянутой руке, направленным взад-вбок, так что лезвие едва касается земли(конечно, опять же, Личу в тяжелых доспехах больше подойдет чилл волкин, аки "эвридей ама стар ин зе сити", как у Леорика).
» WarCraft 3 / Канал в предмете не channelится?
Ладно, я понял...
» WarCraft 3 / Hide unit через GetLocalPlayer() вызовет десинк?
» WarCraft 3 / Как получить игрока, применяющего способность нейтрал. здания?
KPOKODIL: Самый очевидный и муторный вариант. хд
» WarCraft 3 / Предмет: характеристики - название, что это?
» WarCraft 3 / Библиотека перестала работать во время игры
private function MoveUnit takes unit u, real spd, real dir returns nothing
if IsTerrainPathable(GetUnitX(u),GetUnitY(u)+spd*Sin(dir),PATHING_TYPE_FLYABILITY)==false
SetUnitY(u,GetUnitY(u)+spd*Sin(dir))
endif
if IsTerrainPathable(GetUnitX(u)+spd*Cos(dir),GetUnitY(u),PATHING_TYPE_FLYABILITY)==false
SetUnitX(u,GetUnitX(u)+spd*Cos(dir))
endif
set u = null
endfunction
return (4 * h / d) * (d - x) * (x / d)
endfunction
private struct MUE_Struct
private static timer t = CreateTimer()
private static integer m[]
private static integer MUI = -1
unit c
real dist
integer check
real r
real r2 = 0
real fly
real rmax
real sr
real a
private method StopAction takes integer j returns nothing
set m[j] = m[MUI]
set MUI = MUI - 1
if MUI <= -1 then
call PauseTimer(t)
set MUI = -1
endif
endmethod
local thistype this
local integer i = 0
loop
exitwhen i > MUI
set this = m[i]
if r<rmax then
set r = r + 0.01
MoveUnit(c,dist,a)
if check == 1 then
SetUnitFlyHeight(c,Parabola(fly,sr,r2),0)
set r2 = r2+dist
endif
else
if check == 1 then
SetUnitFlyHeight(c,GetUnitDefaultFlyHeight(c),0)
endif
set c = null
call StopAction(i)
call destroy()
endif
set i = i + 1
endloop
endmethod
local thistype this = thistype.create()
set MUI = MUI + 1
set m[MUI] = this
set c = NewC
set r = 0
set rmax = NewRmax
set dist = NewDist
set sr = NewDist
set dist = (dist/(rmax*100))
set check = NewCheck
set fly = NewFly
set r2= 0
if check == 1 then
endif
set a = NewA
if MUI == 0 then
call TimerStart(t, 0.01, true, function thistype.Loop)
endif
set NewC = null
endmethod
endstruct
call MUE_Struct.MUE_Start(c,distance,timeformoving,angle*bj_DEGTORAD,checkingfly,flyheight)
c = null
endfunction
endlibrary
» WarCraft 3 / Библиотека перестала работать во время игры
» WarCraft 3 / Библиотека перестала работать во время игры
» WarCraft 3 / Библиотека перестала работать во время игры
Я попробую, но т.к. я не знаю как повторить это замыкание, я и не могу проверить помогло ли, так что подожду еще ответов...
ledoed:
» WarCraft 3 / Помогите найти ошибку, пожалуйста
» WarCraft 3 / Почему даммик не кастует способность? =(
quq_CCCP: Способность на союзников, вижен там априори есть. Обратите внимание на ключевую часть текста: "Четко кастуется на двух героев и четко НЕ кастуется на двух других."
» WarCraft 3 / Почему даммик не кастует способность? =(
Ред. Darknessay
» WarCraft 3 / Превратиться в медведя
Куда в переменную? Даже если сделаю так, то мне нужно уровень этих способностей в новой форме устанавливать, а я не знаю какой ивент для этого выбрать, потому что при стандартных ивентах к этой способности, уровни устанавливаются только при обратной активации.
» WarCraft 3 / Текстовый ХП-бар
Камон, ребят, я знаю что для вас, джассеров, это несложно. Сделайте пожалуйста наработку:с
Ред. Darknessay
» WarCraft 3 / Текстовый ХП-бар
Потому я прошу наработку...
» WarCraft 3 / Что нужно зажать чтобы ставить декорации друг на друга?
В любом случае, спасибо.