Интерфейс
Тип:
Фрейм
Выпуск Warcraft:
classic
С подачи идеи от TriggerHappy с хайва, и поковырявшись родилось это. Созданы из apng рамок аватарок стима, тык и тык, так что вы тоже можете создать свою рамку с помощью статьи.

Спрайты начиная слева-сверху это:
  • aganim_sprite
  • blizzard_sprite
  • violet_border_sprite
  • blue_energy_sprite
  • crystallid_sprite
  • cyber_call_sprite
  • damned_sprite
  • exploder_sprite
  • flame_border_sprite
  • frozen_sprite
  • gold_sprite
  • hearts_sprite
  • holylight_sprite
  • inner_fire_and_smoke_sprite
  • inner_flame_border_sprite
  • necrotic_circle_sprite
  • neon_sprite
  • smoke_sprite
  • undead_circle_sprite
  • vampirism_sprite
Код для создания в карте такого же шаблона
function NewFrame(path, pointx, pointy, offsetx, offsety, scale)
        local button = BlzCreateFrame('ScriptDialogButton', BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), 0, 0)
        BlzFrameSetAbsPoint(button, FRAMEPOINT_CENTER, pointx, pointy)
        BlzFrameSetSize(button, 0.0435, 0.0435)

        local new_Frame = BlzCreateFrameByType('BACKDROP', "PORTRAIT", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "",0)
                BlzFrameSetAllPoints(new_Frame, button)
                BlzFrameSetTexture(new_Frame, "ReplaceableTextures\\CommandButtons\\BTNFootman.blp", 0, true)

        local sprite = BlzCreateFrameByType("SPRITE", "justAName", new_Frame, "WarCraftIIILogo", 0)
            BlzFrameClearAllPoints(sprite)
            BlzFrameSetPoint(sprite, FRAMEPOINT_BOTTOMLEFT, new_Frame, FRAMEPOINT_BOTTOMLEFT, offsetx, offsety)
            BlzFrameSetSize(sprite, 0.00001, 0.00001)
            BlzFrameSetScale(sprite, scale)
            BlzFrameSetModel(sprite, path, 0)
	end
	
	-- закидываем куда нибудь и запускаем
	NewFrame("war3mapImported\\aganim_sprite.mdx", 0.12, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\blizzard_sprite.mdx", 0.18, 0.4, 0., 0., 0.68)
    NewFrame("war3mapImported\\violet_border_sprite.mdx", 0.24, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\blue_energy_sprite.mdx", 0.30, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\crystallid_sprite.mdx", 0.36, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\cyber_call_sprite.mdx", 0.42, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\damned_sprite.mdx", 0.48, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\exploder_sprite.mdx", 0.54, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\flame_border_sprite.mdx", 0.60, 0.4, -0.0044, -0.001, 0.8)
    NewFrame("war3mapImported\\frozen_sprite.mdx", 0.66, 0.4, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\gold_sprite.mdx", 0.72, 0.4, 0., 0., 0.68)
    NewFrame("war3mapImported\\hearts_sprite.mdx", 0.12, 0.3, 0., 0., 0.68)
    NewFrame("war3mapImported\\holylight_sprite.mdx", 0.18, 0.3, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\inner_fire_and_smoke_sprite.mdx", 0.242, 0.3, 0., 0., 0.68)
    NewFrame("war3mapImported\\inner_flame_border_sprite.mdx", 0.30, 0.3, 0., 0., 0.68)
    NewFrame("war3mapImported\\necrotic_circle_sprite.mdx", 0.36, 0.3, -0.004, -0.004, 0.8)
    NewFrame("war3mapImported\\neon_sprite.mdx", 0.42, 0.3, -0.0052, -0.0048, 0.8)
    NewFrame("war3mapImported\\smoke_sprite.mdx", 0.48, 0.3, 0., 0., 0.68)
    NewFrame("war3mapImported\\undead_circle_sprite.mdx", 0.54, 0.3, -0.004, -0.004, 0.8)
    NewFrame("war3mapImported\\vampirism_sprite.mdx", 0.60, 0.3, -0.0052, -0.0052, 0.8)
У всех моделей центр это левый нижний угол, поэтому крепим их все точкой BOTTOMLEFT к BOTTOMLEFT другого фрейма.

У всех текстур нужно удалить лишние пути.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
1
2 года назад
0
Очень крутые рамки. Спасибо!
0
11
2 года назад
0
Модели рамки с монетами и пламенем вышли эффектно 👍🏼
0
7
2 года назад
0
го на сайт такое
0
15
1 год назад
Отредактирован JackFastGame
0
Никто не знает как это адаптировать под мемхак?
На выходе получаю это: i.gyazo.com/c3b965e3ac8b657fdeed3a596f69186c.mp4
Селектор реализовал в fdf файле вот так:
Frame "SPRITE" "AbilityRecast" {
    BackgroundArt "inner_flame_border_sprite.mdx",
}
Код создания фрейма:
set frame = CreateFrameEx("AbilityRecast", AbilityButton[i], 0, 0, id)
call ClearFrameAllPoints(frame)
call SetUIFramePoint(frame, ANCHOR_BOTTOMLEFT, AbilityButton[i], ANCHOR_BOTTOMLEFT, 0.0, 0.0)
call SetFrameSize(frame, abilityButtonSize, abilityButtonSize)
Вижу тут юзают FrameSize и FrameScale, полагаю для спрайтов второй параметр имеет значение, но если в мемхаке заюзать SetCSpriteFrameScale к данному фрейму, то игра крашит.
0
20
1 год назад
0
Никто не знает как это адаптировать под мемхак?
Желательно уже забыть о нём, как о протухшем повидле.
А так, возможно нужно изменить в функции тип возврата убрать у SetCSpriteFrameScale возврат integer, ибо в игре оно возвращает void, других причин фатала не вижу.
2
1
6 месяцев назад
2
0
29
6 месяцев назад
0
Кстати, этот процесс немного автоматизирован.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.