14

» WarCraft 3 / На пешити пример полярных коорденат или эта декартные не знаю

ты не понял меня 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
14

» WarCraft 3 / На пешити пример полярных коорденат или эта декартные не знаю

я тока 4 класс математике знаю
а это зачем
а это зачем
local real x2=1234.
local real y2=5678.
я дополню откуда взяты эти цыфры просто в моём случие эта точка будет всегда разная
Думаю самой разумной помашю для меня будет это просто написал пример и я буду просто с+v делать куда вставить мозгов хватить и думаю со временем я пойму как эта работает методом изменение цыфр в примере
14

» WarCraft 3 / как это написать правелино

function Trig_VasterLordEND_Func001C takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A004' ) ) then
        return false
    endif
    return true
endfunction

function Trig_VasterLordEND_Actions takes nothing returns nothing
    if ( Trig_VasterLordEND_Func001C() ) then
        call TriggerExecute( gg_trg_SeroVasterLorda )
    else
    endif
endfunction
обычно так выглядеть но это больно громоздко После конверта
14

» WarCraft 3 / Неправильный синтаксис кода

я просто где 2000 взял поменял на 1900 а потом назад на 2000 и всё заработало
Возможно у многих такое происходило но мало кто замечал просто не срабатывание кода
2 пункта от Uber: 1.2.1 (безграмотность) Учите язык, на котором разговариваете, он поможет другим людям нормально понимать, о чём вы пишете.