Он сразу будет ставится там где используется стандартный Panel:AvatarImage()
GarrysMod\garrysmod\lua\autorun\client
Положение рамки, относительно аватара ставил на глаз, но вроде как всё ровненько.
Должно быть совместимо со всеми DFrame которые используют Panel:AvatarImage()
Отступ от краёв должен быть не меньше ~ (SizeAvatar/100 *22)
Примеры:
Рандом TAB:
SandBox TAB:
Созданно для:
Стим использует png с анимацией,
Данный вариант лучше чем использовать Materials который потребуется ещё и сохранить клиенту на пк, а после чего еще в однопоточный луа закидывать это.
Протестирую на 128 игроков для проверки производительности, на разных TAB но уже завтра.
Ну учись
Вообще тут лучше использовать сторонний сайт с API для получения Аватарок и Рамок.
ибо в моём коде фактически прогружается стим аккаунт и там уже ищу строчку с рамками.
дело не в формате, а в том что ты создаешь процесс полноценного браузера для каждой аватарки (а их сотни).
лучше сделать lua/js/wasm декодер (либо capture рендера blink) и рендерить фреймы в текстуру(ы).
потом просто spritesheet(s) листать во время рендера с троттлингом frametime.
вот тебе пример: SCB | Chatbox · gmodstore (он поддерживает импорт BTTV эмодзи, декодер написан на lua, из минусов - каждый фрейм режет в отдельную текстуру).