короче на моей карте много героев, почему то последний триггерный герой начинает лагать, способность у него проверенная и на jass простая очень без утечек, но каким то странным способом после использования два раза данной техники вар начинает лагать, самое странное что этот спел простая очень, она используется еще на моей второй карте, там она не лагает, там тоже много героев

Походу дело было в баганой модели спецэффекта, которая и вызывала просадку фпс.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
20
кароче на твоей карте что-то лагает
все что могу сказать
32
карту, код в студию...
Мб у тебя какие то ошибки в коде, дырявые триггеры которые по 100500 раз срабатывают в коде.
17
//!===============================================================================================================================
//                                           2)  Sokatsui
//!===============================================================================================================================
function White_Periodic takes nothing returns boolean
  local trigger t=GetTriggeringTrigger()
  local integer h=GetHandleId(t)
  local unit u=LoadUnitHandle(H,h,0)
  local unit d=LoadUnitHandle(H,h,1)
  local real r=LoadReal(H,h,2)
  local real spellX=LoadReal(H,h,3)
  local real spellY=LoadReal(H,h,4)
  local group g=LoadGroupHandle(H,h,5)
  local real x = GetUnitX(d) + 50 * Cos(GetUnitFacing(d) * 0.0174)
  local real y = GetUnitY(d) + 50 * Sin(GetUnitFacing(d) * 0.0174)
  local real re
  local unit c
  local integer i=0
  call SetUnitPosition(d, x,y)
  set re=bj_RADTODEG * Atan2(spellY - y, spellX - x)
  call SetUnitFacing(d, re)
  call SaveReal(H,h,2,r-50.00)
  if r <=100.00 then
    call UnitApplyTimedLife(d,'BTLF',0.01)
    loop
      exitwhen i>2
      set c = CreateUnit(GetOwningPlayer(u),'h100',GetWidgetX(d),GetWidgetY(d),GetRandomReal(1.00,360.00))
      call UnitApplyTimedLife(c,'BTLF',4)
      call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(c),GetUnitY(c)))
      set i=i+1
    endloop
    if GetUnitAbilityLevel(u,'AA76')==1 then
    call DamageSpell(g,d,250,110)
    elseif GetUnitAbilityLevel(u,'AA76')==2 then
    call DamageSpell(g,d,500,180)
    elseif GetUnitAbilityLevel(u,'AA76')==3 then
    call DamageSpell(g,d,500,250)
    elseif GetUnitAbilityLevel(u,'AA76')==4 then
    call DamageSpell(g,d,500,320)
    endif
    call Destroy_Group(g)
    call FlushChildHashtable(H,h)
    call Destroy_Trigger(t)
  else
  endif
  set c=null
  set t=null
  set d=null
  set u=null
  set g=null
  return false
endfunction

function WhiteRipple takes nothing returns nothing
  local trigger t=CreateTrigger()
  local integer h=GetHandleId(t)
  local unit u=GetTriggerUnit()
  local real x = GetUnitX(u) + 50 * Cos(GetUnitFacing(u) * 0.0174)
  local real y = GetUnitY(u) + 50 * Sin(GetUnitFacing(u) * 0.0174)
  local real spellX=GetSpellTargetX()
  local real spellY=GetSpellTargetY()
  local unit d
  local real dx 
  local real dy 
  local real r
  set d = CreateUnit(GetOwningPlayer(u),'ubot',GetUnitX(u),GetUnitY(u),GetUnitFacing(u))
  call UnitApplyTimedLife(d,'BTLF',3)
  set dx = spellX - GetUnitX(d)
  set dy = spellY - GetUnitY(d)
  set r = SquareRoot(dx * dx + dy * dy)
  call SaveUnitHandle(H,h,0,u)
  call SaveUnitHandle(H,h,1,d)
  call SaveReal(H,h,2,r)
  call SaveReal(H,h,3,spellX)
  call SaveReal(H,h,4,spellY)
  call SaveGroupHandle(H,h,5,NewGroup())
  call TriggerRegisterTimerEvent(t,0.025,true)
  call TriggerAddCondition(t,Condition(function White_Periodic))
  set t=null
  set d=null
  set u=null
endfunction
28
что такое Destroy_Trigger
я такой функции не знаю
да и мой вар тоже
следовательно это твоя функция
и нету никакой гарантии что она удаляет триггер
и вообще
где дебаг
где скрины счётчика хэндлов
вдруг у тебя там хэндлы плодятся как хомячки
или мы телепатией должны всё выяснить
ограничений на события нету
впрочем учитывая твой быдлокод они могут появиться
32
Зафиг тут триггер? Таймером не пробовал пользоваться юный IceFrog ?
28
quq_CCCP, религия айсфрога запрещает юзать таймеры
об этом даже в заповедях айсфрога сказано
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.