Привет, юные (и не очень) любители аниме и варкарфта, сегодня я покажу вам как сделать JoJo Reference, а конкретно связанный с To be Continued, да то самый, если кто не знает или может забыл, то я напомню
Обычное его используют на самом интересном месте, обрывая текущее действие, вообще это уже боянистый мем и его даже зумеры считают старым, но не суть, мы же варкарфтеры, над нами время не властно.
Установка
- Скопировать код из блока Reference
- Импортировать картинку и звук (уже есть в карте примере)
- Вызывать из гуи через личный сценарий (не вызывать через инициализацию, а то звук не будет играть)
CreateJojoReference(sec, flag)
Полный код
function CreateJojoReference(delay, isVictory)
--настройки
local toBeContinued = "ToBeContinued" --путь к картинке ToBeContinued
local endingSound = "endingSound" -- путь к мелодии
--delay время задержки перед началом выезжания таблички
-- isVictory нужно ли объявить победу
PlayThematicMusic(endingSound)
TimerStart(CreateTimer(), delay-0.2, false, function()
CreateEnding(gg_unit_opeo_0000) -- действие за 0.2 секунды до ключевого события
end)
TimerStart(CreateTimer(), delay, false, function()
CreateContinuedAndMove(toBeContinued, 1, 0.1,isVictory) -- создание выдвигающегося фрейма
end)
end
function CreateContinuedAndMove(toBeContinued, x, y,isVictory)
local tobe = BlzCreateFrameByType('BACKDROP', 'FaceButtonIcon', BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), '', 0)
BlzFrameSetParent(tobe, BlzGetFrameByName("ConsoleUIBackdrop", 0))
BlzFrameSetTexture(tobe, toBeContinued, 0, true)
BlzFrameSetSize(tobe, 0.4, 0.1)
BlzFrameSetAbsPoint(tobe, FRAMEPOINT_TOP, x, y)
--print("запушен референс")
TimerStart(CreateTimer(), 1/64, true, function()
x = x - 0.02
if x <= 0.07 then
--print("остановка")
DestroyTimer(GetExpiredTimer())
CinematicFadeBJ(bj_CINEFADETYPE_FADEIN, 99, "ReplaceableTextures\\CameraMasks\\White_mask.blp", 20.00, 20.00, 20.00, 20.00)
if isVictory then
CustomVictoryBJ(Player(0), true, false)
end
PauseGame(true)
else
BlzFrameSetAbsPoint(tobe, FRAMEPOINT_TOP, x, y)
end
end)
end
function CreateEnding(unit)
local x,y=GetUnitX(unit),GetUnitY(unit)
AddSpecialEffect("Units\\Demon\\Infernal\\InfernalBirth.mdl",x,y) -- эффект падения метеорита
end
sec - число секунд, от момента начала звучания музыки, в карте примере настроено на 10
flag - логический переключатель, показывающий будет ли видно окошко победы
flag - логический переключатель, показывающий будет ли видно окошко победы
Рекомендации
- Отключить интерфейс (в карте примере интерфейс отключен, в 2 строчки личного сценария, если же решите сохранить стандартный, то придётся поднимать фрейм по высоте Y)
- Иметь монитор с разрешением экрана 1920 на 1080 (иначе придётся настраивать конечную точку остановки фрейма)
- Иметь компьютер 2012 года или новее, чтобы тянул рефордж (иначе придётся довольствоваться только видосиком и ставить дизлайк на ресурс)