• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в 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/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


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

Синхронизация анимаций

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Прочитай еще раз моё сообщение, в котором я написал, что requestAnimDict на моём скриншоте - это КАСТОМНЫЙ метод, внутри которого уже происходит работа с обычным, рейджовским requestAnimDict, который тоже не ожидается, однако внутри кастомного всё тот же while, который отдаст true, когда всё будет готово или, через время, делаешь return false и тогда уже не отрисовываешь ничего.
В общем, всё, что я могу тебе сказать, что то, что ты сделал - можно изменить и мне кажется, что работать будет лучше, но если ты сделал выводы - дело твоё, просто варианты есть, но ты их не особо хочешь пробовать, так как не вчитываешься в моё сообщение.
Ну изучи пожалуйста тогда, как работает async и await. И тогда ты поймешь, что никакой разницы между моим методом и твоим нет, мой так же выполнится только тогда, когда анимка будет подгружена.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,220
1,425
191
27
Ну изучи пожалуйста тогда, как работает async и await. И тогда ты поймешь, что никакой разницы между моим методом и твоим нет, мой так же выполнится только тогда, когда анимка будет подгружена.
Я работаю с C# и я знаю как работают async и await, спасибо.
Раз разницы нет - успехов.
 
Последнее редактирование:

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Я работаю с C# и я знаю, спасибо.
Раз разницы нет - успехов.
Плохо работаешь видимо, раз не понимаешь, как это работает. Не знаешь, в чем проблема - промолчи, а не пытайся доказать, что ты единственный шарящий тут, а все остальные - идиоты. Проблема эта не только с анимкой, как я и писал выше, а и при аттаче объектов/сущностей в том числе. Там никаких request...Dict нет и в помине.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,220
1,425
191
27
Плохо работаешь видимо, раз не понимаешь, как это работает. Не знаешь, в чем проблема - промолчи, а не пытайся доказать, что ты единственный шарящий тут, а все остальные - идиоты. Проблема эта не только с анимкой, как я и писал выше, а и при аттаче объектов/сущностей в том числе. Там никаких request...Dict нет и в помине.
Okay, brother, плохо так плохо. Жаль, что у меня это будет работать и на шарпе, и на js, потому что с клиентом рейджа я работал на обоих языках. Но оставляю тебя в полном праве мыслить подобным образом, мне от твоего мнения ни горячо, ни холодно. Еще раз, успехов.
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Okay, brother, плохо так плохо. Жаль, что у меня это будет работать и на шарпе, и на js, потому что с клиентом рейджа я работал на обоих языках. Но оставляю тебя в полном праве мыслить подобным образом, мне от твоего мнения ни горячо, ни холодно. Еще раз, успехов.
И тебе успехов, проблема в любом случае решена + ты был прав именно в этом моменте, таймаут и необходим был, только дело не в handle. За это в любом случае спасибо.
1656240218962.png
 
  • Like
Реакции: dooj

mippoosedev

Гуру
2 Мар 2021
294
139
100
Ну изучи пожалуйста тогда, как работает async и await. И тогда ты поймешь, что никакой разницы между моим методом и твоим нет, мой так же выполнится только тогда, когда анимка будет подгружена.
Так вы оба хуйни сморозили, но Делюкс тут больше прав. Дело как раз таки в том, что у тебя возвращаемый тип - void, т.е не возвращает ничего, значит код, с которого вызывается этот void не остановится и продолжит работу. Если ты сделаешь в своём методе requestAnimDict возвращаемый тип bool и будешь возвращать true, если подгрузилось, и false если у человека potato PC и уж слишком долго подгружает - то код будет выполняться синхронно, соответственно у тебя не продолжит работу этот евент(с которого был вызван реквестДикт) до того момента, пока не придёт этот ожидаемый бул. Разница в таком варианте с вариантом Делюкса лишь в том, что у тебя этот код будет выполняться синхронно, а со способом Делюкса асинхронно, т.е в каком либо стороннем потоке. И то и то подходит одинаково, я в таких случаях предпочитаю ставить возвращаемое значение типа bool, далее через стандартный if проверять, всё ли гуд или нет. Если нет - выводить уведомление игроку(в твоём случае просто забивать хуй, т.к это анимка и зачем вообще что-то выводить), если да - спокойно продолжать работу кода

P.S Я конечно могу что-то спутать, но по опыту с .netcore 3.1 делаю именно так
 
Последнее редактирование:

mippoosedev

Гуру
2 Мар 2021
294
139
100
P.S Даже протестил. Мб от каких то "секретных" настроек проекта это конечно зависит, но очень в этом сомневаюсь. Не знаю почему и как это работает с войдом, но если он долго выполняется - он будто пропускает дальнейший код

P.S.S Код с спавном машинок выполняется гдет 600мс
image_2022-06-26_172407935.png
image_2022-06-26_172428295.png
 
  • Like
Реакции: XDeveluxe

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,220
1,425
191
27
P.S Даже протестил. Мб от каких то "секретных" настроек проекта это конечно зависит, но очень в этом сомневаюсь. Не знаю почему и как это работает с войдом, но если он долго выполняется - он будто пропускает дальнейший кодПосмотреть вложение 4423Посмотреть вложение 4424
Примерно это я пытался объяснить, что так может случаться, зная по опыту. Но, как говорится, я плохо разбираюсь, да и хуй с ним :j3r:
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Так вы оба хуйни сморозили, но Делюкс тут больше прав. Дело как раз таки в том, что у тебя возвращаемый тип - void, т.е не возвращает ничего, значит код, с которого вызывается этот void не остановится и продолжит работу. Если ты сделаешь в своём методе requestAnimDict возвращаемый тип bool и будешь возвращать true, если подгрузилось, и false если у человека potato PC и уж слишком долго подгружает - то код будет выполняться синхронно, соответственно у тебя не продолжит работу этот евент(с которого был вызван реквестДикт) до того момента, пока не придёт этот ожидаемый бул. Разница в таком варианте с вариантом Делюкса лишь в том, что у тебя этот код будет выполняться синхронно, а со способом Делюкса асинхронно, т.е в каком либо стороннем потоке. И то и то подходит одинаково, я в таких случаях предпочитаю ставить возвращаемое значение типа bool, далее через стандартный if проверять, всё ли гуд или нет. Если нет - выводить уведомление игроку(в твоём случае просто забивать хуй, т.к это анимка и зачем вообще что-то выводить), если да - спокойно продолжать работу кода

P.S Я конечно могу что-то спутать, но по опыту с .netcore 3.1 делаю именно так
1656244621674.png


(Спойлер) Поставь хоть 500000, код, который следует после Test(); не выполнится до тех пор, пока void Test() не закончит свою работу (нагрузка от requestAnimDict нулевая, анимки подгужаются мгновенно, поэтому так происходит, вывести 500000 строк в консоль и то затратнее)
Та разница, которую ты описал про async, мол, что если у человека медленный комп, имеет смысл, просто в данном случае дело в том, что анимки подгружаются пиздец как быстро на любом железе (тем более, если оно смогло запустить саму игру). Я в таких случаях предпочитаю не навешивать лишние async await.
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Все, что я пытался доказать, что не в requestAnimDict дело, если бы оно у меня не выполнялось, то анимка бы не работала вообще, не важно, при streamIn или нет.
 

mippoosedev

Гуру
2 Мар 2021
294
139
100
Посмотреть вложение 4425

(Спойлер) Поставь хоть 500000, код, который следует после Test(); не выполнится до тех пор, пока void Test() не закончит свою работу.
Та разница, которую ты описал про async, мол, что если у человека медленный комп, имеет смысл, просто в данном случае дело в том, что анимки подгружаются пиздец как быстро на любом железе (тем более, если оно смогло запустить саму игру). Я в таких случаях предпочитаю не навешивать лишние async await.
Свой скрин скинул выше, у меня это работает так, как я описал выше. Энивей, лучше возвращать конечно булеан, мало ли будет какая либо ошибка
 

mippoosedev

Гуру
2 Мар 2021
294
139
100
Все, что я пытался доказать, что не в requestAnimDict дело, если бы оно у меня не выполнялось, то анимка бы не работала вообще, не важно, при streamIn или нет.
Та это итак понятно, делей тут лучший выход. Только при телепортации будет выглядеть странно, т.к анимка начнётся через этот делей)
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
P.S Даже протестил. Мб от каких то "секретных" настроек проекта это конечно зависит, но очень в этом сомневаюсь. Не знаю почему и как это работает с войдом, но если он долго выполняется - он будто пропускает дальнейший код

P.S.S Код с спавном машинок выполняется гдет 600мс
Посмотреть вложение 4423Посмотреть вложение 4424
Да, именно так. Но requestAnimDict работает мгновенно. Поэтому так и происходит и поэтому я не навешиваю async await туда, оно и без него работает и будет работать
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Та это итак понятно, делей тут лучший выход. Только при телепортации будет выглядеть странно, т.к анимка начнётся через этот делей)
Ну, делей 2.5 сек, но что поделать, я тестил это много раз, и с анимкой и с аттачем происходит то же самое без делея при streamIn. Потому это лучший выход, который я смог найти.
На 5 рп этот баг, например, не исправлен, поэтому можно ездить по карте и встретить оружие в воздухе, которое так то должно быть на спине у игрока, но аттач не сработал, т.к. делея не было и оно остается в воздухе висеть
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Все дебилы, а я Д'Артаньян.
Дружище, кто тебе говорит, что ты дебил? У меня подгорело лишь с того, что ты не мог понять, что дело не в requestAnimDict, я тебе пытался донести, что абсолютно такое же поведение и при аттаче, что это вообще не причина этой проблемы
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
Свой скрин скинул выше, у меня это работает так, как я описал выше. Энивей, лучше возвращать конечно булеан, мало ли будет какая либо ошибка
Возможно на случай ошибки такой сделаю с ожиданием возвратом булеана. Просто мою проблему это не пофиксит, проблема на уровне игры со streamIn и попытке применить аттач/анимку мгновенно при streamIn
 

frytech

Начинающий специалист
Автор темы
15 Янв 2022
128
17
53
P.S Даже протестил. Мб от каких то "секретных" настроек проекта это конечно зависит, но очень в этом сомневаюсь. Не знаю почему и как это работает с войдом, но если он долго выполняется - он будто пропускает дальнейший код

P.S.S Код с спавном машинок выполняется гдет 600мс
Посмотреть вложение 4423Посмотреть вложение 4424
1656245984778.png


Хмм, странно. Я вот решил проверить на длительность и несколько раз запустил этот код (выполняется секунд 5). Все происходит логично, не продолжает свою работу, пока не завершит Test()