public override void Kill(uint _dieType, uint _attacker)
        {
            if (UID > 100000)
            {
                Life = MaximumLife;
                SendToScreen(Packets.Game.UpdatePacket.Create(UID, Enum.UpdateType.Life, Life), true);
            }
            else
            {
                Life = 1;
            }

            switch (UID)
            {
            case 6700:    //pole
                GuildWar.RoundEnd();
                break;

            case 6701:    //left gate
                GuildWar.KillLeftGate();
                break;

            case 6702:    //right gate
                GuildWar.KillRightGate();
                break;
            }



            SendToScreen(Packets.Game.InteractPacket.Create(_attacker, UID, X, Y, Enum.InteractAction.Kill, _dieType), true);
        }
예제 #2
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (GuildWar.CurrentWinner == _client.Guild && GuildWar.CurrentWinner != null && (MapManager.PullMapByID(1038).Search <SOB>(6702)).Life > 1)
                {
                    AddText("Your guild is currently Victorious. I can let you inside if you wish!");
                    AddOption("Let me in", 1);
                    AddOption("Open/Close the Gate", 2);
                    AddOption("No Thanks.", 255);
                }
                else if (GuildWar.CurrentWinner == _client.Guild && GuildWar.CurrentWinner != null && (MapManager.PullMapByID(1038).Search <SOB>(6702)).Life == 1)
                {
                    AddText("Your guild is currently Victorious. I can repair the gate if you wish.");
                    AddOption("Repair", 3);
                    AddOption("No Thanks.", 255);
                }
                break;

            case 1:

                if (GuildWar.CurrentWinner == _client.Guild && GuildWar.CurrentWinner != null)
                {
                    _client.ChangeMap(1038, 209, 177);
                }
                break;

            case 2:
                if (GuildWar.CurrentWinner == _client.Guild && GuildWar.CurrentWinner != null && _client.GuildRank == Enum.GuildRank.GuildLeader)
                {
                    GuildWar.ToggleRightGate();
                }
                else
                {
                    AddText("Sorry, you are not able to perform this action.");
                    AddOption("Thanks", 255);
                }
                break;

            case 3:
                if (GuildWar.CurrentWinner == _client.Guild && GuildWar.CurrentWinner != null && _client.GuildRank == Enum.GuildRank.GuildLeader)
                {
                    GuildWar.RepairRightGate();
                }
                else
                {
                    AddText("Sorry, you are not able to perform this action.");
                    AddOption("Thanks", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
예제 #3
0
        protected override bool OnProcess()
        {
            var curr = Common.Clock;

            if (curr >= _nextTrigger)
            {
                _nextTrigger += THREAD_SPEED;

                var offset = (curr - _nextTrigger) / Common.MS_PER_SECOND;
                if (Math.Abs(offset) > TIMER_OFFSET_LIMIT)
                {
                    _nextTrigger = curr + THREAD_SPEED;
                }

                //Run managers
                PlayerManager.PlayerManager_Tick();

                MapManager.MapManager_Tick();

                GuildWar.GuildWar_Tick();
            }

            return(true);
        }
예제 #4
0
파일: Mains.cs 프로젝트: iodz37/Iodz
 private static bool ConquordConsole_CloseEvent(CtrlType sig)
 {
     if (MessageBox.Show("Do You Want To Close Console ...?", "Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
     {
         Save();
         foreach (Client.GameClient client in Kernel.GamePool.Values)
         {
             client.Disconnect();
         }
         GameServer.Disable();
         AuthServer.Disable();
         if (GuildWar.IsWar)
         {
             GuildWar.End();
         }
         if (EliteGuildWar.IsWar)
         {
             EliteGuildWar.End();
         }
         if (ClanWar.IsWar)
         {
             ClanWar.End();
         }
         if (CaptureTheFlag.IsWar)
         {
             CaptureTheFlag.Close();
         }
         Application.Exit();
         Environment.Exit(0);
         return(false);
     }
     else
     {
         return(true);
     }
 }
예제 #5
0
        protected override bool OnProcess()
        {
            var curr = Common.Clock;

            if (curr >= _nextTrigger)
            {
                _nextTrigger += THREAD_SPEED;

                var offset = (curr - _nextTrigger) / Common.MS_PER_SECOND;
                if (Math.Abs(offset) > TIMER_OFFSET_LIMIT)
                {
                    _nextTrigger = curr + THREAD_SPEED;
                }

                //Run managers
                PlayerManager.PlayerManager_Tick();

                MapManager.MapManager_Tick();

                GuildWar.GuildWar_Tick();
                PlayerManager.PlayerManager_Tick();

                /*if (DateTime.UtcNow.Second == 10 || DateTime.UtcNow.Second == 40)
                 * {
                 *
                 *  foreach (var user in PlayerManager.Players.Values)
                 *  {
                 *
                 *
                 *
                 *      if (user != null)
                 *      {
                 *
                 *
                 *          user.Save();
                 *          Console.WriteLine("Quartarly Save! {0} accounts saved", PlayerManager.Players.Count);
                 *
                 *      }
                 *  }
                 *
                 *
                 * }*/
                if (DateTime.UtcNow.Second == 00 && (DateTime.UtcNow.Minute == 15 || DateTime.UtcNow.Minute == 30 || DateTime.UtcNow.Minute == 45 || DateTime.UtcNow.Minute == 60))
                {
                    foreach (var user in PlayerManager.Players.Values)
                    {
                        if (user != null)
                        {
                            user.Save();
                            Console.WriteLine("Quartarly Save! {0} accounts saved", PlayerManager.Players.Count);
                        }
                    }
                }


                if (DateTime.UtcNow.Minute == 30 && DateTime.UtcNow.Second == 00)
                {
                    FreeForAll.StartEvent();
                }
                else if (DateTime.UtcNow.Minute == 32 && DateTime.UtcNow.Second == 00)
                {
                    foreach (var user in PlayerManager.Players.Values)
                    {
                        user.SendMessage("1 Min until event start. You can sign up at the Events Manager at Twin City!");
                    }
                    FreeForAll.Send();
                }
                else if (DateTime.UtcNow.Minute == 33 && DateTime.UtcNow.Second == 00)
                {
                    foreach (var user in PlayerManager.Players.Values)
                    {
                        user.SendMessage("3 Mins left... ");
                    }
                }
                else if (DateTime.UtcNow.Minute == 36 && DateTime.UtcNow.Second == 00)
                {
                    foreach (var user in PlayerManager.Players.Values)
                    {
                        user.SendMessage("Event has ended thank you for participation!");
                    }

                    FreeForAll.EndEvent();
                }
            }

            return(true);
        }
예제 #6
0
파일: Mains.cs 프로젝트: iodz37/Iodz
        public static void CommandsAI(string command)
        {
            try
            {
                if (command == null)
                {
                    return;
                }
                string[] data = command.Split(' ');
                switch (data[0])
                {
                case "@clear":
                {
                    System.Console.Clear();
                    Console.WriteLine("Consle And Program Cleared !!");
                    break;
                }

                case "@Conquord":
                case "@Eslam":
                    Console.WriteLine("Server will restart after 10 minutes.");
                    foreach (var client in Kernel.GamePool.Values)
                    {
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 5 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 4 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 4 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 3 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 3 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 2 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 2 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 1 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 1 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                        Console.WriteLine("Server will exit after 1 minute.");
                        CommandsAI("@save");
                        System.Threading.Thread.Sleep(0x7530);
                        client.Send(new Conquord.Network.GamePackets.Message("The Server restarted, Please log in after 2 minutes! ", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System));
                    }
                    try
                    {
                        CommandsAI("@restart");
                    }
                    catch
                    {
                        Console.WriteLine("Server Cannot Exit .");
                    }
                    break;
                    try
                    {
                        CommandsAI("@restart");
                    }
                    catch
                    {
                        Console.WriteLine("Server Cannot Exit");
                    }
                    break;

                case "@flushbans":
                {
                    Database.IPBan.Load();
                    break;
                }

                case "@SNX":
                {
                    ShaDow.ShaDowNpcControl ShaDow = new ShaDow.ShaDowNpcControl();
                    ShaDow.ShowDialog();
                    break;
                }

                case "@online":
                {
                    Console.WriteLine("Online Players Count : " + Kernel.GamePool.Count);
                    string line = "";
                    foreach (Client.GameClient pClient in Program.Values)
                    {
                        line += pClient.Entity.Name + ",";
                    }
                    if (line != "")
                    {
                        line = line.Remove(line.Length - 1);
                        Console.WriteLine("Players : " + line);
                    }
                    break;
                }

                case "@memoryusage":
                {
                    var proc = System.Diagnostics.Process.GetCurrentProcess();
                    Console.WriteLine("Thread count: " + proc.Threads.Count);
                    Console.WriteLine("Memory set(MB): " + ((double)((double)proc.WorkingSet64 / 1024)) / 1024);
                    proc.Close();
                    break;
                }

                case "@save":
                {
                    Save();
                }
                break;

                case "@skill":
                {
                    Game.Features.Tournaments.TeamElitePk.SkillTeamTournament.Open();
                    foreach (var clien in Kernel.GamePool.Values)
                    {
                        if (clien.Team == null)
                        {
                            clien.Team = new Game.ConquerStructures.Team(clien);
                        }
                        Game.Features.Tournaments.TeamElitePk.SkillTeamTournament.Join(clien, 3);
                    }
                    break;
                }

                case "@team":
                {
                    Game.Features.Tournaments.TeamElitePk.TeamTournament.Open();
                    foreach (var clien in Kernel.GamePool.Values)
                    {
                        if (clien.Team == null)
                        {
                            clien.Team = new Game.ConquerStructures.Team(clien);
                        }
                        Game.Features.Tournaments.TeamElitePk.TeamTournament.Join(clien, 3);
                    }
                    break;
                }

                case "@exit":
                {
                    GameServer.Disable();
                    AuthServer.Disable();
                    Save();
                    Database.EntityVariableTable.Save(0, Vars);

                    var WC = Program.Values.ToArray();
                    Parallel.ForEach(Program.Values, client =>
                        {
                            client.Send("Server Will Exit For 5 Min to Fix Some Bugs, Please Be Paitent !");
                            client.Disconnect();
                        });

                    Kernel.SendWorldMessage(new Network.GamePackets.Message(string.Concat(new object[] { "Server Will Exit For 5 Min to Fix Some Bugs, Please Be Paitent" }), System.Drawing.Color.Black, 0x7db), Program.Values);
                    CommandsAI("@save");

                    if (GuildWar.IsWar)
                    {
                        GuildWar.End();
                    }
                    Save();
                    Environment.Exit(0);
                }
                break;

                case "@pressure":
                {
                    Console.WriteLine("Genr: " + World.GenericThreadPool.ToString());
                    Console.WriteLine("Send: " + World.SendPool.ToString());
                    Console.WriteLine("Recv: " + World.ReceivePool.ToString());
                    break;
                }

                case "@restart":
                {
                    try
                    {
                        Kernel.SendWorldMessage(new Network.GamePackets.Message(string.Concat(new object[] { "Server Will Be Restart Now !" }), System.Drawing.Color.Black, 0x7db), Program.Values);
                        CommandsAI("@save");

                        Save();

                        var WC = Program.Values.ToArray();
                        foreach (Client.GameClient client in WC)
                        {
                            client.Send("Server Will Restart !");
                            client.Disconnect();
                        }
                        GameServer.Disable();
                        AuthServer.Disable();
                        if (GuildWar.IsWar)
                        {
                            GuildWar.End();
                        }
                        Save();

                        Application.Restart();
                        Environment.Exit(0);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        Console.ReadLine();
                    }
                }
                break;

                case "@account":
                {
                    Database.AccountTable account = new AccountTable(data[1]);
                    account.Password = data[2];
                    account.State    = AccountTable.AccountState.Player;
                    account.Save();
                }
                break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }