public void OnLevelLoaded(int level)
        {
            List <AirdropNode> nodes = FieldAirdropNodes.GetValue(null) as List <AirdropNode>;

            if (Configuration.Instance.UseDefaultSpawns)
            {
                if (!Configuration.Instance.UseDefaultAirdrops)
                {
                    Random random = new Random();
                    foreach (AirdropNode node in nodes)
                    {
                        node.id = Configuration.Instance.Airdrops[random.Next(Configuration.Instance.Airdrops.Count)].AirdropId;
                    }
                }
            }
            else
            {
                nodes = new List <AirdropNode>();
            }

            foreach (AirdropSpawn spawn in Configuration.Instance.AirdropSpawns)
            {
                AirdropManagerUtility.AddAirdropToNodes(nodes, spawn);
            }

            FieldAirdropNodes.SetValue(null, nodes);
        }
Пример #2
0
        public void Execute(IRocketPlayer caller, params string[] command)
        {
            ushort airdropId = 0;

            if (command.Length < 1)
            {
                UnturnedChat.Say(caller, AirdropManagerPlugin.Instance.Translate("SetAirdropFormat"), Color.red);
                return;
            }

            if (ushort.TryParse(command[0], out airdropId))
            {
                UnturnedPlayer player   = (UnturnedPlayer)caller;
                Vector3        position = player.Position;
                AirdropSpawn   spawn    = new AirdropSpawn()
                {
                    AirdropId = airdropId, Position = new Position(position.x, position.y, position.z)
                };

                AirdropManagerUtility.AddAirdropSpawn(spawn);
                AirdropManagerPlugin.Instance.Configuration.Instance.AirdropSpawns.Add(spawn);
                AirdropManagerPlugin.Instance.Configuration.Save();

                UnturnedChat.Say(caller, AirdropManagerPlugin.Instance.Translate("SetAirdropSuccess"), Color.yellow);
            }
            else
            {
                UnturnedChat.Say(caller, AirdropManagerPlugin.Instance.Translate("SetAirdropInvalid"), Color.yellow);
            }
        }
Пример #3
0
        public void OnLevelLoaded(int level)
        {
            var field = typeof(LevelManager).GetField("airdropNodes", BindingFlags.Static | BindingFlags.NonPublic);
            List <AirdropNode> nodes = field.GetValue(null) as List <AirdropNode>;

            if (Configuration.Instance.UseDefaultSpawns)
            {
                if (!Configuration.Instance.UseDefaultAirdrops)
                {
                    Random random = new Random();
                    foreach (AirdropNode node in nodes)
                    {
                        node.id = Configuration.Instance.Airdrops[random.Next(Configuration.Instance.Airdrops.Count)].AirdropId;
                    }
                }
            }
            else
            {
                nodes = new List <AirdropNode>();
            }

            foreach (AirdropSpawn spawn in Configuration.Instance.AirdropSpawns)
            {
                AirdropManagerUtility.AddAirdropToNodes(nodes, spawn);
            }

            field.SetValue(null, nodes);
        }