Каким оброзом Стан юнит записовался в переменую я не пойму но как то записовался я даже пытался ставить иф чтоб тока герой мог записаца не помагало пришлось после поставет
после запесе
local unit Target = GetSpellTargetUnit()
local unit u = GetTriggerUnit()
local player p = GetOwningPlayer(u)
local location Polar
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real x1 = GetUnitX(Target)
local real y1 = GetUnitY(Target)
local real a = Atan2(y-y1,x-x1)
set x=x+50.*Cos(a)
set y=y+50.*Sin(a)
call UnitApplyTimedLife(CreateUnit(p,'o008',x,y,GetUnitFacing(u)),'BFig',1.70)
Разабрался мне вот это нужно было
вывод везде где красным я обозначел мне не понятно Графически как это происходит
ты не понял меня quq_CCCP я имел в виду пример на Jass коде спела который двигает юнита тока просиба без хеш тейбла зделай просто для меня хеш тейбал очени сложная веши пока что
Примечание это не я писал ниже написаное
function SR_Elettrico_Cornata takes real xa, real ya, real xb, real yb returns real
return SquareRoot((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb))
endfunction
function Trig_Elettrico_Cornata_Actions2 takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer id = GetHandleId(t)
local unit u = LoadUnitHandle(udg_Hash,id,0)
local real x = LoadReal(udg_Hash,id,1)
local real y = LoadReal(udg_Hash,id,2)
local real x1 = GetUnitX(u)
local real y1 = GetUnitY(u)
local real a = Atan2(y-y1,x-x1)
local group g = LoadGroupHandle(udg_Hash,id,3)
local unit e
local integer idg = GetHandleId(g)
local integer ide
local player p = GetOwningPlayer(u)
if SR_Elettrico_Cornata(x,y,x1,y1) > 30 then
call SetUnitX(u,x1+42*Cos(a))
call SetUnitY(u,y1+42*Sin(a))
call GroupEnumUnitsInRange(g,x1,y1,180,null)
call UnitApplyTimedLife(CreateUnit(p,'h013',x1,y1,),'B000',1)
call UnitApplyTimedLife(CreateUnit(p,'h013',x1,y1,),'B000',1)
loop
set e = FirstOfGroup(g)
set ide = GetHandleId(e)
exitwhen e == null
if (IsUnitEnemy(e,p) and e != LoadUnitHandle(udg_Hash,idg,ide) and IsUnitType(e,UNIT_TYPE_STRUCTURE) == false) then
call UnitDamageTarget(u,e,GetUnitState(u,UNIT_STATE_MAX_LIFE)*0.05*GetUnitAbilityLevel(u,'A00P')+50*GetUnitAbilityLevel(u,'A00P'),true,false,null,null,null)
call SaveUnitHandle(udg_Hash,idg,ide,e)
endif
call GroupRemoveUnit(g,e)
endloop
else
call DestroyEffect(LoadEffectHandle(udg_Hash,id,4))
call DestroyEffect(LoadEffectHandle(udg_Hash,id,5))
call FlushChildHashtable(udg_Hash,id)
call FlushChildHashtable(udg_Hash,idg)
call DestroyTimer(t)
call DestroyGroup(g)
call PauseUnit(u,false)
call SetUnitInvulnerable(u,false)
call SetUnitTimeScale(u,1)
endif
set u = null
set p = null
set t = null
set e = null
set g = null
endfunction
function Trig_Elettrico_Cornata_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local timer t = CreateTimer()
local integer id = GetHandleId(t)
call SaveUnitHandle(udg_Hash,id,0,u)
call SaveReal(udg_Hash,id,1,GetSpellTargetX())
call SaveReal(udg_Hash,id,2,GetSpellTargetY())
call SaveGroupHandle(udg_Hash,id,3, CreateGroup())
call SaveEffectHandle(udg_Hash,id,4,AddSpecialEffectTarget("war3mapImported\\Kamui.mdx",u,"head left"))
call SaveEffectHandle(udg_Hash,id,5,AddSpecialEffectTarget("war3mapImported\\Kamui.mdx",u,"head right"))
call PauseUnit(u,true)
call SetUnitInvulnerable(u,true)
call SetUnitTimeScale(u,0)
call TimerStart(t,0.02,true,function Trig_Elettrico_Cornata_Actions2)
set u = null
set t = null
endfunction
====================
function InitTrig_Elettrico_Cornata takes nothing returns nothing
set gg_trg_Elettrico_Cornata = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Elettrico_Cornata, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Elettrico_Cornata, Condition( function Trig_Elettrico_Cornata_Conditions ) )
call TriggerAddAction( gg_trg_Elettrico_Cornata, function Trig_Elettrico_Cornata_Actions )
endfunction
а это зачем
local real x2=1234.
local real y2=5678.
я дополню откуда взяты эти цыфры просто в моём случие эта точка будет всегда разная
Думаю самой разумной помашю для меня будет это просто написал пример и я буду просто с+v делать куда вставить мозгов хватить и думаю со временем я пойму как эта работает методом изменение цыфр в примере
я просто где 2000 взял поменял на 1900 а потом назад на 2000 и всё заработало
Возможно у многих такое происходило но мало кто замечал просто не срабатывание кода
Загруженные файлы
2 пункта от Uber: 1.2.1 (безграмотность) Учите язык, на котором разговариваете, он поможет другим людям нормально понимать, о чём вы пишете.
Отредактирован MATRITSA
» WarCraft 3 / Как заставить юнитов, в радиусе 500, вокруг юнита, бить его 7 с?
й
» WarCraft 3 / Как сделать Jass движение Возможностью ходить в момент движения
Отредактирован MATRITSA
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
решил проблему
после запесе
Отредактирован MATRITSA
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
Отредактирован MATRITSA
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
я не знаю
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
» WarCraft 3 / Почему не работает Стан во всех друг случеев он работает
» WarCraft 3 / как взять угол от угла поворота юнита в полярных каардинатах
» WarCraft 3 / как взять угол от угла поворота юнита в полярных каардинатах
» WarCraft 3 / как взять угол от угла поворота юнита в полярных каардинатах
» WarCraft 3 / Как сделать частично поворачивающегося юнита
» WarCraft 3 / На пешити пример полярных коорденат или эта декартные не знаю
local unit u = GetTriggerUnit()
local player p = GetOwningPlayer(u)
local location Polar
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real x1 = GetUnitX(Target)
local real y1 = GetUnitY(Target)
local real a = Atan2(y-y1,x-x1)
set x=x+50.*Cos(a)
set y=y+50.*Sin(a)
call UnitApplyTimedLife(CreateUnit(p,'o008',x,y,GetUnitFacing(u)),'BFig',1.70)
Разабрался мне вот это нужно было
вывод везде где красным я обозначел мне не понятно Графически как это происходит
Отредактирован Uber
» WarCraft 3 / На пешити пример полярных коорденат или эта декартные не знаю
Примечание это не я писал ниже написаное
return GetSpellAbilityId() == 'A00P'
endfunction
return SquareRoot((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb))
endfunction
local timer t = GetExpiredTimer()
local integer id = GetHandleId(t)
local unit u = LoadUnitHandle(udg_Hash,id,0)
local real x = LoadReal(udg_Hash,id,1)
local real y = LoadReal(udg_Hash,id,2)
local real x1 = GetUnitX(u)
local real y1 = GetUnitY(u)
local real a = Atan2(y-y1,x-x1)
local group g = LoadGroupHandle(udg_Hash,id,3)
local unit e
local integer idg = GetHandleId(g)
local integer ide
local player p = GetOwningPlayer(u)
if SR_Elettrico_Cornata(x,y,x1,y1) > 30 then
call SetUnitX(u,x1+42*Cos(a))
call SetUnitY(u,y1+42*Sin(a))
call GroupEnumUnitsInRange(g,x1,y1,180,null)
call UnitApplyTimedLife(CreateUnit(p,'h013',x1,y1,),'B000',1)
call UnitApplyTimedLife(CreateUnit(p,'h013',x1,y1,),'B000',1)
loop
set e = FirstOfGroup(g)
set ide = GetHandleId(e)
exitwhen e == null
if (IsUnitEnemy(e,p) and e != LoadUnitHandle(udg_Hash,idg,ide) and IsUnitType(e,UNIT_TYPE_STRUCTURE) == false) then
call UnitDamageTarget(u,e,GetUnitState(u,UNIT_STATE_MAX_LIFE)*0.05*GetUnitAbilityLevel(u,'A00P')+50*GetUnitAbilityLevel(u,'A00P'),true,false,null,null,null)
call SaveUnitHandle(udg_Hash,idg,ide,e)
endif
call GroupRemoveUnit(g,e)
endloop
else
call DestroyEffect(LoadEffectHandle(udg_Hash,id,4))
call DestroyEffect(LoadEffectHandle(udg_Hash,id,5))
call FlushChildHashtable(udg_Hash,id)
call FlushChildHashtable(udg_Hash,idg)
call DestroyTimer(t)
call DestroyGroup(g)
call PauseUnit(u,false)
call SetUnitInvulnerable(u,false)
call SetUnitTimeScale(u,1)
endif
set u = null
set p = null
set t = null
set e = null
set g = null
endfunction
local unit u = GetTriggerUnit()
local timer t = CreateTimer()
local integer id = GetHandleId(t)
call SaveUnitHandle(udg_Hash,id,0,u)
call SaveReal(udg_Hash,id,1,GetSpellTargetX())
call SaveReal(udg_Hash,id,2,GetSpellTargetY())
call SaveGroupHandle(udg_Hash,id,3, CreateGroup())
call SaveEffectHandle(udg_Hash,id,4,AddSpecialEffectTarget("war3mapImported\\Kamui.mdx",u,"head left"))
call SaveEffectHandle(udg_Hash,id,5,AddSpecialEffectTarget("war3mapImported\\Kamui.mdx",u,"head right"))
call PauseUnit(u,true)
call SetUnitInvulnerable(u,true)
call SetUnitTimeScale(u,0)
call TimerStart(t,0.02,true,function Trig_Elettrico_Cornata_Actions2)
set u = null
set t = null
endfunction
function InitTrig_Elettrico_Cornata takes nothing returns nothing
set gg_trg_Elettrico_Cornata = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Elettrico_Cornata, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Elettrico_Cornata, Condition( function Trig_Elettrico_Cornata_Conditions ) )
call TriggerAddAction( gg_trg_Elettrico_Cornata, function Trig_Elettrico_Cornata_Actions )
endfunction
Отредактирован MATRITSA
» WarCraft 3 / На пешити пример полярных коорденат или эта декартные не знаю
а это зачем я дополню откуда взяты эти цыфры просто в моём случие эта точка будет всегда разная
Думаю самой разумной помашю для меня будет это просто написал пример и я буду просто с+v делать куда вставить мозгов хватить и думаю со временем я пойму как эта работает методом изменение цыфр в примере
» WarCraft 3 / Хочю найти друзей
» WarCraft 3 / События в JASS
» WarCraft 3 / как это написать правелино
Отредактирован Кет
» WarCraft 3 / как это написать правелино
» WarCraft 3 / Неправильный синтаксис кода
Возможно у многих такое происходило но мало кто замечал просто не срабатывание кода