Мануал Добавляем визуальное отображение бронежилетов в сборку RedAge RP / NeptuneEvo (RAGE:MP 1.1)

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
10 Сен 2020
736
518
140
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
 
  • Like
Реакции: Alonze и wirgy

CHungro

Начинающий специалист
27 Окт 2020
240
24
47
Скрин нет?
 

OGPRussia

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

skyElmax

Начинающий специалист
high coder
15 Сен 2020
123
62
57

Tertiy

Участник портала
1 Ноя 2020
16
0
13
Добрый день!делал как написано,но что то пошло не так
123.jpg

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

Вложения

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

PERS

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

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

DaVilka

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