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

FREE RidableHorses : 0.1 0.1

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

namespace Oxide.Plugins
{
    [Info("RidableHorses", "Jake_Rich", 0.1)]
    [Description("Able to tame and ride horses around")]

    public class RidableHorses : RustPlugin
    {
        public static RidableHorses thisPlugin;

        #region Settings
        public static int displayMode = 0; //0 = Only from player's belt
                                           //1 = From player's belt and inventory
        #endregion

        void Loaded()
        {
            thisPlugin = this;
        }

        void Unload()
        {
            foreach(KeyValuePair<BasePlayer,BaseEntity> data in horseData)
            {
                data.Key.SetParent(null, "");
            }
            foreach (BaseNetworkable item in fakeEntities)
            {
                item.Kill();
            }
            foreach(BasePlayer item in fakePlayers)
            {
                item.Kill();
            }
        }

        #region Writing
        public void Output(params object[] text)
        {
            string str = "";
            for (int i = 0; i < text.Length; i++)
            {
                str += text[i].ToString() + " ";
            }
            Puts(str);
        }

        public static void Write(params object[] text)
        {
            thisPlugin.Output(text);
        }

        public static void Write(object text)
        {
            thisPlugin.Output(text);
        }

        #endregion

        public static Dictionary<BasePlayer, BaseEntity> horseData = new Dictionary<BasePlayer, BaseEntity>();
        public static List<BaseNetworkable> fakeEntities = new List<BaseNetworkable>();
        public static List<BasePlayer> fakePlayers = new List<BasePlayer>();
        public static Dictionary<BaseEntity, BasePlayer> weaponNetworking = new Dictionary<BaseEntity, BasePlayer>();

        void SpawnEntity(Vector3 pos, BasePlayer player)
        {
            string prefab = "assets/prefabs/ammo/arrow/arrow.prefab";
            BaseEntity entity = GameManager.server.CreateEntity(prefab);
            if (entity != null)
            {
                entity.Spawn();
                entity.SetParent(player, "RustPlayer");
                //entity.SetParent(bear, "RustPlayer");
                entity.transform.position = new Vector3(0, 0, 0);
                entity.transform.rotation = Quaternion.Euler(0, 0, 0);
                entity.SendNetworkUpdateImmediate();
                fakeEntities.Add(entity);
                Write("Object spawned");
            }
        }

        [ChatCommand("horse")]
        BaseEntity SpawnHorse(BasePlayer player)
        {
            string prefab = "assets/bundled/prefabs/autospawn/animals/horse.prefab";
            BaseEntity entity = GameManager.server.CreateEntity(prefab,player.transform.position);
            if (entity != null)
            {
                entity.Spawn();
                //entity.SetParent(player, "RustPlayer");
                //entity.transform.position = new Vector3(0, 0, 0);
                //entity.transform.rotation = Quaternion.Euler(0, 0, 0);
                entity.SendNetworkUpdate();
                fakeEntities.Add(entity);
                Write("Horse spawned");
            }
            return entity;
        }

        [ChatCommand("ride")]
        void RideHorse(BasePlayer player)
        {
            horseData.Add(player, SpawnHorse(player));
            MountHorse(player,horseData[player]);
        }

        #region Hooks

        int tickCount = 0;
        void OnTick()
        {
            if (tickCount >= 1)
            {
                tickCount = 0;
                foreach (KeyValuePair<BasePlayer, BaseEntity> data in horseData)
                {
                    //data.Key.transform.position = Vector3.zero;
                    //data.Key.transform.localRotation = data.Value.transform.rotation;
                    data.Key.transform.localRotation = Quaternion.identity;
                    data.Key.SendNetworkUpdateImmediate();
                    //data.Value.SendNetworkUpdateImmediate();
                }
            }
            tickCount++;
        }
        /*
        object OnFurnaceSwitch()
        {
            Puts("Furance activated!");
            return null;
        }*/

        void OnHammerHit(BasePlayer player, HitInfo info)
        {
            foreach (Item item in player.inventory.containerBelt.itemList)
            {
                Puts(item.info.shortname.ToString());
            }
        }

        #endregion

        void MountHorse(BasePlayer player1,BaseEntity entity)
        {
            BasePlayer player = SpawnPlayer(player1);
            //player = player1;
            player.SetParent(entity, "");
            player.transform.position = new Vector3(-0.8f, 0f, -0.5f);
            player.SendNetworkUpdateImmediate();
        }

        BasePlayer SpawnPlayer(BasePlayer player)
        {
            string prefab = "assets/prefabs/player/player.prefab";
            BasePlayer newPlayer = (BasePlayer)GameManager.server.CreateEntity(prefab, player.transform.position + new Vector3(0, 0, 1));
            newPlayer.Spawn();
            //newPlayer.InitializeHealth(1000, 1000); 
            newPlayer.Heal(100);
            fakePlayers.Add(newPlayer);
            return newPlayer;
        }


    }
}

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