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

Мануал Добавляем анимацию "телефон в руке" - мод RedAge RolePlay (NeptuneEvo)

2pac

Профессиональный клоун
Автор темы
14 Сен 2020
152
88
89
В данном гайде я восстановлю тему которую делал Harland до слета БД, по просьбе челиков в чате.

Странно что он не восстановил ее сам🙃.

Приступим:

1. Открываем NeptuneEvo\GUI\Menu.cs.
2. Ищем по файлу (ctrl+f) строчку public static void Open(Client client, Menu menu, bool force = false).
(В данной функции игроку показывается телефон, сюда нам и нужно добавить сам телефон в руку и использовать анимацию на игрока.)
3. После строчки Trigger.ClientEvent(client, "phoneOpen", data); добавляем новые строчки:
C#:
Main.OnAntiAnim(client);
client.PlayAnimation("anim@cellphone@in_car@ds", "cellphone_text_read_base", 49); // Анимация взгляда в телефон для персонажа
Core.BasicSync.AttachObjectToPlayer(client, NAPI.Util.GetHashKey("prop_amb_phone"), 6286, new Vector3(0.06, 0.01, -0.02), new Vector3(80, -10, 110)); // Привязываем объект к руке
(Тут думаю все понятно, первая строчка - сама анимация телефона в руке, вторая - создаем объект телефона в руке у игрока на определенных координатах.)
4. Но это еще не все, в том же файле чуть ниже находим строчку public static async Task OpenAsync(Client client, Menu menu, bool force = false) и добавляем туда такие же строчки анимации и объекта в руке. Все тоже самое, только функция другая.
5. Мы уже на половине пути... Осталось убрать анимацию и объект из руки персонажа в момент закрытия телефона. В том же файле находим строчку public static void Close(Client client, bool hidePhone = true) и после строки Trigger.ClientEvent(client, "phoneClose"); добавляем этот код:
C#:
if (!client.IsInVehicle) client.StopAnimation();

client.ResetData("AntiAnimDown");
if (client.IsInVehicle) client.SetData("ToResetAnimPhone", true);

Core.BasicSync.DetachObject(client);
6.Также ниже находим строчку public static async Task CloseAsync(Client client, bool hidePhone = true) и добавляем туда такие же строчки удаления анимации и объекта телефона из рук.


В итоге, если вы сделали все верно, должно получиться вот так:
1. Достаем телефон
C#:
public static void Open(Client client, Menu menu, bool force = false)
        {
            try
            {
                if (Menus.ContainsKey(client.Handle))
                {
                    Log.Debug($"Client already have opened Menu! id:{Menus[client.Handle].ID}", nLog.Type.Warn);
                    if (!force) return;
                    Menus.Remove(client.Handle);
                }
                Menus.Add(client.Handle, menu);

                //string data = JsonConvert.SerializeObject(menu);
                string data = menu.getJsonStr();

                if (!client.HasData("Phone"))
                {
                    Trigger.ClientEvent(client, "phoneShow");
                    client.SetData("Phone", true);
                }
                Trigger.ClientEvent(client, "phoneOpen", data);
                Main.OnAntiAnim(client);
                client.PlayAnimation("anim@cellphone@in_car@ds", "cellphone_text_read_base", 49);
                Core.BasicSync.AttachObjectToPlayer(client, NAPI.Util.GetHashKey("prop_amb_phone"), 6286, new Vector3(0.06, 0.01, -0.02), new Vector3(80, -10, 110));
            } catch(Exception e)
            {
                Log.Write("EXCEPTION AT \"MENUCONTROL_OPEN\":\n" + e.ToString(), nLog.Type.Error);
            }
        }

2. Убираем телефон
C#:
public static void Close(Client client, bool hidePhone = true)
        {
            try
            {
                if (Menus.ContainsKey(client.Handle))
                    Menus.Remove(client.Handle);
                if (hidePhone)
                {
                    Trigger.ClientEvent(client, "phoneHide");
                    client.ResetData("Phone");
                }
                Trigger.ClientEvent(client, "phoneClose");

                if (!client.IsInVehicle) client.StopAnimation();

                client.ResetData("AntiAnimDown");
                if (client.IsInVehicle) client.SetData("ToResetAnimPhone", true);

                Core.BasicSync.DetachObject(client);

            } catch (Exception e)
            {
                Log.Write("EXCEPTION AT \"MENUCONTROL_CLOSE\":\n" + e.ToString(), nLog.Type.Error);
            }
        }

В функции PlayAnimation в конце есть число 49, это флаги анимации.

Все флаги запуска анимации:
NORMAL = 0,
REPEAT = 1,
STOP_LAST_FRAME = 2,
UPPERBODY = 16,
ENABLE_PLAYER_CONTROL = 32,
CANCELABLE = 120,
Odd number : loop infinitely
Even number : Freeze at last frame
Multiple of 4: Freeze at last frame but controllable
01 to 15 : Full body
10 to 31 : Upper body
32 to 47 : Full body > Controllable
48 to 63 : Upper body > Controllable
001 to 255 : Normal
256 to 511 : Garbled

Список всех анимаций - Список всех анимаций GTA V (+ Animation Viewer). https://wiki.gtanet.work/index.php?title=Animations
Очень удобный ресурс для просмотра объектов в 3D - Список объектов с просмотром в 3D. https://mwojtasik.dev/tools/gtav/objects

Годная тема, думаю есть вам смысл отблагодарить Харланда активностью на форуме 🙃
 
Последнее редактирование модератором:

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,057
2,443
219
Это первая версия анимации, она обрывистая.
Есть новая версия она плавнее + есть анимка как убирается телефон.

Пару лайков на этот пост и выложу. :devilish:
 

2pac

Профессиональный клоун
Автор темы
14 Сен 2020
152
88
89
Это первая версия анимации, она обрывистая.
Есть новая версия она плавнее + есть анимка как убирается телефон.

Пару лайков на этот пост и выложу. :devilish:
Ну Давай, типы просили в чате я не просто же так сделал
 
  • Like
Реакции: Alquaonte

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,057
2,443
219
Плавная анимация телефона (only client):


JavaScript:
// Создаем телефон, достаем его и смотрим
mp.game.mobile.createMobilePhone(3);
mp.game.mobile.setMobilePhoneScale (0);
mp.game.mobile.scriptIsMovingMobilePhoneOffscreen(false);
mp.game.mobile.setPhoneLean(false);

JavaScript:
// Удаляем телефон
mp.game.invoke ('0x3BC861DF703E5097', mp.players.local.handle, true);
 
Последнее редактирование:

Crazy_Man

Участник портала
16 Сен 2020
24
3
22
Плавная анимация телефона (only client):


JavaScript:
// Создаем телефон, достаем его и смотрим
mp.game.mobile.createMobilePhone(3);
mp.game.mobile.setMobilePhoneScale (0);
mp.game.mobile.scriptIsMovingMobilePhoneOffscreen(false);
mp.game.mobile.setPhoneLean(false);

JavaScript:
// Удаляем телефон
mp.game.invoke ('0x3BC861DF703E5097', mp.players.local.handle, true);

Его куда забросить в index.js?
 

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,057
2,443
219

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,057
2,443
219

Crazy_Man

Участник портала
16 Сен 2020
24
3
22
Нет, в сервере не надо.
может немного не по этой теме, можешь подсказать я сменил стоимость поставки в Дальнобойщике с 2000к на 5000к а в телефоне заказ светиться за 2000к где его еще нужно изменить, я так понял в клиенткой базе где-то?!
 

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,057
2,443
219
может немного не по этой теме, можешь подсказать я сменил стоимость поставки в Дальнобойщике с 2000к на 5000к а в телефоне заказ светиться за 2000к где его еще нужно изменить, я так понял в клиенткой базе где-то?!
В базе данных.
 

Crazy_Man

Участник портала
16 Сен 2020
24
3
22
короче не работает этот новый телефон, а тот что 2pас выложил все норм
 
Последнее редактирование:

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,057
2,443
219

wearnings

Активный участник
12 Окт 2020
52
14
33
28
короче не работает этот новый телефон, а тот что 2pас выложил все норм
// Достаем телефон и закрываем.
mp.keys.bind(Keys.VK_M, false, function () { // M key
// Создаем телефон, достаем его и смотрим
mp.game.mobile.createMobilePhone(3);
mp.game.mobile.setMobilePhoneScale (0);
mp.game.mobile.scriptIsMovingMobilePhoneOffscreen(false);
mp.game.mobile.setPhoneLean(false);
// Удаляем телефон
mp.game.invoke ('0x3BC861DF703E5097', mp.players.local.handle, true);
if (!loggedin || chatActive || editing || global.menuCheck() || cuffed || localplayer.getVariable('InDeath') == true) return;
mp.events.callRemote('openPlayerMenu');
lastCheck = new Date().getTime();
});
 

Crazy_Man

Участник портала
16 Сен 2020
24
3
22
// Достаем телефон и закрываем.
mp.keys.bind(Keys.VK_M, false, function () { // M key
// Создаем телефон, достаем его и смотрим
mp.game.mobile.createMobilePhone(3);
mp.game.mobile.setMobilePhoneScale (0);
mp.game.mobile.scriptIsMovingMobilePhoneOffscreen(false);
mp.game.mobile.setPhoneLean(false);
// Удаляем телефон
mp.game.invoke ('0x3BC861DF703E5097', mp.players.local.handle, true);
if (!loggedin || chatActive || editing || global.menuCheck() || cuffed || localplayer.getVariable('InDeath') == true) return;
mp.events.callRemote('openPlayerMenu');
lastCheck = new Date().getTime();
});
если бы ты указал путь куда забросить было бы норм, а то я себе закинул и не фуричит
 

Etader

Специалист
15 Сен 2020
130
23
82
там косяк в авто если достаешь-он едит с поднятой рукой
 
  • Like
Реакции: Supreme