public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { string message = string.Join("\n", m_vArgs.Skip(1)); AllianceMailStreamEntry mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(0); mail.SetSenderAvatarId(0); mail.SetSenderName("EuroClash.Net"); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("Automatic Information"); mail.SetMessage("Total Completed Connections: " + ResourcesManager.GetConnectedClients().Count + "\nPlayers Online: " + ResourcesManager.GetOnlinePlayers().Count + "\nIn Memory Alliances: " + ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels: " + ResourcesManager.GetInMemoryLevels().Count); mail.SetSenderLeagueId(22); var p = new AvatarStreamEntryMessage(level.GetClient()); p.SetAvatarStreamEntry(mail); PacketManager.ProcessOutgoingPacket(p); } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if(level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if(m_vArgs.Length >= 1) { string message = string.Join(" ", m_vArgs.Skip(1)); var avatar = level.GetPlayerAvatar(); AllianceMailStreamEntry mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(avatar.GetId()); mail.SetSenderAvatarId(avatar.GetId()); mail.SetSenderName(avatar.GetAvatarName()); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("Legendary Administrator"); mail.SetMessage(message); mail.SetSenderLevel(avatar.GetAvatarLevel()); mail.SetSenderLeagueId(avatar.GetLeagueId()); foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient()); p.SetAvatarStreamEntry(mail); PacketManager.ProcessOutgoingPacket(p); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { var avatar = level.GetPlayerAvatar(); AllianceMailStreamEntry mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(0); mail.SetSenderAvatarId(0); mail.SetSenderName("System Admin"); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("System Manager"); mail.SetMessage("System is restarting in a few moments"); mail.SetSenderLevel(500); mail.SetSenderLeagueId(22); foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient()); p.SetAvatarStreamEntry(mail); PacketManager.ProcessOutgoingPacket(p); Console.WriteLine("issue"); } System.Diagnostics.Process.Start(@"tools\ucs-restart.bat"); } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if(level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if(m_vArgs.Length >= 2) { try { long id = Convert.ToInt64(m_vArgs[1]); var l = ResourcesManager.GetPlayer(id); if(ResourcesManager.IsPlayerOnline(l)) { var p = new OutOfSyncMessage(l.GetClient()); PacketManager.ProcessOutgoingPacket(p); } else { Debugger.WriteLine("Kick failed: id " + id + " not found"); } } catch(Exception ex) { Debugger.WriteLine("Kick failed with error: " + ex.ToString()); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { //SetResourceCount(ObjectManager.DataTables.GetResourceByName("Gold"), Convert.ToInt32(ConfigurationManager.AppSettings["startingGold"])); // ResourcesManager.GetPlayer().GetPlayerAvatar().SetResourceCount(ObjectManager.DataTables.GetResourceByName("Gold"), Convert.ToInt32("32")); level.GetPlayerAvatar().SetResourceCount(ObjectManager.DataTables.GetResourceByName("Gold"), Convert.ToInt32("999999999")); level.GetPlayerAvatar().SetResourceCount(ObjectManager.DataTables.GetResourceByName("DarkElixir"), Convert.ToInt32("999999999")); level.GetPlayerAvatar().SetResourceCount(ObjectManager.DataTables.GetResourceByName("Elixir"), Convert.ToInt32("999999999")); level.GetPlayerAvatar().SetDiamonds(99999999); if (ResourcesManager.IsPlayerOnline(level)) { var p = new OutOfSyncMessage(level.GetClient()); PacketManager.ProcessOutgoingPacket(p); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public void CreateAccount(Level l) { try { Debugger.WriteLine("Saving new account to database (player id: " + l.GetPlayerAvatar().GetId() + ")"); using (var db = new Database.ucsdbEntities(m_vConnectionString)) { db.player.Add( new Database.player { PlayerId = l.GetPlayerAvatar().GetId(), AccountStatus = l.GetAccountStatus(), AccountPrivileges = l.GetAccountPrivileges(), LastUpdateTime = l.GetTime(), Avatar = l.GetPlayerAvatar().SaveToJSON(), GameObjects = l.SaveToJSON() } ); db.SaveChanges(); } } catch (Exception ex) { Debugger.WriteLine("An exception occured during CreateAccount processing:", ex); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { //"Established Connections: " Maybe useless string message = string.Join("\n", m_vArgs.Skip(1)); AllianceMailStreamEntry mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(0); mail.SetSenderAvatarId(0); mail.SetSenderName("UCS System"); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("Legendary Administrator"); mail.SetMessage("Latest Server Status:\nConnected Players:" + ResourcesManager.GetConnectedClients().Count + "\nIn Memory Alliances:" + ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" + ResourcesManager.GetInMemoryLevels().Count); mail.SetSenderLeagueId(22); foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient()); p.SetAvatarStreamEntry(mail); PacketManager.ProcessOutgoingPacket(p); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if(level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if(m_vArgs.Length >= 2) { try { long id = Convert.ToInt64(m_vArgs[1]); var l = ResourcesManager.GetPlayer(id); if(l != null) { l.SetAccountStatus(0); } else { Debugger.WriteLine("Unban failed: id " + id + " not found"); } } catch(Exception ex) { Debugger.WriteLine("Unban failed with error: " + ex.ToString()); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { string message = string.Join("\n", m_vArgs.Skip(1)); AllianceMailStreamEntry mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(0); mail.SetSenderAvatarId(0); mail.SetSenderName("EuroClash.Net"); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("Automatic Information"); mail.SetMessage("/info72 - Shows Server Statistics \n/refill - Refill Resources \n/changelog - View Last Updates"); mail.SetSenderLeagueId(22); var p = new AvatarStreamEntryMessage(level.GetClient()); p.SetAvatarStreamEntry(mail); PacketManager.ProcessOutgoingPacket(p); } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { if(level.GetAccountPrivileges() == 5) { } else { if (ResourcesManager.IsPlayerOnline(level)) { var p = new OutOfSyncMessage(level.GetClient()); PacketManager.ProcessOutgoingPacket(p); } } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if(level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new ShutdownStartedMessage(onlinePlayer.GetClient()); p.SetCode(5); PacketManager.ProcessOutgoingPacket(p); } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { try { long id = Convert.ToInt64(m_vArgs[1]); var l = ResourcesManager.GetPlayer(id, true); if (l != null) { l.GetPlayerAvatar().SetName(m_vArgs[2]); if (ResourcesManager.IsPlayerOnline(l)) { var p = new AvatarNameChangeOkMessage(l.GetClient()); p.SetAvatarName(m_vArgs[2]); PacketManager.ProcessOutgoingPacket(p); } } else { Debugger.WriteLine("RenameAvatar failed: id " + id + " not found"); } } catch (Exception ex) { Debugger.WriteLine("RenameAvatar failed with error: " + ex.ToString()); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Execute(Level level) { if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges()) { if (m_vArgs.Length >= 1) { using (StreamReader sr = new StreamReader(@"gamefiles/default/homemax.json")) { m_vHomeTowerMax = sr.ReadToEnd(); } level.SetHome(m_vHomeTowerMax); //level.LoadFromJSON(m_vHomeTowerMax); if (ResourcesManager.IsPlayerOnline(level)) { var p = new OutOfSyncMessage(level.GetClient()); PacketManager.ProcessOutgoingPacket(p); } } } else { SendCommandFailedMessage(level.GetClient()); } }
public override void Process(Level level) { if (Convert.ToBoolean(ConfigurationManager.AppSettings["maintenanceMode"])) { var p = new LoginFailedMessage(this.Client); p.SetErrorCode(10); PacketManager.ProcessOutgoingPacket(p); return; } string[] versionData = ConfigurationManager.AppSettings["clientVersion"].Split('.'); if(versionData.Length >= 2) { if(m_vClientMajorVersion != Convert.ToInt32(versionData[0]) || m_vClientBuild != Convert.ToInt32(versionData[1])) { var p = new LoginFailedMessage(this.Client); p.SetErrorCode(8); p.SetUpdateURL("http://www.ultrapowa.com/"); PacketManager.ProcessOutgoingPacket(p); return; } } else { Debugger.WriteLine("Connection failed. UCS config key clientVersion is not properly set."); } level = ResourcesManager.GetPlayer(m_vAccountId); if(level != null) { if(level.GetAccountStatus() == 99) { var p = new LoginFailedMessage(this.Client); p.SetErrorCode(11); PacketManager.ProcessOutgoingPacket(p); return; } } if(Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"])) { if (m_vResourceSha != ObjectManager.FingerPrint.sha) { var p = new LoginFailedMessage(this.Client); p.SetErrorCode(7); p.SetResourceFingerprintData(ObjectManager.FingerPrint.SaveToJson()); p.SetContentURL(ConfigurationManager.AppSettings["patchingServer"]); p.SetUpdateURL("http://www.ultrapowa.com/"); PacketManager.ProcessOutgoingPacket(p); return; } } this.Client.ClientSeed = m_vClientSeed; PacketManager.ProcessOutgoingPacket(new SessionKeyMessage(this.Client)); Debugger.WriteLine("[D] Retrieve Player Data for player " + m_vAccountId); Console.ResetColor(); //New player if (level == null) { level = ObjectManager.CreateAvatar(m_vAccountId); byte[] tokenSeed = new byte[20]; new Random().NextBytes(tokenSeed); SHA1 sha = new SHA1CryptoServiceProvider(); m_vPassToken = BitConverter.ToString(sha.ComputeHash(tokenSeed)).Replace("-",""); } if (level.GetAccountPrivileges() > 0) level.GetPlayerAvatar().SetLeagueId(21); if (level.GetAccountPrivileges() > 4) level.GetPlayerAvatar().SetLeagueId(22); ResourcesManager.LogPlayerIn(level, this.Client); level.Tick(); var loginOk = new LoginOkMessage(this.Client); var avatar = level.GetPlayerAvatar(); loginOk.SetAccountId(avatar.GetId()); loginOk.SetPassToken(m_vPassToken); loginOk.SetServerMajorVersion(m_vClientMajorVersion); loginOk.SetServerBuild(m_vClientBuild); loginOk.SetContentVersion(m_vClientContentVersion); loginOk.SetDaysSinceStartedPlaying(10); loginOk.SetServerTime(Math.Round((level.GetTime().Subtract(new DateTime(1970, 1, 1))).TotalSeconds * 1000).ToString()); loginOk.SetAccountCreatedDate("1414003838000"); loginOk.SetStartupCooldownSeconds(0); loginOk.SetCountryCode("US"); PacketManager.ProcessOutgoingPacket(loginOk); Alliance alliance = ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId()); if (alliance == null) level.GetPlayerAvatar().SetAllianceId(0); PacketManager.ProcessOutgoingPacket(new OwnHomeDataMessage(this.Client, level)); if (alliance != null) PacketManager.ProcessOutgoingPacket(new AllianceStreamMessage(this.Client, alliance)); }
public override void Process(Level level) { if(Message.Length > 0) { if(Message[0] == '/') { object obj = GameOpCommandFactory.Parse(Message); if (obj != null) { string player = ""; if (level != null) player += " (" + level.GetPlayerAvatar().GetId() + ", " + level.GetPlayerAvatar().GetAvatarName() + ")"; Debugger.WriteLine("\t" + obj.GetType().Name + player); ((GameOpCommand)obj).Execute(level); } } else { var alliances = ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId()); long senderId = level.GetPlayerAvatar().GetId(); string senderName = level.GetPlayerAvatar().GetAvatarName(); foreach(var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new GlobalChatLineMessage(onlinePlayer.GetClient()); if (onlinePlayer.GetAccountPrivileges() > 0) { if (level.GetPlayerAvatar().GetAllianceId() >= 1) { p.SetPlayerName(senderName + " #" + senderId + "\n🏰 " + alliances.GetAllianceName()); } else { p.SetPlayerName(senderName + " #" + senderId); } } else { if (level.GetPlayerAvatar().GetAllianceId() >= 1) { p.SetPlayerName(senderName + "\n🏰 " + alliances.GetAllianceName()); } else { p.SetPlayerName(senderName); } } if(level.GetPlayerAvatar().GetAllianceId() >= 1) { p.SetChatMessage("\n" + this.Message); } else { p.SetChatMessage(this.Message); } p.SetPlayerId(senderId); // 400 BRONZO || 800 ARGENTO || ORO 1400 | CRISTALLO 2000 | MASTER 2600 | CHAMP 3200 | TITAN 4100 if (level.GetPlayerAvatar().GetScore() >= 400 && level.GetPlayerAvatar().GetScore() <= 800 ) { p.SetLeagueId(3); // bronzo } else if (level.GetPlayerAvatar().GetScore() >= 801 && level.GetPlayerAvatar().GetScore() <= 1400) { p.SetLeagueId(6); } else if (level.GetPlayerAvatar().GetScore() >= 1401 && level.GetPlayerAvatar().GetScore() <= 2000) { p.SetLeagueId(9); } else if (level.GetPlayerAvatar().GetScore() >= 2001 && level.GetPlayerAvatar().GetScore() <= 2600) { p.SetLeagueId(12); } else if (level.GetPlayerAvatar().GetScore() >= 2601 && level.GetPlayerAvatar().GetScore() <= 3200) { p.SetLeagueId(15); } else if (level.GetPlayerAvatar().GetScore() >= 3201 && level.GetPlayerAvatar().GetScore() <= 4099) { p.SetLeagueId(18); } else if (level.GetPlayerAvatar().GetScore() >= 4100) { p.SetLeagueId(21); } if(level.GetAccountPrivileges() == 5) { p.SetLeagueId(22); } //p.SetLeagueId(4); //level.GetPlayerAvatar().GetScore(); PacketManager.ProcessOutgoingPacket(p); } } } }