• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос entityStreamIn + анимация + флаг (синхронизация)

qweqweqwe123123123

Участник портала
24 Июн 2025
97
15
18
Привет. Подскажи пожалуйста, весь день голову ломаю...

Как создается синхронизации анимаций ? Она пишется для двух случаев:
1) кто в зоне стрима (mp.players.forEachInRange)
2) кто зайдет в этот стрим (entityStreamIn)

пример на котором проверялось: dict: "amb@medic@standing@tendtodead@idle_a", name: "idle_a",

1ый вариант работает. Я вызываю на сервере mp.players.forEachInRange, дергается событие на клиенты в зоне стрима, на этих клиентах вызывается taskPlayAnim и все работает (flag=1).

2ой вариант работает частично. Игрок1 появляется в зоне стрима Игрока2. Это отлавливает событие entityStreamIn, далее вызывается все тот же taskPlayAnim.
Вот тут сама проблема. Анимация при flag=1 не работает! Ну просто не воспроизводиться анимация. Если я изменю значение flag=48, - работать будет.

Суть: Почему 1ый вариант работает с flag=1, а 2ой вариант НЕ работает с flag=1 ? Но при этом 2ой вариант работает с flag=48. Как flag влияет на это ?!

Вы скажете, надо поставить setTimeout или у тебя код не отрабатывает или в if не заходит. Нет. Все работает. И setTimeout стоит. И консоль логами я проверил, что везде зашло.

Почему у меня флаг 1 работает через первый вариант (mp.players.forEachInRange). А флаг 1 через entityStreamIn - не работает ? Но при этом флаг 48 работает через entityStreamIn...
 
Последнее редактирование:

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,905
292
100
Привет! Разница в поведении флагов связана с тем, когда именно вызывается taskPlayAnim в момент стрима.

Флаг 1 (ANIM_FLAG_LOOP) обычно работает, когда анимация запускается сразу и игрок "готов" к проигрыванию. При entityStreamIn игрок может быть еще не полностью "загружен" на клиенте, поэтому анимация с флагом 1 не стартует.

Флаг 48 включает в себя дополнительные параметры (например, ANIM_FLAG_LOOP + ANIM_FLAG_ALLOW_UPPERBODY + другие), что помогает анимации стартовать корректно даже в момент стрима.

Решение: при entityStreamIn делай небольшую задержку (например, 100-200 мс) перед вызовом taskPlayAnim с флагом 1 либо используй флаг 48, который более "устойчив".

В общем, флаг влияет на поведение и приоритет анимации, а момент вызова важен, т.к. в entityStreamIn объекты еще "инициализируются" на клиенте.

Попробуй так и отпишись, если надо — помогу с примером кода!
 

Justin_Games

Активный участник
5 Дек 2020
67
28
75
Запусти анимацию без forEachInRange, сам недавно удивился, но анимки синхряться с каких-то пор сами рейджом... И сценарии тоже
 

qweqweqwe123123123

Участник портала
24 Июн 2025
97
15
18
Запусти анимацию без forEachInRange, сам недавно удивился, но анимки синхряться с каких-то пор сами рейджом... И сценарии тоже
То, о чем ты пишешь, а именно, что клиентские анимации синхронизированы на клиенте, это я знал. Зависит не от анимации, а от флага. Определенные флаги действительно синхронизированы "из коробки". В основном это флаги, которые запрещают перемещение во время работы анимации. Это так.. доп инфа тебе)

_________________________
Теперь по моему вопросу. Я разобрался. Ответ такой: надо принять особенности rage. И действительно, определенные флаги не могут запустить анимацию пойманную через entityStreamIn. Что делать ? Взять другой флаг)) что я и сделал... все заработало
 
Реакции: Harland David Sanders

Similar threads