Что нового

C# Команда /veh (upgrade)

X_Fudo4ka_X 0

X_Fudo4ka_X

Ветеран
Улучшенная мною команда /veh для redage, убрал лишние части кода, добавил создание номерного знака + выдачу по id
C#:
[Command("veh")]
        public static void CMD_createVehicle(Player player, VehicleHash vehicleHash, int color1, int color2, string platenumber)
        {
            try
            {
                Vector3 PlayerPos = NAPI.Entity.GetEntityPosition(player);
                Vehicle myveh1 = NAPI.Vehicle.CreateVehicle(vehicleHash, new Vector3(PlayerPos.X + 1f, PlayerPos.Y + 2f, PlayerPos.Z + 1f), 10f, color1, color2, platenumber);
                NAPI.Vehicle.SetVehicleNeonState(myveh1, true);
                NAPI.Vehicle.SetVehicleNeonColor(myveh1, 255, 0, 0);
                NAPI.Player.SetPlayerIntoVehicle(player, myveh1, 0);
                NAPI.Chat.SendChatMessageToPlayer(player, $"Игрок: {player.Name} | Заспавнил авто: {vehicleHash}");
            }
            catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); }
        }
 
Улучшенная мною команда /veh для redage, убрал лишние части кода, добавил создание номерного знака + выдачу по id
C#:
[Command("veh")]
        public static void CMD_createVehicle(Player player, VehicleHash vehicleHash, int color1, int color2, string platenumber)
        {
            try
            {
                Vector3 PlayerPos = NAPI.Entity.GetEntityPosition(player);
                Vehicle myveh1 = NAPI.Vehicle.CreateVehicle(vehicleHash, new Vector3(PlayerPos.X + 1f, PlayerPos.Y + 2f, PlayerPos.Z + 1f), 10f, color1, color2, platenumber);
                NAPI.Vehicle.SetVehicleNeonState(myveh1, true);
                NAPI.Vehicle.SetVehicleNeonColor(myveh1, 255, 0, 0);
                NAPI.Player.SetPlayerIntoVehicle(player, myveh1, 0);
                NAPI.Chat.SendChatMessageToPlayer(player, $"Игрок: {player.Name} | Заспавнил авто: {vehicleHash}");
            }
            catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); }
        }
Идея для такой команды послужил сервер Majestic RolePlay(Буду еще делать команды оттуда)
 
Улучшенная мною команда /veh для redage, убрал лишние части кода, добавил создание номерного знака + выдачу по id
C#:
[Command("veh")]
        public static void CMD_createVehicle(Player player, VehicleHash vehicleHash, int color1, int color2, string platenumber)
        {
            try
            {
                Vector3 PlayerPos = NAPI.Entity.GetEntityPosition(player);
                Vehicle myveh1 = NAPI.Vehicle.CreateVehicle(vehicleHash, new Vector3(PlayerPos.X + 1f, PlayerPos.Y + 2f, PlayerPos.Z + 1f), 10f, color1, color2, platenumber);
                NAPI.Vehicle.SetVehicleNeonState(myveh1, true);
                NAPI.Vehicle.SetVehicleNeonColor(myveh1, 255, 0, 0);
                NAPI.Player.SetPlayerIntoVehicle(player, myveh1, 0);
                NAPI.Chat.SendChatMessageToPlayer(player, $"Игрок: {player.Name} | Заспавнил авто: {vehicleHash}");
            }
            catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); }
        }
Альтернатива на JavaScript
Спасибо - Madaro4ka
JavaScript:
mp.events.addCommand('veh', (player, _, id, veh, color1, color2) => {
    if(player.admin < 1)
        return player.outputChatBox("<SERVER> У вас нет доступа к этой команде!");
    
    if (!id || !veh)
        return player.outputChatBox('/veh [id] [model] [color1] [color2]');
    
    const target = mp.players.at(id);
    if (!target)
        return player.notify('~r~ID игрока не найден!');
    
    const pos = target.position;
    const adminVeh = mp.vehicles.new(mp.joaat(veh), new mp.Vector3(pos.x + 2, pos.y, pos.z));
    adminVeh.setColor(parseInt(color1), parseInt(color2));
    adminVeh.numberPlate = "SWG RP";  //Номер машины
    
    player.dim = player.id;
    setTimeout(() => target.putIntoVehicle(adminVeh, 0) , 150)
    player.notify('~g~ Заспавенно!');
})
 
Улучшенная мною команда /veh для redage, убрал лишние части кода, добавил создание номерного знака + выдачу по id
C#:
[Command("veh")]
        public static void CMD_createVehicle(Player player, VehicleHash vehicleHash, int color1, int color2, string platenumber)
        {
            try
            {
                Vector3 PlayerPos = NAPI.Entity.GetEntityPosition(player);
                Vehicle myveh1 = NAPI.Vehicle.CreateVehicle(vehicleHash, new Vector3(PlayerPos.X + 1f, PlayerPos.Y + 2f, PlayerPos.Z + 1f), 10f, color1, color2, platenumber);
                NAPI.Vehicle.SetVehicleNeonState(myveh1, true);
                NAPI.Vehicle.SetVehicleNeonColor(myveh1, 255, 0, 0);
                NAPI.Player.SetPlayerIntoVehicle(player, myveh1, 0);
                NAPI.Chat.SendChatMessageToPlayer(player, $"Игрок: {player.Name} | Заспавнил авто: {vehicleHash}");
            }
            catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); }
        }
upd

C#:
[Command("veh")]
        public static void CMD_createVehicle(Player player, string name = "buffalo", int a = 0, int b = 0,  string number = "admin" )
        {
            try
            {
                if (player == null || !Main.Players.ContainsKey(player)) return;
                if (!Group.CanUseCmd(player, "veh")) return;
                VehicleHash vh = (VehicleHash)NAPI.Util.GetHashKey(name);
                if (vh == 0)
                {
                    player.SendChatMessage("vh return");
                    return;
                }
                var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);
                veh.Dimension = player.Dimension;
                veh.PrimaryColor = a;
                veh.SecondaryColor = b;
                veh.NumberPlate = number;
                veh.Health = 1000;
                veh.SetData("ACCESS", "ADMIN");
                veh.SetData("BY", player.Name);
                VehicleStreaming.SetEngineState(veh, true);
                player.SetIntoVehicle(veh, 0);
                NAPI.Chat.SendChatMessageToPlayer(player, $"Diamond: {player.Name} | Заспавнил авто: {vh}");


            }
            catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); }
        }
Адаптировал под RedAge 1.1 , до этого был только на простой C# (с 0)
 
сделай команду для удаления домов и гаражей. в RedAge 1.1 нет таковой.
 
UPD от меня, удаляете команду veh и vehp
и вставляйте эту команду(с этой командой можно спавнить авто со своим номерным знаком)
[Command("veh")] public static void CMD_createVehicle(Player player, string platenumber, VehicleHash vehicleHash, int color1 = 0, int color2 = 0) { if (platenumber is null) { throw new ArgumentNullException(nameof(platenumber)); } try { if (player == null || !Main.Players.ContainsKey(player)) return; if (!Group.CanUseCmd(player, "veh")) return; if (vehicleHash == 0) { player.SendChatMessage("vehicleHash return"); return; } var veh = NAPI.Vehicle.CreateVehicle(vehicleHash, player.Position, player.Rotation.Z, 0, 0, platenumber); veh.Dimension = player.Dimension; veh.PrimaryColor = color1; veh.SecondaryColor = color2; veh.Health = 1000; veh.SetData("ACCESS", "ADMIN"); veh.SetData("BY", player.Name); VehicleStreaming.SetEngineState(veh, true); player.SetIntoVehicle(veh, 0); GameLog.Admin($"{player.Name}", $"vehCreate({vehicleHash})", $""); } catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); } }
 
Цвет не обязателен(он по стандарту черный)
1636987162645.png
1636987195388.png
1636987230549.png
 
upd

C#:
[Command("veh")]
        public static void CMD_createVehicle(Player player, string name = "buffalo", int a = 0, int b = 0,  string number = "admin" )
        {
            try
            {
                if (player == null || !Main.Players.ContainsKey(player)) return;
                if (!Group.CanUseCmd(player, "veh")) return;
                VehicleHash vh = (VehicleHash)NAPI.Util.GetHashKey(name);
                if (vh == 0)
                {
                    player.SendChatMessage("vh return");
                    return;
                }
                var veh = NAPI.Vehicle.CreateVehicle(vh, player.Position, player.Rotation.Z, 0, 0);
                veh.Dimension = player.Dimension;
                veh.PrimaryColor = a;
                veh.SecondaryColor = b;
                veh.NumberPlate = number;
                veh.Health = 1000;
                veh.SetData("ACCESS", "ADMIN");
                veh.SetData("BY", player.Name);
                VehicleStreaming.SetEngineState(veh, true);
                player.SetIntoVehicle(veh, 0);
                NAPI.Chat.SendChatMessageToPlayer(player, $"Diamond: {player.Name} | Заспавнил авто: {vh}");


            }
            catch (Exception e) { Log.Write("EXCEPTION AT \"CMD_veh\":\n" + e.ToString(), nLog.Type.Error); }
        }
Адаптировал под RedAge 1.1 , до этого был только на простой C# (с 0)
а это обычная команда на сборке golemo-mode)))
 
Усложнил, но заработало всё, а то у меня после спавна машина даже не заводилась( не заводилась с твоим кодом)
 
Усложнил, но заработало всё, а то у меня после спавна машина даже не заводилась( не заводилась с твоим кодом)
хз, у меня работала, давний фикс за него ничего не говорю, если бы ты взял 1ую версию( для чистого C#) то я бы ответил, а так не могу ничего гарантировать, работает и работает
 
Назад
Верх