Иконка ресурса

FREE RocketGun : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("RocketGun", "begemonzazbat", "1.0.0")]
    [Description("Стрельба ракетами")]
    public class RocketGun : RustPlugin
    {
        private readonly HashSet<ulong> rocketGunPlayers = new HashSet<ulong>();

        private void Init()
        {
            permission.RegisterPermission("rocketgun.use", this);
        }

        private BasePlayer FindPlayer(string nameOrId)
        {
            ulong steamId;
            if (ulong.TryParse(nameOrId, out steamId))
            {
                return BasePlayer.FindByID(steamId);
            }

            // Если не SteamID, ищем по нику
            return BasePlayer.Find(nameOrId);
        }

        [ChatCommand("rocketgun")]
        private void CmdRocketGun(BasePlayer player, string command, string[] args)
        {
            if (!permission.UserHasPermission(player.UserIDString, "rocketgun.use"))
            {
                player.ChatMessage("У вас нет прав на использование этой команды!");
                return;
            }

            if (args.Length != 1)
            {
                player.ChatMessage("Использование: /rocketgun <ник/steamid>");
                return;
            }

            BasePlayer targetPlayer = FindPlayer(args[0]);
            if (targetPlayer == null)
            {
                player.ChatMessage("Игрок не найден!");
                return;
            }

            bool wasRemoved = rocketGunPlayers.Remove(targetPlayer.userID);
            if (wasRemoved)
            {
                targetPlayer.ChatMessage("Режим RocketGun выключен!");
                player.ChatMessage(
                    $"Режим RocketGun выключен для игрока {targetPlayer.displayName} [{targetPlayer.userID}]!"
                );
            }
            else
            {
                rocketGunPlayers.Add(targetPlayer.userID);
                targetPlayer.ChatMessage(
                    "Режим RocketGun включен! Теперь ваше оружие стреляет ракетами!"
                );
                player.ChatMessage(
                    $"Режим RocketGun включен для игрока {targetPlayer.displayName} [{targetPlayer.userID}]!"
                );
            }
        }

        private void OnPlayerAttack(BasePlayer attacker, HitInfo info)
        {
            if (attacker == null || info == null || info.Weapon == null)
            {
                return;
            }

            if (rocketGunPlayers.Contains(attacker.userID))
            {
                Vector3 position = info.HitPositionWorld;
                if (position == default(Vector3))
                {
                    position =
                        info.PointStart + ((info.PointEnd - info.PointStart).normalized * 100f);
                }

                BaseEntity rocket = GameManager.server.CreateEntity(
                    "assets/prefabs/ammo/rocket/rocket_basic.prefab",
                    position
                );

                if (rocket == null)
                {
                    return;
                }

                rocket.SetVelocity(info.ProjectileVelocity);
                rocket.Spawn();
            }
        }

        private void OnPlayerDisconnected(BasePlayer player)
        {
            if (player == null)
            {
                return;
            }

            rocketGunPlayers.Remove(player.userID);
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху