Прыжок сларка из доты 1 на гуи есть у кого и если нет то скажие возможно ли зделать на гуи с привязкой.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
2 года назад
0
Не-а, нету это во первых, во вторых я струдом представляю как ты сделаешь на гуи привезку.
с доты на jass могу кинуть код.
0
1
2 года назад
0
Не-а, нету это во первых, во вторых я струдом представляю как ты сделаешь на гуи привезку.
с доты на jass могу кинуть код.
можешь кинуть тогда
0
32
2 года назад
Отредактирован quq_CCCP
0
pounce
function Y65 takes nothing returns boolean
  local trigger t=GetTriggeringTrigger()
  local integer S5I=GetHandleId(t)
  local integer NPI=GetTriggerEvalCount(t)
  local unit P7I=(LoadUnitHandle(HashData,(S5I),(2)))
  local unit P8I=(LoadUnitHandle(HashData,(S5I),(17)))
  local lightning UZI=(LoadLightningHandle(HashData,(S5I),(196)))
  local integer SUI=(LoadInteger(HashData,(S5I),(5)))
  local real QXI=(LoadReal(HashData,(S5I),(189)))
  local real QYI=(LoadReal(HashData,(S5I),(190)))
  local real QJI=GetUnitX(P8I)
  local real QKI=GetUnitY(P8I)
  local real IV1
  local real IW1
  local real II3=(LoadReal(HashData,(S5I),(23)))
  local real I13=(LoadReal(HashData,(S5I),(24)))
  local real RM2
  local real QWI=QNI(II3,I13,QJI,QKI)
  call SaveReal(HashData,(S5I),(23),((QJI)*1.0))
  call SaveReal(HashData,(S5I),(24),((QKI)*1.0))
  if QWI>100 or NPI>(3.5/.03)or RKI(P8I)==true then
    call DestroyLightning(UZI)
    call FlushChildHashtable(HashData,(S5I))
    call S0I(t)
  else
    call MoveLightning(UZI,true,QXI,QYI,QJI,QKI)
    if QNI(QXI,QYI,QJI,QKI)>325 then
      set RM2=Atan2(QKI-QYI,QJI-QXI)
      set IV1=QXI+(325)*Cos(RM2)
      set IW1=QYI+(325)*Sin(RM2)
      call SetUnitX(P8I,IV1)
      call SetUnitY(P8I,IW1)
    endif
  endif
  set t=null
  set P7I=null
  set P8I=null
  set UZI=null
  return false
endfunction

function Y75 takes unit P7I,unit P8I,integer SUI returns nothing
  local trigger t=CreateTrigger()
  local integer S5I=GetHandleId(t)
  local lightning UZI=AddLightning("PONC",true,GetUnitX(P7I),GetUnitY(P7I),GetUnitX(P8I),GetUnitY(P8I))
  call SetLightningColor(UZI,1,1,1,1)
  call SaveLightningHandle(HashData,(S5I),(196),(UZI))
  call SaveUnitHandle(HashData,(S5I),(2),(P7I))
  call SaveUnitHandle(HashData,(S5I),(17),(P8I))
  call SaveInteger(HashData,(S5I),(5),(SUI))
  call SaveReal(HashData,(S5I),(189),((GetUnitX(P7I))*1.0))
  call SaveReal(HashData,(S5I),(190),((GetUnitY(P7I))*1.0))
  call SaveReal(HashData,(S5I),(23),((GetUnitX(P8I))*1.0))
  call SaveReal(HashData,(S5I),(24),((GetUnitY(P8I))*1.0))
  call TriggerRegisterTimerEvent(t,0.03,true)
  call TriggerRegisterUnitEvent(t,P8I,EVENT_UNIT_DEATH)
  call TriggerAddCondition(t,Condition(function Y65))
  call DamageTarget(P7I,P8I,1,50.00*SUI)
  call IssueTargetOrder(P7I,"attack",P8I)
  set t=null
  set UZI=null
endfunction

function Y85 takes nothing returns boolean
  local trigger t=GetTriggeringTrigger()
  local integer S5I=GetHandleId(t)
  local integer NPI=GetTriggerEvalCount(t)
  local integer SUI=(LoadInteger(HashData,(S5I),(5)))
  local unit P7I=(LoadUnitHandle(HashData,(S5I),(2)))
  local real RM2=(LoadReal(HashData,(S5I),(13)))
  local real BA3=(LoadReal(HashData,(S5I),(189)))
  local real BB3=(LoadReal(HashData,(S5I),(190)))
  local real QJI=(LoadReal(HashData,(S5I),(47)))
  local real QKI=(LoadReal(HashData,(S5I),(48)))
  local real IV1=BA3+(30*(20+4*2)/30)*NPI*Cos(RM2*bj_DEGTORAD)
  local real IW1=BB3+(30*(20+4*2)/30)*NPI*Sin(RM2*bj_DEGTORAD)
  local real YB3=SquareRoot((IV1-QJI)*(IV1-QJI)+(IW1-QKI)*(IW1-QKI))
  local real YC3=700
  local real YD3=175
  local real YE3=(1-YB3/YC3)*YD3*2
  local group g=NTI()
  local unit P8I
  if NPI==1 then
    call SetUnitAnimationByIndex(P7I,5)
    call SetUnitTimeScale(P7I,1.5)
  endif
  if YE3>YD3 then
    call SetUnitAnimationByIndex(P7I,5)
    set YE3=YD3*2-YE3
  endif
  call SetUnitFlyHeight(P7I,QDI(YE3,0),0)
  call SetUnitX(P7I,PTI(IV1))
  call SetUnitY(P7I,PUI(IW1))
  call SetUnitFacing(P7I,RM2)
  set GK=P7I
  call GroupEnumUnitsInRange(g,IV1,IW1,120,Condition(function D21))
  set P8I=FirstOfGroup(g)
  call NSI(g)
  if YB3<30 or P8I!=null or GetTriggerEvalCount(t)>26 then
    call SetUnitFlyHeight(P7I,0,0)
    call SetUnitFacing(P7I,RM2)
    call SetUnitTimeScale(P7I,1)
    call SetUnitAnimation(P7I,"stand")
    call SetUnitPathing(P7I,true)
    call UnitRemoveAbility(P7I,'A1J6')
    call UPI(GetUnitX(P7I),GetUnitY(P7I),100)
    if P8I!=null and RKI(P8I)==false then
      call SCI(P8I,4408,5)
      call Y75(P7I,P8I,SUI)
    endif
    call FlushChildHashtable(HashData,(S5I))
    call S0I(t)
  endif
  set t=null
  set P7I=null
  set P8I=null
  return false
endfunction

function Y95 takes nothing returns nothing
  local unit P7I=GetTriggerUnit()
  local integer SUI=GetUnitAbilityLevel(P7I,'A1J7')
  local trigger t=CreateTrigger()
  local integer S5I=GetHandleId(t)
  local real QWI=700
  local real RM2=GetUnitFacing(P7I)
  local real QXI=GetUnitX(P7I)
  local real QYI=GetUnitY(P7I)
  local real QJI=PTI(QXI+QWI*Cos(RM2*bj_DEGTORAD))
  local real QKI=PUI(QYI+QWI*Sin(RM2*bj_DEGTORAD))
  call AddPermanentAbility(P7I,'Amrf')
  call UnitRemoveAbility(P7I,'Amrf')
  call SetUnitPathing(P7I,false)
  call AddPermanentAbility(P7I,'A1J6')
  call TriggerRegisterTimerEvent(t,0.03,true)
  call TriggerAddCondition(t,Condition(function Y85))
  call SaveUnitHandle(HashData,(S5I),(2),(P7I))
  call SaveInteger(HashData,(S5I),(5),(SUI))
  call SaveReal(HashData,(S5I),(13),((RM2)*1.0))
  call SaveReal(HashData,(S5I),(189),((QXI)*1.0))
  call SaveReal(HashData,(S5I),(190),((QYI)*1.0))
  call SaveReal(HashData,(S5I),(47),((QJI)*1.0))
  call SaveReal(HashData,(S5I),(48),((QKI)*1.0))
  set P7I=null
  set t=null
endfunction

function YA5 takes nothing returns boolean
  if GetSpellAbilityId()=='A1J7' then
    call Y95()
  endif
  return false
endfunction

function R71 takes nothing returns nothing
  local trigger t=CreateTrigger()
  call UMI(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
  call TriggerAddCondition(t,Condition(function YA5))
  set t=null
endfunction
'A1J7' - pounce. осоновано на "Веерный бросок" ('AEfk' )
UMI - TriggerRegisterAnyUnitEventBJ
PTI - проверка на границу карты по оси X
PUI - проверка на границу карты по оси Y
AddPermanentAbility:
function AddPermanentAbility takes unit u, integer id returns nothing
call UnitAddAbility( u, id )
call UnitMakeAbilityPermanent( u, true, id )
endfunction
S0I - утилизация триггеров, можно заменить на DestroyTrigger()
SCI - установка некого флага на хендл юнита втечени N сек, подленное назначение неизвестно.
NTI - CreateGroup()
NSI - DestroyGroup()
QNI - DistanceBetweenCords - измеряет растояние, выведено из одноименной бж функции.
PONC - Эффект молнии, кастом, добавлен в LigthingData.slk
0
27
2 года назад
0
берём нужную формулу параболы отсюда xgm.guru/p/wc3/parabolicmovement
и делаем прыжок, ничего сложного
0
32
2 года назад
0
и делаем прыжок, ничего сложного
Главное таймер сделать по меньше, в идеале 1/64, чтобы не получилось вот так
0
27
2 года назад
0
Bergi, а что на гифке не так?
0
32
2 года назад
0
Период 0.04 и дёрганый fps, ты же сам это говорил rsfghd,
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.