короче удаляешь Амов у героев даешь ему канал с приказом стоп ставишь ему xgm.guru/p/wc3/unique-spells-castpt-castbsw
call BlzSetUnitRealField( whichUnit, UNIT_RF_CAST_POINT, 0 )
call BlzSetUnitRealField( whichUnit, UNIT_RF_CAST_BACK_SWING, 0 )
или даже можешь так создаешь другого юнита юнит под приставкой твой юнит(желательно должен быть летающим тогда вообще красное выделение не будет видно, а чтоб он не мог атаковать даешь ему способность Cargo Hold Orc Burrow) элементарно ватсон
так на одну модель так даже легче нужно 2 морфа Srtt(одна в другого юнита, один в твоего юнита) добавляешь ее одновременно(очеред сам потестишь в игре) потом даешь москиты отнимаешь москиты и он не кликабельный (но пикается группой)
Ну код конечно у тебя не ахти, вот пример кода из доты:
function IsUnitDead takes unit u returns boolean
return GetUnitTypeId(u)<1 or IsUnitType(u,UNIT_TYPE_DEAD)==true
endfunction
function ID1 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer S5I=GetHandleId(t)
local integer PCI=(LoadInteger(HashData,(S5I),(30)))
local unit P8I=NYI(PCI)
local integer IE1=(LoadInteger(HashData,(S5I),(43)))
local unit P7I=NYI(IE1)
local real IF1=(LoadReal(HashData,(S5I),(44)))
local unit IG1=(LoadUnitHandle(HashData,(S5I),(45)))
local real x=GetUnitX(IG1)
local real y=GetUnitY(IG1)
local real QJI=GetUnitX(P8I)
local real QKI=GetUnitY(P8I)
local real IH1=IF1*0.03
local real IZ1=UEI(x,y,QJI,QKI)
local real IV1=x+IH1*Cos(IZ1*bj_DEGTORAD)
local real IW1=y+IH1*Sin(IZ1*bj_DEGTORAD)
local boolean IX1=(LoadBoolean(HashData,(S5I),(698)))
local boolean IY1=(LoadBoolean(HashData,(S5I),(818)))
call SetUnitX(IG1,IV1)
call SetUnitY(IG1,IW1)
call SetUnitFacing(IG1,IZ1)
if IsUnitDead(P8I)and IX1==false or(((LoadInteger(HashData,(GetHandleId((P8I))),((4422))))==1)==true and IY1==true)then
call KillUnit(IG1)
call NXI(PCI)
call FlushChildHashtable(HashData,(S5I))
call S0I(t)
elseif UTI(QJI,QKI,IV1,IW1)<=IH1 then
call KillUnit(IG1)
set GK=P7I
set HK=P8I
call ExecuteFunc((LoadStr(HashData,(S5I),(46))))
call NXI(PCI)
call FlushChildHashtable(HashData,(S5I))
call S0I(t)
endif
set t=null
set P8I=null
set P7I=null
set IG1=null
return false
endfunction
function IJ1 takes unit P7I,unit P8I,integer IK1,string IL1,real IF1,boolean IM1 returns trigger
local trigger t=CreateTrigger()
local integer S5I=GetHandleId(t)
local real QXI=GetUnitX(P7I)
local real QYI=GetUnitY(P7I)
local real IN1=GetUnitFacing(P7I)
call TriggerRegisterTimerEvent(t,0.03,true)
call TriggerAddCondition(t,Condition(function ID1))
call SaveReal(HashData,(S5I),(44),((IF1)*1.0))
call SaveInteger(HashData,(S5I),(30),(NKI(P8I)))
call SaveStr(HashData,(S5I),(46),(IL1))
call SaveInteger(HashData,(S5I),(43),(NKI(P7I)))
call SaveUnitHandle(HashData,(S5I),(45),(CreateUnit(GetOwningPlayer(P7I),IK1,QXI,QYI,IN1)))
call SaveBoolean(HashData,(S5I),(698),(false))
call SaveBoolean(HashData,(S5I),(818),(IM1))
set WK=t
set t=null
return WK
endfunction
Это готовая наработка для создание снарядов из юнитов,
используется так
local trigger t=IJ1(DKI,GetEnumUnit(),'h0D8',"MT3",400,false)
кто кастер, кто цель, ид юнита снаряда, имя функции которая вызывается при попадании, скорость в секунду, уничтожаем снаряд если цель подохла или недосигаем.
Функция возвращает триггер, на ID которого мы можем записать остальные данные и получить их в другой функции.
Код тоже не идеален, но вполне удобен, юзаются триггеры вместо таймеров, т.к тут отслеживаются события.
сделал шаманство с даммикастами теперь спеллы будут толкать другие спеллы(даммикасты не выделяемы их нельзя атаковать покоцать но толкать можно другими спеллами)
а ну да гуй вейт, карта запускающаяся на редакторе 15 минут)(нл-_-) я бы поработал над нл но решил на луа перевести и создать с 1 сезоонами(тише едешь дальше будешь) в рефе
Ред. Purgatorius
» WarCraft 3 / Длительность команды отставить на 1.26
call BlzSetUnitRealField( whichUnit, UNIT_RF_CAST_POINT, 0 )
call BlzSetUnitRealField( whichUnit, UNIT_RF_CAST_BACK_SWING, 0 )
» Прочее / Microsoft сократила 1900 сотрудников
» WarCraft 3 / Длительность команды отставить на 1.26
Ред. Purgatorius
» WarCraft 3 / Shinobi Rumble v0.7fix2
Ред. Purgatorius
» WarCraft 3 / Shinobi Rumble v0.7fix2
Ред. Purgatorius
» WarCraft 3 / Как сделать модели не кликабелиной
Ред. Purgatorius
» WarCraft 3 / Как сделать модели не кликабелиной
Ред. Purgatorius
» WarCraft 3 / Как сделать модели не кликабелиной
Ред. Purgatorius
» WarCraft 3 / Как сделать модели не кликабелиной
Ред. Purgatorius
» WarCraft 3 / Shinobi Rumble v0.7fix2
» WarCraft 3 / Почему способность утекает?
geu = nil zabyl
» WarCraft 3 / Пирокластическое уничтожение
» WarCraft 3 / Пирокластическое уничтожение
» WarCraft 3 / Shinobi Rumble v0.7fix2
» WarCraft 3 / Shinobi Rumble v0.7fix2
» WarCraft 3 / Shinobi Rumble v0.7fix2