Обнулял всё, что только в голову взбрело, даже то, что не нужно, и всё равно они есть.. Как же оно задолбало. Может что-то пропустил, не обнулил, не удалил, я хз.
Научите нуба, пожалуйста, избавляться от этой саранчи. Практически среди всех способностей похожего типа присутствуют эти 1-3 утечки, которые растут при быстром касте абилок
Прикладываю карту
Научите нуба, пожалуйста, избавляться от этой саранчи. Практически среди всех способностей похожего типа присутствуют эти 1-3 утечки, которые растут при быстром касте абилок
Прикладываю карту
Принятый ответ
Код:
globals
hashtable H = InitHashtable()
real x
real y
group g = CreateGroup()
real MaxX
real MinX
real MaxY
real MinY
unit bj_lastFilterUnit = null
endglobals
function GetCorX takes real x returns real
if ( x < MinX ) then
return MinX
endif
if ( x > MaxX ) then
return MaxY
endif
return x
endfunction
function GetCorY takes real y returns real
if ( y < MinY ) then
return MinY
endif
if ( y > MaxY ) then
return MaxY
endif
return y
endfunction
function Trig_Frost_Conditions takes nothing returns boolean
return ( GetSpellAbilityId() == 'A000' )
endfunction
function Enemy_Filter takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit( )
return IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and GetWidgetLife(bj_lastFilterUnit) > 0.405 and not IsUnitType( bj_lastFilterUnit, UNIT_TYPE_STRUCTURE )
endfunction
function Group_Damage_Enemy_Enum takes nothing returns nothing
local unit enemy = GetEnumUnit()
call UnitDamageTarget( bj_lastReplacedUnit, enemy, 100.00, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_COLD, WEAPON_TYPE_WHOKNOWS )
call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Undead\\FrostArmor\\FrostArmorDamage.mdl", enemy, "chest" ) )
set enemy = null
endfunction
function Timer_Dummy_Move_Expires takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer id = GetHandleId(t)
local unit cast = LoadUnitHandle( H, id, 0 )
local unit dummy = LoadUnitHandle( H, id, 1 )
local real facing = LoadReal( H, id, 2 )
local real dist = LoadReal( H, id, 3 ) + 32.00
set x = GetCorX( GetUnitX(dummy) + 32.00 * Cos( facing ) )
set y = GetCorY( GetUnitY(dummy) + 32.00 * Sin( facing ) )
call SetUnitX( dummy, x )
call SetUnitY( dummy, y )
call GroupClear( g )
set bj_groupEnumOwningPlayer = GetOwningPlayer( cast )
call GroupEnumUnitsInRange( g, x, y, 125.00, Condition( function Enemy_Filter ) )
if dist < 1500.00 and FirstOfGroup( g ) == null then
call SaveReal( H, id, 3, dist )
else
call GroupClear( g )
set bj_groupEnumOwningPlayer = GetOwningPlayer( cast )
call GroupEnumUnitsInRange( g, x, y, 225.00, Condition( function Enemy_Filter ) )
set bj_lastReplacedUnit = cast
call ForGroup( g, function Group_Damage_Enemy_Enum )
call FlushChildHashtable( H, id )
call PauseTimer(t)
call DestroyTimer(t)
call KillUnit(dummy)
endif
set t = null
set cast = null
set dummy = null
endfunction
function Trig_Frost_Actions takes nothing returns nothing
local timer t = CreateTimer()
local integer id = GetHandleId(t)
local unit cast = GetSpellAbilityUnit()
local real dx = GetUnitX(cast)
local real dy = GetUnitY(cast)
local real facing = Atan2(GetSpellTargetY() - dy, GetSpellTargetX() - dx)
local unit dummy = CreateUnit( GetOwningPlayer(cast), 'u000', GetCorX( dx + 64.00 * Cos(facing) ), GetCorY( dy + 64.00 * Sin(facing) ), facing * bj_DEGTORAD )
call SetUnitPathing( dummy, false )
call UnitApplyTimedLife( dummy, 'BTLF', 0.00 )
call SaveUnitHandle( H, id, 0, cast )
call SaveUnitHandle( H, id, 1, dummy )
call SaveReal( H, id, 2, facing )
call SaveReal( H, id, 3, 0.00 )
call TimerStart( t, 0.03125, true, function Timer_Dummy_Move_Expires )
set cast = null
set dummy = null
set t = null
endfunction
//===========================================================================
function InitTrig_Frost takes nothing returns nothing
set gg_trg_Frost = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Frost, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Frost, Condition( function Trig_Frost_Conditions ) )
call TriggerAddAction( gg_trg_Frost, function Trig_Frost_Actions )
endfunction
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован ScorpioT1000
Отредактирован rsfghd
Утечек нет или что?
Отредактирован rsfghd
Спасибо большое)
Отредактирован MpW
но видел системы, где все кратко и красиво написано