---@param frame framehandle
---@param primaryProp integer
---@param flags integer
---@return nothing
function BlzFrameSetSpriteAnimate(frame, primaryProp, flags) end	-- (native)
Управляет очередью анимаций спрайта, не самым очевидным образом.

frame

Работает только с двумя типами фреймов: SPRITE и STATUSBAR.

primaryProp

В аргумент отправляется число, но это не айди анимации в модели. Анимация будет искаться по токену из этого словаря. Всего доступно 26 токенов анимаций.
primaryProp
Название анимации
0
Birth
1
Death
2
Stand
3
Morph
4
Alternate
5
Found
6
MainMenu
7
SinglePlayer
8
SinglePlayerSkirmish
9
Campaign
10
MultiPlayer
11
MultiPlayerPreGameChat
12
ViewReplay
13
BattleNetChatRoom
14
BattleNetCustom
15
BattleNetCustomCreate
16
BattleNetWelcome
17
BattleNetAMM
18
BattleNetAdvancedOptions
19
BattleNetChannel
20
BattleNetProfile
21
BattleNetTeamChat
22
BattleNetUserList
23
Options
24
RealmSelection
25
MainCancelPanel
В формате луа таблицы
    local primaryPropsDict = {
        [0] = "birth",
        [1] = "death",
        [2] = "stand",
        [3] = "morph",
        [4] = "alternate",
        [5] = "found",
        [6] = "mainmenu",
        [7] = "singleplayer",
        [8] = "singleplayerskirmish",
        [9] = "campaign",
        [10] = "multiplayer",
        [11] = "multiplayerpregamechat",
        [12] = "viewreplay",
        [13] = "battlenetchatroom",
        [14] = "battlenetcustom",
        [15] = "battlenetcustomcreate",
        [16] = "battlenetwelcome",
        [17] = "battlenetamm",
        [18] = "battlenetadvancedoptions",
        [19] = "battlenetchannel",
        [20] = "battlenetprofile",
        [21] = "battlenetteamchat",
        [22] = "battlenetuserlist",
        [23] = "options",
        [24] = "realmselection",
        [25] = "maincancelpanel",
    }
В формате луа констант
ANIM_SPRITE_PROP_BIRTH = 0
ANIM_SPRITE_PROP_DEATH = 1
ANIM_SPRITE_PROP_STAND = 2
ANIM_SPRITE_PROP_MORPH = 3
ANIM_SPRITE_PROP_ALTERNATE = 4
ANIM_SPRITE_PROP_FOUND = 5
ANIM_SPRITE_PROP_MAINMENU = 6
ANIM_SPRITE_PROP_SINGLEPLAYER = 7
ANIM_SPRITE_PROP_SINGLEPLAYERSKIRMISH = 8
ANIM_SPRITE_PROP_CAMPAIGN = 9
ANIM_SPRITE_PROP_MULTIPLAYER = 10
ANIM_SPRITE_PROP_MULTIPLAYERPREGAMECHAT = 11
ANIM_SPRITE_PROP_VIEWREPLAY = 12
ANIM_SPRITE_PROP_BATTLENETCHATROOM = 13
ANIM_SPRITE_PROP_BATTLENETCUSTOM = 14
ANIM_SPRITE_PROP_BATTLENETCUSTOMCREATE = 15
ANIM_SPRITE_PROP_BATTLENETWELCOME = 16
ANIM_SPRITE_PROP_BATTLENETAMM = 17
ANIM_SPRITE_PROP_BATTLENETADVANCEDOPTIONS = 18
ANIM_SPRITE_PROP_BATTLENETCHANNEL = 19
ANIM_SPRITE_PROP_BATTLENETPROFILE = 20
ANIM_SPRITE_PROP_BATTLENETTEAMCHAT = 21
ANIM_SPRITE_PROP_BATTLENETUSERLIST = 22
ANIM_SPRITE_PROP_OPTIONS = 23
ANIM_SPRITE_PROP_REALMSELECTION = 24
ANIM_SPRITE_PROP_MAINCANCELPANEL = 25

flags

Битовая маска. Если нужно передать несколько флагов, то в аргумент отправляется сумма чисел (например очередь + первая найденная подходящая анимация: 2 + 8 = 10). Не разбирал глубоко, может кто-то сможет дополнить?
flags
Результат
0 (без флагов)
Базовая логика. Обнуляет очередь, немедленно устанавливает новую анимацию
1
Добавляет анимацию в конец очереди только если она добавляется после незацикленной анимации (с флагом NonLooping)
2
Добавляет анимацию в конец очереди
3
Вроде работает так же, как и 2. Если ни один из флагов 1, 2 или 3 не установлен, то вызов нативки очистит очередь анимаций
4
Хз, но похоже, что ни на что не влияет
8
При нескольких подходящих по токену анимациях (Stand - 1, Stand - 2 и т.д.) будет добавлена не случайная, а первая найденная (анимация с самым маленьким ID)
16
Выбирает из подходящих анимаций наименее редкую (самый маленький Rarity)
32
Выбирает из подходящих анимаций наиболее редкую (самый большой Rarity)
48
Аналогично 16
4096
Хз
12224
Хз
16384
Хз

Примеры использования

local spr

-- Установить анимацию Stand
BlzFrameSetSpriteAnimate(spr, 2, 0)

-- Установить самую редкую анимацию Stand
BlzFrameSetSpriteAnimate(spr, 2, 32)

-- Сформировать очередь из 26 анимаций
-- Прим. Очередь двигается даже во время игровой паузы
for i = 0, 25 do
    BlzFrameSetSpriteAnimate(spr, i, 2)
end

-- Сформировать очередь, но использовать только самые редкие анимации
for i = 0, 25 do
    BlzFrameSetSpriteAnimate(spr, i, 34)
end
`
ОЖИДАНИЕ РЕКЛАМЫ...