• Из-за обновления 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) последний раз были обновлены:

Вопрос Анимация рукопожатия для игроков напротив друг друга

chertx

Новый участник
4 Мар 2024
49
1
10
как заставить двух игроков проиграть анимацию пожимания рук друг другу (чтобы они как бы повернулись друг к другу и пожали руки) (типа познакомились)?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,490
239
100
Для того, чтобы заставить двух игроков анимированно пожать друг другу руки, вам нужно создать соответствующую анимацию в игровом движке или среде разработки. Вам понадобится определить точки начала и конца анимации для каждого игрока, определить правильные углы поворота и координаты для достижения желаемого эффекта. Создайте необходимую анимацию и привяжите ее к действию взаимного приветствия или пожатия рук в вашей игре.
 
  • Wow
Реакции: FireFeed

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,458
867
181
34
1. Получаем поворот игроков через функцию
Код:
entity.getHeading();
2. Прибавляем полученные цифры и делим на 2
3. Поворачиваем первого игрока на полученное число функцией
Код:
entity.setHeading(heading);
4. Поворачиваем второго игрока на -(минус) полученное число функцией
Код:
entity.setHeading(heading);
5. Проигрываем анимациии для первого и второго игрока функцией
Код:
player.playAnimation();



IJmr9mr - Imgur.png
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,458
867
181
34
Отмена. Формула не верна.
Screenshot_10.png
 

chertx

Новый участник
4 Мар 2024
49
1
10
1. Получаем поворот игроков через функцию
Код:
entity.getHeading();
2. Прибавляем полученные цифры и делим на 2
3. Поворачиваем первого игрока на полученное число функцией
Код:
entity.setHeading(heading);
4. Поворачиваем второго игрока на -(минус) полученное число функцией
Код:
entity.setHeading(heading);
5. Проигрываем анимациии для первого и второго игрока функцией
Код:
player.playAnimation();



Посмотреть вложение 13022
есть какой-то способ чтобы легче найти нужную анимацию? просто на вики их уйма, а перебирать каждую по моему будет слишком долго
 
Реакции: Harland David Sanders

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,458
867
181
34
Реакции: chertx

Wair

Начинающий специалист
26 Ноя 2020
289
45
95
Реакции: LIAS1N, enotit и chertx

enotit

Высший разум
High developer
BackEnd developer
13 Ноя 2020
1,676
537
187
22
Реакции: Vermilion

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,000
1,733
211
28
Супер простой запрос в ChatGPT и небольшая корректировка его кода - вуа-ля, у тебя готовый скрипт.
При нормальном составлении запроса - выдаёт вполне жизнеспособный код, который достаточно лишь немного подкорректировать самостоятельно, при чём в каких моментах - очевидно.

JavaScript:
function normalizeHeading(heading)
{
    if (heading > 180) return heading - 360;
    else if (heading < -180) return heading + 360;
    return heading;
}

function alignEntities(entity1, entity2)
{
    const heading1 = entity1.getHeading();
    const heading2 = entity2.getHeading();
    const headingDifference = heading2 - heading1;
    const alignedHeading1 = heading1 + headingDifference / 2;
    const alignedHeading2 = heading2 - headingDifference / 2;
    const correctedHeading1 = normalizeHeading(alignedHeading1);
    const correctedHeading2 = normalizeHeading(alignedHeading2);
    entity1.setRotation(0, 0, correctedHeading1, 2, true);
    entity2.setRotation(0, 0, correctedHeading2, 2, true);
}

! Нет, я не проверял, но выглядит легитимно.
 
  • RoflanEbalo
Реакции: Harland David Sanders

youngBeaver

Покинул форум.
BackEnd developer
24 Янв 2023
1,202
469
171
есть какой-то способ чтобы легче найти нужную анимацию? просто на вики их уйма, а перебирать каждую по моему будет слишком долго
upd: Лично я открываю поиск в игре и по ключевому слову нахожу, по типу "die, talking".
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,699
2,902
219
Анимации для рукопожатий (две разных анимации):
  • Первому игроку - mp_ped_interaction - handshake_guy_a
  • Игроку напротив - mp_ped_interaction - handshake_guy_b

  • Первому игроку - mp_ped_interaction - highfive_guy_a
  • Игроку напротив - mp_ped_interaction - highfive_guy_b
 
Последнее редактирование:

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,699
2,902
219
Функция повернуть игроков друг напротив друга (Client):

JavaScript:
player.clearTasks();
player1.clearTasks();

player.taskTurnToFace(player1.handle, -1);
player1.taskTurnToFace(player.handle, -1);

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

WIKI - https://wiki.rage.mp/index.php?title=Player::taskTurnToFace
 

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Функция повернуть игроков друг напротив друга (Client):

JavaScript:
player.clearTasks();
player1.clearTasks();

player.taskTurnToFace(player1.handle, -1);
player1.taskTurnToFace(player.handle, -1);

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

WIKI - https://wiki.rage.mp/index.php?title=Player::taskTurnToFace
Папа зашел и порешал
 
  • RoflanEbalo
Реакции: fivepkost

Tomashino

Новый участник
18 Авг 2023
27
2
40
Синхра меня убивает. Точнее отсутсвие моих знаний в RAGE.
Если есть у кого-то ресурсы, что бы почитать, буду рад.
 

enotit

Высший разум
High developer
BackEnd developer
13 Ноя 2020
1,676
537
187
22

Swayze

Начинающий специалист
BackEnd developer
6 Окт 2022
78
64
75
всм? wiki.rage.mp? или о чём ты
Он мануал просит скинуть как синхру писать и т.д.

Синхра меня убивает. Точнее отсутсвие моих знаний в RAGE.
Если есть у кого-то ресурсы, что бы почитать, буду рад.
Тебе по хорошему надо отправить ивент на клиент в радиусе(mp.players.callInRange), в клиенте ты определяешь игрока и задаешь ему анимку. Соответственно выглядить это должно примерно так

Server:
JavaScript:
mp.players.callInRange(player.position, 100, 'eventName', [player1.id, player2.id]);

Client:
JavaScript:
mp.events.add('eventName', (player1Id, player2Id) => {
    const player1 = mp.players.atRemoteId(player1Id);
    const player2 = mp.players.atRemoteId(player2Id);

    //Ну и дальше че там выше писали
})


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



p.s. На нейминг не обращайте внимания.
 
Реакции: Justin_Games

Tomashino

Новый участник
18 Авг 2023
27
2
40
Он мануал просит скинуть как синхру писать и т.д.


Тебе по хорошему надо отправить ивент на клиент в радиусе(mp.players.callInRange), в клиенте ты определяешь игрока и задаешь ему анимку. Соответственно выглядить это должно примерно так

Server:
JavaScript:
mp.players.callInRange(player.position, 100, 'eventName', [player1.id, player2.id]);

Client:
JavaScript:
mp.events.add('eventName', (player1Id, player2Id) => {
    const player1 = mp.players.atRemoteId(player1Id);
    const player2 = mp.players.atRemoteId(player2Id);

    //Ну и дальше че там выше писали
})


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



p.s. На нейминг не обращайте внимания.
Спасибо! Дай свой ДС пожалуйста!
Возможно буду нуждатся в оплачеваемых консультациях/помощи!
 

Similar threads