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); }
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(); }
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); }
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); } }
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); }
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()); } }