Esempio n. 1
0
        public static void BeginArcher()
        {
            Client.GameState[] client = Conquer_Online_Server.ServerBase.Kernel.GamePool.Values.ToArray();
            foreach (Client.GameState clientss in client)
            {
                if (clientss.Entity.Class >= 40 && clientss.Entity.Class <= 45)
                {

                    Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "The Archer ClassPK Tournament has Started! You Wana Join?");
                    npc.OptionID = 243;
                    clientss.Send(npc.ToArray());
                }
            }
            Stage = PKTournamentStage.Inviting;
            while (CountDown > 0)
            {
                if (CountDown == 60)
                    Broadcast("60 seconds until start", BroadCastLoc.World);
                else if (CountDown == 10)
                {
                    Stage = PKTournamentStage.Countdown;
                    //if (PKTHash.Count < 2)
                    //{
                    //    Broadcast("The tournament requires atleast 2 people to start, Tournament Cancelled.", BroadCastLoc.World);
                    //    Stage = PKTournamentStage.None;
                    //    PKTHash = null;
                    //    return;
                    //}
                    Broadcast("10 seconds until start", BroadCastLoc.World);
                }
                else if (CountDown < 9)
                    Broadcast(CountDown + " seconds until start", BroadCastLoc.World);

                CountDown--;
                Thread.Sleep(1000);
            }
            Stage = PKTournamentStage.Fighting;
            Broadcast("Fight!", BroadCastLoc.World);
            WaitForClass();
        }
Esempio n. 2
0
        public static void StartTournament()
        {
            PKTHash2 = new Dictionary<uint, Client.GameState>();
            CountDown = 320;
            Stage = PKTournamentStage.Inviting;
            Map = 1858;
            X = 70;
            Y = 70;

            PkThread = new Thread(new ThreadStart(BeginTournament));
            PkThread.IsBackground = true;
            PkThread.Start();
        }
Esempio n. 3
0
        public static void WaitForWinner()
        {
            Database.PkWarEvent3.ResetTopTrojan2();
            Database.PkWarEvent3.ResetTopArcher2();
            Database.PkWarEvent3.ResetTopFire2();
            Database.PkWarEvent3.ResetTopMonk2();
            Database.PkWarEvent3.ResetTopNinja2();
            Database.PkWarEvent3.ResetTopWarrior2();
            Database.PkWarEvent3.ResetTopWater2();
            PKTournament.Stage = PKTournamentStage.Fighting;
            uint Tick = (uint)Environment.TickCount;
            int InMapAlive = PKTHash2.Count;
            while (true)
            {
                int alive = 0;
                foreach (Conquer_Online_Server.Client.GameState players in Conquer_Online_Server.ServerBase.Kernel.GamePool.Values)
                    if (players.Entity.MapID == 1858 && (!players.Entity.Dead))
                        alive++;

                foreach (Client.GameState _GC in PKTHash2.Values)
                {
                    if (_GC.InPKT)
                        if (_GC.Entity.Dead == true)
                        {
                            InMapAlive--;
                            _GC.Entity.Teleport(1002, 438, 382);
                            _GC.InPKT = false;
                        }
                        //else if (!ServerBase.Kernel.GamePool.ContainsKey(_GC.Entity.UID))
                        //{
                        //    InMapAlive--;
                        //    _GC.Entity.Teleport(1002, 438, 382);
                        //    _GC.InPKT = false;
                        //}
                }
                System.Threading.Thread.Sleep(5000);
                foreach (Client.GameState _GC in PKTHash2.Values)
                {
                    if (_GC.InPKT)
                        if (alive == 1)
                        {
                            _GC.Entity.Teleport(1002, 438, 382);
                            AwardClass(_GC);
                            ServerBase.Kernel.srs = false;
                            Stage = PKTournamentStage.Over;
                            return;
                        }
                }
                if (InMapAlive != 1)
                {
                    Broadcast("There are " + InMapAlive + " Alive ", BroadCastLoc.Map);

                }
                Thread.Sleep(1000);
            }
        }
Esempio n. 4
0
        private static void AwardWinner(Client.GameState Winner)
        {
            if (Winner.Entity.VIPLevel > 0)
            {

                Broadcast(Winner.Entity.Name + " has won the tournament !He WIn 8.000Cps and WeeklyPKChampion Top cause he VIP", BroadCastLoc.World);
                Winner.Entity.WeeklyPKChampion += 1;
                Winner.Entity.ConquerPoints += 8000;
            }
            else
            {

                Broadcast(Winner.Entity.Name + " has won the tournament !He WIn 4.000Cps and WeeklyPKChampion Top P", BroadCastLoc.World);
                Winner.Entity.WeeklyPKChampion += 1;
                Winner.Entity.ConquerPoints += 4000;
            }
            PKTournament.Stage = PKTournamentStage.None;
            PkThread.Abort();
            return;
        }
Esempio n. 5
0
        private static void AwardClass(Client.GameState Winner)
        {
            #region Ninja
            if (Winner.Entity.Class >= 50 && Winner.Entity.Class <= 55)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Ninja and Got 8k CPs And TopClassNinja casue he VIp", BroadCastLoc.World);
                    Winner.Entity.TopNinja += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Ninja and Got 4k CPs And TopClassNinja", BroadCastLoc.World);
                    Winner.Entity.TopNinja += 1;
                }

            }
            #endregion
            #region Warrior
            if (Winner.Entity.Class >= 20 && Winner.Entity.Class <= 25)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Worrior and Got 8k CPs And TopClassWorrior casu he VIP", BroadCastLoc.World);
                    Winner.Entity.TopWarrior += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Worrior and Got 4k CPs And TopClassWorrior", BroadCastLoc.World);
                    Winner.Entity.TopWarrior += 1;
                }
            }

            #endregion
            #region Archer
            if (Winner.Entity.Class >= 40 && Winner.Entity.Class <= 45)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Archer and Got 8k CPs And TopClassArcher", BroadCastLoc.World);
                    Winner.Entity.TopArcher += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Archer and Got 4k CPs And TopClassArcher", BroadCastLoc.World);
                    Winner.Entity.TopArcher += 1;
                }

            }
            #endregion
            #region Trojan
            if (Winner.Entity.Class >= 10 && Winner.Entity.Class <= 15)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Trojan and Got 8k CPs And TopClassTrojan cause He VIP", BroadCastLoc.World);
                    Winner.Entity.TopTrojan += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Trojan and Got 4k CPs And TopClassTrojan", BroadCastLoc.World);
                    Winner.Entity.TopTrojan += 1;
                }
            }
            #endregion
            #region Water
            if (Winner.Entity.Class >= 130 && Winner.Entity.Class <= 135)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Water and Got 8k CPs And TopClassWaterToist case he VIP", BroadCastLoc.World);
                    Winner.Entity.TopWaterTaoist += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Water and Got 4k CPs And TopClassWaterToist", BroadCastLoc.World);
                    Winner.Entity.TopWaterTaoist += 1;
                }

            }
            #endregion
            #region Fire
            if (Winner.Entity.Class >= 140 && Winner.Entity.Class <= 145)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Toist and Got 8k CPs And TopClassFireToist case he Vip", BroadCastLoc.World);
                    Winner.Entity.TopFireTaoist += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Toist and Got 4k CPs And TopClassFireToist", BroadCastLoc.World);
                    Winner.Entity.TopFireTaoist += 1;
                }
            }
            #endregion
            #region Monk
            if (Winner.Entity.Class >= 60 && Winner.Entity.Class <= 65)
            {
                if (Winner.Entity.VIPLevel > 0)
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Monk and Got 8k CPs And TopClassMonk case he VIP", BroadCastLoc.World);
                    Winner.Entity.TopMonk += 1;
                }
                else
                {
                    Broadcast(Winner.Entity.Name + " Has Wins ClassPk War! Monk and Got 4k CPs And TopClassMonk", BroadCastLoc.World);
                    Winner.Entity.TopMonk += 1;
                }

            }
            #endregion
            if (Winner.Entity.VIPLevel > 0)
            {
                Winner.Entity.ConquerPoints += 8000;
            }
            else
            {
                Winner.Entity.ConquerPoints += 4000;
            }
            PKTournament.Stage = PKTournamentStage.None;
            PkThread.Abort();
            return;
        }
Esempio n. 6
0
        public static void WaitForWinner()
        {
            //Main.GameClient GC
            //  Main.GameClient GCs = new NewestCOServer.Game.Character();
            PKTournament.Stage = PKTournamentStage.Fighting;
            uint Tick = (uint)Environment.TickCount;
            int InMapAlive = PKTHash.Count;
            while (true)
            {
                int alive = 0;
                foreach (Conquer_Online_Server.Client.GameState players in Conquer_Online_Server.ServerBase.Kernel.GamePool.Values)
                    if (players.Entity.MapID == 1507 && (!players.Entity.Dead))
                        alive++;

                foreach (Client.GameState _GC in PKTHash.Values)
                {
                    if (_GC.InPKT)
                        if (_GC.Entity.Dead == true)
                        {
                            InMapAlive--;
                            _GC.Entity.Teleport(1002, 438, 382);
                            _GC.InPKT = false;
                        }
                    //else if (!ServerBase.Kernel.GamePool.ContainsKey(_GC.Entity.UID))
                    //{
                    //    InMapAlive--;
                    //    _GC.Entity.Teleport(1002, 438, 382);
                    //    _GC.InPKT = false;
                    //}
                }
                System.Threading.Thread.Sleep(2000);
                foreach (Client.GameState _GC in PKTHash.Values)
                {
                    if (_GC.InPKT)
                        if (alive == 1)
                        {
                            _GC.Entity.Teleport(1002, 438, 382);
                            AwardWinner(_GC);
                            Stage = PKTournamentStage.Over;
                            ServerBase.Kernel.PK = false;
                            return;
                        }
                }
                if (InMapAlive != 1)
                {
                    Broadcast("There are " + InMapAlive + " Alive ", BroadCastLoc.Map);

                }
                Thread.Sleep(1000);
            }
        }
Esempio n. 7
0
        public static void StartTournamentWarrior()
        {
            PKTHash = new Dictionary<uint, Client.GameState>();
            CountDown = 320;
            Stage = PKTournamentStage.Inviting;
            Map = 1787;
            X = 50;
            Y = 50;

            PkThread = new Thread(new ThreadStart(BeginWarrior));
            PkThread.IsBackground = true;
            PkThread.Start();
        }