Можно ли как-нибудь изменить высоту созданной через jass молнии?

native MoveLightningEx takes lightning whichBolt, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns boolean

native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
codeName - название молнии
checkVisibility - видимость в тумане войны
x1, y1, z1 - стартовая точка молнии
x2, y2, z2 - конечная точка молнии

Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Этот комментарий удален
23
Похожие вопросы:

ответ
Кароч
есть инфа
что если хочешь стандартный скилл с небольшим изменением
но не можешь отловить его цели
то можно тупо ловить урон
при этом кастуя скилл с даммика
и вылавливать урон только от даммика
да?
Но это вариант для тех кому лень...
а тебе я так вижу не лень
ответ
native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
наработка
в jngp есть встроенная библиотека ссылка на коммент с картинками как пользоваться библиотекой, сайты есть ссылка или достаете из архива игры текстовик со всеми нативками и функциями. в них ctlr + F поиск вбиваете lightning

28
native MoveLightningEx takes lightning whichBolt, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns boolean

native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
codeName - название молнии
checkVisibility - видимость в тумане войны
x1, y1, z1 - стартовая точка молнии
x2, y2, z2 - конечная точка молнии

Загруженные файлы
Принятый ответ
Ответы (4)
16
rsfghd, спасибо, раз Вы так хорошо разбираетесь в Jass, может тогда и подскажите, как мне поднять высоту относительно позиции юнитов? мой вызов выглядит следующим образом: call AddLightningLoc( "CLPB", GetUnitLoc(dg_Caster[udg_Number]), GetUnitLoc(udg_Target[udg_Number]) )
28
TeX13, я не разбираюсь в джасс, я не разбираюсь в варкрафте, я не разбираюсь даже в своей никчёмной жизни, я вообще ни в чём не разбираюсь
твой метод создаёт 2 утечки, не критично если вызовов практически не будет за игру, но во всяких периодических событиях выльется тебе в краш игры и мозга игроков

способ без утечек:
set bj_enumDestructableCenter = GetUnitLoc( dg_Caster[udg_Number] )
set bj_enumDestructableRadius = GetLocationZ( bj_enumDestructableCenter ) + GetUnitFlyHeight( dg_Caster[udg_Number] ) + 50.00
call RemoveLocation( bj_enumDestructableCenter )
set bj_enumDestructableCenter = GetUnitLoc( udg_Target[udg_Number] )
set bj_lastCreatedLightning = AddLightningEx( "CLPB", true, GetUnitX( dg_Caster[udg_Number] ), GetUnitY( dg_Caster[udg_Number] ), bj_enumDestructableRadius, GetUnitX( udg_Target[udg_Number] ), GetUnitY( udg_Target[udg_Number] ), GetLocationZ( bj_enumDestructableCenter ) + GetUnitFlyHeight( udg_Target[udg_Number] ) + 50.00 )
call RemoveLocation( bj_enumDestructableCenter )

в идеале вообще перейти на вджасс:

globals
    constant location LFZ = Location( 0.00, 0.00 )
endglobals

function GetLocZ takes real x, real y returns real
    call MoveLocation( LFZ, x, y )
    return GetLocationZ( LFZ )
endfunction

...

set bj_lastCreatedLightning = AddLightningEx( "CLPB", true, GetUnitX( dg_Caster[udg_Number] ), GetUnitY( dg_Caster[udg_Number] ), GetLocZ( GetUnitX( dg_Caster[udg_Number] ), GetUnitY( dg_Caster[udg_Number] ) ) + GetUnitFlyHeight( dg_Caster[udg_Number] ) + 50.00, GetUnitX( udg_Target[udg_Number] ), GetUnitY( udg_Target[udg_Number] ), GetLocZ( GetUnitX( udg_Target[udg_Number] ), GetUnitY( udg_Target[udg_Number] ) ) + GetUnitFlyHeight( udg_Target[udg_Number] ) + 50.00 )

координаты можно так же в переменную закинуть для читаемости:

globals
    constant location LFZ = Location( 0.00, 0.00 )
endglobals

function GetLocZ takes real x, real y returns real
    call MoveLocation( LFZ, x, y )
    return GetLocationZ( LFZ )
endfunction

...

local real x  = GetUnitX( dg_Caster[udg_Number] )
local real y  = GetUnitY( dg_Caster[udg_Number] )
local real x1 = GetUnitX( udg_Target[udg_Number] )
local real y1 = GetUnitY( udg_Target[udg_Number] )

set bj_lastCreatedLightning = AddLightningEx( "CLPB", true, x, y, GetLocZ( x, y ) + GetUnitFlyHeight( dg_Caster[udg_Number] ) + 50.00, x1, y1, GetLocZ( x1, y1 ) + GetUnitFlyHeight( udg_Target[udg_Number] ) + 50.00 )
я сделал для тебя первый вариант, потому что мне лень пояснять за вджасс, что локалки должны быть объявлены только вначале функции и что такое функция вообще, но если для тебя это всё не ново - дерзай
28
TeX13, если тебе пофиг на утечки, пожалуйста:
set bj_lastCreatedLightning = AddLightningEx( "CLPB", true, GetUnitX( dg_Caster[udg_Number] ), GetUnitY( dg_Caster[udg_Number] ), GetLocationZ( GetUnitLoc( dg_Caster[udg_Number] ) ) + GetUnitFlyHeight( dg_Caster[udg_Number] ) + 50.00, GetUnitX( udg_Target[udg_Number] ), GetUnitY( udg_Target[udg_Number] ), GetLocationZ( GetUnitLoc( udg_Target[udg_Number] ) ) + GetUnitFlyHeight( udg_Target[udg_Number] ) + 50.00 )
Чтобы оставить комментарий, пожалуйста, войдите на сайт.