Guest User

Untitled

a guest
Mar 20th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 71.16 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Runtime.InteropServices;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using System.IO;
  9. using Project_Terror_v2.Game.MsgServer;
  10. using Project_Terror_v2.Game;
  11. using Project_Terror_v2.Cryptography;
  12. using ProtoBuf;
  13. using Project_Terror_v2.Database;
  14. using System.Net;
  15.  
  16.  
  17. namespace Project_Terror_v2
  18. {
  19. using PacketInvoker = CachedAttributeInvocation<Action<Client.GameClient, ServerSockets.Packet>, PacketAttribute, ushort>;
  20. using System.Windows.Forms;
  21.  
  22. class Program
  23. {
  24. public static Extensions.Time32 CurrentTime
  25. {
  26. get
  27. {
  28. return new Extensions.Time32();
  29. }
  30. }
  31. public static List<byte[]> LoadPackets = new List<byte[]>();
  32. public static ServerSockets.SocketThread SocketsGroup;
  33. public static List<uint> ProtectMapSpells = new List<uint>() { 1038, Game.MsgTournaments.MsgSuperGuildWar.MapID };
  34. public static List<uint> MapCounterHits = new List<uint>() { 26391, 26392, 26393, 26394, 26395, 26396, 26397, 26398, 26399, 1005, 6000, 5051 };
  35. public static bool OnMainternance = false;
  36.  
  37. public static Extensions.Time32 SaveDBStamp = Extensions.Time32.Now.AddMilliseconds(KernelThread.SaveDatabaseStamp);
  38. public static List<uint> RankableFamilyIds = new List<uint>() { 20300, 20160, 20070, 29370, 29360, 29300, 29363 };
  39. public static List<uint> NoDropItems = new List<uint>() { 1764, 700, 1801, 3954, 3820 };
  40.  
  41. public static List<uint> FreePkMap = new List<uint>() { 5379, 5378, 53771, 53761, 53751, 26391, 26392, 26393, 6521, 10550, 26394, 26395, 26396, 26397, 26398, 26399, 10137, 3998,3071,5051, 6000, 6001,1505, 1005, 1038, 700, 1508, 1801, Game.MsgTournaments.MsgSuperGuildWar.MapID, Game.MsgTournaments.MsgCaptureTheFlag.MapID
  42. , Game.MsgTournaments.MsgTeamDeathMatch.MapID };
  43. public static List<uint> BlockAttackMap = new List<uint>() { 3825,3830, 3831, 3832,3834,3826,3827,3828,3829,3833, 9995,1068, 4020, 4000, 4003, 4006, 4008, 4009 , 1860 ,1858,1780, 1779/*Ghost Map*/, 9972, 1806, 1002, 3954, 3081, 1036, 1004, 1008, 601, 1006, 1511, 1039, 700, Game.MsgTournaments.MsgEliteGroup.WaitingAreaID, (uint)Game.MsgTournaments.MsgSteedRace.Maps.DungeonRace, (uint)Game.MsgTournaments.MsgSteedRace.Maps.IceRace
  44. ,(uint)Game.MsgTournaments.MsgSteedRace.Maps.IslandRace, (uint)Game.MsgTournaments.MsgSteedRace.Maps.LavaRace, (uint)Game.MsgTournaments.MsgSteedRace.Maps.MarketRace};
  45. public static List<uint> BlockTeleportMap = new List<uint>() { 601, 6000, 1801, 6001, 1005, 700, 5051, 1858, 1860, 3852, Game.MsgTournaments.MsgEliteGroup.WaitingAreaID, 1768 };
  46. public static Role.Instance.Nobility.NobilityRanking NobilityRanking = new Role.Instance.Nobility.NobilityRanking();
  47. public static Role.Instance.ChiRank ChiRanking = new Role.Instance.ChiRank();
  48.  
  49. public static Role.Instance.Flowers.FlowersRankingToday FlowersRankToday = new Role.Instance.Flowers.FlowersRankingToday();
  50. public static Role.Instance.Flowers.FlowerRanking GirlsFlowersRanking = new Role.Instance.Flowers.FlowerRanking();
  51. public static Role.Instance.Flowers.FlowerRanking BoysFlowersRanking = new Role.Instance.Flowers.FlowerRanking(false);
  52.  
  53. public static ShowChatItems GlobalItems;
  54. public static SendGlobalPacket SendGlobalPackets;
  55. public static PacketInvoker MsgInvoker;
  56. public static ServerSockets.ServerSocket GameServer;
  57.  
  58. [DllImport("kernel32.dll")]
  59. private static extern bool SetConsoleCtrlHandler(ConsoleHandlerDelegate handler, bool add);
  60. private delegate bool ConsoleHandlerDelegate(int type);
  61. private static ConsoleHandlerDelegate handlerKeepAlive;
  62.  
  63. public static bool ProcessConsoleEvent(int type)
  64. {
  65. try
  66. {
  67. if (ServerConfig.IsInterServer)
  68. {
  69. foreach (var client in Database.Server.GamePoll.Values)
  70. {
  71. try
  72. {
  73. if (client.Socket != null)//for my fake accounts !
  74. client.Socket.Disconnect();
  75. }
  76. catch (Exception e)
  77. {
  78. MyConsole.WriteLine(e.ToString());
  79. }
  80. }
  81. return true;
  82. }
  83. try
  84. {
  85. if (WebServer.Proces.AccServer != null)
  86. {
  87. WebServer.Proces.Close();
  88. WebServer.Proces.AccServer.Close();
  89. }
  90. if (GameServer != null)
  91. GameServer.Close();
  92.  
  93.  
  94. }
  95. catch (Exception e) { MyConsole.SaveException(e); }
  96.  
  97. try
  98. {
  99. foreach (var user in WebServer.LoaderServer.Clients.Values)
  100. user.Disconnect();
  101. }
  102. catch(Exception e)
  103. {
  104. MyConsole.SaveException(e);
  105. }
  106. MyConsole.WriteLine("Saving Database...");
  107.  
  108.  
  109. foreach (var client in Database.Server.GamePoll.Values)
  110. {
  111. try
  112. {
  113. if (client.Socket != null)//for my fake accounts !
  114. client.Socket.Disconnect();
  115. }
  116. catch (Exception e)
  117. {
  118. MyConsole.WriteLine(e.ToString());
  119. }
  120. }
  121. Role.Instance.Clan.ProcessChangeNames();
  122.  
  123. Database.Server.SaveDatabase();
  124. if (Database.ServerDatabase.LoginQueue.Finish())
  125. {
  126. System.Threading.Thread.Sleep(1000);
  127. MyConsole.WriteLine("Database Save Succefull.");
  128. }
  129. }
  130. catch (Exception e)
  131. {
  132. MyConsole.SaveException(e);
  133. }
  134. return true;
  135. }
  136.  
  137. public static Extensions.Time32 ResetRandom = new Extensions.Time32();
  138.  
  139. public static Extensions.SafeRandom GetRandom = new Extensions.SafeRandom();
  140. public static Extensions.RandomLite LiteRandom = new Extensions.RandomLite();
  141.  
  142. public static class ServerConfig
  143. {
  144. public static string CO2Folder = "";
  145. public static string Chatbox = "";
  146. public static string ChangePassword = "";
  147. public static string StorePage = "";
  148. public static string XtremeTopLink = "http://www.xtremetop100.com/in.php?site=1132365121#.XGBwCjm1jXc.link";
  149. public static string FBStoreLink = "";
  150. public static string RedeemLink = "";
  151. public static uint ServerID = 0;
  152. public static string IPAddres = "195.201.25.170";
  153. public static ushort AuthPort = 9960;
  154. public static ushort GamePort = 5817;
  155. public static string ServerName = "";
  156. public static string ServerShadowClone = "Doom";
  157. public static string OfficialWebSite = "";
  158. //InternetPort
  159. public static ushort Port_BackLog;
  160. public static ushort Port_ReceiveSize = 16384;
  161. public static ushort Port_SendSize = 16384;
  162. //Database
  163. public static string DbLocation = "";
  164. //Web Server
  165. public static ushort WebPort = 9900;
  166. public static string AccServerIPAddres = "195.201.25.170";
  167. public static uint ExpRateSpell = 100;
  168. public static uint ExpRateProf = 100;
  169. public static uint UserExpRate = 10000000;
  170. public static uint PhysicalDamage = 100;
  171. //Loader
  172. public static string LoaderIP = "195.201.25.170";
  173. public static ushort LoaderPort = 9901;
  174. //interServer
  175. public static string InterServerAddress = "195.201.25.170";
  176. public static ushort InterServerPort = 0;
  177. public static bool IsInterServer = false;
  178. }
  179. public static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
  180. {
  181. Console.WriteLine(e.ToString());
  182. }
  183. static int CutTrail(int x, int y) { return (x >= y) ? x : y; }
  184. static int AdjustDefence(int nDef, int power2, int bless)
  185. {
  186. int nAddDef = 0;
  187. nAddDef += Game.MsgServer.AttackHandler.Calculate.Base.MulDiv(nDef, 100 - power2, 100) - nDef;
  188.  
  189. return Game.MsgServer.AttackHandler.Calculate.Base.MulDiv(nDef + nAddDef, 100 - power2, 100);
  190.  
  191. }
  192.  
  193.  
  194. public static void TESTT()
  195. {
  196. double base_d_factor = 130;
  197. double scaled_d_factor = 0.5;
  198. double dif = 139500 - 25000;
  199. double sign_dif =Math.Sign(dif);
  200. double scale = 1.0 + (-1.0 / (sign_dif + dif / (base_d_factor + 25000 * scaled_d_factor)) + sign_dif);
  201. double ttt = 139500 * scale;
  202. }
  203.  
  204.  
  205. public class sorine
  206. {
  207. public uint uid = 333;
  208. }
  209.  
  210.  
  211. static byte[] DecryptString(char[] str)
  212. {
  213. int i = 0;
  214. byte[] nstr = new byte[1000];
  215. do
  216. {
  217. nstr[i] = Convert.ToByte(str[i + 1] ^ 0x34);
  218. } while (nstr[i++] != 0);
  219. return nstr;
  220. }
  221. public static void writetext(string tes99)
  222. {
  223. char[] tg = new char[tes99.Length];
  224. for (int x = 0; x < tes99.Length; x++)
  225. tg[x] = tes99[x];
  226. var hhhh = DecryptString(tg);
  227. Console.WriteLine(ASCIIEncoding.ASCII.GetString(hhhh));
  228. }
  229. public static int n=0;
  230. public static int sol;
  231. public static int[] v = new int[100];
  232. public static void afisare()
  233. {
  234. Console.WriteLine("");
  235. int i;
  236. // int x;
  237. // int j;
  238. sol++;
  239.  
  240. Console.WriteLine("sol: " + sol);
  241. for (i = 1; i <= n; i++)
  242. {
  243. Console.Write(v[i] + " ");
  244. /* for (j = 1; j <= n; j++)
  245.  
  246. /*if (v[i] == j)
  247. Console.Write("D ");
  248. else
  249. Console.Write("_ ");
  250. Console.Write(Environment.NewLine);*/
  251. }
  252. Console.Write(Environment.NewLine);
  253. }
  254. public static int valid(int k)
  255. {
  256. int i;
  257. for (i = 1; i <= k - 1; i++)
  258. if ((v[k] <= v[i]))//|| (Math.Abs(v[k] - v[i]) == (k - i)))
  259. return 0;
  260. return 1;
  261. }
  262. public static int solutie(int k)
  263. {
  264. if (k == n)
  265. return 1;
  266. return 0;
  267. }
  268. public static void BK(int k)
  269. {
  270. for (int i = 1; i <= n; i++)
  271. {
  272. v[k] = i;
  273. if (valid(k) == 1)
  274. {
  275. if (solutie(k) == 1)
  276. afisare();
  277. else
  278. BK(k + 1);
  279. }
  280. }
  281. }
  282. public static unsafe void Main(string[] args)
  283. {
  284.  
  285. try
  286. {
  287.  
  288. ServerSockets.Packet.SealString = "TQServer";
  289. Console.Title = "THEDoom BEST SERVER 2.0 CONQUER ."; Console.BackgroundColor = ConsoleColor.Black;
  290. Console.ForegroundColor = ConsoleColor.Green;
  291. MyConsole.WriteLine("---------------------- Project Doom ------------------------");
  292. Console.ForegroundColor = ConsoleColor.Red;
  293. MsgInvoker = new PacketInvoker(PacketAttribute.Translator);
  294. Cryptography.DHKeyExchange.KeyExchange.CreateKeys();
  295.  
  296. Game.MsgTournaments.MsgSchedules.Create();
  297. Poker.Database.Load();
  298. Database.Server.Initialize();
  299.  
  300. SendGlobalPackets = new SendGlobalPacket();
  301.  
  302. Cryptography.AuthCryptography.PrepareAuthCryptography();
  303.  
  304. Database.Server.LoadDatabase();
  305.  
  306. handlerKeepAlive = ProcessConsoleEvent;
  307. SetConsoleCtrlHandler(handlerKeepAlive, true);
  308.  
  309.  
  310.  
  311.  
  312. WebServer.LoaderServer.Init();
  313. WebServer.Proces.Init();
  314. if (ServerConfig.IsInterServer == false)
  315. {
  316. GameServer = new ServerSockets.ServerSocket(
  317. new Action<ServerSockets.SecuritySocket>(p => new Client.GameClient(p))
  318. , Game_Receive, Game_Disconnect);
  319. GameServer.Initilize(ServerConfig.Port_SendSize, ServerConfig.Port_ReceiveSize, 1, 3);
  320. GameServer.Open(ServerConfig.IPAddres, ServerConfig.GamePort, ServerConfig.Port_BackLog);
  321.  
  322.  
  323. }
  324.  
  325. GlobalItems = new ShowChatItems();
  326.  
  327. Database.NpcServer.LoadServerTraps();
  328.  
  329. MsgInterServer.PipeServer.Initialize();
  330.  
  331. ThreadPoll.Create();
  332.  
  333. SocketsGroup = new ServerSockets.SocketThread("ConquerServer"
  334. , GameServer
  335. , MsgInterServer.PipeServer.Server
  336. , WebServer.LoaderServer.Server
  337. , WebServer.Proces.AccServer);
  338.  
  339. SocketsGroup.Start();
  340.  
  341. MsgInterServer.StaticConnexion.Create();
  342.  
  343. Game.MsgTournaments.MsgSchedules.ClanWar = new Game.MsgTournaments.MsgClanWar();
  344.  
  345.  
  346.  
  347. new KernelThread(300, "ConquerServer2").Start();
  348. new MapGroupThread(100, "ConquerServer3").Start();
  349.  
  350.  
  351.  
  352. }
  353. catch (Exception e)
  354. {
  355. if (true)
  356. {
  357. Console.WriteLine(e.Message);
  358. }
  359. Console.WriteLine(e);
  360.  
  361. Console.Read();
  362. }
  363. for (; ; )
  364. ConsoleCMD(MyConsole.ReadLine());
  365. }
  366.  
  367. public static void SaveDBPayers(Extensions.Time32 clock)
  368. {
  369.  
  370. if (clock > SaveDBStamp)
  371. {
  372. if (Database.Server.FullLoading && !Program.ServerConfig.IsInterServer)
  373. {
  374. foreach (var user in Database.Server.GamePoll.Values)
  375. {
  376. if (user.OnInterServer)
  377. continue;
  378. if ((user.ClientFlag & Client.ServerFlag.LoginFull) == Client.ServerFlag.LoginFull)
  379. {
  380. user.ClientFlag |= Client.ServerFlag.QueuesSave;
  381. Database.ServerDatabase.LoginQueue.TryEnqueue(user);
  382. }
  383. }
  384. Database.Server.SaveDatabase();
  385. MyConsole.WriteLine("Database Saved .");
  386. }
  387. SaveDBStamp.Value = clock.Value + KernelThread.SaveDatabaseStamp;
  388. }
  389.  
  390. }
  391. public static void Copy(string sourceDirectory, string targetDirectory)
  392. {
  393. DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
  394. DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
  395.  
  396. CopyAll(diSource, diTarget);
  397. }
  398.  
  399. public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
  400. {
  401. Directory.CreateDirectory(target.FullName);
  402.  
  403. // Copy each file into the new directory.
  404. foreach (FileInfo fi in source.GetFiles())
  405. {
  406. // Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
  407. fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);
  408. }
  409.  
  410. // Copy each subdirectory using recursion.
  411. foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
  412. {
  413. DirectoryInfo nextTargetSubDir =
  414. target.CreateSubdirectory(diSourceSubDir.Name);
  415. CopyAll(diSourceSubDir, nextTargetSubDir);
  416. }
  417. }
  418.  
  419.  
  420. public unsafe static void ConsoleCMD(string cmd)
  421. {
  422. try
  423. {
  424. string[] line = cmd.Split(' ');
  425.  
  426. switch (line[0])
  427. {
  428. case "chat":
  429. {
  430. var ChatCon = new Panels.ChatPanal();
  431. ChatCon.ShowDialog();
  432. break;
  433. }
  434.  
  435. case "222":
  436. {
  437. try
  438. {
  439. string create = Program.ServerConfig.DbLocation + "\\AABackUP\\" + DateTime.Now.Year + " - " + DateTime.Now.Month + " - " + DateTime.Now.Day + " ";
  440. string createUsers = create + "\\Users";
  441. string createspells = create + "\\PlayersSpells";
  442. string createprofs = create + "\\PlayersProfs";
  443. string createitems = create + "\\PlayersItems";
  444. string createquests = create + "\\Quests";
  445. string createhouses = create + "\\Houses";
  446. string createclans = create + "\\Clans";
  447. string createguilds = create + "\\Guilds";
  448. string createunions = create + "\\Unions";
  449. string all = createUsers + createspells + createprofs + createitems + createquests + createhouses + createclans + createguilds +createunions;
  450. try
  451. {
  452. if (!Directory.Exists(create))
  453. {
  454. DirectoryInfo di = Directory.CreateDirectory(create);
  455. DirectoryInfo di2 = Directory.CreateDirectory(createUsers);
  456. DirectoryInfo di3 = Directory.CreateDirectory(createspells);
  457. DirectoryInfo di4 = Directory.CreateDirectory(createprofs);
  458. DirectoryInfo di5 = Directory.CreateDirectory(createitems);
  459. DirectoryInfo di6 = Directory.CreateDirectory(createquests);
  460. DirectoryInfo di7 = Directory.CreateDirectory(createhouses);
  461. DirectoryInfo di8 = Directory.CreateDirectory(createclans);
  462. DirectoryInfo di9 = Directory.CreateDirectory(createguilds);
  463. DirectoryInfo di0 = Directory.CreateDirectory(createunions);
  464. // MyConsole.WriteLine("Folders Created at " + create + "");
  465. File.Copy(Program.ServerConfig.DbLocation + "\\JiangHu.txt", create + "\\JiangHu.txt", true);
  466. File.Copy(Program.ServerConfig.DbLocation + "\\PrestigeRanking.txt", create + "\\PrestigeRanking.txt", true);
  467. File.Copy(Program.ServerConfig.DbLocation + "\\InnerPower.txt", create + "\\InnerPower.txt", true);
  468. Copy(Program.ServerConfig.DbLocation + "\\Users", createUsers);
  469. Copy(Program.ServerConfig.DbLocation + "\\PlayersSpells", createspells);
  470. Copy(Program.ServerConfig.DbLocation + "\\PlayersProfs", createprofs);
  471. Copy(Program.ServerConfig.DbLocation + "\\PlayersItems", createitems);
  472. Copy(Program.ServerConfig.DbLocation + "\\Quests", createquests);
  473. Copy(Program.ServerConfig.DbLocation + "\\Houses", createhouses);
  474. Copy(Program.ServerConfig.DbLocation + "\\Clans", createclans);
  475. Copy(Program.ServerConfig.DbLocation + "\\Guilds", createguilds);
  476. Copy(Program.ServerConfig.DbLocation + "\\Unions", createunions);
  477. MyConsole.WriteLine("Done BackUp Database For today ( " + DateTime.Now.Year + " - " + DateTime.Now.Month + " - " + DateTime.Now.Day + " ) ");
  478. return;
  479.  
  480. }
  481. else
  482. {
  483. MyConsole.WriteLine("" + create + " Already BackedUp once !");
  484. return;
  485.  
  486. }
  487. }
  488. catch (IOException ioex)
  489. {
  490. Console.WriteLine(ioex.Message);
  491. }
  492.  
  493.  
  494. }
  495. catch (Exception e) { Console.WriteLine(e.ToString()); }
  496. break;
  497. }
  498. case "223":
  499. {
  500.  
  501.  
  502. try
  503. {
  504.  
  505. }
  506. catch (Exception Ex)
  507. {
  508. Console.Error.WriteLine(Ex.Message);
  509. }
  510. break;
  511. }
  512. case "war":
  513. {
  514. Controlpanel cp = new Controlpanel();
  515. cp.ShowDialog();
  516. break;
  517. }
  518. case "hacks":
  519. {
  520. const string UnhandledExceptionsPath = "BannedUsersCheat\\";
  521. var dt = DateTime.Now;
  522. string fullPath = Environment.CurrentDirectory + @"\\BannedUsersCheat\\" + dt.Day + "-" + dt.Month + "-" + dt.Year + ".txt";
  523. if (!Directory.Exists(Application.StartupPath + UnhandledExceptionsPath))
  524. Directory.CreateDirectory(Application.StartupPath + "\\" + UnhandledExceptionsPath);
  525. if (!Directory.Exists(Application.StartupPath + "\\" + UnhandledExceptionsPath))
  526. Directory.CreateDirectory(Application.StartupPath + "\\" + UnhandledExceptionsPath);
  527. if (!Directory.Exists(Application.StartupPath + "\\" + UnhandledExceptionsPath))
  528. Directory.CreateDirectory(Application.StartupPath + "\\" + UnhandledExceptionsPath);
  529. if (!File.Exists(fullPath + ".txt"))
  530. {
  531. File.WriteAllLines(fullPath + ".txt", new string[0]);
  532. }
  533.  
  534.  
  535. using (var SW = File.AppendText(fullPath + ".txt"))
  536. {
  537. SW.WriteLine("||User [GM]Doom[pm]SSS Banned For 800 Count 3 Using Prog : Cheatengingx64-x68.exe His IP : 10.0.0.6 || /n");
  538. SW.Close();
  539. }
  540. break;
  541. }
  542. case "clear":
  543. {
  544. Console.Clear();
  545. break;
  546. }
  547. //case "cpst":
  548. // {
  549. // if (line.Length < 2)
  550. // {
  551. // MyConsole.WriteLine("Message Can't be Deququed.");
  552. // break;
  553. // }
  554. // uint Bet = Convert.ToUInt32(line[1]);
  555. // foreach (var user in Server.GamePoll.Values)
  556. // {
  557. // user.Player.MessageBox("Cps Tournment War Started Bet " + Bet + " Cps", p =>
  558. // {
  559. // if (Game.MsgTournaments.MsgSchedules.ArenaCpsBattle.SignUp(p, Bet) == false)
  560. // {
  561. // p.SendSysMesage("don't have requierments.", MsgMessage.ChatMode.Service, MsgMessage.MsgColor.yellow);
  562. // }
  563. // }, null, 15);
  564. // }
  565. // break;
  566. // }
  567. case "goldentree":
  568. {
  569. if (Database.GlobalLotteryTable.Loaded)
  570. {
  571. Database.Server.GoldenTreeClaimed = 0;
  572. Database.Server.GoldenTreeExpirationDate = DateTime.Now.AddHours(double.Parse(line[1]));
  573. Database.Server.MaxAvaliableGoldenTreeClaim = uint.Parse(line[2]);
  574. }
  575. else
  576. MyConsole.WriteLine("Couldn't Load Global Lottery Files.");
  577. break;
  578. }
  579. case "powerarena":
  580. {
  581. Game.MsgTournaments.MsgSchedules.PowerArena.Start();
  582. break;
  583. }
  584. case "eliteguildwaron":
  585. {
  586. Game.MsgTournaments.MsgSchedules.EliteGuildWar.Start();
  587. break;
  588. }
  589. case "eliteguildwarend":
  590. {
  591. Game.MsgTournaments.MsgSchedules.EliteGuildWar.End();
  592. break;
  593. }
  594. case "squidward":
  595. {
  596. Game.MsgTournaments.MsgSchedules.SquidwardOctopus.Start();
  597. break;
  598. }
  599. case "save":
  600. {
  601. Database.Server.SaveDatabase();
  602. if (Database.Server.FullLoading && !Program.ServerConfig.IsInterServer)
  603. {
  604. foreach (var user in Database.Server.GamePoll.Values)
  605. {
  606. if (user.OnInterServer)
  607. continue;
  608. if ((user.ClientFlag & Client.ServerFlag.LoginFull) == Client.ServerFlag.LoginFull)
  609. {
  610. user.ClientFlag |= Client.ServerFlag.QueuesSave;
  611. Database.ServerDatabase.LoginQueue.TryEnqueue(user);
  612. }
  613. }
  614. MyConsole.WriteLine("Database got saved ! ");
  615. }
  616. if (Database.ServerDatabase.LoginQueue.Finish())
  617. {
  618. System.Threading.Thread.Sleep(1000);
  619. MyConsole.WriteLine("Database saved successfully.");
  620. }
  621. break;
  622. }
  623.  
  624. case "steed":
  625. {
  626. Game.MsgTournaments.MsgSchedules.SteedRace.Create();
  627. break;
  628. }
  629. case "ctfon":
  630. {
  631. Game.MsgTournaments.MsgSchedules.CaptureTheFlag.Start();
  632. break;
  633. }
  634. case "teamon":
  635. {
  636. Game.MsgTournaments.MsgSchedules.TeamPkTournament.Start();
  637. break;
  638. }
  639. case "kick":
  640. {
  641.  
  642. foreach (var user in Database.Server.GamePoll.Values)
  643. {
  644. if (user.Player.Name.Contains(line[1]))
  645. {
  646. user.EndQualifier();
  647. }
  648. }
  649. break;
  650. }
  651.  
  652. case "pk":
  653. {
  654. Game.MsgTournaments.MsgSchedules.ElitePkTournament.Start();
  655.  
  656. foreach (var clients in Database.Server.GamePoll.Values)
  657. {
  658. Game.MsgTournaments.MsgSchedules.ElitePkTournament.SignUp(clients);
  659. }
  660. break;
  661. }
  662. case "teampk":
  663. {
  664. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.Start();
  665. var array = Database.Server.GamePoll.Values.ToArray();
  666.  
  667.  
  668. for (int x = 0; x < array.Length - 5; x += 5)
  669. {
  670. if (array[x].Team == null)
  671. {
  672. try
  673. {
  674. array[x].Team = new Role.Instance.Team(array[x]);
  675. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x]);
  676. using (var rec = new ServerSockets.RecycledPacket())
  677. {
  678. var stream = rec.GetStream();
  679. array[x + 1].Team = array[0].Team;
  680. array[x].Team.Add(stream, array[x + 1]);
  681. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 1]);
  682.  
  683. array[x + 2].Team = array[0].Team;
  684. array[x].Team.Add(stream, array[x + 2]);
  685. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 2]);
  686.  
  687. array[x + 3].Team = array[0].Team;
  688. array[x].Team.Add(stream, array[x + 3]);
  689. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 3]);
  690.  
  691. array[x + 4].Team = array[0].Team;
  692. array[x].Team.Add(stream, array[x + 4]);
  693. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 4]);
  694. }
  695.  
  696. }
  697. catch { }
  698. }
  699. }
  700. break;
  701. }
  702. case "search":
  703. {
  704. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  705. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  706. {
  707. ini.FileName = fname;
  708.  
  709. string Name = ini.ReadString("Character", "Name", "None");
  710. if (Name.ToLower() == line[1].ToLower() || Name.Contains(line[1]))
  711. {
  712. Console.WriteLine(ini.ReadUInt32("Character", "UID", 0));
  713. break;
  714. }
  715.  
  716. }
  717. break;
  718. }
  719. case "rn":
  720. {
  721. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  722. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  723. {
  724. ini.FileName = fname;
  725.  
  726. ulong nobility = ini.ReadUInt64("Character", "DonationNobility", 0);
  727.  
  728. ini.Write<ulong>("Character", "DonationNobility", 0);
  729. Console.WriteLine("DonationNobility Is reast Now");
  730. }
  731. Console.WriteLine("DonationNobility Is reast 70% Now");
  732. break;
  733. }
  734. case "re":
  735. {
  736. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  737. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  738. {
  739. ini.FileName = fname;
  740.  
  741. long DonationNobility = ini.ReadInt64("Character", "DonationNobility", 0);
  742.  
  743. if (DonationNobility < 0)
  744. {
  745. Console.WriteLine("DonationNobility is reast Now");
  746. }
  747. Console.WriteLine("DonationNobility Is Reast Done .");
  748. }
  749. break;
  750. }
  751. case "restartmoney":
  752. {
  753. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  754. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  755. {
  756. ini.FileName = fname;
  757.  
  758. ulong Money = ini.ReadUInt64("Character", "Money", 0);
  759. // Money = Money * 30 / 100;
  760. Money = 0;
  761. ini.Write<ulong>("Character", "Money", Money);
  762. Console.WriteLine("Money Is reast Now");
  763. }
  764.  
  765. break;
  766.  
  767. }
  768.  
  769. // case "rm":
  770. // {
  771. // WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  772. //foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  773. // {
  774. // ini.FileName = fname;
  775.  
  776. // long Money = ini.ReadInt64("Character", "Money", 0);
  777. //if (Money < 0)
  778. //{
  779. // Console.WriteLine("Money Is reast Now");
  780. // }
  781.  
  782. // }
  783. //break;
  784. // }
  785. case "restartcps":
  786. {
  787. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  788. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  789. {
  790. ini.FileName = fname;
  791.  
  792. ulong ConquerPoints = ini.ReadUInt64("Character", "ConquerPoints", 0);
  793. // Money = Money * 30 / 100;
  794. ConquerPoints = 0;
  795. ini.Write<ulong>("Character", "ConquerPoints", ConquerPoints);
  796. Console.WriteLine("ConquerPoints Is reast Now");
  797. }
  798.  
  799. break;
  800.  
  801. }
  802. case "p":
  803. {
  804. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  805. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  806. {
  807. ini.FileName = fname;
  808.  
  809. ulong BoundConquerPoints = ini.ReadUInt64("Character", "BoundConquerPoints", 0);
  810. // Money = Money * 30 / 100;
  811. BoundConquerPoints = 0;
  812. ini.Write<ulong>("Character", "BoundConquerPoints", BoundConquerPoints);
  813. Console.WriteLine("BoundConquerPoints Is reast Now");
  814. }
  815.  
  816. break;
  817.  
  818. }
  819. case "rcps":
  820. {
  821. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  822. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  823. {
  824. ini.FileName = fname;
  825.  
  826. long ConquerPoints = ini.ReadInt64("Character", "ConquerPoints", 0);
  827. if (ConquerPoints < 0)
  828. {
  829. Console.WriteLine("Cps is reast Now");
  830. }
  831.  
  832. }
  833. break;
  834. }
  835.  
  836.  
  837. case "fixedgamemap":
  838. {
  839. Dictionary<int, string> maps = new Dictionary<int, string>();
  840. using (var gamemap = new BinaryReader(new FileStream(Path.Combine(Program.ServerConfig.CO2Folder, "ini/gamemap.dat"), FileMode.Open)))
  841. {
  842.  
  843. var amount = gamemap.ReadInt32();
  844. for (var i = 0; i < amount; i++)
  845. {
  846.  
  847. var id = gamemap.ReadInt32();
  848. var fileName = Encoding.ASCII.GetString(gamemap.ReadBytes(gamemap.ReadInt32()));
  849. var puzzleSize = gamemap.ReadInt32();
  850. if (id == 1017)
  851. {
  852. Console.WriteLine(puzzleSize);
  853. }
  854. if (!maps.ContainsKey(id))
  855. maps.Add(id, fileName);
  856. else
  857. maps[id] = fileName;
  858. }
  859. }
  860. break;
  861. }
  862.  
  863.  
  864. case "wegw":
  865. {
  866. Game.MsgTournaments.MsgSchedules.GuildWar.Proces = Game.MsgTournaments.ProcesType.Alive;
  867. Game.MsgTournaments.MsgSchedules.GuildWar.Start();
  868. break;
  869. }
  870. case "startsgw":
  871. {
  872. Game.MsgTournaments.MsgSchedules.SuperGuildWar.Start();
  873. break;
  874. }
  875. case "finishsgw":
  876. {
  877. Game.MsgTournaments.MsgSchedules.SuperGuildWar.Proces = Game.MsgTournaments.ProcesType.Dead;
  878. Game.MsgTournaments.MsgSchedules.SuperGuildWar.CompleteEndGuildWar();
  879. break;
  880. }
  881. case "wefgw":
  882. {
  883. Game.MsgTournaments.MsgSchedules.GuildWar.Proces = Game.MsgTournaments.ProcesType.Dead;
  884. Game.MsgTournaments.MsgSchedules.GuildWar.CompleteEndGuildWar();
  885. break;
  886. }
  887.  
  888. case "exit":
  889. {
  890. new Thread(new ThreadStart(Maintenance)).Start();
  891. break;
  892. }
  893. case "resetall":
  894. {
  895. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  896. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  897. {
  898. ini.FileName = fname;
  899.  
  900. //ulong nobility = ini.ReadUInt64("Character", "DonationNobility",pl);
  901. //nobility = nobility * 30 / 100;
  902. ini.Write<ulong>("Character", "DonationNobility", 0);
  903. ini.Write<ulong>("Character", "Money", 0);
  904. ini.Write<ulong>("Character", "ConquerPoints", 0);
  905. ini.Write<ulong>("Character", "VipLevel", 0);
  906. ini.Write<ulong>("Character", "ExpireVip", 0);
  907. }
  908.  
  909. break;
  910. }
  911. case "reset50nobility":
  912. {
  913. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  914. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  915. {
  916. ini.FileName = fname;
  917.  
  918. ulong nobility = ini.ReadUInt64("Character", "DonationNobility", 0);
  919. nobility = nobility * 30 / 100;
  920. ini.Write<ulong>("Character", "DonationNobility", nobility);
  921. }
  922. Console.WriteLine("DonationRank Reset Done");
  923. break;
  924. }
  925. case "bb":
  926. {
  927. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  928. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  929. {
  930. ini.FileName = fname;
  931.  
  932. //ulong nobility = ini.ReadUInt64("Character", "DonationNobility", 0);
  933. //nobility = nobility * 30 / 100;
  934. ini.Write<ulong>("Character", "DonationNobility", 0);
  935. }
  936.  
  937. break;
  938. }
  939. case "rest":
  940. {
  941. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  942. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  943. {
  944. ini.FileName = fname;
  945. ini.Write<int>("Character", "Money", 0);
  946. //ini.Write<int>("Character", "ConquerPoints", 0);
  947. ini.Write<int>("Character", "DonationNobility", 0);
  948. ini.Write<int>("Character", "WHMoney", 0);
  949. }
  950. Console.WriteLine("Reset Done");
  951. break;
  952. }
  953. case "resetcps":
  954. {// seb rakmk w rn 3lya 010 920 47 925 brb smoke
  955. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  956. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  957. {
  958. ini.FileName = fname;
  959.  
  960. ulong nobility = ini.ReadUInt64("Character", "ConquerPoints", 0);
  961. nobility = nobility * 30 / 100;
  962. ini.Write<ulong>("Character", "ConquerPoints", 0);
  963. }
  964.  
  965. break;
  966. }
  967. case "resetbcps":
  968. {
  969. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  970. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  971. {
  972. ini.FileName = fname;
  973.  
  974. ulong nobility = ini.ReadUInt64("Character", "BoundConquerPoints", 0);
  975. nobility = nobility * 30 / 100;
  976. ini.Write<ulong>("Character", "BoundConquerPoints", 0);
  977. }
  978.  
  979. break;
  980. }
  981. case "forceexit":
  982. {
  983. ProcessConsoleEvent(0);
  984.  
  985. Environment.Exit(0);
  986. break;
  987. }
  988. case "restart":
  989. {
  990. ProcessConsoleEvent(0);
  991.  
  992. System.Diagnostics.Process hproces = new System.Diagnostics.Process();
  993. hproces.StartInfo.FileName = "Project_Terror_v2.exe";
  994. hproces.StartInfo.WorkingDirectory = Environment.CurrentDirectory;
  995. hproces.Start();
  996.  
  997. Environment.Exit(0);
  998.  
  999. break;
  1000. }
  1001.  
  1002. }
  1003. }
  1004. catch (Exception e) { Console.WriteLine(e.ToString()); }
  1005. }
  1006. public static void Maintenance()
  1007. {
  1008. using (var rec = new ServerSockets.RecycledPacket())
  1009. {
  1010. var stream = rec.GetStream();
  1011. OnMainternance = true;
  1012. MyConsole.WriteLine("The server will be brought down for maintenance in (5 Minutes). Please log off immediately to avoid data loss.");
  1013. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (5 Minutes). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1014.  
  1015. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1016. }
  1017. Thread.Sleep(1000 * 30);
  1018. using (var rec = new ServerSockets.RecycledPacket())
  1019. {
  1020. var stream = rec.GetStream();
  1021. MyConsole.WriteLine("The server will be brought down for maintenance in (4 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  1022. #if Arabic
  1023. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 4minute30second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1024.  
  1025. #else
  1026. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (4 Minutes & 30 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1027.  
  1028. #endif
  1029. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1030. }
  1031. Thread.Sleep(1000 * 30);
  1032. using (var rec = new ServerSockets.RecycledPacket())
  1033. {
  1034. var stream = rec.GetStream();
  1035. MyConsole.WriteLine("The server will be brought down for maintenance in (4 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  1036. #if Arabic
  1037. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 4minute0second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1038.  
  1039. #else
  1040. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (4 Minutes & 00 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1041.  
  1042. #endif
  1043. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1044. }
  1045. Thread.Sleep(1000 * 30);
  1046. using (var rec = new ServerSockets.RecycledPacket())
  1047. {
  1048. var stream = rec.GetStream();
  1049. MyConsole.WriteLine("The server will be brought down for maintenance in (3 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  1050. #if Arabic
  1051. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 3minute30second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1052.  
  1053. #else
  1054. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (3 Minutes & 30 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1055.  
  1056. #endif
  1057. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1058. }
  1059. Thread.Sleep(1000 * 30);
  1060. using (var rec = new ServerSockets.RecycledPacket())
  1061. {
  1062. var stream = rec.GetStream();
  1063. MyConsole.WriteLine("The server will be brought down for maintenance in (3 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  1064. #if Arabic
  1065. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 3minute0second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1066.  
  1067. #else
  1068. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (3 Minutes & 00 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1069.  
  1070. #endif
  1071. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1072. }
  1073. Thread.Sleep(1000 * 30);
  1074. using (var rec = new ServerSockets.RecycledPacket())
  1075. {
  1076. var stream = rec.GetStream();
  1077. MyConsole.WriteLine("The server will be brought down for maintenance in (2 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  1078. #if Arabic
  1079. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 2minute30second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1080.  
  1081. #else
  1082. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (2 Minutes & 30 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1083.  
  1084. #endif
  1085. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1086. }
  1087. Thread.Sleep(1000 * 30);
  1088. using (var rec = new ServerSockets.RecycledPacket())
  1089. {
  1090. var stream = rec.GetStream();
  1091. MyConsole.WriteLine("The server will be brought down for maintenance in (2 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  1092. #if Arabic
  1093. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 2minute0second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1094.  
  1095. #else
  1096. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (2 Minutes & 00 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1097.  
  1098. #endif
  1099. }
  1100. Thread.Sleep(1000 * 30);
  1101. using (var rec = new ServerSockets.RecycledPacket())
  1102. {
  1103. var stream = rec.GetStream();
  1104. MyConsole.WriteLine("The server will be brought down for maintenance in (1 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  1105. #if Arabic
  1106. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 1minute30second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1107.  
  1108. #else
  1109. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (1 Minutes & 30 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1110.  
  1111. #endif
  1112. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1113. }
  1114. Thread.Sleep(1000 * 30);
  1115. using (var rec = new ServerSockets.RecycledPacket())
  1116. {
  1117. var stream = rec.GetStream();
  1118. MyConsole.WriteLine("The server will be brought down for maintenance in (1 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  1119. #if Arabic
  1120. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 1minute0second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1121.  
  1122. #else
  1123. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (1 Minutes & 00 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1124.  
  1125. #endif
  1126. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1127. }
  1128. Thread.Sleep(1000 * 30);
  1129. using (var rec = new ServerSockets.RecycledPacket())
  1130. {
  1131. var stream = rec.GetStream();
  1132. MyConsole.WriteLine("The server will be brought down for maintenance in (0 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  1133. #if Arabic
  1134. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 0minute30second. Please exit the game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1135.  
  1136. #else
  1137. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in (0 Minutes & 30 Seconds). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1138.  
  1139. #endif
  1140. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1141. }
  1142. Thread.Sleep(1000 * 20);
  1143. using (var rec = new ServerSockets.RecycledPacket())
  1144. {
  1145. var stream = rec.GetStream();
  1146.  
  1147. MsgMessage msg = new MsgMessage("Server maintenance(few minutes). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  1148.  
  1149.  
  1150. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  1151. }
  1152. Thread.Sleep(1000 * 10);
  1153. ProcessConsoleEvent(0);
  1154.  
  1155. Environment.Exit(0);
  1156. }
  1157.  
  1158. public unsafe static void Game_Receive(ServerSockets.SecuritySocket obj, ServerSockets.Packet stream)//ServerSockets.Packet data)
  1159. {
  1160. if (!obj.SetDHKey)
  1161. CreateDHKey(obj, stream);
  1162. else
  1163. {
  1164. try
  1165. {
  1166. if (obj.Game == null)
  1167. return;
  1168. ushort PacketID = stream.ReadUInt16();
  1169.  
  1170. if (obj.Game.Player.CheckTransfer)
  1171. goto jmp;
  1172. if (obj.Game.PipeClient != null && PacketID != Game.GamePackets.Achievement)
  1173. {
  1174. if (PacketID == (ushort)Game.GamePackets.MsgOsShop
  1175. || PacketID == (ushort)Game.GamePackets.SecondaryPassword
  1176. || PacketID >= (ushort)Game.GamePackets.LeagueOpt && PacketID <= (ushort)Game.GamePackets.LeagueConcubines
  1177. || PacketID == (ushort)Game.GamePackets.LeagueRobOpt)
  1178. goto jmp;
  1179.  
  1180. stream.Seek(stream.Size);
  1181. obj.Game.PipeClient.Send(stream);
  1182.  
  1183. if (PacketID != 1009)
  1184. {
  1185.  
  1186. return;
  1187. }
  1188. stream.Seek(4);
  1189. }
  1190. jmp:
  1191. if (PacketID == 2171 || PacketID == 2088 || PacketID == 2096 || PacketID == 2090 || PacketID == 2093)
  1192. {
  1193. PokerHandler.Handler(obj.Game, stream);
  1194. }
  1195. else
  1196. {
  1197. Action<Client.GameClient, ServerSockets.Packet> hinvoker;
  1198. if (MsgInvoker.TryGetInvoker(PacketID, out hinvoker))
  1199. {
  1200. hinvoker(obj.Game, stream);
  1201. }
  1202. else
  1203. {
  1204. }
  1205. }
  1206.  
  1207. }
  1208. catch (Exception e) { MyConsole.WriteException(e); }
  1209. finally
  1210. {
  1211. ServerSockets.PacketRecycle.Reuse(stream);
  1212. }
  1213. }
  1214. }
  1215. public static void DirectoryCopy(
  1216. string sourceDirName, string destDirName, bool copySubDirs)
  1217. {
  1218. DirectoryInfo dir = new DirectoryInfo(sourceDirName);
  1219. DirectoryInfo[] dirs = dir.GetDirectories();
  1220.  
  1221. // If the source directory does not exist, throw an exception.
  1222. if (!dir.Exists)
  1223. {
  1224. throw new DirectoryNotFoundException(
  1225. "Source directory does not exist or could not be found: "
  1226. + sourceDirName);
  1227. }
  1228.  
  1229. // If the destination directory does not exist, create it.
  1230. if (!Directory.Exists(destDirName))
  1231. {
  1232. Directory.CreateDirectory(destDirName);
  1233. }
  1234.  
  1235.  
  1236. // Get the file contents of the directory to copy.
  1237. FileInfo[] files = dir.GetFiles();
  1238.  
  1239. foreach (FileInfo file in files)
  1240. {
  1241. // Create the path to the new copy of the file.
  1242. string temppath = Path.Combine(destDirName, file.Name);
  1243.  
  1244. // Copy the file.
  1245. file.CopyTo(temppath, false);
  1246. }
  1247.  
  1248. // If copySubDirs is true, copy the subdirectories.
  1249. if (copySubDirs)
  1250. {
  1251.  
  1252. foreach (DirectoryInfo subdir in dirs)
  1253. {
  1254. // Create the subdirectory.
  1255. string temppath = Path.Combine(destDirName, subdir.Name);
  1256.  
  1257. // Copy the subdirectories.
  1258. DirectoryCopy(subdir.FullName, temppath, copySubDirs);
  1259. }
  1260. }
  1261. }
  1262.  
  1263. public unsafe static void CreateDHKey(ServerSockets.SecuritySocket obj, ServerSockets.Packet Stream)
  1264. {
  1265. try
  1266. {
  1267. byte[] buffer = new byte[36];
  1268. bool extra = false;
  1269. string text = System.Text.ASCIIEncoding.ASCII.GetString(obj.DHKeyBuffer.buffer, 0, obj.DHKeyBuffer.Length());
  1270. if (!text.EndsWith("TQClient"))
  1271. {
  1272. System.Buffer.BlockCopy(obj.EncryptedDHKeyBuffer.buffer, obj.EncryptedDHKeyBuffer.Length() - 36, buffer, 0, 36);
  1273. extra = true;
  1274. }
  1275. // MyConsole.PrintPacketAdvanced(Stream.Memory, Stream.Size);
  1276.  
  1277. string key;
  1278. if (Stream.GetHandshakeReplyKey(out key))
  1279. {
  1280. obj.SetDHKey = true;
  1281. obj.Game.DHKey.HandleResponse(key);
  1282. var compute_key = obj.Game.DHKeyExchance.PostProcessDHKey(obj.Game.DHKey.ToBytes());
  1283. //obj.Game.Crypto.SetIVs(new byte[8], new byte[8]);
  1284. obj.Game.Crypto.GenerateKey(compute_key);
  1285. obj.Game.Crypto.Reset();
  1286. }
  1287. else
  1288. {
  1289. obj.Disconnect();
  1290. return;
  1291. }
  1292. if (extra)
  1293. {
  1294.  
  1295. Stream.Seek(0);
  1296. obj.Game.Crypto.Decrypt(buffer, 0, Stream.Memory, 0, 36);
  1297. Stream.Size = buffer.Length;
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303. Stream.Size = buffer.Length;
  1304. Stream.Seek(2);
  1305. ushort PacketID = Stream.ReadUInt16();
  1306. Action<Client.GameClient, ServerSockets.Packet> hinvoker;
  1307. if (MsgInvoker.TryGetInvoker(PacketID, out hinvoker))
  1308. {
  1309. hinvoker(obj.Game, Stream);
  1310. }
  1311. else
  1312. {
  1313. obj.Disconnect();
  1314.  
  1315. MyConsole.WriteLine("DH KEY Not found the packet ----> " + PacketID);
  1316.  
  1317. }
  1318. }
  1319.  
  1320. }
  1321. catch (Exception e) { MyConsole.WriteException(e); }
  1322. }
  1323. public unsafe static void Game_Disconnect(ServerSockets.SecuritySocket obj)
  1324. {
  1325.  
  1326. if (obj.Game != null && obj.Game.Player != null)
  1327. {
  1328. try
  1329. {
  1330. Client.GameClient client;
  1331. if (Database.Server.GamePoll.TryGetValue(obj.Game.Player.UID, out client))
  1332. {
  1333. try
  1334. {
  1335. PokerHandler.Shutdown(client);
  1336. }
  1337. catch (Exception e)
  1338. {
  1339. Console.WriteLine(e.ToString());
  1340. }
  1341. if (client.OnInterServer)
  1342. return;
  1343. if ((client.ClientFlag & Client.ServerFlag.LoginFull) == Client.ServerFlag.LoginFull)
  1344. {
  1345. if (obj.Game.PipeClient != null)
  1346. obj.Game.PipeClient.Disconnect();
  1347. MyConsole.WriteLine("Client --->" + client.Player.Name + " was loggin out.");
  1348. using (var rec = new ServerSockets.RecycledPacket())
  1349. {
  1350. var stream = rec.GetStream();
  1351.  
  1352. try
  1353. {
  1354. if (client.Player.InUnion)
  1355. {
  1356. client.Player.UnionMemeber.Owner = null;
  1357. }
  1358. client.CheckRouletteDisconnect();
  1359. client.EndQualifier();
  1360.  
  1361.  
  1362.  
  1363.  
  1364. if (client.Team != null)
  1365. client.Team.Remove(client, true);
  1366. if (client.Player.MyClanMember != null)
  1367. client.Player.MyClanMember.Online = false;
  1368. if (client.IsVendor)
  1369. client.MyVendor.StopVending(stream);
  1370. if (client.InTrade)
  1371. client.MyTrade.CloseTrade();
  1372. if (client.Player.MyGuildMember != null)
  1373. client.Player.MyGuildMember.IsOnline = false;
  1374.  
  1375. if (client.Player.ObjInteraction != null)
  1376. {
  1377. client.Player.InteractionEffect.AtkType = Game.MsgServer.MsgAttackPacket.AttackID.InteractionStopEffect;
  1378.  
  1379. InteractQuery action = InteractQuery.ShallowCopy(client.Player.InteractionEffect);
  1380.  
  1381. client.Send(stream.InteractionCreate(&action));
  1382.  
  1383. client.Player.ObjInteraction.Player.OnInteractionEffect = false;
  1384. client.Player.ObjInteraction.Player.ObjInteraction = null;
  1385. }
  1386.  
  1387.  
  1388. client.Player.View.Clear(stream);
  1389.  
  1390.  
  1391. }
  1392. catch (Exception e)
  1393. {
  1394. MyConsole.WriteException(e);
  1395. client.Player.View.Clear(stream);
  1396. }
  1397. finally
  1398. {
  1399. client.ClientFlag &= ~Client.ServerFlag.LoginFull;
  1400. client.ClientFlag |= Client.ServerFlag.Disconnect;
  1401. client.ClientFlag |= Client.ServerFlag.QueuesSave;
  1402. Database.ServerDatabase.LoginQueue.TryEnqueue(client);
  1403. }
  1404.  
  1405. try
  1406. {
  1407. client.Player.Associate.OnDisconnect(stream, client);
  1408.  
  1409. //remove mentor and apprentice
  1410. if (client.Player.MyMentor != null)
  1411. {
  1412. Client.GameClient me;
  1413. client.Player.MyMentor.OnlineApprentice.TryRemove(client.Player.UID, out me);
  1414. client.Player.MyMentor = null;
  1415. }
  1416. client.Player.Associate.Online = false;
  1417. lock (client.Player.Associate.MyClient)
  1418. client.Player.Associate.MyClient = null;
  1419. foreach (var clien in client.Player.Associate.OnlineApprentice.Values)
  1420. //clien.Player.SetMentorBattlePowers(0, 0);
  1421. client.Player.Associate.OnlineApprentice.Clear();
  1422. //done remove
  1423. }
  1424. catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
  1425. }
  1426. }
  1427. }
  1428. }
  1429. catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
  1430. }
  1431. else if (obj.Game != null)
  1432. {
  1433. if (obj.Game.ConnectionUID != 0)
  1434. {
  1435. try
  1436. {
  1437. PokerHandler.Shutdown(obj.Game);
  1438. }
  1439. catch (Exception e)
  1440. {
  1441. Console.WriteLine(e.ToString());
  1442. }
  1443. Client.GameClient client;
  1444. Database.Server.GamePoll.TryRemove(obj.Game.ConnectionUID, out client);
  1445. }
  1446. }
  1447. }
  1448.  
  1449.  
  1450. public static bool NameStrCheck(string name, bool ExceptedSize = true)
  1451. {
  1452. if (name == null)
  1453. return false;
  1454. if (name == "")
  1455. return false;
  1456. string ValidChars = "[^A-Za-z0-9ء-ي*~.&.$]$";
  1457. System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(ValidChars);
  1458. if (r.IsMatch(name))
  1459. return false;
  1460. if (name.ToLower().Contains("gm"))
  1461. return false;
  1462. if (name.ToLower().Contains("pm"))
  1463. return false;
  1464. if (name.ToLower().Contains("p~m"))
  1465. return false;
  1466. if (name.ToLower().Contains("p!m"))
  1467. return false;
  1468. if (name.ToLower().Contains("g~m"))
  1469. return false;
  1470. if (name.ToLower().Contains("g!m"))
  1471. return false;
  1472. if (name.ToLower().Contains("help"))
  1473. return false;
  1474. if (name.ToLower().Contains("desk"))
  1475. return false;
  1476. if (name.ToLower().Contains("abdallah"))
  1477. return false;
  1478. if (name.Contains('/'))
  1479. return false;
  1480. if (name.Contains(@"\"))
  1481. return false;
  1482. if (name.Contains(@"'"))
  1483. return false;
  1484. if (name.Contains('#'))
  1485. return false;
  1486. if (name.Contains("GM") ||
  1487. name.Contains("PM") ||
  1488. name.Contains("None") ||
  1489. name.Contains("NONE") ||
  1490. name.Contains("Doom") ||
  1491. name.Contains("el3tar") ||
  1492. name.Contains("system") ||
  1493. name.Contains("System") ||
  1494. name.Contains("Doom") ||
  1495. name.Contains("WarCo") ||
  1496. name.Contains("SYSTEM") ||
  1497. name.Contains("{") || name.Contains("}") || name.Contains("[") || name.Contains("]"))
  1498. return false;
  1499. if (name.Length > 16 && ExceptedSize)
  1500. return false;
  1501. for (int x = 0; x < name.Length; x++)
  1502. if (name[x] == 25)
  1503. return false;
  1504. return true;
  1505. }
  1506. public static bool StringCheck(string pszString)
  1507. {
  1508. for (int x = 0; x < pszString.Length; x++)
  1509. {
  1510. if (pszString[x] > ' ' && pszString[x] <= '~')
  1511. return false;
  1512. }
  1513. return true;
  1514. }
  1515. }
  1516. }
Add Comment
Please, Sign In to add comment