Приветствую!
Я долго ломал голову, пока не определил, что если цель не видно, то и молнию создать нет возможности.
Объясните, пожалуйста, почему, если я не вижу цель, то молния не создается, а если вижу, то создается, как обойти эту проблему?
Есть ли ещё какие-то подводные камни с другими функциями видно не видно?
function Start takes nothing returns nothing
    //local timer t=CreateTimer()
    //local integer id=GetHandleId(t)
    local unit u = gg_unit_hhes_0000
    local unit u2 = gg_unit_hcth_0001
    //local lightning l = AddLightningLoc( "CLPB", GetUnitLoc(u), GetUnitLoc(u))
    local lightning l
local location locU
local location locU2

local real x1
local real x2

local real y1
local real y2

local real z1 = 50

local real lx
local real ly

local real lz = 50
local location ul=GetUnitLoc(u)
call BJDebugMsg(GetUnitName(u))
//set l = AddLightningLoc( "CLPB", GetUnitLoc(u), GetUnitLoc(u))
set l = AddLightningEx("CLPB", true, GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul), GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul))
if l==null then
            call BJDebugMsg("l=null")
        else
            call BJDebugMsg("l=ok")
        endif
set l = AddLightningEx("CLSB", true, GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul), GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul))
if l==null then
            call BJDebugMsg("l=null")
        else
            call BJDebugMsg("l=ok")
        endif
        
set l = AddLightningEx("HWPB", true, GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul), GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul))
if l==null then
            call BJDebugMsg("l=null")
        else
            call BJDebugMsg("l=ok")
        endif
set l = AddLightningEx("CHIM", true, GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul), GetLocationX(ul), GetLocationY(ul), GetLocationZ(ul))
if l==null then
            call BJDebugMsg("l=null")
        else
            call BJDebugMsg("l=ok")
        endif

    call SetLightningColor(l, 1, 0, 0, 1)
    set locU =  GetUnitLoc(u)
    set x1 = GetLocationX(locU)
    set y1 = GetLocationY(locU)
    
    set locU2=  GetUnitLoc(u2)
    set x2 = GetLocationX(locU2)
    set y2 = GetLocationY(locU2)

    call MoveLightningEx(l, true, x1, y1, z1, x2, y2, lz)
    call BJDebugMsg("УСПЕШНО")
endfunction


//===========================================================================
function InitTrig_l takes nothing returns nothing
    set gg_trg_l = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_l, 3 )
    call TriggerAddAction( gg_trg_l, function Start )
endfunction

native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
Второй аргумент на false нужно, наверное
`
ОЖИДАНИЕ РЕКЛАМЫ...
25
native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
Второй аргумент на false нужно, наверное
Принятый ответ
9
Я заменил на false.
И как грустно бы не звучало для меня, это так очевидно просто было решить)))))
Ты совершенно прав, это работает
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.