Exemplo n.º 1
0
 public void onGameReload(xCoreLevel level)
 {
     level.Status = Status.Reload;
     foreach (Player pl in level.GetSpawnedPlayers())
     {
         Core.SpawnLobby(pl);
     }
     ReloadLevel(level);
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
                }
            }
        }