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

FREE CopterGive : 1.0.0 1.0.0

Нет прав для скачивания
C#:
using System;
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using Facepunch;
namespace Oxide.Plugins {
    [Info("CopterGive", "wazzzup", "1.0.0")]
    [Description("CopterGive")]
    class CopterGive : RustPlugin {
        void OnEntityBuilt(Planner plan, GameObject obj) {
            var entity = obj.GetComponent<BaseEntity>();
            if (entity != null && entity.skinID == 2011086178) {
                BaseEntity copter = InstantiateEntity("assets/content/vehicles/minicopter/minicopter.entity.prefab", entity.transform.position);
                NextTick(() => {
                    entity?.Kill();
                }
                );
                copter.enableSaving = true;
                copter.Spawn();
            }
        }
        private BaseEntity InstantiateEntity(string type, Vector3 position) {
            var gameObject = Instantiate.GameObject(GameManager.server.FindPrefab(type), position, new Quaternion());
            gameObject.name = type;
            SceneManager.MoveGameObjectToScene(gameObject, Rust.Server.EntityScene);
            UnityEngine.Object.Destroy(gameObject.GetComponent<Spawnable>());
            if (!gameObject.activeSelf) gameObject.SetActive(true);
            BaseEntity component = gameObject.GetComponent<BaseEntity>();
            return component;
        }
        void OnServerInitialized() {
            cmd.AddConsoleCommand("givecopter", this, "cmdGiveCopter");
        }
        void cmdGiveCopter(ConsoleSystem.Arg arg) {
            var player = arg?.Player() ?? null;
            if (player?.net.connection.authLevel < 2) return;
            if (arg.Args == null || arg.Args.Length < 1) {
                SendReply(arg, "bad syntax");
                return;
            }
            BasePlayer targetPlayer = BasePlayer.Find(arg.Args[0]);
            if (targetPlayer == null) {
                SendReply(arg, "error player not found for give");
                return;
            }
            if (GiveCopter(targetPlayer)) {
                SendMsg(targetPlayer, "copter got");
            }
            else {
                SendMsg(targetPlayer, "inventory full");
            }
        }
        bool GiveCopter(ItemContainer container) {
            var item = ItemManager.CreateByName("box.repair.bench", 1, 2011086178);
            item.name = "Миникоптер";
            return item.MoveToContainer(container, -1, false);
        }
        bool GiveCopter(BasePlayer player) {
            var item = ItemManager.CreateByName("box.repair.bench", 1, 2011086178);
            item.name = "Миникоптер";
            if (!player.inventory.GiveItem(item)) {
                item.Drop(player.inventory.containerMain.dropPosition, player.inventory.containerMain.dropVelocity, new Quaternion());
                return false;
            }
            return true;
        }
        private string msg(string key, BasePlayer player = null) => lang.GetMessage(key, this, player?.UserIDString);
        private void SendMsg(BasePlayer player, string langkey, bool title = false, params string[] args) {
            string message = String.Format(msg(langkey, player), args);
            if (title) message = msg("Title", player) + message;
            SendReply(player, message);
        }
        protected override void LoadDefaultMessages() {
            lang.RegisterMessages(new Dictionary<string, string>() {
                {
                    "Title", ""
                }
                , {
                    "copter got", ""
                }
                , {
                    "inventory full", "Inventory full"
                }
                ,
            }
            , this, "en");
            lang.RegisterMessages(new Dictionary<string, string>() {
                {
                    "Title", ""
                }
                , {
                    "copter got", ""
                }
                , {
                    "inventory full", "Инвентарь полный"
                }
                ,
            }
            , this, "ru");
        }
    }
}

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