public void onGameReload(xCoreLevel level) { level.Status = Status.Reload; foreach (Player pl in level.GetSpawnedPlayers()) { Core.SpawnLobby(pl); } ReloadLevel(level); }
public void onGameStart(xCoreLevel level) { foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SetNoAi(false); p.SendMessage(p.PlayerData.lang.get("sw.start.go")); } level.Time = 600; level.Status = Status.Game; level.Started = true; level.pvp = true; }
public void onGamePreStart(xCoreLevel level) { int i = 0; List <PlayerLocation> loc = SpawnPoints[level.Map.Name]; Log.Warn(loc); Player[] pls = level.GetSpawnedPlayers(); foreach (Player player in pls) { level.Points.Add(player.Username, 0); //player.DynInventory = null; for (int ii = 0; ii < player.Inventory.Slots.Count; ++ii) { if (player.Inventory.Slots[ii] == null || player.Inventory.Slots[ii].Id != 0) { player.Inventory.Slots[ii] = new ItemAir(); } } if (player.Inventory.Helmet.Id != 0) { player.Inventory.Helmet = new ItemAir(); } if (player.Inventory.Chest.Id != 0) { player.Inventory.Chest = new ItemAir(); } if (player.Inventory.Leggings.Id != 0) { player.Inventory.Leggings = new ItemAir(); } if (player.Inventory.Boots.Id != 0) { player.Inventory.Boots = new ItemAir(); } player.IsWorldImmutable = false; player.AllowFly = false; player.HungerManager.ResetHunger(); player.HealthManager.ResetHealth(); ((xCoreHungerManager)player.HungerManager).HungerProcess = true; //Core.UpdateData(player, "games", 1, this); player.SendPlayerInventory(); player.SendAdventureSettings(); player.SetNoAi(true); player.Teleport(loc[i]); i++; if (i > 16) { Log.Info("мой ник: " + player.Username); } } }
public void DeathPlayer(Player Killed) { xCoreLevel level = Killed.Level as xCoreLevel; if (level.Status == Status.Start) { Killed.Teleport(level.SpawnPoint); return; } if (Killed.GameMode != GameMode.Survival) { Killed.Teleport(new PlayerLocation(level.Map.Center.X, level.Map.Center.Y, level.Map.Center.Z, 0, 0, 0)); return; } var cause = Killed.HealthManager.LastDamageCause; if (cause == DamageCause.EntityAttack || cause == DamageCause.Projectile) { Player Killer = Killed.HealthManager.LastDamageSource as Player; if (Killer == null) { Killer = ((Projectile)Killed.HealthManager.LastDamageSource).Shooter; } if (Killer != null) { Player[] players = level.GetSpawnedPlayers(); level.Points[Killer.Username]++; Killer.SendTitle(null, TitleType.AnimationTimes, 6, 6, 20 * 2); switch (level.Points[Killer.Username]) { case 2: Killer.SendTitle("Double Kill!", TitleType.SubTitle); break; case 3: Killer.SendTitle("Multi Kill!", TitleType.SubTitle); break; case 4: Killer.SendTitle("Ultra Kill!", TitleType.SubTitle); break; case 5: Killer.SendTitle("M-m-m MONSTER KILL!", TitleType.SubTitle); break; case 6: Killer.SendTitle("HOLY SHIT!", TitleType.SubTitle); break; } Killer.SendTitle(Killer.NameTag, TitleType.Title); Random rand = new Random(); int id = rand.Next(0, 4); foreach (xPlayer pl in players) { pl.SendMessage(Prefix + string.Format(pl.PlayerData.lang.get("sw.death." + id), Killed.Username, Killer.Username)); } } } else { Player Killer = Killed.HealthManager.LastDamageSource as Player; if (Killer != null) { Player[] players = level.GetSpawnedPlayers(); foreach (xPlayer pl in players) { pl.SendMessage(Prefix + string.Format(pl.PlayerData.lang.get("sw.death.voidp"), Killed.Username, Killer.Username)); } } else { Player[] players = level.GetSpawnedPlayers(); foreach (xPlayer pl in players) { pl.SendMessage(Prefix + string.Format(pl.PlayerData.lang.get("sw.death.void"), Killed.Username)); } } if (level.Status != Status.Finish || level.Status != Status.Start) { } } Killed.DropInventory(); Core.SetSpectator(Killed); Killed.Teleport(new PlayerLocation(level.Map.Center.X, level.Map.Center.Y + 100, level.Map.Center.Z, 0, 0)); return; }
public void Timer(Player[] players, xCoreLevel level) { if (level.Status == Status.Game) { switch (level.Time) { case 600: foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(p.PlayerData.lang.get("sw.timer.game.prerefill5")); } break; case 580: // break; case 420: foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(p.PlayerData.lang.get("sw.timer.game.prerefill2")); } break; case 300: ChestFill(level); foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(p.PlayerData.lang.get("sw.timer.game.refill")); } break; case 0: onGameMatch(level); break; default: Player[] Survided = level.GetSurvivalPlayers(); if (Survided.Count() <= 3) { if (Survided.Count() <= 1) { onGameFinish(level); return; } if (level.Time > 30) { level.Time = 30; } } Core.BossBar.SetNameTag(level, "sw.game.timer.string", true); foreach (xPlayer p in level.GetSpawnedPlayers()) { /*level.BroadcastPopup(p, */Core.BossBar.SendName(p, string.Format(p.PlayerData.lang.get("sw.game.timer.string"), Survided.Count(), level.Map.Name, level.TimeString)); } break; } level.Time--; } else if (level.Status == Status.Finish) { switch (level.Time) { case 10: foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(Prefix + p.PlayerData.lang.get("xcore.finish.to")); } break; case 0: onGameReload(level); break; default: if (players.Length == 0) { onGameReload(level); } /*foreach (Player p in level.GetSpawnedPlayers()) * { * level.BroadcastPopup(p, level.TimeString); * }*/ Core.BossBar.SetNameTag(level, level.TimeString); break; } level.Time--; } else if (level.Status == Status.Match) { if (level.Time > 0) { Core.BossBar.SetNameTag(level, level.TimeString); } else if (level.Time == 0) { level.pvp = true; Core.BossBar.SetNameTag(level, "Deathmatch"); foreach (xPlayer player in level.GetSpawnedPlayers()) { player.SendMessage(Prefix + player.PlayerData.lang.get("sg.timer.dm.start")); player.SetNoAi(false); } } Player[] Survided = level.GetSurvivalPlayers(); if (Survided.Count() <= 1) { onGameFinish(level); return; } level.Time--; } else if (level.Status == Status.Start) { if (players.Length >= MinPlayers) { switch (level.Time) { case 160: case 120: case 60: case 30: case 20: case 10: case 4: case 3: case 2: case 1: foreach (xPlayer player in level.GetSpawnedPlayers()) { player.SendMessage(Prefix + string.Format(player.PlayerData.lang.get("xcore.start.to"), level.Time)); } break; case 5: onGamePreStart(level); break; case 0: onGameStart(level); break; default: if (players.Length >= (level.Slots / 2)) { if (level.Time > 60) { level.Time = 55; return; } } break; } Core.BossBar.SetNameTag(level, level.TimeString); level.Time--; } else { Core.BossBar.SetNameTag(level, "xcore.start.noplayers", true); foreach (xPlayer player in level.GetSpawnedPlayers()) { Core.BossBar.SendName(player, string.Format(player.PlayerData.lang.get("xcore.start.noplayers"), MinPlayers)); } level.Time = 85; level.PreStarted = false; } } }