В Custom Hero Survival есть способность фатальный удар, это пассивка с перезарядкой.
Способность: Герой наносит фатальный удар врагу наносящий 40 урона и 6% от общего здоровья противника.
Вот игрок ударил и нанёс урон, теперь нужно сделать перезарядку, но как? Еще игроков 8, так что для каждого нужна своя перезарядка. Если что нашёл вроде как нашёл эту способность на jass, но когда сохраняю вылазит "Unrecognized PIJASS (syntax) error"
function Trig_Devastating_Blow_Conditions takes nothing returns boolean
	if(not(GetUnitAbilityLevelSwapped('Aimp',GetEventDamageSource())>0))then
		return false
	endif
	if(not(udg_integers13[GetConvertedPlayerId(GetOwningPlayer(GetEventDamageSource()))]==0))then
		return false
	endif
	if(not(IsUnitAliveBJ(udg_units01[GetConvertedPlayerId(GetOwningPlayer(GetEventDamageSource()))])==true))then
		return false
	endif
	return true
endfunction

function Trig_Devastating_Blow_Actions takes nothing returns nothing
	set udg_integers13[GetConvertedPlayerId(GetOwningPlayer(GetEventDamageSource()))]=10
	call DestroyEffectBJ(udg_effects01[GetConvertedPlayerId(GetOwningPlayer(GetEventDamageSource()))])
	call DestroyEffectBJ(udg_effects02[GetConvertedPlayerId(GetOwningPlayer(GetEventDamageSource()))])
	call AddSpecialEffectLocBJ(GetUnitLoc(GetTriggerUnit()),"Damnation Orange.mdx")
	call DestroyEffectBJ(GetLastCreatedEffectBJ())
	call AddSpecialEffectLocBJ(GetUnitLoc(GetTriggerUnit()),"Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl")
	call DestroyEffectBJ(GetLastCreatedEffectBJ())
	call AddSpecialEffectTargetUnitBJ("chest",GetTriggerUnit(),"Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl")
	call DestroyEffectBJ(GetLastCreatedEffectBJ())
	call AddSpecialEffectTargetUnitBJ("chest",GetTriggerUnit(),"Objects\\Spawnmodels\\Critters\\Albatross\\CritterBloodAlbatross.mdl")
	call DestroyEffectBJ(GetLastCreatedEffectBJ())
	call UnitDamageTargetBJ(GetEventDamageSource(),GetTriggerUnit(),(40.00*I2R(GetUnitAbilityLevelSwapped('Aimp',GetEventDamageSource()))),ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL)
	call UnitDamageTargetBJ(GetEventDamageSource(),GetTriggerUnit(),(0.06*GetUnitStateSwap(UNIT_STATE_MAX_LIFE,GetTriggerUnit())),ATTACK_TYPE_MAGIC,DAMAGE_TYPE_NORMAL)
endfunction

function Trig_Devastating_Blow_Ennhance_Func001Func001Func002C takes nothing returns boolean
	if(not(udg_integers13[udg_integer53]==0))then
		return false
	endif
	return true
endfunction

function Trig_Devastating_Blow_Ennhance_Func001Func001C takes nothing returns boolean
	if(not(udg_integers13[udg_integer53]>0))then
		return false
	endif
	if(not(GetUnitAbilityLevelSwapped('Aimp',udg_units01[udg_integer53])>0))then
		return false
	endif
	return true
endfunction

function Trig_Devastating_Blow_Ennhance_Actions takes nothing returns nothing
	set udg_integer53=1
	loop
		exitwhen udg_integer53>8
		if(Trig_Devastating_Blow_Ennhance_Func001Func001C())then
			set udg_integers13[udg_integer53]=(udg_integers13[udg_integer53]-1)
			if(Trig_Devastating_Blow_Ennhance_Func001Func001Func002C())then
				call DestroyEffectBJ(udg_effects01[udg_integer53])
				call AddSpecialEffectTargetUnitBJ("hand left",udg_units01[udg_integer53],"Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnMissile.mdl")
				set udg_effects01[udg_integer53]=GetLastCreatedEffectBJ()
				call DestroyEffectBJ(udg_effects02[udg_integer53])
				call AddSpecialEffectTargetUnitBJ("hand right",udg_units01[udg_integer53],"Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnMissile.mdl")
				set udg_effects02[udg_integer53]=GetLastCreatedEffectBJ()
			else
			endif
		else
		endif
		set udg_integer53=udg_integer53+1
	endloop
endfunction

function Trig_Devastating_Blow_Add_Conditions takes nothing returns boolean
	if(not(IsUnitInGroup(GetTriggerUnit(),udg_group06)!=true))then
		return false
	endif
	return true
endfunction

function Trig_Devastating_Blow_Add_Actions takes nothing returns nothing
	call GroupAddUnitSimple(GetTriggerUnit(),udg_group06)
	call TriggerRegisterUnitEvent(udg_trigger11,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
endfunction

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

function CriticalStike_CD takes nothing returns nothing
    local integer h = GetHandleId(GetExpiredTimer())

    call RemoveSavedBoolean(H, GetHandleId(LoadUnitHandle(H, h, 'srcU')), 'csCD') // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call FlushChildHashtable(H, h) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call PauseTimer(GetExpiredTimer())
    call DestroyTimer(GetExpiredTimer())
endfunction    

function CriticalStike takes unit source, unit target, real dmg returns nothing
    local timer t = CreateTimer()

    call SaveBoolean(H, GetHandleId(source), 'csCD', true) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call SaveAgentHandle(H, GetHandleId(t), 'srcU', source) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H

    call DestroyEffect(AddSpecialEffect("Damnation Orange.mdx", GetUnitX(target), GetUnitY(target)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", GetUnitX(target), GetUnitY(target)))  // тут с эффектами отрегулируешь сам, впадлу вчитываться в ту помойку что ты кинул
    call DestroyEffect(AddSpecialEffectTarget("Damnation Orange.mdx", target, "chest"))
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", target, "chest"))


	call UnitDamageTarget(source , target, 40 * GetUnitAbilityLevel(source, 'Aimp') , true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
    call UnitDamageTarget(source , target, 0.06 * GetUnitState(target, UNIT_STATE_MAX_LIFE) , true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)

    call TimerStart(t, 5, false, function CriticalStike_CD) // тут вместо 5 ставишь свое кд

    set t = null
endfunction  
вот код самого спелла, просто проверяешь if not LoadBoolean(H, GetHandleId(source), 'csCD') then и тд в своей системе урона и вызываешь функцию.
Вот твой спелл с готовой системой урона на чистом джассе.
globals
    hashtable H = InitHashtable()
	rect SysRect = null
    unit uTemp = null
    group gTemp = CreateGroup()
endglobals

function CriticalStike_CD takes nothing returns nothing
    local integer h = GetHandleId(GetExpiredTimer())

    call RemoveSavedBoolean(H, GetHandleId(LoadUnitHandle(H, h, 'srcU')), 'csCD') // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call FlushChildHashtable(H, h) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call PauseTimer(GetExpiredTimer())
    call DestroyTimer(GetExpiredTimer())
endfunction    

function CriticalStike takes unit source, unit target, real dmg returns nothing
    local timer t = CreateTimer()

    call SaveBoolean(H, GetHandleId(source), 'csCD', true) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call SaveAgentHandle(H, GetHandleId(t), 'srcU', source) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H

    call DestroyEffect(AddSpecialEffect("Damnation Orange.mdx", GetUnitX(target), GetUnitY(target)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", GetUnitX(target), GetUnitY(target)))  // тут с эффектами отрегулируешь сам, впадлу вчитываться в ту помойку что ты кинул
    call DestroyEffect(AddSpecialEffectTarget("Damnation Orange.mdx", target, "chest"))
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", target, "chest"))


	call UnitDamageTarget(source , target, 40 * GetUnitAbilityLevel(source, 'Aimp') , true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
    call UnitDamageTarget(source , target, 0.06 * GetUnitState(target, UNIT_STATE_MAX_LIFE) , true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)

    call TimerStart(t, 5, false, function CriticalStike_CD) // тут вместо 5 ставишь свое кд

    set t = null
endfunction    

function UnitEvent takes trigger trig, playerunitevent whichEvent, code act returns trigger
	local integer index = 0

	loop
		call TriggerRegisterPlayerUnitEvent( trig, Player( index ), whichEvent, null )
		set index = index + 1
		exitwhen index == bj_MAX_PLAYER_SLOTS
	endloop

	if act != null then
		call TriggerAddAction( trig, act )
	endif
	
	return trig
endfunction

function Rect_Enter_Event takes trigger trig, real minX, real minY, real maxX, real maxY, code act returns trigger
	local region rectRegion = CreateRegion( )
	call SetRect( SysRect, minX, minY, maxX, maxY )
	call RegionAddRect( rectRegion, SysRect )
	call TriggerRegisterEnterRegion( trig, rectRegion, null )
	if act != null then
		call TriggerAddAction( trig, act )
	endif
	set rectRegion = null
	return trig
endfunction

function Damaged_Handler takes unit source, unit target, real dmg returns nothing

	if not LoadBoolean(H, GetHandleId(source), 'csCD') and GetUnitAbilityLevel(source, 'Aimt') > 0 and not IsUnitType(target, UNIT_TYPE_STRUCTURE) and IsUnitEnemy(target, GetOwningPlayer(source)) and GetUnitState(target, UNIT_STATE_LIFE) > 0 then // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
        call CriticalStike(source, target, dmg)
	endif

endfunction

function Damaged_Event takes nothing returns nothing
	local real DMG = GetEventDamage( )
	if DMG > 0 then
		call DisableTrigger( GetTriggeringTrigger( ) )
		call Damaged_Handler( GetEventDamageSource( ), GetTriggerUnit( ), DMG )
		call EnableTrigger( GetTriggeringTrigger( ) )
	endif
endfunction

function LoadTrig takes integer trig returns trigger
	if LoadTriggerHandle( H, 'glob', trig ) == null then
		call SaveTriggerHandle( H, 'glob', trig, CreateTrigger( ) )
	endif
	return LoadTriggerHandle( H, 'glob', trig)
endfunction

function Init_Unit_Damaged takes unit target returns nothing
    if not IsUnitInGroup(target, LoadGroupHandle(H, 'glob', 'dmgG')) and GetUnitAbilityLevel( target, 'Aloc' ) <= 0 then
        call GroupAddUnit(LoadGroupHandle(H, 'glob', 'dmgG'), target )
        call TriggerRegisterUnitEvent(LoadTrig('dmgT'), target, EVENT_UNIT_DAMAGED )
    endif
endfunction

function Attacked_Handler takes unit source, unit target returns nothing
	call Init_Unit_Damaged( target )
endfunction

function Attacked_Event takes nothing returns nothing
	call DisableTrigger( GetTriggeringTrigger( ) )
	call Attacked_Handler( GetAttacker( ), GetTriggerUnit( ) )
	call EnableTrigger( GetTriggeringTrigger( ) )
endfunction

function Unit_Enters_Handler takes unit entering returns nothing
	call Init_Unit_Damaged( entering )
endfunction

function Unit_Enters_Event takes nothing returns nothing
	call Unit_Enters_Handler( GetEnteringUnit( ) )
endfunction

function InitDamageSystem takes nothing returns nothing
    local real minX = GetRectMinX( GetWorldBounds( ) )
	local real maxX = GetRectMaxX( GetWorldBounds( ) )
	local real minY = GetRectMinY( GetWorldBounds( ) )
	local real maxY = GetRectMaxY( GetWorldBounds( ) )

	set SysRect = Rect( 0, 0, 0, 0 )

	call TriggerAddAction( LoadTrig('dmgT'), function Damaged_Event )
	call SaveGroupHandle( H, 'glob', 'dmgG', CreateGroup( ) )

	call UnitEvent( CreateTrigger( ), EVENT_PLAYER_UNIT_ATTACKED,     function Attacked_Event )
    call Rect_Enter_Event( CreateTrigger( ), minX, minY, maxX, maxY,  function Unit_Enters_Event )

    call GroupEnumUnitsInRect(gTemp, GetWorldBounds( ), null )
	loop
		set uTemp = FirstOfGroup(gTemp)
		exitwhen uTemp == null
		call Init_Unit_Damaged(uTemp)
		call GroupRemoveUnit(gTemp, uTemp)
	endloop

endfunction    

function main takes nothing returns nothing
    call ExecuteFunc("InitDamageSystem")
endfunction     
Тебе нужно будет скопировать себе глобалки и инициализировать InitDamageSystem , не ебу как это на гуи делается, удачи😀
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
13
6 месяцев назад
0
Как орб еффект, создать сферу замедления, всунуть в нее тёмную стрелу з кд 8сек. И при получении урона сверять на наличие баффа.
Без орба, создать всем игрокам таймер и при получении урона, наличии абилки и таймер меньше равно 0 выполнить тействия
0
32
6 месяцев назад
0
Ну я бы сделал по нормальному, через детект урона. Собственно все просто, задаем абилке труповозки эксгумация кд, там достаточно просто все в статьях есть, когда кд прошло, включаем триггер на атаку, при замахе на врага создаем еще 1 триггер, в котором ждем удара от врага, при удара неносим урон. Все просто.
1
6
6 месяцев назад
1
function CriticalStike_CD takes nothing returns nothing
    local integer h = GetHandleId(GetExpiredTimer())

    call RemoveSavedBoolean(H, GetHandleId(LoadUnitHandle(H, h, 'srcU')), 'csCD') // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call FlushChildHashtable(H, h) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call PauseTimer(GetExpiredTimer())
    call DestroyTimer(GetExpiredTimer())
endfunction    

function CriticalStike takes unit source, unit target, real dmg returns nothing
    local timer t = CreateTimer()

    call SaveBoolean(H, GetHandleId(source), 'csCD', true) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call SaveAgentHandle(H, GetHandleId(t), 'srcU', source) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H

    call DestroyEffect(AddSpecialEffect("Damnation Orange.mdx", GetUnitX(target), GetUnitY(target)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", GetUnitX(target), GetUnitY(target)))  // тут с эффектами отрегулируешь сам, впадлу вчитываться в ту помойку что ты кинул
    call DestroyEffect(AddSpecialEffectTarget("Damnation Orange.mdx", target, "chest"))
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", target, "chest"))


	call UnitDamageTarget(source , target, 40 * GetUnitAbilityLevel(source, 'Aimp') , true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
    call UnitDamageTarget(source , target, 0.06 * GetUnitState(target, UNIT_STATE_MAX_LIFE) , true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)

    call TimerStart(t, 5, false, function CriticalStike_CD) // тут вместо 5 ставишь свое кд

    set t = null
endfunction  
вот код самого спелла, просто проверяешь if not LoadBoolean(H, GetHandleId(source), 'csCD') then и тд в своей системе урона и вызываешь функцию.
Вот твой спелл с готовой системой урона на чистом джассе.
globals
    hashtable H = InitHashtable()
	rect SysRect = null
    unit uTemp = null
    group gTemp = CreateGroup()
endglobals

function CriticalStike_CD takes nothing returns nothing
    local integer h = GetHandleId(GetExpiredTimer())

    call RemoveSavedBoolean(H, GetHandleId(LoadUnitHandle(H, h, 'srcU')), 'csCD') // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call FlushChildHashtable(H, h) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call PauseTimer(GetExpiredTimer())
    call DestroyTimer(GetExpiredTimer())
endfunction    

function CriticalStike takes unit source, unit target, real dmg returns nothing
    local timer t = CreateTimer()

    call SaveBoolean(H, GetHandleId(source), 'csCD', true) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
    call SaveAgentHandle(H, GetHandleId(t), 'srcU', source) // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H

    call DestroyEffect(AddSpecialEffect("Damnation Orange.mdx", GetUnitX(target), GetUnitY(target)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", GetUnitX(target), GetUnitY(target)))  // тут с эффектами отрегулируешь сам, впадлу вчитываться в ту помойку что ты кинул
    call DestroyEffect(AddSpecialEffectTarget("Damnation Orange.mdx", target, "chest"))
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl", target, "chest"))


	call UnitDamageTarget(source , target, 40 * GetUnitAbilityLevel(source, 'Aimp') , true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
    call UnitDamageTarget(source , target, 0.06 * GetUnitState(target, UNIT_STATE_MAX_LIFE) , true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)

    call TimerStart(t, 5, false, function CriticalStike_CD) // тут вместо 5 ставишь свое кд

    set t = null
endfunction    

function UnitEvent takes trigger trig, playerunitevent whichEvent, code act returns trigger
	local integer index = 0

	loop
		call TriggerRegisterPlayerUnitEvent( trig, Player( index ), whichEvent, null )
		set index = index + 1
		exitwhen index == bj_MAX_PLAYER_SLOTS
	endloop

	if act != null then
		call TriggerAddAction( trig, act )
	endif
	
	return trig
endfunction

function Rect_Enter_Event takes trigger trig, real minX, real minY, real maxX, real maxY, code act returns trigger
	local region rectRegion = CreateRegion( )
	call SetRect( SysRect, minX, minY, maxX, maxY )
	call RegionAddRect( rectRegion, SysRect )
	call TriggerRegisterEnterRegion( trig, rectRegion, null )
	if act != null then
		call TriggerAddAction( trig, act )
	endif
	set rectRegion = null
	return trig
endfunction

function Damaged_Handler takes unit source, unit target, real dmg returns nothing

	if not LoadBoolean(H, GetHandleId(source), 'csCD') and GetUnitAbilityLevel(source, 'Aimt') > 0 and not IsUnitType(target, UNIT_TYPE_STRUCTURE) and IsUnitEnemy(target, GetOwningPlayer(source)) and GetUnitState(target, UNIT_STATE_LIFE) > 0 then // вместо H ставишь свою хештаблицу, в гуи помоему будет udg_H , если создавать хт с названием H
        call CriticalStike(source, target, dmg)
	endif

endfunction

function Damaged_Event takes nothing returns nothing
	local real DMG = GetEventDamage( )
	if DMG > 0 then
		call DisableTrigger( GetTriggeringTrigger( ) )
		call Damaged_Handler( GetEventDamageSource( ), GetTriggerUnit( ), DMG )
		call EnableTrigger( GetTriggeringTrigger( ) )
	endif
endfunction

function LoadTrig takes integer trig returns trigger
	if LoadTriggerHandle( H, 'glob', trig ) == null then
		call SaveTriggerHandle( H, 'glob', trig, CreateTrigger( ) )
	endif
	return LoadTriggerHandle( H, 'glob', trig)
endfunction

function Init_Unit_Damaged takes unit target returns nothing
    if not IsUnitInGroup(target, LoadGroupHandle(H, 'glob', 'dmgG')) and GetUnitAbilityLevel( target, 'Aloc' ) <= 0 then
        call GroupAddUnit(LoadGroupHandle(H, 'glob', 'dmgG'), target )
        call TriggerRegisterUnitEvent(LoadTrig('dmgT'), target, EVENT_UNIT_DAMAGED )
    endif
endfunction

function Attacked_Handler takes unit source, unit target returns nothing
	call Init_Unit_Damaged( target )
endfunction

function Attacked_Event takes nothing returns nothing
	call DisableTrigger( GetTriggeringTrigger( ) )
	call Attacked_Handler( GetAttacker( ), GetTriggerUnit( ) )
	call EnableTrigger( GetTriggeringTrigger( ) )
endfunction

function Unit_Enters_Handler takes unit entering returns nothing
	call Init_Unit_Damaged( entering )
endfunction

function Unit_Enters_Event takes nothing returns nothing
	call Unit_Enters_Handler( GetEnteringUnit( ) )
endfunction

function InitDamageSystem takes nothing returns nothing
    local real minX = GetRectMinX( GetWorldBounds( ) )
	local real maxX = GetRectMaxX( GetWorldBounds( ) )
	local real minY = GetRectMinY( GetWorldBounds( ) )
	local real maxY = GetRectMaxY( GetWorldBounds( ) )

	set SysRect = Rect( 0, 0, 0, 0 )

	call TriggerAddAction( LoadTrig('dmgT'), function Damaged_Event )
	call SaveGroupHandle( H, 'glob', 'dmgG', CreateGroup( ) )

	call UnitEvent( CreateTrigger( ), EVENT_PLAYER_UNIT_ATTACKED,     function Attacked_Event )
    call Rect_Enter_Event( CreateTrigger( ), minX, minY, maxX, maxY,  function Unit_Enters_Event )

    call GroupEnumUnitsInRect(gTemp, GetWorldBounds( ), null )
	loop
		set uTemp = FirstOfGroup(gTemp)
		exitwhen uTemp == null
		call Init_Unit_Damaged(uTemp)
		call GroupRemoveUnit(gTemp, uTemp)
	endloop

endfunction    

function main takes nothing returns nothing
    call ExecuteFunc("InitDamageSystem")
endfunction     
Тебе нужно будет скопировать себе глобалки и инициализировать InitDamageSystem , не ебу как это на гуи делается, удачи😀
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.