elmzeny

Untitled

Sep 1st, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 57.96 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 Project_Terror_v2.Panels;
  21. using COServer.Database;
  22. using System.Collections.Concurrent;
  23. using Project_Terror_v2.Role;
  24.  
  25. class Program
  26. {
  27. public static Extensions.Time32 CurrentTime
  28. {
  29. get
  30. {
  31. return new Extensions.Time32();
  32. }
  33. }
  34. public static Encoding Encoding = ASCIIEncoding.Default;
  35. public static List<uint> RankableFamilyIds = new List<uint>() { 20300, 20160, 20070, 29370, 29360, 29300, 29363 };
  36. public static List<byte[]> LoadPackets = new List<byte[]>();
  37. public static ServerSockets.SocketThread SocketsGroup;
  38. public static List<uint> ProtectMapSpells = new List<uint>() { 1038, Game.MsgTournaments.MsgSuperGuildWar.MapID };
  39. public static List<uint> MapCounterHits = new List<uint>() { 1005, 6000 };
  40. public static bool OnMainternance = false;
  41. public static Cryptography.TransferCipher transferCipher;
  42. public static Extensions.Time32 SaveDBStamp = Extensions.Time32.Now.AddMilliseconds(KernelThread.SaveDatabaseStamp);
  43. public static ConcurrentDictionary<uint, Client.GameClient> GamePool = new ConcurrentDictionary<uint, Client.GameClient>();
  44.  
  45. public static List<uint> NoDropItems = new List<uint>() { 1764, 700, 3954, 3820 };
  46. public static List<uint> FreePkMap = new List<uint>() { 3998,3071, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 6000, 6001,1505, 1005, 1038, 10137, 10166, 700,1508/*PkWar*/, Game.MsgTournaments.MsgSuperGuildWar.MapID, Game.MsgTournaments.MsgCaptureTheFlag.MapID
  47. , Game.MsgTournaments.MsgTeamDeathMatch.MapID };
  48. 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, 1801, 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
  49. ,(uint)Game.MsgTournaments.MsgSteedRace.Maps.IslandRace, (uint)Game.MsgTournaments.MsgSteedRace.Maps.LavaRace, (uint)Game.MsgTournaments.MsgSteedRace.Maps.MarketRace};
  50. public static List<uint> BlockTeleportMap = new List<uint>() { 601, 6000, 6001, 1005, 700, 1858, 1860, 3852, Game.MsgTournaments.MsgEliteGroup.WaitingAreaID, 1768 };
  51. public static Role.Instance.Nobility.NobilityRanking NobilityRanking = new Role.Instance.Nobility.NobilityRanking();
  52. public static Role.Instance.ChiRank ChiRanking = new Role.Instance.ChiRank();
  53. public static Role.Instance.Flowers.FlowersRankingToday FlowersRankToday = new Role.Instance.Flowers.FlowersRankingToday();
  54. public static Role.Instance.Flowers.FlowerRanking GirlsFlowersRanking = new Role.Instance.Flowers.FlowerRanking();
  55. public static Role.Instance.Flowers.FlowerRanking BoysFlowersRanking = new Role.Instance.Flowers.FlowerRanking(false);
  56.  
  57. public static ShowChatItems GlobalItems;
  58. public static SendGlobalPacket SendGlobalPackets;
  59. public static PacketInvoker MsgInvoker;
  60. public static ServerSockets.ServerSocket GameServer;
  61.  
  62. [DllImport("kernel32.dll")]
  63. private static extern bool SetConsoleCtrlHandler(ConsoleHandlerDelegate handler, bool add);
  64. private delegate bool ConsoleHandlerDelegate(int type);
  65. private static ConsoleHandlerDelegate handlerKeepAlive;
  66.  
  67. public static bool ProcessConsoleEvent(int type)
  68. {
  69. try
  70. {
  71. if (ServerConfig.IsInterServer)
  72. {
  73. foreach (var client in Database.Server.GamePoll.Values)
  74. {
  75. try
  76. {
  77. if (client.Socket != null)//for my fake accounts !
  78. client.Socket.Disconnect();
  79. }
  80. catch (Exception e)
  81. {
  82. MyConsole.WriteLine(e.ToString());
  83. }
  84. }
  85. return true;
  86. }
  87. try
  88. {
  89. /*if (WebServer.Proces.AccServer != null)
  90. {
  91. WebServer.Proces.Close();
  92. WebServer.Proces.AccServer.Close();
  93. }*/
  94. if (GameServer != null)
  95. GameServer.Close();
  96.  
  97.  
  98. }
  99. catch (Exception e) { MyConsole.SaveException(e); }
  100.  
  101. MyConsole.WriteLine("Saving Database...");
  102.  
  103.  
  104. foreach (var client in Database.Server.GamePoll.Values)
  105. {
  106. try
  107. {
  108. if (client.Socket != null)//for my fake accounts !
  109. client.Socket.Disconnect();
  110. }
  111. catch (Exception e)
  112. {
  113. MyConsole.WriteLine(e.ToString());
  114. }
  115. }
  116. Role.Instance.Clan.ProcessChangeNames();
  117.  
  118. Database.Server.SaveDatabase();
  119. if (Database.ServerDatabase.LoginQueue.Finish())
  120. {
  121. System.Threading.Thread.Sleep(1000);
  122. MyConsole.WriteLine("Database Save Succefull.");
  123. }
  124. }
  125. catch (Exception e)
  126. {
  127. MyConsole.SaveException(e);
  128. }
  129. return true;
  130. }
  131.  
  132. public static Extensions.Time32 ResetRandom = new Extensions.Time32();
  133.  
  134. public static Extensions.SafeRandom GetRandom = new Extensions.SafeRandom();
  135. public static Extensions.RandomLite LiteRandom = new Extensions.RandomLite();
  136.  
  137. public static class ServerConfig
  138. {
  139. public static string CO2Folder = "";
  140. #if Encore
  141. public static string XtremeTopLink = http://www.xtremetop100.com/in.php?site=1132365121";
  142. public static string Chatbox = "https://www.facebook.com/avengerco10/?ref=bookmarks/";
  143. public static string ChangePassword = "http://137.74.55.14/index.php?pages=changepassword#";
  144. public static string StorePage = "https://www.facebook.com/avengerco10/?ref=bookmarks/";
  145.  
  146. #else
  147. public static string XtremeTopLink = "http://www.xtremetop100.com/in.php?site=1132365121";
  148. #endif
  149.  
  150. public static uint ServerID = 0;
  151.  
  152. public static string IPAddres = "178.128.201.95";
  153. public static ushort GamePort = 30020;
  154. public static string ServerName = "Realm1";
  155. // سيبو هو بيقرأ من ا لكونفج ا مسحه هنا سيبو وخلاص ملهوش لزمه عامل
  156. public static string OfficialWebSite = "Realm1.com";
  157. public static ushort Port_BackLog;
  158. public static ushort Port_ReceiveSize = 4096;
  159. public static ushort Port_SendSize = 2048;
  160.  
  161. //Database// هتعدل اللي ف شيل ؟ ا ها بس نا قص ا لى بقولك عليها دي 16 هيا ف شيل لا امال فين سوكت ابعتها فيس
  162. public static string DbLocation = "";
  163.  
  164. public static uint ExpRateSpell = 50;
  165. public static uint ExpRateProf = 15;
  166. public static uint UserExpRate = 15;
  167. public static uint PhysicalDamage = 100;// + 150%
  168.  
  169. //interServer
  170. public static string InterServerAddress = "178.128.201.95";
  171. public static ushort InterServerPort = 0;
  172. public static bool IsInterServer = false;
  173. public static string ServerShadowClone = "Royal";
  174. }
  175.  
  176. //You do not have 500 silvers with you.
  177. //Sorry, but you don`t have enough CPs.
  178. //Please come back when you will have 1 Star Crystal in your inventory.
  179. public static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
  180. {
  181. Console.WriteLine(e.ToString());
  182. }
  183.  
  184. static int CutTrail(int x, int y) { return (x >= y) ? x : y; }
  185. static int AdjustDefence(int nDef, int power2, int bless)
  186. {
  187. int nAddDef = 0;
  188. nAddDef += Game.MsgServer.AttackHandler.Calculate.Base.MulDiv(nDef, 100 - power2, 100) - nDef;
  189.  
  190. return Game.MsgServer.AttackHandler.Calculate.Base.MulDiv(nDef + nAddDef, 100 - power2, 100);
  191.  
  192. }
  193.  
  194.  
  195. /*# The base (at 0 defense) difference between attack and defense needed to add/subtract 50% damage
  196. base_d_factor = 10
  197.  
  198. # Amount added to the base factor for every point of defense over 0
  199. scaled_d_factor = 0.5
  200.  
  201. # ...(stuff goes here)
  202.  
  203. dif = attack - defense
  204. if dif:
  205. sign_dif = sign(dif)
  206. scale = 1.0 + (-1.0/(sign_dif + dif/(base_d_factor + defense*scaled_d_factor)) + sign_dif)
  207. return attack * scale
  208. else:
  209. # else we'd be dividing by 0
  210. return attack*/
  211.  
  212.  
  213. public static void TESTT()
  214. {
  215. double base_d_factor = 130;
  216. double scaled_d_factor = 0.5;
  217. double dif = 139500 - 25000;
  218. double sign_dif = Math.Sign(dif);
  219. double scale = 1.0 + (-1.0 / (sign_dif + dif / (base_d_factor + 25000 * scaled_d_factor)) + sign_dif);
  220. double ttt = 139500 * scale;
  221. }
  222.  
  223.  
  224. public class sorine
  225. {
  226. public uint uid = 333;
  227. }
  228.  
  229.  
  230. static byte[] DecryptString(char[] str)
  231. {
  232. int i = 0;
  233. byte[] nstr = new byte[1000];
  234. do
  235. {
  236. nstr[i] = Convert.ToByte(str[i + 1] ^ 0x34);
  237. } while (nstr[i++] != 0);
  238. return nstr;
  239. }
  240. public static void writetext(string tes99)
  241. {
  242. char[] tg = new char[tes99.Length];
  243. for (int x = 0; x < tes99.Length; x++)
  244. tg[x] = tes99[x];
  245. var hhhh = DecryptString(tg);
  246. Console.WriteLine(ASCIIEncoding.ASCII.GetString(hhhh));
  247. }
  248. public static int n = 0;
  249. public static int sol;
  250. public static int[] v = new int[100];
  251. public static void afisare()
  252. {
  253. Console.WriteLine("");
  254. int i;
  255. // int x;
  256. // int j;
  257. sol++;
  258.  
  259. Console.WriteLine("sol: " + sol);
  260. for (i = 1; i <= n; i++)
  261. {
  262. Console.Write(v[i] + " ");
  263. /* for (j = 1; j <= n; j++)
  264.  
  265. /*if (v[i] == j)
  266. Console.Write("D ");
  267. else
  268. Console.Write("_ ");
  269. Console.Write(Environment.NewLine);*/
  270. }
  271. Console.Write(Environment.NewLine);
  272. }
  273. public static int valid(int k)
  274. {
  275. int i;
  276. for (i = 1; i <= k - 1; i++)
  277. if ((v[k] <= v[i]))//|| (Math.Abs(v[k] - v[i]) == (k - i)))
  278. return 0;
  279. return 1;
  280. }
  281. public static int solutie(int k)
  282. {
  283. if (k == n)
  284. return 1;
  285. return 0;
  286. }
  287. public static void BK(int k)
  288. {
  289. for (int i = 1; i <= n; i++)
  290. {
  291. v[k] = i;
  292. if (valid(k) == 1)
  293. {
  294. if (solutie(k) == 1)
  295. afisare();
  296. else
  297. BK(k + 1);
  298. }
  299. }
  300. }
  301. public static unsafe void Main(string[] args)
  302. {
  303.  
  304. try
  305. {
  306.  
  307. MyConsole.DissableButton();
  308.  
  309. AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
  310.  
  311. ServerSockets.Packet.SealString = "TQServer";
  312.  
  313. Console.ForegroundColor = ConsoleColor.DarkRed;
  314. Console.Title = "THERoyal BEST SERVER 3.0 CONQUER ."; Console.BackgroundColor = ConsoleColor.Black;
  315. //Console.ForegroundColor = ConsoleColor.Cyan;
  316. //Console.ForegroundColor = ConsoleColor.DarkMagenta;
  317. //Console.ForegroundColor = ConsoleColor.DarkRed;
  318. //Console.ForegroundColor = ConsoleColor.DarkYellow;
  319. Console.ForegroundColor = ConsoleColor.DarkGray;
  320. COServer.Database.DataHolder.CreateConnection();
  321.  
  322.  
  323. MsgInvoker = new PacketInvoker(PacketAttribute.Translator);
  324. Cryptography.DHKeyExchange.KeyExchange.CreateKeys();
  325. //GlobalLotteryTable.LoadDBConditions();
  326. Game.MsgTournaments.MsgSchedules.Create();
  327. Poker.Database.Load();
  328. Project_Terror_v2.Loader_Server.SystemBannedAccount.Load();
  329. Database.Server.Initialize();
  330.  
  331. SendGlobalPackets = new SendGlobalPacket();
  332.  
  333. Cryptography.AuthCryptography.PrepareAuthCryptography();
  334.  
  335. Database.Server.LoadDatabase();
  336. BossDatabase.Load();
  337. handlerKeepAlive = ProcessConsoleEvent;
  338. SetConsoleCtrlHandler(handlerKeepAlive, true);
  339. TransferCipher.Key = Encoding.ASCII.GetBytes("EypKhLvYJ3zdLCTyz9Ak8RAgM78tY5F32b7CUXDuLDJDFBH8H67BWy9QThmaN5VS");
  340. TransferCipher.Salt = Encoding.ASCII.GetBytes("MyqVgBf3ytALHWLXbJxSUX4uFEu3Xmz2UAY9sTTm8AScB7Kk2uwqDSnuNJske4BJ");
  341. transferCipher = new TransferCipher("127.0.0.1");
  342.  
  343.  
  344.  
  345.  
  346. if (ServerConfig.IsInterServer == false)
  347. {
  348. GameServer = new ServerSockets.ServerSocket(
  349. new Action<ServerSockets.SecuritySocket>(p => new Client.GameClient(p))
  350. , Game_Receive, Game_Disconnect);
  351. GameServer.Initilize(ServerConfig.Port_SendSize, ServerConfig.Port_ReceiveSize, 1, 3);
  352. GameServer.Open(ServerConfig.IPAddres, ServerConfig.GamePort, ServerConfig.Port_BackLog);
  353.  
  354. }
  355.  
  356.  
  357. GlobalItems = new ShowChatItems();
  358.  
  359. Database.NpcServer.LoadServerTraps();
  360.  
  361. MsgInterServer.PipeServer.Initialize();
  362.  
  363. ThreadPoll.Create();
  364.  
  365.  
  366. // ServerSockets.SocketPoll.Create("ConquerSockets");
  367.  
  368. SocketsGroup = new ServerSockets.SocketThread("ConquerServer"
  369. , GameServer, MsgInterServer.PipeServer.Server
  370. );//,
  371.  
  372. SocketsGroup.Start();
  373.  
  374. MsgInterServer.StaticConnexion.Create();
  375.  
  376. Game.MsgTournaments.MsgSchedules.ClanWar = new Game.MsgTournaments.MsgClanWar();
  377.  
  378.  
  379. new KernelThread(500, "ConquerServer2").Start();
  380. new MapGroupThread(100, "ConquerServer3").Start();
  381. //new MapItemThread(300, "ConquerServer4").Start();
  382. // Database.ServerDatabase.Testtt();
  383.  
  384. }
  385. catch (Exception e) { MyConsole.WriteException(e); }
  386.  
  387. for (; ; )
  388. ConsoleCMD(MyConsole.ReadLine());
  389. }
  390.  
  391. public static void SaveDBPayers(Extensions.Time32 clock)
  392. {
  393.  
  394. if (clock > SaveDBStamp)
  395. {
  396. if (Database.Server.FullLoading && !Program.ServerConfig.IsInterServer)
  397. {
  398. foreach (var user in Database.Server.GamePoll.Values)
  399. {
  400. if (user.OnInterServer)
  401. continue;
  402. if ((user.ClientFlag & Client.ServerFlag.LoginFull) == Client.ServerFlag.LoginFull)
  403. {
  404. user.ClientFlag |= Client.ServerFlag.QueuesSave;
  405. Database.ServerDatabase.LoginQueue.TryEnqueue(user);
  406. }
  407. }
  408. Database.Server.SaveDatabase();
  409. MyConsole.WriteLine("Database got saved ! ");
  410. }
  411. SaveDBStamp.Value = clock.Value + KernelThread.SaveDatabaseStamp;
  412. }
  413.  
  414. }
  415. public unsafe static void ConsoleCMD(string cmd)
  416. {
  417. try
  418. {
  419. string[] line = cmd.Split(' ');
  420.  
  421. switch (line[0])
  422. {
  423. case "islam1":
  424. {
  425. var ChatCon = new Panels.ChatPanal();
  426. ChatCon.ShowDialog();
  427. break;
  428. }
  429. case "islam":
  430. {
  431. Controlpanel cp = new Controlpanel();
  432. cp.ShowDialog();
  433. break;
  434. }
  435. case "powerarena":
  436. {
  437. Game.MsgTournaments.MsgSchedules.PowerArena.Start();
  438. break;
  439. }
  440. case "squidward":
  441. {
  442. Game.MsgTournaments.MsgSchedules.SquidwardOctopus.Start();
  443. break;
  444. }
  445. case "save":
  446. {
  447. Database.Server.SaveDatabase();
  448. if (Database.Server.FullLoading && !Program.ServerConfig.IsInterServer)
  449. {
  450. foreach (var user in Database.Server.GamePoll.Values)
  451. {
  452. if (user.OnInterServer)
  453. continue;
  454. if ((user.ClientFlag & Client.ServerFlag.LoginFull) == Client.ServerFlag.LoginFull)
  455. {
  456. user.ClientFlag |= Client.ServerFlag.QueuesSave;
  457. Database.ServerDatabase.LoginQueue.TryEnqueue(user);
  458. }
  459. }
  460. MyConsole.WriteLine("Database got saved ! ");
  461. }
  462. if (Database.ServerDatabase.LoginQueue.Finish())
  463. {
  464. System.Threading.Thread.Sleep(1000);
  465. MyConsole.WriteLine("Database saved successfully.");
  466. }
  467. break;
  468. }
  469.  
  470. case "steed":
  471. {
  472. Game.MsgTournaments.MsgSchedules.SteedRace.Create();
  473. break;
  474. }
  475. case "ctfon":
  476. {
  477. Game.MsgTournaments.MsgSchedules.CaptureTheFlag.Start();
  478. break;
  479. }
  480. case "kick":
  481. {
  482.  
  483. foreach (var user in Database.Server.GamePoll.Values)
  484. {
  485. if (user.Player.Name.Contains(line[1]))
  486. {
  487. user.EndQualifier();
  488. }
  489. }
  490. break;
  491. }
  492.  
  493. case "pk":
  494. {
  495. Game.MsgTournaments.MsgSchedules.ElitePkTournament.Start();
  496. break;
  497. }
  498. case "teampk":
  499. {
  500. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.Start();
  501. var array = Database.Server.GamePoll.Values.ToArray();
  502.  
  503.  
  504. for (int x = 0; x < array.Length - 5; x += 5)
  505. {
  506. if (array[x].Team == null)
  507. {
  508. try
  509. {
  510. array[x].Team = new Role.Instance.Team(array[x]);
  511. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x]);
  512. using (var rec = new ServerSockets.RecycledPacket())
  513. {
  514. var stream = rec.GetStream();
  515. array[x + 1].Team = array[0].Team;
  516. array[x].Team.Add(stream, array[x + 1]);
  517. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 1]);
  518.  
  519. array[x + 2].Team = array[0].Team;
  520. array[x].Team.Add(stream, array[x + 2]);
  521. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 2]);
  522.  
  523. array[x + 3].Team = array[0].Team;
  524. array[x].Team.Add(stream, array[x + 3]);
  525. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 3]);
  526.  
  527. array[x + 4].Team = array[0].Team;
  528. array[x].Team.Add(stream, array[x + 4]);
  529. Game.MsgTournaments.MsgSchedules.SkillTeamPkTournament.SignUp(array[x + 4]);
  530. }
  531.  
  532. }
  533. catch { }
  534. }
  535. }
  536. break;
  537. }
  538. case "search":
  539. {
  540. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  541. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  542. {
  543. ini.FileName = fname;
  544.  
  545. string Name = ini.ReadString("Character", "Name", "None");
  546. if (Name.ToLower() == line[1].ToLower() || Name.Contains(line[1]))
  547. {
  548. Console.WriteLine(ini.ReadUInt32("Character", "UID", 0));
  549. break;
  550. }
  551.  
  552. }
  553. break;
  554. }
  555. case "resetall":
  556. {
  557. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  558. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  559. {
  560. ini.FileName = fname;
  561.  
  562. //ulong nobility = ini.ReadUInt64("Character", "DonationNobility",pl);
  563. //nobility = nobility * 30 / 100;
  564. ini.Write<ulong>("Character", "DonationNobility", 0);
  565. ini.Write<ulong>("Character", "Money", 0);
  566. ini.Write<ulong>("Character", "ConquerPoints", 0);
  567. ini.Write<ulong>("Character", "VipLevel", 0);
  568. ini.Write<ulong>("Character", "ExpireVip", 0);
  569. }
  570.  
  571. break;
  572. }
  573. case "reset50nobility":
  574. {
  575. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  576. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  577. {
  578. ini.FileName = fname;
  579.  
  580. ulong nobility = ini.ReadUInt64("Character", "DonationNobility", 0);
  581. nobility = nobility * 30 / 100;
  582. ini.Write<ulong>("Character", "DonationNobility", nobility);
  583. }
  584. Console.WriteLine("DonationRank Reset Done");
  585. break;
  586. }
  587. case "resetnobility":
  588. {
  589. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  590. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  591. {
  592. ini.FileName = fname;
  593.  
  594. //ulong nobility = ini.ReadUInt64("Character", "DonationNobility", 0);
  595. //nobility = nobility * 30 / 100;
  596. ini.Write<ulong>("Character", "DonationNobility", 0);
  597. }
  598.  
  599. break;
  600. }
  601. case "resetall0":
  602. {
  603. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  604. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  605. {
  606. ini.FileName = fname;
  607. ini.Write<int>("Character", "Money", 0);
  608. ini.Write<int>("Character", "ConquerPoints", 0);
  609. ini.Write<int>("Character", "DonationNobility", 0);
  610. ini.Write<int>("Character", "WHMoney", 0);
  611. }
  612. Console.WriteLine("Reset Done");
  613. break;
  614. }
  615. case "resetcps":
  616. {// seb rakmk w rn 3lya 010 920 47 925 brb smoke
  617. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  618. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  619. {
  620. ini.FileName = fname;
  621.  
  622. ulong nobility = ini.ReadUInt64("Character", "ConquerPoints", 0);
  623. nobility = nobility * 30 / 100;
  624. ini.Write<ulong>("Character", "ConquerPoints", 0);
  625. }
  626.  
  627. break;
  628. }
  629. case "resetbcps":
  630. {
  631. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  632. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  633. {
  634. ini.FileName = fname;
  635.  
  636. ulong nobility = ini.ReadUInt64("Character", "BoundConquerPoints", 0);
  637. nobility = nobility * 30 / 100;
  638. ini.Write<ulong>("Character", "BoundConquerPoints", 0);
  639. }
  640.  
  641. break;
  642. }
  643. case "check":
  644. {
  645. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  646. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  647. {
  648. ini.FileName = fname;
  649.  
  650. long nobility = ini.ReadInt64("Character", "Money", 0);
  651. if (nobility < 0)
  652. {
  653. Console.WriteLine("");
  654. }
  655.  
  656. }
  657. break;
  658. }
  659. case "reset":
  660. {
  661. WindowsAPI.IniFile ini = new WindowsAPI.IniFile("");
  662. foreach (string fname in System.IO.Directory.GetFiles(Program.ServerConfig.DbLocation + "\\Users\\"))
  663. {
  664. ini.FileName = fname;
  665. ini.Write<int>("Character", "Money", 0);
  666. ini.Write<int>("Character", "ConquerPoints", 0);
  667. ini.Write<int>("Character", "DonationNobility", 0);
  668. ini.Write<int>("Character", "WHMoney", 0);
  669. }
  670. Console.WriteLine("Reset Done");
  671. break;
  672. }
  673. case "fixedgamemap":
  674. {
  675. Dictionary<int, string> maps = new Dictionary<int, string>();
  676. using (var gamemap = new BinaryReader(new FileStream(Path.Combine(Program.ServerConfig.CO2Folder, "ini/gamemap.dat"), FileMode.Open)))
  677. {
  678.  
  679. var amount = gamemap.ReadInt32();
  680. for (var i = 0; i < amount; i++)
  681. {
  682.  
  683. var id = gamemap.ReadInt32();
  684. var fileName = Encoding.ASCII.GetString(gamemap.ReadBytes(gamemap.ReadInt32()));
  685. var puzzleSize = gamemap.ReadInt32();
  686. if (id == 1017)
  687. {
  688. Console.WriteLine(puzzleSize);
  689. }
  690. if (!maps.ContainsKey(id))
  691. maps.Add(id, fileName);
  692. else
  693. maps[id] = fileName;
  694. }
  695. }
  696. break;
  697. }
  698.  
  699.  
  700. case "startgw":
  701. {
  702. Game.MsgTournaments.MsgSchedules.GuildWar.Proces = Game.MsgTournaments.ProcesType.Alive;
  703. Game.MsgTournaments.MsgSchedules.GuildWar.Start();
  704. break;
  705. }
  706. case "startsgw":
  707. {
  708. Game.MsgTournaments.MsgSchedules.SuperGuildWar.Start();
  709. break;
  710. }
  711. case "finishsgw":
  712. {
  713. Game.MsgTournaments.MsgSchedules.SuperGuildWar.Proces = Game.MsgTournaments.ProcesType.Dead;
  714. Game.MsgTournaments.MsgSchedules.SuperGuildWar.CompleteEndGuildWar();
  715. break;
  716. }
  717. case "finishgw":
  718. {
  719. Game.MsgTournaments.MsgSchedules.GuildWar.Proces = Game.MsgTournaments.ProcesType.Dead;
  720. Game.MsgTournaments.MsgSchedules.GuildWar.CompleteEndGuildWar();
  721. break;
  722. }
  723.  
  724. case "exit":
  725. {
  726. new Thread(new ThreadStart(Maintenance)).Start();
  727. break;
  728. }
  729. case "forceexit":
  730. {
  731. ProcessConsoleEvent(0);
  732.  
  733. Environment.Exit(0);
  734. break;
  735. }
  736. case "loada":
  737. {
  738. Server.Initialize();
  739. break;
  740. }
  741. case "restart":
  742. {
  743. ProcessConsoleEvent(0);
  744.  
  745. System.Diagnostics.Process hproces = new System.Diagnostics.Process();
  746. hproces.StartInfo.FileName = "Project_Terror_v2.exe";
  747. hproces.StartInfo.WorkingDirectory = Environment.CurrentDirectory;
  748. hproces.Start();
  749.  
  750. Environment.Exit(0);
  751.  
  752. break;
  753. }
  754.  
  755. }
  756. }
  757. catch (Exception e) { Console.WriteLine(e.ToString()); }
  758. }
  759. public static void Maintenance()
  760. {
  761. using (var rec = new ServerSockets.RecycledPacket())
  762. {
  763. var stream = rec.GetStream();
  764. OnMainternance = true;
  765. MyConsole.WriteLine("The server will be brought down for maintenance in (5 Minutes). Please log off immediately to avoid data loss.");
  766. #if Arabic
  767. MsgMessage msg = new MsgMessage("The server will be brought down for maintenance in 5minute0second. Please exitthe game now.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  768.  
  769. #else
  770. 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);
  771.  
  772. #endif
  773. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  774. }
  775. Thread.Sleep(1000 * 30);
  776. using (var rec = new ServerSockets.RecycledPacket())
  777. {
  778. var stream = rec.GetStream();
  779. MyConsole.WriteLine("The server will be brought down for maintenance in (4 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  780. #if Arabic
  781. 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);
  782.  
  783. #else
  784. 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);
  785.  
  786. #endif
  787. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  788. }
  789. Thread.Sleep(1000 * 30);
  790. using (var rec = new ServerSockets.RecycledPacket())
  791. {
  792. var stream = rec.GetStream();
  793. MyConsole.WriteLine("The server will be brought down for maintenance in (4 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  794. #if Arabic
  795. 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);
  796.  
  797. #else
  798. 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);
  799.  
  800. #endif
  801. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  802. }
  803. Thread.Sleep(1000 * 30);
  804. using (var rec = new ServerSockets.RecycledPacket())
  805. {
  806. var stream = rec.GetStream();
  807. MyConsole.WriteLine("The server will be brought down for maintenance in (3 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  808. #if Arabic
  809. 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);
  810.  
  811. #else
  812. 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);
  813.  
  814. #endif
  815. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  816. }
  817. Thread.Sleep(1000 * 30);
  818. using (var rec = new ServerSockets.RecycledPacket())
  819. {
  820. var stream = rec.GetStream();
  821. MyConsole.WriteLine("The server will be brought down for maintenance in (3 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  822. #if Arabic
  823. 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);
  824.  
  825. #else
  826. 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);
  827.  
  828. #endif
  829. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  830. }
  831. Thread.Sleep(1000 * 30);
  832. using (var rec = new ServerSockets.RecycledPacket())
  833. {
  834. var stream = rec.GetStream();
  835. MyConsole.WriteLine("The server will be brought down for maintenance in (2 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  836. #if Arabic
  837. 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);
  838.  
  839. #else
  840. 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);
  841.  
  842. #endif
  843. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  844. }
  845. Thread.Sleep(1000 * 30);
  846. using (var rec = new ServerSockets.RecycledPacket())
  847. {
  848. var stream = rec.GetStream();
  849. MyConsole.WriteLine("The server will be brought down for maintenance in (2 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  850. #if Arabic
  851. 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);
  852.  
  853. #else
  854. 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);
  855.  
  856. #endif
  857. }
  858. Thread.Sleep(1000 * 30);
  859. using (var rec = new ServerSockets.RecycledPacket())
  860. {
  861. var stream = rec.GetStream();
  862. MyConsole.WriteLine("The server will be brought down for maintenance in (1 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  863. #if Arabic
  864. 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);
  865.  
  866. #else
  867. 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);
  868.  
  869. #endif
  870. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  871. }
  872. Thread.Sleep(1000 * 30);
  873. using (var rec = new ServerSockets.RecycledPacket())
  874. {
  875. var stream = rec.GetStream();
  876. MyConsole.WriteLine("The server will be brought down for maintenance in (1 Minutes & 00 Seconds). Please log off immediately to avoid data loss.");
  877. #if Arabic
  878. 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);
  879.  
  880. #else
  881. 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);
  882.  
  883. #endif
  884. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  885. }
  886. Thread.Sleep(1000 * 30);
  887. using (var rec = new ServerSockets.RecycledPacket())
  888. {
  889. var stream = rec.GetStream();
  890. MyConsole.WriteLine("The server will be brought down for maintenance in (0 Minutes & 30 Seconds). Please log off immediately to avoid data loss.");
  891. #if Arabic
  892. 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);
  893.  
  894. #else
  895. 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);
  896.  
  897. #endif
  898. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  899. }
  900. Thread.Sleep(1000 * 20);
  901. using (var rec = new ServerSockets.RecycledPacket())
  902. {
  903. var stream = rec.GetStream();
  904. #if Arabic
  905. MsgMessage msg = new MsgMessage("Server maintenance(2 minutes). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  906.  
  907. #else
  908. MsgMessage msg = new MsgMessage("Server maintenance(few minutes). Please log off immediately to avoid data loss.", "ALLUSERS", "GM", MsgMessage.MsgColor.red, MsgMessage.ChatMode.Center);
  909.  
  910. #endif
  911. SendGlobalPackets.Enqueue(msg.GetArray(stream));
  912. }
  913. Thread.Sleep(1000 * 10);
  914. ProcessConsoleEvent(0);
  915.  
  916. Environment.Exit(0);
  917. }
  918.  
  919. public unsafe static void Game_Receive(ServerSockets.SecuritySocket obj, ServerSockets.Packet stream)//ServerSockets.Packet data)
  920. {
  921. if (!obj.SetDHKey)
  922. CreateDHKey(obj, stream);
  923. else
  924. {
  925. try
  926. {
  927. if (obj.Game == null)
  928. return;
  929. ushort PacketID = stream.ReadUInt16();
  930.  
  931. if (obj.Game.Player.CheckTransfer)
  932. goto jmp;
  933. if (obj.Game.PipeClient != null && PacketID != Game.GamePackets.Achievement)
  934. {
  935. if (PacketID == (ushort)Game.GamePackets.MsgOsShop
  936. || PacketID == (ushort)Game.GamePackets.SecondaryPassword
  937. || PacketID >= (ushort)Game.GamePackets.LeagueOpt && PacketID <= (ushort)Game.GamePackets.LeagueConcubines
  938. || PacketID == (ushort)Game.GamePackets.LeagueRobOpt)
  939. goto jmp;
  940.  
  941. stream.Seek(stream.Size);
  942. obj.Game.PipeClient.Send(stream);
  943.  
  944. if (PacketID != 1009)
  945. {
  946.  
  947. return;
  948. }
  949. stream.Seek(4);
  950. }
  951.  
  952. #if TEST
  953. MyConsole.WriteLine("Receive -> PacketID: " + PacketID);
  954. #endif
  955.  
  956. // Database.ServerDatabase.LoginQueue.Enqueue("[CallStack]" + MyConsole.log1(obj.Game.Player.Name, stream.Memory, stream.Size));
  957. jmp:
  958. if (PacketID == 2171 || PacketID == 2088 || PacketID == 2096 || PacketID == 2090 || PacketID == 2093)
  959. {
  960. PokerHandler.Handler(obj.Game, stream);
  961. }
  962. else
  963. {
  964. Action<Client.GameClient, ServerSockets.Packet> hinvoker;
  965. if (MsgInvoker.TryGetInvoker(PacketID, out hinvoker))
  966. {
  967. hinvoker(obj.Game, stream);
  968. }
  969. else
  970. {
  971. #if TEST
  972. MyConsole.WriteLine("Not found the packet ----> " + PacketID);
  973. #endif
  974. }
  975. }
  976.  
  977. }
  978. catch (Exception e) { MyConsole.WriteException(e); }
  979. finally
  980. {
  981. ServerSockets.PacketRecycle.Reuse(stream);
  982. }
  983. }
  984.  
  985. }
  986. public unsafe static void CreateDHKey(ServerSockets.SecuritySocket obj, ServerSockets.Packet Stream)
  987. {
  988. try
  989. {
  990. byte[] buffer = new byte[40];
  991. bool extra = false;
  992. string text = System.Text.ASCIIEncoding.ASCII.GetString(obj.DHKeyBuffer.buffer, 0, obj.DHKeyBuffer.Length());
  993. if (!text.EndsWith("TQClient"))
  994. {
  995. System.Buffer.BlockCopy(obj.EncryptedDHKeyBuffer.buffer, obj.EncryptedDHKeyBuffer.Length() - 40, buffer, 0, 40);
  996. extra = true;
  997. }
  998. // MyConsole.PrintPacketAdvanced(Stream.Memory, Stream.Size);
  999.  
  1000. string key;
  1001. if (Stream.GetHandshakeReplyKey(out key))
  1002. {
  1003. obj.SetDHKey = true;
  1004. obj.Game.DHKey.HandleResponse(key);
  1005. var compute_key = obj.Game.DHKeyExchance.PostProcessDHKey(obj.Game.DHKey.ToBytes());
  1006. //obj.Game.Crypto.SetIVs(new byte[8], new byte[8]);
  1007. obj.Game.Crypto.GenerateKey(compute_key);
  1008. obj.Game.Crypto.Reset();
  1009. }
  1010. else
  1011. {
  1012. obj.Disconnect();
  1013. return;
  1014. }
  1015. if (extra)
  1016. {
  1017.  
  1018. Stream.Seek(0);
  1019. obj.Game.Crypto.Decrypt(buffer, 0, Stream.Memory, 0, 40);
  1020. Stream.Size = buffer.Length;
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026. Stream.Size = buffer.Length;
  1027. Stream.Seek(2);
  1028. ushort PacketID = Stream.ReadUInt16();
  1029. Action<Client.GameClient, ServerSockets.Packet> hinvoker;
  1030. if (MsgInvoker.TryGetInvoker(PacketID, out hinvoker))
  1031. {
  1032. hinvoker(obj.Game, Stream);
  1033. }
  1034. else
  1035. {
  1036. obj.Disconnect();
  1037.  
  1038. MyConsole.WriteLine("DH KEY Not found the packet ----> " + PacketID);
  1039.  
  1040. }
  1041. }
  1042.  
  1043. }
  1044. catch (Exception e) { MyConsole.WriteException(e); }
  1045. }
  1046. public unsafe static void Game_Disconnect(ServerSockets.SecuritySocket obj)
  1047. {
  1048.  
  1049. if (obj.Game != null && obj.Game.Player != null)
  1050. {
  1051. try
  1052. {
  1053. Client.GameClient client;
  1054. if (Database.Server.GamePoll.TryGetValue(obj.Game.Player.UID, out client))
  1055. {
  1056. try
  1057. {
  1058. PokerHandler.Shutdown(client);
  1059. }
  1060. catch (Exception e)
  1061. {
  1062. Console.WriteLine(e.ToString());
  1063. }
  1064. if (client.OnInterServer)
  1065. return;
  1066. if ((client.ClientFlag & Client.ServerFlag.LoginFull) == Client.ServerFlag.LoginFull)
  1067. {
  1068. if (obj.Game.PipeClient != null)
  1069. obj.Game.PipeClient.Disconnect();
  1070. if (Game.MsgServer.MsgAutoHunt.AutoLock.ContainsKey(client.Player.Mac))
  1071. {
  1072. if (Game.MsgServer.MsgAutoHunt.AutoLock[client.Player.Mac].Contains(client.Player.UID))
  1073. {
  1074. Game.MsgServer.MsgAutoHunt.AutoLock[client.Player.Mac].Remove(client.Player.UID);
  1075. }
  1076. }
  1077. /* using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("playersonline")
  1078. .Set("Online", 0).Where("EntityID", client.Player.UID)) cmd.Execute();
  1079. using (MySqlCommand cmd1 = new MySqlCommand(MySqlCommandType.UPDATE).Update("playersonline")
  1080. .Set("Online", 0).Where("EntityID", client.Player.UID)) cmd1.Execute(); */
  1081.  
  1082. MyConsole.WriteLine("Client " + client.Player.Name + " was loggin out.");
  1083.  
  1084. using (var rec = new ServerSockets.RecycledPacket())
  1085. {
  1086. var stream = rec.GetStream();
  1087.  
  1088. try
  1089. {
  1090. if (client.Player.InUnion)
  1091. {
  1092. client.Player.UnionMemeber.Owner = null;
  1093. }
  1094. client.CheckRouletteDisconnect();
  1095. client.EndQualifier();
  1096.  
  1097. if (client.Team != null)
  1098. client.Team.Remove(client, true);
  1099. if (client.Player.MyClanMember != null)
  1100. client.Player.MyClanMember.Online = false;
  1101. if (client.IsVendor)
  1102. client.MyVendor.StopVending(stream);
  1103. if (client.InTrade)
  1104. client.MyTrade.CloseTrade();
  1105. if (client.Player.MyGuildMember != null)
  1106. client.Player.MyGuildMember.IsOnline = false;
  1107.  
  1108. if (client.Player.ObjInteraction != null)
  1109. {
  1110. client.Player.InteractionEffect.AtkType = Game.MsgServer.MsgAttackPacket.AttackID.InteractionStopEffect;
  1111.  
  1112. InteractQuery action = InteractQuery.ShallowCopy(client.Player.InteractionEffect);
  1113.  
  1114. client.Send(stream.InteractionCreate(&action));
  1115.  
  1116. client.Player.ObjInteraction.Player.OnInteractionEffect = false;
  1117. client.Player.ObjInteraction.Player.ObjInteraction = null;
  1118. }
  1119.  
  1120.  
  1121. client.Player.View.Clear(stream);
  1122.  
  1123.  
  1124. }
  1125. catch (Exception e)
  1126. {
  1127. MyConsole.WriteException(e);
  1128. client.Player.View.Clear(stream);
  1129. }
  1130. finally
  1131. {
  1132. client.ClientFlag &= ~Client.ServerFlag.LoginFull;
  1133. client.ClientFlag |= Client.ServerFlag.Disconnect;
  1134. client.ClientFlag |= Client.ServerFlag.QueuesSave;
  1135. Database.ServerDatabase.LoginQueue.TryEnqueue(client);
  1136. }
  1137.  
  1138. try
  1139. {
  1140. client.Player.Associate.OnDisconnect(stream, client);
  1141.  
  1142. //remove mentor and apprentice
  1143. if (client.Player.MyMentor != null)
  1144. {
  1145. Client.GameClient me;
  1146. client.Player.MyMentor.OnlineApprentice.TryRemove(client.Player.UID, out me);
  1147. client.Player.MyMentor = null;
  1148. }
  1149. client.Player.Associate.Online = false;
  1150. lock (client.Player.Associate.MyClient)
  1151. client.Player.Associate.MyClient = null;
  1152. foreach (var clien in client.Player.Associate.OnlineApprentice.Values)
  1153. clien.Player.SetMentorBattlePowers(0, 0);
  1154. client.Player.Associate.OnlineApprentice.Clear();
  1155. //done remove
  1156. }
  1157. catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
  1158. }
  1159. }
  1160. }
  1161. }
  1162. catch (Exception e) { MyConsole.WriteLine(e.ToString()); }
  1163. }
  1164. else if (obj.Game != null)
  1165. {
  1166. if (obj.Game.ConnectionUID != 0)
  1167. {
  1168.  
  1169. try
  1170. {
  1171. PokerHandler.Shutdown(obj.Game);
  1172. }
  1173. catch (Exception e)
  1174. {
  1175. Console.WriteLine(e.ToString());
  1176. }
  1177. Client.GameClient client;
  1178. Database.Server.GamePoll.TryRemove(obj.Game.ConnectionUID, out client);
  1179. }
  1180. }
  1181. }
  1182.  
  1183.  
  1184. public static bool NameStrCheck(string name, bool ExceptedSize = true)
  1185. {
  1186. if (name == null)
  1187. return false;
  1188. if (name == "")
  1189. return false;
  1190. string ValidChars = "[^A-Za-z0-9ء-ي*~.&.$]$";
  1191. System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(ValidChars);
  1192. if (r.IsMatch(name))
  1193. return false;
  1194. if (name.ToLower().Contains("ali"))
  1195. return false;
  1196. if (name.ToLower().Contains("ramy"))
  1197. return false;
  1198. if (name.ToLower().Contains("rima"))
  1199. return false;
  1200. if (name.ToLower().Contains("PiraTes"))
  1201. return false;
  1202. if (name.ToLower().Contains("EgyConqur"))
  1203. return false;
  1204. if (name.ToLower().Contains("gm"))
  1205. return false;
  1206. if (name.ToLower().Contains("pm"))
  1207. return false;
  1208. if (name.ToLower().Contains("p~m"))
  1209. return false;
  1210. if (name.ToLower().Contains("p!m"))
  1211. return false;
  1212. if (name.ToLower().Contains("g~m"))
  1213. return false;
  1214. if (name.ToLower().Contains("g!m"))
  1215. return false;
  1216. if (name.ToLower().Contains("help"))
  1217. return false;
  1218. if (name.ToLower().Contains("desk"))
  1219. return false;
  1220. if (name.ToLower().Contains("abdallah"))
  1221. return false;
  1222. if (name.Contains('/'))
  1223. return false;
  1224. if (name.Contains(@"\"))
  1225. return false;
  1226. if (name.Contains(@"'"))
  1227. return false;
  1228. // if (name.Contains('#'))
  1229. // return false;
  1230. if (name.Contains("GM") ||
  1231. name.Contains("PM") ||
  1232. name.Contains("SYSTEM") ||
  1233. name.Contains("{") || name.Contains("}") || name.Contains("[") || name.Contains("]"))
  1234. return false;
  1235. if (name.Length > 16 && ExceptedSize)
  1236. return false;
  1237. for (int x = 0; x < name.Length; x++)
  1238. if (name[x] == 25)
  1239. return false;
  1240. return true;
  1241. }
  1242. public static bool StringCheck(string pszString)
  1243. {
  1244. for (int x = 0; x < pszString.Length; x++)
  1245. {
  1246. if (pszString[x] > ' ' && pszString[x] <= '~')
  1247. return false;
  1248. }
  1249. return true;
  1250. }
  1251.  
  1252. //public static string LogginKey = "C238xs65pjy7HU9Q";
  1253. public static string LogginKey = "XCheatLoaderMeGo";
  1254.  
  1255. public static bool DeleteItems = false;
  1256. public const string LoaderPrograms = "database\\LoaderPrograms\\";
  1257.  
  1258. }
  1259. }
  1260.  
Add Comment
Please, Sign In to add comment