local real x2=1234.
local real y2=5678.
local real x=GetUnitX(u)
local real y=GetUnitY(u)
local real r=Atan2(y2-y, x2-x)
set x=x+50.*Cos(r)
set y=y+50.*Sin(r)
водном из мест человек на форуме написал вот это я тока не понел вот этого
local real x2=1234.
local real y2=5678. почему здеси конкретные цыфры а не чтота другое
мне нужно зделат точку с полярным смешением от юнита тока через Реал по скоку команду которую я использую использует на вход реал

Принятый ответ

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)
Разабрался мне вот это нужно было
вывод везде где красным я обозначел мне не понятно Графически как это происходит
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
14
7 лет назад
Отредактирован MATRITSA
2
я тока 4 класс математике знаю
а это зачем
а это зачем
local real x2=1234.
local real y2=5678.
я дополню откуда взяты эти цыфры просто в моём случие эта точка будет всегда разная
Думаю самой разумной помашю для меня будет это просто написал пример и я буду просто с+v делать куда вставить мозгов хватить и думаю со временем я пойму как эта работает методом изменение цыфр в примере
0
32
7 лет назад
0
MATRITSA, это пример чему могут быть равны координаты, возьми листок из клетчатой тетради, и раздели её поровну на 4 части ручкой, центр это будет 0.0 координаты, ну а 12. и 56 сам увидишь.
2
14
7 лет назад
Отредактирован Uber
2
ты не понял меня quq_CCCP я имел в виду пример на Jass коде спела который двигает юнита тока просиба без хеш тейбла зделай просто для меня хеш тейбал очени сложная веши пока что
Примечание это не я писал ниже написаное
function Trig_Elettrico_Cornata_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00P'
endfunction
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
0
32
7 лет назад
0
Если для вас это слишком сложно, то не надо делать. Читайте статьи, делайте так как умеете.
Тут и так примитив примитивом, еще и написан абы как.
2
14
7 лет назад
2
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)
Разабрался мне вот это нужно было
вывод везде где красным я обозначел мне не понятно Графически как это происходит
Загруженные файлы
Принятый ответ
0
18
7 лет назад
Отредактирован mishanka122
0
http://alfavit.dljavseh.ru
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.