g0d01w4r99 wrote:Not a weird question at all, Dzienny mentioned in one of his changelogs that he moved MCDzienny to 4.0. If I may ask, what sort of a command are you working on?
public void changeLevel()
{
if (Server.ZombieModeOn == false)
return;
if (amountOfRounds == 1)
return;
Server.lastPlayerToInfect = "";
Server.infection = false;
try
{
DirectoryInfo di = new DirectoryInfo("levels/");
FileInfo[] fi = di.GetFiles("*.lvl");
int levelCount = 0;
foreach (FileInfo file in fi)
{
levelCount = levelCount + 1;
}
if (levelCount < 2)
{
Player.GlobalMessage("You need more than 2 levels to enable the change levels function!");
return;
}
if (Server.queLevel == true)
{
foreach (FileInfo file in fi)
{
String next = Server.nextLevel.ToLower();
Server.queLevel = false;
Server.nextLevel = "";
Command.all.Find("load").Use(null, next.ToLower());
Player.GlobalMessage("The next map has been chosen - " + c.red + next.ToLower());
Player.GlobalMessage("Please wait while you are transfered.");
String oldLevel = Server.mainLevel.name;
Server.mainLevel = Level.Find(next.ToLower());
Server.infection = false;
Player.players.ForEach(delegate(Player player)
{
if (player.level.name != next)
{
player.SendMessage("Going to the next map!");
Command.all.Find("goto").Use(player, next);
Thread.Sleep(1000);
// Sleep for a bit while they load
while (player.Loading) { Thread.Sleep(250); }
}
});
Command.all.Find("unload").Use(null, oldLevel);
return;
}
}
Random nextLevel = new Random();
int level = nextLevel.Next(0, levelCount);
int count = 0;
Level current = Server.mainLevel;
String level1 = "";
String level2 = "";
while (level1 == "")
{
foreach (FileInfo file in fi)
{
string hi = file.Name.Replace(".lvl", "").ToLower();
if (count == level && hi != current.name.ToLower() && level2 != hi && Server.lastLevelVote1 != hi && Server.lastLevelVote2 != hi)
{
level1 = file.Name.Replace(".lvl", "").ToLower();
Server.lastLevelVote1 = hi;
}
else if (count == levelCount)
{
level = nextLevel.Next(0, levelCount);
count = 0;
}
else
{
count = count + 1;
}
}
}
int level5 = nextLevel.Next(0, levelCount);
count = 0;
while (level2 == "")
{
foreach (FileInfo file in fi)
{
string hi = file.Name.Replace(".lvl", "").ToLower();
if (count == level5 && hi != current.name.ToLower() && level1 != hi && Server.lastLevelVote1 != hi && Server.lastLevelVote2 != hi)
{
level2 = file.Name.Replace(".lvl", "").ToLower();
Server.lastLevelVote2 = hi;
}
else if (count == levelCount)
{
level5 = nextLevel.Next(0, levelCount);
count = 0;
}
else
{
count = count + 1;
}
}
}
Server.votingforlevel = true;
Server.NoLevelVotes = 0;
Server.YesLevelVotes = 0;
Player.GlobalMessage(" " + c.black + "Next Level Vote: " + Server.DefaultColor + level1 + " or " + level2 + " " + "(" + c.lime + "1 " + Server.DefaultColor + "/ " + c.red + "2" + Server.DefaultColor + ")");
System.Threading.Thread.Sleep(15000);
Server.votingforlevel = false;
Player.players.ForEach(delegate(Player winners)
{
winners.voted = false;
});
String nextl = "main";
if (Server.NoLevelVotes >= Server.YesLevelVotes)
{
nextl = level2;
}
else
{
nextl = level1;
}
if (Server.queLevel == true)
{
nextl = Server.nextLevel.ToLower();
Server.queLevel = false;
Server.nextLevel = "";
}
Command.all.Find("load").Use(null, nextl.ToLower());
Player.GlobalMessage("The next map has been chosen - " + c.red + nextl.ToLower());
Player.GlobalMessage("Please wait while you are transfered.");
String oldLevelL = Server.mainLevel.name;
Server.mainLevel = Level.Find(nextl.ToLower());
Server.infection = false;
Player.players.ForEach(delegate(Player player)
{
if (player.level.name != nextl)
{
player.infected = false;
player.SendMessage("Going to the next map!");
player.color = player.group.color;
Player.GlobalDie(player, false);
Player.GlobalSpawn(player, player.pos[0], player.pos[1], player.pos[2], player.rot[0], player.rot[1], false);
Command.all.Find("goto").Use(player, nextl);
Thread.Sleep(1000);
// Sleep for a bit while they load
while (player.Loading) { Thread.Sleep(250); }
}
});
Command.all.Find("unload").Use(null, oldLevelL);
return;
}
catch
{
Server.s.Log("An error occured");
changeLevel();
}
changeLevel();
}
Users browsing this forum: No registered users and 23 guests