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

Проблема КЛИЕНТСКИЕ ОБЪЕКТЫ

BooyaK

Новый участник
20 Янв 2022
22
2
47
Я хотел бы настроить этот скрипт [бросание предмета на землю] для запуска на стороне клиента, чтобы я мог, по крайней мере, расположить предмет так, чтобы он не сталкивался с землей, и иметь возможность исправить вращение, потому что это ломает. Может кто-нибудь помочь с этим? :(
Bez tytułu.png


KOD:
C#:
```       public void DropItem(Character charData)
        {
            if (!CheckOwner(charData))
            {
                charData.SendError("Przedmiot nie należy do Ciebie.");
                charData.ShowItemUi(true, false);
                return;
            }

            if (ItemData.Used)
            {
                charData.SendError("Przedmiot nie może być używany.");
                charData.ShowItemUi(true, false);
                return;
            }

            if (charData.PlayerHandle.IsInVehicle)
            {
                Vehicle vehData = Features.Vehicles.Library.GetVehicleData(charData.PlayerHandle.Vehicle);
                if (vehData == null) throw new NotImplementedException();

                ItemData.Owner = vehData.Id;
                ItemData.OwnerType = OwnerType.Vehicle;

                charData.SendActionMessage("odkłada coś w pojeździe.", true);
                SaveItem();
                charData.ShowItemUi(true, false);
            }
            else
            {
                ItemData.Owner = 0;
                ItemData.OwnerType = 0;
                ItemData.X = charData.PlayerHandle.Position.X;
                ItemData.Y = charData.PlayerHandle.Position.Y;
                ItemData.Z = charData.PlayerHandle.Position.Z;
                ItemData.Dimension = (int) charData.PlayerHandle.Dimension;
                ItemData.RotZ = charData.PlayerHandle.Heading;

                charData.SendActionMessage("coś odkłada.", true);

                MakeItemOnGround();

                charData.ShowItemUi(true, false);
            }
        }
        public void MakeItemOnGround()
        {
            ItemData.ObjectHandle = NAPI.Object.CreateObject(
                Dropable.GetHashFromItem(ItemData.Type, ItemData.Value1),
                Position,
                new Vector3(0, 0, ItemData.RotZ),
                255,
                (uint)Dimension
            );

            SaveItem();
        }```
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,490
239
100
Ten skrypt możesz przenieść po stronie klienta, ale musisz pamiętać, że operacje serwera muszą być odpowiednio zsynchronizowane, aby zapobiec oszustwom. Aby przenieść go po stronie klienta, możesz użyć funkcji klienta, takiej jak TriggerServerEvent, aby wywołać odpowiednią funkcję po stronie serwera. Na przykład, możesz stworzyć funkcję klienta, która wywołuje funkcję serwera "dropItem" i przekazuje odpowiednie parametry. Następnie, po stronie serwera, umieścić kod zawarty w funkcji "DropItem" wraz z odpowiednimi zmianami, takimi jak dodanie safe checków i kontroli synchronizacji.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,227
2,081
208
35
Можно было бы наверное взять абсолютно любую готовую сборку из ресурсов и посмотреть, как там реализовано выкидывание объекта на землю, например
Но вообще я не очень понял проблемы
Наверное, чтобы объект не проваливался под землю - его Z координата должна быть немного выше?
Ну типа когда ты используешь PlayerHandle.Position.Z - он и спавнится по центру Z координаты плеера, которая примерно на середине модельки перонажа

Итемы не "складываются" сами на уровень земли, они там, куда ты их поставил
Они смотрят туда, куда смотришь ты, потому что у тебя так написано
Код:
ItemData.RotZ = charData.PlayerHandle.Heading;
 
Последнее редактирование:

Similar threads