Добавлен Reytar1691
Здравствуйте, люди, мне понадобилась одна работа внутри триггера с камерой.
Нужно чтоб при наведении камеры на какого-либо юнита с помощью спелла без наведения цели (мгновенного действия) в точке камеры юнит !!погибал!!!
Нужно чтоб при наведении камеры на какого-либо юнита с помощью спелла без наведения цели (мгновенного действия) в точке камеры юнит !!погибал!!!
Принятый ответ
LordDracula:
всё, пошаманил чуть чуть с моим способом через кеш и заработало
всё, пошаманил чуть чуть с моим способом через кеш и заработало
globals
gamecache udg_cache = InitGameCache("gamecache")
endglobals
function Trig_camera_Conditions takes nothing returns boolean
if (GetSpellAbilityId() != 'AOws') then
return false
endif
return true
endfunction
function SyncReal takes player p, real val returns real
if (GetLocalPlayer() == p) then
call StoreReal(udg_cache, "", "", val)
endif
call TriggerSyncStart()
if (GetLocalPlayer() == p) then
call SyncStoredReal(udg_cache, "", "")
endif
call TriggerSleepAction(2.)
call TriggerSyncReady()
return GetStoredReal(udg_cache, "", "")
endfunction
function GetPlayerCameraX takes player p returns real
if (GetLocalPlayer() == p) then
return GetCameraTargetPositionX()
endif
return 0.
endfunction
function GetPlayerCameraY takes player p returns real
if (GetLocalPlayer() == p) then
return GetCameraTargetPositionY()
endif
return 0.
endfunction
function Trig_camera_KillUnits takes nothing returns nothing
call KillUnit( GetEnumUnit() )
endfunction
function Trig_camera_Actions takes nothing returns nothing
local real x
local real y
local rect r
local group g
local player p = GetOwningPlayer(GetTriggerUnit())
set x = GetPlayerCameraX(p)
set y = GetPlayerCameraY(p)
set x = SyncReal(GetOwningPlayer(GetTriggerUnit()),x)
set y = SyncReal(GetOwningPlayer(GetTriggerUnit()),y)
set r = Rect( x - 500.00*0.5, y - 500.00*0.5, x + 500.00*0.5, y + 500.00*0.5 )
set g = GetUnitsInRectMatching(r, null)
call ForGroup(g, function Trig_camera_KillUnits)
call DestroyGroup(g)
call RemoveRect(r)
set g = null
set r = null
set x = 0
set y = 0
endfunction
//===========================================================================
function InitTrig_camera takes nothing returns nothing
set gg_trg_camera = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_camera, EVENT_PLAYER_UNIT_SPELL_CHANNEL )
call TriggerAddCondition( gg_trg_camera, Condition( function Trig_camera_Conditions ) )
call TriggerAddAction( gg_trg_camera, function Trig_camera_Actions )
endfunction
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Hodor
Там где 500 это радиус от центра камеры кастующего игрока в котором помрут юниты (он не круглый, а квадратный, но и так сойдет)
бери cameraMap3 (внизу в комментариях)