Exemplo n.º 1
0
        void PlacedMark1(Player p, ushort x, ushort y, ushort z, byte type, byte extType)
        {
            RevertAndClearState(p, x, y, z);
            CatchPos cpos = (CatchPos)p.blockchangeObject;

            if (cpos.mode == 2)
            {
                cpos.x = x; cpos.y = y; cpos.z = z;
                p.blockchangeObject = cpos;
                p.Blockchange      += PlacedMark2;
                return;
            }

            LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
            if (cpos.mode == 0)
            {
                settings.blockFlood = new Vec3U16(x, y, z);
            }
            if (cpos.mode == 1)
            {
                settings.blockLayer = new Vec3U16(x, y, z);
            }
            Server.lava.SaveMapSettings(settings);

            Player.Message(p, "Position set! &b({0}, {1}, {2})", x, y, z);
        }
Exemplo n.º 2
0
        public void Blockchange1(Player p, ushort x, ushort y, ushort z, byte type)
        {
            p.ClearBlockchange();
            p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z));
            CatchPos cpos = (CatchPos)p.blockchangeObject;

            if (cpos.mode == 2)
            {
                cpos.x = x; cpos.y = y; cpos.z = z;
                p.blockchangeObject = cpos;
                p.Blockchange      += new Player.BlockchangeEventHandler(Blockchange2);
                return;
            }

            LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
            if (cpos.mode == 0)
            {
                settings.blockFlood = new LavaSurvival.Pos(x, y, z);
            }
            if (cpos.mode == 1)
            {
                settings.blockLayer = new LavaSurvival.Pos(x, y, z);
            }
            Server.lava.SaveMapSettings(settings);

            Player.SendMessage(p, String.Format("Position set! &b({0}, {1}, {2})", x, y, z));
        }
Exemplo n.º 3
0
        bool SetFloodLayerPos(Player p, Vec3S32[] m, object state, ExtBlock block)
        {
            LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
            settings.blockLayer = (Vec3U16)m[0];
            Server.lava.SaveMapSettings(settings);

            Player.Message(p, "Position set! &b({0}, {1}, {2})", m[0].X, m[0].Y, m[0].Z);
            return(false);
        }
Exemplo n.º 4
0
        bool SetSafeZone(Player p, Vec3S32[] m, object state, ExtBlock block)
        {
            Vec3S32 min = Vec3S32.Min(m[0], m[1]);
            Vec3S32 max = Vec3S32.Max(m[0], m[1]);

            LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
            settings.safeZone = new Vec3U16[] { (Vec3U16)min, (Vec3U16)max };
            Server.lava.SaveMapSettings(settings);

            Player.Message(p, "Safe zone set! &b({0}, {1}, {2}) ({3}, {4}, {5})",
                           min.X, min.Y, min.Z, max.X, max.Y, max.Z);
            return(false);
        }
Exemplo n.º 5
0
        void PlacedMark2(Player p, ushort x, ushort y, ushort z, byte type, byte extType)
        {
            RevertAndClearState(p, x, y, z);
            CatchPos cpos = (CatchPos)p.blockchangeObject;

            if (cpos.mode == 2)
            {
                ushort sx = Math.Min(cpos.x, x), ex = Math.Max(cpos.x, x);
                ushort sy = Math.Min(cpos.y, y), ey = Math.Max(cpos.y, y);
                ushort sz = Math.Min(cpos.z, z), ez = Math.Max(cpos.z, z);

                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
                settings.safeZone = new Vec3U16[] { new Vec3U16(sx, sy, sz), new Vec3U16(ex, ey, ez) };
                Server.lava.SaveMapSettings(settings);

                Player.Message(p, "Safe zone set! &b({0}, {1}, {2}) ({3}, {4}, {5})", sx, sy, sz, ex, ey, ez);
            }
        }
Exemplo n.º 6
0
        void HandleSetupMap(Player p, string[] args)
        {
            if (args.Length < 3)
            {
                SetupHelp(p, "map"); return;
            }
            Level lvl = Matcher.FindLevels(p, args[2]);

            if (lvl == null)
            {
                return;
            }
            if (lvl == Server.mainLevel)
            {
                Player.Message(p, "You cannot use the main map for Lava Survival."); return;
            }

            if (Server.lava.HasMap(lvl.name))
            {
                Server.lava.RemoveMap(lvl.name);
                lvl.Config.PhysicsOverload = 1500;
                lvl.Config.AutoUnload      = true;
                lvl.Config.LoadOnGoto      = true;
                Player.Message(p, "Map {0} %Shas been removed.", lvl.ColoredName);
            }
            else
            {
                Server.lava.AddMap(lvl.name);

                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(lvl.name);
                settings.blockFlood = new Vec3U16((ushort)(lvl.Width / 2), (ushort)(lvl.Height - 1), (ushort)(lvl.Length / 2));
                settings.blockLayer = new Vec3U16(0, (ushort)(lvl.Height / 2), 0);
                ushort x = (ushort)(lvl.Width / 2), y = (ushort)(lvl.Height / 2), z = (ushort)(lvl.Length / 2);
                settings.safeZone = new Vec3U16[] { new Vec3U16((ushort)(x - 3), y, (ushort)(z - 3)), new Vec3U16((ushort)(x + 3), (ushort)(y + 4), (ushort)(z + 3)) };
                Server.lava.SaveMapSettings(settings);

                lvl.Config.PhysicsOverload = 1000000;
                lvl.Config.AutoUnload      = false;
                lvl.Config.LoadOnGoto      = false;
                Player.Message(p, "Map {0} %Shas been added.", lvl.ColoredName);
            }
            Level.SaveSettings(lvl);
        }
Exemplo n.º 7
0
        private void lsAddMap_Click(object sender, EventArgs e)
        {
            try {
                Server.lava.Stop(); // Doing this so we don't break something...
                UpdateLavaControls();

                string name;
                try { name = lsMapNoUse.Items[lsMapNoUse.SelectedIndex].ToString(); }
                catch { return; }

                if (LevelInfo.Find(name) == null)
                {
                    Command.all.Find("load").Use(null, name);
                }
                Level level = LevelInfo.Find(name);
                if (level == null)
                {
                    return;
                }

                Server.lava.AddMap(name);

                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(level.name);
                settings.blockFlood = new Vec3U16((ushort)(level.Width / 2), (ushort)(level.Height - 1), (ushort)(level.Length / 2));
                settings.blockLayer = new Vec3U16(0, (ushort)(level.Height / 2), 0);
                ushort x = (ushort)(level.Width / 2), y = (ushort)(level.Height / 2), z = (ushort)(level.Length / 2);
                settings.safeZone = new Vec3U16[] { new Vec3U16((ushort)(x - 3), y, (ushort)(z - 3)), new Vec3U16((ushort)(x + 3), (ushort)(y + 4), (ushort)(z + 3)) };
                Server.lava.SaveMapSettings(settings);

                level.motd       = "Lava Survival: " + level.name.Capitalize();
                level.overload   = 1000000;
                level.unload     = false;
                level.loadOnGoto = false;
                Level.SaveSettings(level);
                level.Unload(true);

                UpdateLavaMapList();
            }
            catch (Exception ex) { Server.ErrorLog(ex); }
        }
Exemplo n.º 8
0
        public void Blockchange2(Player p, ushort x, ushort y, ushort z, byte type)
        {
            p.ClearBlockchange();
            p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z));
            CatchPos cpos = (CatchPos)p.blockchangeObject;

            if (cpos.mode == 2)
            {
                ushort sx = Math.Min(cpos.x, x);
                ushort ex = Math.Max(cpos.x, x);
                ushort sy = Math.Min(cpos.y, y);
                ushort ey = Math.Max(cpos.y, y);
                ushort sz = Math.Min(cpos.z, z);
                ushort ez = Math.Max(cpos.z, z);

                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
                settings.safeZone = new LavaSurvival.Pos[] { new LavaSurvival.Pos(sx, sy, sz), new LavaSurvival.Pos(ex, ey, ez) };
                Server.lava.SaveMapSettings(settings);

                Player.SendMessage(p, String.Format("Safe zone set! &b({0}, {1}, {2}) ({3}, {4}, {5})", sx, sy, sz, ex, ey, ez));
            }
        }
Exemplo n.º 9
0
        private void lsMapUse_SelectedIndexChanged(object sender, EventArgs e)
        {
            SaveLavaMapSettings();
            if (lsMapUse.SelectedIndex == -1)
            {
                groupBox22.Text           = "Map settings";
                pg_lavaMap.SelectedObject = null;
                return;
            }

            string name = lsMapUse.Items[lsMapUse.SelectedIndex].ToString();

            groupBox22.Text = "Map settings (" + name + ")";

            try {
                LavaSurvival.MapSettings m = Server.lava.LoadMapSettings(name);
                pg_lavaMap.SelectedObject = new LavaMapProperties(m);
            } catch (Exception ex) {
                Server.ErrorLog(ex);
                pg_lavaMap.SelectedObject = null;
            }
        }
Exemplo n.º 10
0
        private void lsBtnSaveSettings_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(lsLoadedMap))
            {
                return;
            }

            try {
                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(lsLoadedMap);
                settings.fast          = (byte)lsNudFastLava.Value;
                settings.killer        = (byte)lsNudKiller.Value;
                settings.destroy       = (byte)lsNudDestroy.Value;
                settings.water         = (byte)lsNudWater.Value;
                settings.layer         = (byte)lsNudLayer.Value;
                settings.layerHeight   = (int)lsNudLayerHeight.Value;
                settings.layerCount    = (int)lsNudLayerCount.Value;
                settings.layerInterval = (double)lsNudLayerTime.Value;
                settings.roundTime     = (double)lsNudRoundTime.Value;
                settings.floodTime     = (double)lsNudFloodTime.Value;
                Server.lava.SaveMapSettings(settings);
            }
            catch (Exception ex) { Server.ErrorLog(ex); }
        }
Exemplo n.º 11
0
        private void lsMapUse_SelectedIndexChanged(object sender, EventArgs e)
        {
            string name;

            try { name = lsMapUse.Items[lsMapUse.SelectedIndex].ToString(); }
            catch { return; }

            lsLoadedMap = name;
            try {
                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(name);
                lsNudFastLava.Value    = MathHelper.Clamp((decimal)settings.fast, 0, 100);
                lsNudKiller.Value      = MathHelper.Clamp((decimal)settings.killer, 0, 100);
                lsNudDestroy.Value     = MathHelper.Clamp((decimal)settings.destroy, 0, 100);
                lsNudWater.Value       = MathHelper.Clamp((decimal)settings.water, 0, 100);
                lsNudLayer.Value       = MathHelper.Clamp((decimal)settings.layer, 0, 100);
                lsNudLayerHeight.Value = MathHelper.Clamp((decimal)settings.layerHeight, 1, 1000);
                lsNudLayerCount.Value  = MathHelper.Clamp((decimal)settings.layerCount, 1, 1000);
                lsNudLayerTime.Value   = (decimal)MathHelper.Clamp(settings.layerInterval, 1, 1000);
                lsNudRoundTime.Value   = (decimal)MathHelper.Clamp(settings.roundTime, 1, 1000);
                lsNudFloodTime.Value   = (decimal)MathHelper.Clamp(settings.floodTime, 1, 1000);
            }
            catch (Exception ex) { Server.ErrorLog(ex); }
        }
Exemplo n.º 12
0
        public override void Use(Player p, string message)
        {
            if (String.IsNullOrEmpty(message))
            {
                Help(p); return;
            }
            string[] s = message.ToLower().Split(' ');
            if (p == null && (s[0] == "go" || s[0] == "setup"))
            {
                Player.SendMessage(p, "The \"" + s[0] + "\" command can only be used in-game!"); return;
            }

            if (s[0] == "go")
            {
                if (!Server.lava.active)
                {
                    Player.SendMessage(p, "There is no Lava Survival game right now."); return;
                }
                Command.all.Find("goto").Use(p, Server.lava.map.name);
                return;
            }
            if (s[0] == "info")
            {
                if (!Server.lava.active)
                {
                    Player.SendMessage(p, "There is no Lava Survival game right now."); return;
                }
                if (!Server.lava.roundActive)
                {
                    Player.SendMessage(p, "The round of Lava Survival hasn't started yet."); return;
                }
                Server.lava.AnnounceRoundInfo(p, p == null);
                Server.lava.AnnounceTimeLeft(!Server.lava.flooded, true, p, p == null);
                return;
            }
            if (p == null || p.group.Permission >= Server.lava.controlRank)
            {
                if (s[0] == "start")
                {
                    switch (Server.lava.Start(s.Length > 1 ? s[1] : ""))
                    {
                    case 0:
                        Player.GlobalMessage("Lava Survival has started! Join the fun with /ls go");
                        return;

                    case 1:
                        Player.SendMessage(p, "There is already an active Lava Survival game.");
                        return;

                    case 2:
                        Player.SendMessage(p, "You must have at least 3 configured maps to play Lava Survival.");
                        return;

                    case 3:
                        Player.SendMessage(p, "The specified map doesn't exist.");
                        return;

                    default:
                        Player.SendMessage(p, "An unknown error occurred.");
                        return;
                    }
                }
                if (s[0] == "stop")
                {
                    switch (Server.lava.Stop())
                    {
                    case 0:
                        Player.GlobalMessage("Lava Survival has ended! We hope you had fun!");
                        return;

                    case 1:
                        Player.SendMessage(p, "There isn't an active Lava Survival game.");
                        return;

                    default:
                        Player.SendMessage(p, "An unknown error occurred.");
                        return;
                    }
                }
                if (s[0] == "end")
                {
                    if (!Server.lava.active)
                    {
                        Player.SendMessage(p, "There isn't an active Lava Survival game."); return;
                    }
                    if (Server.lava.roundActive)
                    {
                        Server.lava.EndRound();
                    }
                    else if (Server.lava.voteActive)
                    {
                        Server.lava.EndVote();
                    }
                    else
                    {
                        Player.SendMessage(p, "There isn't an active round or vote to end.");
                    }
                    return;
                }
            }
            if (p == null || p.group.Permission >= Server.lava.setupRank)
            {
                if (s[0] == "setup")
                {
                    if (s.Length < 2)
                    {
                        SetupHelp(p); return;
                    }
                    if (Server.lava.active)
                    {
                        Player.SendMessage(p, "You cannot configure Lava Survival while a game is active."); return;
                    }
                    if (s[1] == "map")
                    {
                        if (s.Length < 3)
                        {
                            SetupHelp(p, "map"); return;
                        }
                        Level foundLevel = Level.Find(s[2]);
                        if (foundLevel == null)
                        {
                            Player.SendMessage(p, "The level must be loaded to add/remove it.");
                            return;
                        }
                        else
                        {
                            if (foundLevel == Server.mainLevel)
                            {
                                Player.SendMessage(p, "You cannot use the main map for Lava Survival."); return;
                            }
                            if (Server.lava.HasMap(foundLevel.name))
                            {
                                Server.lava.RemoveMap(foundLevel.name);
                                foundLevel.motd       = "ignore";
                                foundLevel.overload   = 1500;
                                foundLevel.unload     = true;
                                foundLevel.loadOnGoto = true;
                                Level.SaveSettings(foundLevel);
                                Player.SendMessage(p, "Map \"" + foundLevel.name + "\" has been removed.");
                                return;
                            }
                            else
                            {
                                Server.lava.AddMap(foundLevel.name);

                                LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(foundLevel.name);
                                settings.blockFlood = new LavaSurvival.Pos((ushort)(foundLevel.width / 2), (ushort)(foundLevel.depth - 1), (ushort)(foundLevel.height / 2));
                                settings.blockLayer = new LavaSurvival.Pos(0, (ushort)(foundLevel.depth / 2), 0);
                                ushort x = (ushort)(foundLevel.width / 2), y = (ushort)(foundLevel.depth / 2), z = (ushort)(foundLevel.height / 2);
                                settings.safeZone = new LavaSurvival.Pos[] { new LavaSurvival.Pos((ushort)(x - 3), y, (ushort)(z - 3)), new LavaSurvival.Pos((ushort)(x + 3), (ushort)(y + 4), (ushort)(z + 3)) };
                                Server.lava.SaveMapSettings(settings);

                                foundLevel.motd       = "Lava Survival: " + foundLevel.name.Capitalize();
                                foundLevel.overload   = 1000000;
                                foundLevel.unload     = false;
                                foundLevel.loadOnGoto = false;
                                Level.SaveSettings(foundLevel);
                                Player.SendMessage(p, "Map \"" + foundLevel.name + "\" has been added.");
                                return;
                            }
                        }
                    }
                    if (s[1] == "block")
                    {
                        if (!Server.lava.HasMap(p.level.name))
                        {
                            Player.SendMessage(p, "Add the map before configuring it."); return;
                        }
                        if (s.Length < 3)
                        {
                            SetupHelp(p, "block"); return;
                        }

                        if (s[2] == "flood")
                        {
                            Player.SendMessage(p, "Place or destroy the block you want to be the total flood block spawn point.");
                            CatchPos cpos; cpos.mode = 0;
                            cpos.x = 0; cpos.y = 0; cpos.z = 0;
                            p.blockchangeObject = cpos;
                            p.ClearBlockchange();
                            p.Blockchange += new Player.BlockchangeEventHandler(Blockchange1);
                            return;
                        }
                        if (s[2] == "layer")
                        {
                            Player.SendMessage(p, "Place or destroy the block you want to be the layer flood base spawn point.");
                            CatchPos cpos; cpos.mode = 1;
                            cpos.x = 0; cpos.y = 0; cpos.z = 0;
                            p.blockchangeObject = cpos;
                            p.ClearBlockchange();
                            p.Blockchange += new Player.BlockchangeEventHandler(Blockchange1);
                            return;
                        }

                        SetupHelp(p, "block");
                        return;
                    }
                    if (s[1] == "safezone" || s[1] == "safe")
                    {
                        Player.SendMessage(p, "Place two blocks to determine the edges.");
                        CatchPos cpos; cpos.mode = 2;
                        cpos.x = 0; cpos.y = 0; cpos.z = 0;
                        p.blockchangeObject = cpos;
                        p.ClearBlockchange();
                        p.Blockchange += new Player.BlockchangeEventHandler(Blockchange1);
                        return;
                    }
                    if (s[1] == "settings")
                    {
                        if (s.Length < 3)
                        {
                            Player.SendMessage(p, "Maps: &b" + Server.lava.Maps.Concatenate(", "));
                            Player.SendMessage(p, "Setup rank: " + Group.findPerm(Server.lava.setupRank).color + Group.findPerm(Server.lava.setupRank).trueName);
                            Player.SendMessage(p, "Control rank: " + Group.findPerm(Server.lava.controlRank).color + Group.findPerm(Server.lava.controlRank).trueName);
                            Player.SendMessage(p, "Start on server startup: " + (Server.lava.startOnStartup ? "&aON" : "&cOFF"));
                            Player.SendMessage(p, "Send AFK to main: " + (Server.lava.sendAfkMain ? "&aON" : "&cOFF"));
                            Player.SendMessage(p, "Vote count: &b" + Server.lava.voteCount);
                            Player.SendMessage(p, "Vote time: &b" + Server.lava.voteTime + " minute" + (Server.lava.voteTime == 1 ? "" : "s"));
                            return;
                        }

                        try
                        {
                            switch (s[2])
                            {
                            case "sendafkmain":
                                Server.lava.sendAfkMain = !Server.lava.sendAfkMain;
                                Player.SendMessage(p, "Send AFK to main: " + (Server.lava.sendAfkMain ? "&aON" : "&cOFF"));
                                break;

                            case "votecount":
                                Server.lava.voteCount = (byte)MathHelper.Clamp(decimal.Parse(s[3]), 2, 10);
                                Player.SendMessage(p, "Vote count: &b" + Server.lava.voteCount);
                                break;

                            case "votetime":
                                Server.lava.voteTime = double.Parse(s[3]);
                                Player.SendMessage(p, "Vote time: &b" + Server.lava.voteTime + "minute" + (Server.lava.voteTime == 1 ? "" : "s"));
                                break;

                            default:
                                SetupHelp(p, "settings");
                                return;
                            }
                            Server.lava.SaveSettings();
                            return;
                        }
                        catch { Player.SendMessage(p, "INVALID INPUT"); return; }
                    }
                    if (s[1] == "mapsettings")
                    {
                        if (!Server.lava.HasMap(p.level.name))
                        {
                            Player.SendMessage(p, "Add the map before configuring it."); return;
                        }
                        LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
                        if (s.Length < 4)
                        {
                            Player.SendMessage(p, "Fast lava chance: &b" + settings.fast + "%");
                            Player.SendMessage(p, "Killer lava/water chance: &b" + settings.killer + "%");
                            Player.SendMessage(p, "Destroy blocks chance: &b" + settings.destroy + "%");
                            Player.SendMessage(p, "Water flood chance: &b" + settings.water + "%");
                            Player.SendMessage(p, "Layer flood chance: &b" + settings.layer + "%");
                            Player.SendMessage(p, "Layer height: &b" + settings.layerHeight + " block" + (settings.layerHeight == 1 ? "" : "s"));
                            Player.SendMessage(p, "Layer count: &b" + settings.layerCount);
                            Player.SendMessage(p, "Layer time: &b" + settings.layerInterval + " minute" + (settings.layerInterval == 1 ? "" : "s"));
                            Player.SendMessage(p, "Round time: &b" + settings.roundTime + " minute" + (settings.roundTime == 1 ? "" : "s"));
                            Player.SendMessage(p, "Flood time: &b" + settings.floodTime + " minute" + (settings.floodTime == 1 ? "" : "s"));
                            Player.SendMessage(p, "Flood position: &b" + settings.blockFlood.ToString(", "));
                            Player.SendMessage(p, "Layer position: &b" + settings.blockLayer.ToString(", "));
                            Player.SendMessage(p, String.Format("Safe zone: &b({0}) ({1})", settings.safeZone[0].ToString(", "), settings.safeZone[1].ToString(", ")));
                            return;
                        }

                        try
                        {
                            switch (s[2])
                            {
                            case "fast":
                                settings.fast = (byte)MathHelper.Clamp(decimal.Parse(s[3]), 0, 100);
                                Player.SendMessage(p, "Fast lava chance: &b" + settings.fast + "%");
                                break;

                            case "killer":
                                settings.killer = (byte)MathHelper.Clamp(decimal.Parse(s[3]), 0, 100);
                                Player.SendMessage(p, "Killer lava/water chance: &b" + settings.killer + "%");
                                break;

                            case "destroy":
                                settings.destroy = (byte)MathHelper.Clamp(decimal.Parse(s[3]), 0, 100);
                                Player.SendMessage(p, "Destroy blocks chance: &b" + settings.destroy + "%");
                                break;

                            case "water":
                                settings.water = (byte)MathHelper.Clamp(decimal.Parse(s[3]), 0, 100);
                                Player.SendMessage(p, "Water flood chance: &b" + settings.water + "%");
                                break;

                            case "layer":
                                settings.layer = (byte)MathHelper.Clamp(decimal.Parse(s[3]), 0, 100);
                                Player.SendMessage(p, "Layer flood chance: &b" + settings.layer + "%");
                                break;

                            case "layerheight":
                                settings.layerHeight = int.Parse(s[3]);
                                Player.SendMessage(p, "Layer height: &b" + settings.layerHeight + " block" + (settings.layerHeight == 1 ? "" : "s"));
                                break;

                            case "layercount":
                                settings.layerCount = int.Parse(s[3]);
                                Player.SendMessage(p, "Layer count: &b" + settings.layerCount);
                                break;

                            case "layertime":
                                settings.layerInterval = double.Parse(s[3]);
                                Player.SendMessage(p, "Layer time: &b" + settings.layerInterval + " minute" + (settings.layerInterval == 1 ? "" : "s"));
                                break;

                            case "roundtime":
                                settings.roundTime = double.Parse(s[3]);
                                Player.SendMessage(p, "Round time: &b" + settings.roundTime + " minute" + (settings.roundTime == 1 ? "" : "s"));
                                break;

                            case "floodtime":
                                settings.floodTime = double.Parse(s[3]);
                                Player.SendMessage(p, "Flood time: &b" + settings.floodTime + " minute" + (settings.floodTime == 1 ? "" : "s"));
                                break;

                            default:
                                SetupHelp(p, "mapsettings");
                                return;
                            }
                        }
                        catch { Player.SendMessage(p, "INVALID INPUT"); return; }
                        Server.lava.SaveMapSettings(settings);
                        return;
                    }
                }
            }

            Help(p);
        }
Exemplo n.º 13
0
        void HandleSetupMapSettings(Player p, string[] args)
        {
            if (!Server.lava.HasMap(p.level.name))
            {
                Player.Message(p, "Add the map before configuring it."); return;
            }
            LavaSurvival.MapSettings settings = Server.lava.LoadMapSettings(p.level.name);
            if (args.Length < 4)
            {
                Player.Message(p, "Fast lava chance: &b" + settings.fast + "%");
                Player.Message(p, "Killer lava/water chance: &b" + settings.killer + "%");
                Player.Message(p, "Destroy blocks chance: &b" + settings.destroy + "%");
                Player.Message(p, "Water flood chance: &b" + settings.water + "%");
                Player.Message(p, "Layer flood chance: &b" + settings.layer + "%");
                Player.Message(p, "Layer height: &b" + settings.layerHeight + " blocks");
                Player.Message(p, "Layer count: &b" + settings.layerCount);
                Player.Message(p, "Layer time: &b" + settings.layerInterval + " minutes");
                Player.Message(p, "Round time: &b" + settings.roundTime + " minutes");
                Player.Message(p, "Flood time: &b" + settings.floodTime + " minutes");
                Player.Message(p, "Flood position: &b" + settings.blockFlood.ToString(", "));
                Player.Message(p, "Layer position: &b" + settings.blockLayer.ToString(", "));
                Player.Message(p, "Safe zone: &b({0}) ({1})", settings.safeZone[0].ToString(", "), settings.safeZone[1].ToString(", "));
                return;
            }

            try {
                switch (args[2])
                {
                case "fast":
                    settings.fast = (byte)Utils.Clamp(int.Parse(args[3]), 0, 100);
                    Player.Message(p, "Fast lava chance: &b" + settings.fast + "%");
                    break;

                case "killer":
                    settings.killer = (byte)Utils.Clamp(int.Parse(args[3]), 0, 100);
                    Player.Message(p, "Killer lava/water chance: &b" + settings.killer + "%");
                    break;

                case "destroy":
                    settings.destroy = (byte)Utils.Clamp(int.Parse(args[3]), 0, 100);
                    Player.Message(p, "Destroy blocks chance: &b" + settings.destroy + "%");
                    break;

                case "water":
                    settings.water = (byte)Utils.Clamp(int.Parse(args[3]), 0, 100);
                    Player.Message(p, "Water flood chance: &b" + settings.water + "%");
                    break;

                case "layer":
                    settings.layer = (byte)Utils.Clamp(int.Parse(args[3]), 0, 100);
                    Player.Message(p, "Layer flood chance: &b" + settings.layer + "%");
                    break;

                case "layerheight":
                    settings.layerHeight = int.Parse(args[3]);
                    Player.Message(p, "Layer height: &b" + settings.layerHeight + " blocks");
                    break;

                case "layercount":
                    settings.layerCount = int.Parse(args[3]);
                    Player.Message(p, "Layer count: &b" + settings.layerCount);
                    break;

                case "layertime":
                    settings.layerInterval = double.Parse(args[3]);
                    Player.Message(p, "Layer time: &b" + settings.layerInterval + " minutes");
                    break;

                case "roundtime":
                    settings.roundTime = double.Parse(args[3]);
                    Player.Message(p, "Round time: &b" + settings.roundTime + " minutes");
                    break;

                case "floodtime":
                    settings.floodTime = double.Parse(args[3]);
                    Player.Message(p, "Flood time: &b" + settings.floodTime + " minutes");
                    break;

                default:
                    SetupHelp(p, "mapsettings"); return;
                }
            } catch { Player.Message(p, "INVALID INPUT"); return; }
            Server.lava.SaveMapSettings(settings);
        }
Exemplo n.º 14
0
 public LavaMapProperties(LavaSurvival.MapSettings m)
 {
     this.m = m;
 }