Пример #1
0
        public override void Use(Player p, string message)
        {

            string path;
            if (message.Split(' ').Length == 1) path = "levels/" + message + ".lvl";
            else if (message.Split(' ').Length == 2) try { path = @Server.backupLocation + "/" + message.Split(' ')[0] + "/" + int.Parse(message.Split(' ')[1]) + "/" + message.Split(' ')[0] + ".lvl"; }
                catch { Help(p); return; }
            else { Help(p); return; }

            if (File.Exists(path))
            {
                try
                {
					Level level = LvlFile.Load(name, path);
					level.setPhysics(0);

					level.backedup = true;
					level.permissionbuild = LevelPermission.Admin;

					level.jailx = (ushort)(level.spawnx * 32); 
					level.jaily = (ushort)(level.spawny * 32); 
					level.jailz = (ushort)(level.spawnz * 32);
					level.jailrotx = level.rotx; level.jailroty = level.roty;

					p.Loading = true;
					foreach (Player pl in Player.players) if (p.level == pl.level && p != pl) p.SendDie(pl.id);
					foreach (PlayerBot b in PlayerBot.playerbots) if (p.level == b.level) p.SendDie(b.id);

					Player.GlobalDie(p, true);

					p.level = level;
					p.SendMotd();
					if (!p.SendRawMap(level))
						return;

					ushort x = (ushort)((0.5 + level.spawnx) * 32);
					ushort y = (ushort)((1 + level.spawny) * 32);
					ushort z = (ushort)((0.5 + level.spawnz) * 32);

					p.aiming = false;
					Player.GlobalSpawn(p, x, y, z, level.rotx, level.roty, true);
					p.ClearBlockchange();
					p.Loading = false;

					if (message.IndexOf(' ') == -1)
						level.name = "&cMuseum " + Server.DefaultColor + "(" + message.Split(' ')[0] + ")";
					else
						level.name = "&cMuseum " + Server.DefaultColor + "(" + message.Split(' ')[0] + " " + message.Split(' ')[1] + ")";

					if (!p.hidden)
					{
                        Player.GlobalMessage(p.color + p.prefix + p.name + Server.DefaultColor + " went to the " + level.name);
					}
				} catch (Exception ex) { 
                	Player.SendMessage(p, "Error loading level."); 
                	Server.ErrorLog(ex);
                }
            } else { 
            	Player.SendMessage(p, "Level or backup could not be found.");
            }
        }