Рамки из STEAM вокруг аватарок

avatar_frame.lua (2,4 КБ)

Он сразу будет ставится там где используется стандартный Panel:AvatarImage()

GarrysMod\garrysmod\lua\autorun\client

Положение рамки, относительно аватара ставил на глаз, но вроде как всё ровненько.
Должно быть совместимо со всеми DFrame которые используют Panel:AvatarImage()
Отступ от краёв должен быть не меньше ~ (SizeAvatar/100 *22)
Примеры:
Рандом TAB:
image
SandBox TAB:
image
Созданно для:

1 лайк

Не много не понял, если ты про анимированные рамки то да они будут анимированные

Что хочешь поменять? Сделать можно по такой-же схеме.

очень плохая идея!
каждый DHTML это отдельный процесс chromium, я думаю понятно чем это черевато…
хотите рендерить gif - есть тонна других способов.

Стим использует png с анимацией,
Данный вариант лучше чем использовать Materials который потребуется ещё и сохранить клиенту на пк, а после чего еще в однопоточный луа закидывать это.
Протестирую на 128 игроков для проверки производительности, на разных TAB но уже завтра.

1 лайк

а можно чтоб оно при заходе на сервер подгружало все это а не тогда когда появляется plyimage и идет подкачка рамки или аватара?

Конечно можно но вся нагрузка падает на сервер.

Каво чаво

Ну учись
Вообще тут лучше использовать сторонний сайт с API для получения Аватарок и Рамок.
ибо в моём коде фактически прогружается стим аккаунт и там уже ищу строчку с рамками.

Думаю если использовать один “инстанс” aka один dhtml для того же tabmenu, то почему нет?

дело не в формате, а в том что ты создаешь процесс полноценного браузера для каждой аватарки (а их сотни).

лучше сделать lua/js/wasm декодер (либо capture рендера blink) и рендерить фреймы в текстуру(ы).
потом просто spritesheet(s) листать во время рендера с троттлингом frametime.

вот тебе пример:
SCB | Chatbox · gmodstore (он поддерживает импорт BTTV эмодзи, декодер написан на lua, из минусов - каждый фрейм режет в отдельную текстуру).

вот пример как рендерить всякое современное (apng, webp, mp4, svg, gif etc) в текстуры Small-GLua-Things/libs/svg-material.lua at master · Be1zebub/Small-GLua-Things · GitHub

а вот пример рендера статики + использование spritesheets GitHub - Be1zebub/gmod-fa-sprite-sheets: fa sprite sheets for gmod addons

твой способ это хороший эксперемент, но ужасный для продакшна.

да, вполне можно использовать один процесс cef и рендерить весь ui в нём, это самый лучший подход.

P.S.
Месяц назад Билли релизнул GIF decoder > animated VTF encoder на базе Rust & WASM GitHub - WilliamVenner/gmod-animated-avatars: 🖼️ Drop-in Steam animated avatars for Garry's Mod
Превосходный подход, но в контексте Scoreboards я бы рекомендовал рендерить весь UI на CEF.

1 лайк