• Из-за обновления 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 RP / NeptuneEvo (RAGE:MP 1.1)

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,058
2,443
219
1. Заходим в Inventory.cs
ищем case ItemType.BodyArmor и заменяем на это:

C#:
case ItemType.BodyArmor:
{
    if (item.IsActive)
    {
        item.Data = player.Armor.ToString();
        player.Armor = 0;
        player.ResetSharedData("HASARMOR");
        Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Variation = 0;
        Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture = 0;
        player.SetClothes(9, Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Variation, Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture);
        nInventory.Items[UUID][index].IsActive = false;
        GUI.Dashboard.Update(player, item, index);
    }
    else
    {
        var armor = Convert.ToInt32((string)item.Data);
        player.Armor = armor;
        player.SetSharedData("HASARMOR", true);
        switch (Fractions.Manager.FractionTypes[Main.Players[player].FractionID])
        {
            case -1:
            case 1:
                Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture = 2;
                break;
            case 0:
                Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture = 0;
                break;
            case 2:
                Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture = 1;
                break;
            default:
                Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture = 1;
                break;

        }
        Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Variation = 12;
        player.SetClothes(9, Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Variation, Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture);
        nInventory.UnActiveItem(player, item.Type);
        nInventory.Items[UUID][index].IsActive = true;
        GUI.Dashboard.Update(player, item, index);
    }
    return;
}

2. заходим в Main.cs
Ищем [RemoteEvent("deletearmor")] и заменяем на это:


C#:
[RemoteEvent("deletearmor")]
public void ClientEvent_DeleteArmor(Client player)
{
try
{
if (player.Armor == 0)
{
nItem aItem = nInventory.Find(Main.Players[player].UUID, ItemType.BodyArmor);
if (aItem == null || aItem.IsActive == false) return;
nInventory.Remove(player, ItemType.BodyArmor, 1);
Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Variation = 0;
Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture = 0;
player.SetClothes(9, Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Variation, Customization.CustomPlayerData[Main.Players[player].UUID].Clothes.Bodyarmor.Texture);

player.ResetSharedData("HASARMOR");
}
}
catch (Exception e) { Log.Write("deletearmor: " + e.Message, nLog.Type.Error); }
}

3. Заходим в Commands.cs
В любом месте между командами добавляем новую комманду:


C#:
[Command("armorelp")]
        public static void CMD_armorelp(Player player, int id)
        {
            try
            {
                if (!Group.CanUseCmd(player, "armorelp")) return;
                Player target = Main.GetPlayerByID(id);
                if (target == null)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Игрок с таким ID не найден", 3000);
                    return;
                }
                target.StopAnimation();
                NAPI.Entity.SetEntityPosition(target, target.Position + new Vector3(0, 0, 0.5));
                target.SetSharedData("InDeath", false);
                Trigger.ClientEvent(target, "DeathTimer", false);
                target.Health = 100;
                target.ResetData("IS_DYING");
                Main.Players[target].IsAlive = true;
                Main.OffAntiAnim(target);
                if (target.HasData("DYING_TIMER"))
                {
                    Timers.Stop(target.GetData<string>("DYING_TIMER"));
                    target.ResetData("DYING_TIMER");
                }
                Notify.Send(target, NotifyType.Info, NotifyPosition.BottomCenter, $"Игрок ({player.Value}) реанимировал Вас", 3000);
                Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы реанимировали игрока ({target.Value})", 3000);

                if (target.HasData("CALLEMS_BLIP"))
                {
                    NAPI.Entity.DeleteEntity(target.GetData<Entity>("CALLEMS_BLIP"));
                }
                if (target.HasData("CALLEMS_COL"))
                {
                    NAPI.ColShape.DeleteColShape(target.GetData<ColShape>("CALLEMS_COL"));
                }
            }
            catch
            {

            }

        }


4. Заходим в FractionManager.cs


Ищем public static bool canUseCommand и добавляем ниже это :

if (Main.Players[player].AdminLVL > 0) return true;


5. Заходим в Character.cs

Ищем player.SetData("RESIST_TIME", 0); и добавляем ниже это :

player.SetSharedData("ALVL", AdminLVL);

6. Заходим в базу переходим в adminaccess и добавляем таблицу

Minirank пишем 7
command пишем armorelp
isaadmin пишем 1
idkey смотрите по последнему числу, если там допустип последняя команда 30 то пишем 31
 

Agressor

Специалист
27 Окт 2020
373
54
93
Скрин нет?
 

OGPRussia

Специалист
7 Окт 2020
132
36
85
Как сделать, что бы отображалось в линии жизни информация о бронежилете (сколько осталось), как например как отображается информация о остатке воздуха когда ты плаваешь под водой?
1607728142998.png
 

skyElmax

Специалист
high coder
15 Сен 2020
151
96
85

Tertiy

Начинающий специалист
1 Ноя 2020
37
11
45
Добрый день!делал как написано,но что то пошло не так
123.jpg

подскажите что именно.Спасибо
 

Вложения

  • 123.jpg
    123.jpg
    100.1 KB · Просмотры: 274

DaVilka

Гуру
16 Сен 2020
589
223
108

DaVilka

Гуру
16 Сен 2020
589
223
108

PERS

Активный участник
14 Сен 2020
113
10
37
Парни вики на 1.1 еще не выпущена, по этому лучше задавайте, вам будут отвечать под 1.1 что то.

Отвечу что сам знаю, но я больше по дизайну )
 

DaVilka

Гуру
16 Сен 2020
589
223
108
И что какая разница? Player для 1,1 Client для 0,3,7 и что! Автор создал тему! А уже читатели его пусть сами делают как надо им!
Разница в том что если если это мануал то он должен работать, а если было бы десяток версий рейджа, то что, можно через слово пихать функции из всех версий?
 

VadimMan

Начинающий специалист
17 Дек 2020
48
11
65
Всё отлично работает! Благодаою за скрипт. Но есть один вопрос как задать цвет для бронежелетов банд?