Advertisement
Guest User

MsgAction&Data

a guest
Nov 18th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.36 KB | None | 0 0
  1. fe class MsgAction
  2. a3ml Search 3la #region FriDay
  3. w def goaha dol
  4.  
  5. #region Dragon Island
  6. case 68:
  7. {
  8. client.Player.Teleport(10137, 92, 411);
  9. Player.SendReload(client);
  10. client.Send(packet);
  11. break;
  12. }
  13. #endregion
  14.  
  15. me4 la2y al mkan al mtlop 34an adef al kod
  16. da al class 3andy Data.cs
  17.  
  18.  
  19. namespace COServer.Network.GamePackets
  20. {
  21. public class StatusIconData : Writer
  22. {
  23. private byte[] mData;
  24.  
  25. public uint AuraLevel
  26. {
  27. get
  28. {
  29. return COServer.BitConverter.ToUInt32(this.mData, 20);
  30. }
  31. set
  32. {
  33. Writer.WriteUInt32(value, 20, this.mData);
  34. }
  35. }
  36. public uint AuraPower
  37. {
  38. get
  39. {
  40. return COServer.BitConverter.ToUInt32(this.mData, 28);
  41. }
  42. set
  43. {
  44. Writer.WriteUInt32(value, 28, this.mData);
  45. }
  46. }
  47. public StatusIconData.AuraType AuraType2
  48. {
  49. get
  50. {
  51. return (StatusIconData.AuraType)COServer.BitConverter.ToUInt32(this.mData, 16);
  52. }
  53. set
  54. {
  55. Writer.WriteUInt32((uint)value, 16, this.mData);
  56. }
  57. }
  58. public ushort X2
  59. {
  60. get
  61. {
  62. return BitConverter.ToUInt16(Buffer, 28);
  63. }
  64. set
  65. {
  66. Writer.Write(value, 28, Buffer);
  67. }
  68. }
  69. public ushort Y2
  70. {
  71. get
  72. {
  73. return BitConverter.ToUInt16(Buffer, 30);
  74. }
  75. set
  76. {
  77. Writer.Write(value, 30, Buffer);
  78. }
  79. }
  80. public uint Identifier
  81. {
  82. get
  83. {
  84. return COServer.BitConverter.ToUInt32(this.mData, 12);
  85. }
  86. set
  87. {
  88. Writer.WriteUInt32(value, 12, this.mData);
  89. }
  90. }
  91. public StatusIconData.AuraDataTypes Type
  92. {
  93. get
  94. {
  95. return (StatusIconData.AuraDataTypes)COServer.BitConverter.ToUInt32(this.mData, 8);
  96. }
  97. set
  98. {
  99. Writer.WriteUInt32((uint)value, 8, this.mData);
  100. }
  101. }
  102. public uint U20
  103. {
  104. get
  105. {
  106. return COServer.BitConverter.ToUInt32(this.mData, 24);
  107. }
  108. set
  109. {
  110. Writer.WriteUInt32(value, 24, this.mData);
  111. }
  112. }
  113. public StatusIconData()
  114. {
  115. this.mData = new byte[40];
  116. Writer.WriteUInt16((ushort)32, 0, this.mData);
  117. Writer.WriteUInt16((ushort)2410, 2, this.mData);
  118. Writer.WriteUInt32((uint)Time32.Now.GetHashCode(), 4, this.mData);
  119. }
  120. public StatusIconData(byte[] d)
  121. {
  122. this.mData = new byte[d.Length];
  123. d.CopyTo((Array)this.mData, 0);
  124. }
  125. public static implicit operator byte[](StatusIconData d)
  126. {
  127. return d.mData;
  128. }
  129. public byte[] ToArray()
  130. {
  131. return this.mData;
  132. }
  133. public enum AuraDataTypes
  134. {
  135. Remove = 2,
  136. Add = 3,
  137. }
  138. public enum AuraType
  139. {
  140. TyrantAura = 1,
  141. FendAura = 2,
  142. MetalAura = 3,
  143. WoodAura = 4,
  144. WaterAura = 5,
  145. FireAura = 6,
  146. EarthAura = 7,
  147. MagicDefender = 8,
  148. }
  149. }
  150. public unsafe class Data : Writer, Interfaces.IPacket
  151. {
  152. public class CustomCommands
  153. {
  154. public const ushort
  155. ExitQuestion = 1,
  156. Minimize = 2,
  157. ShowReviveButton = 1053,
  158. FlowerPointer = 1067,
  159. Enchant = 1091,
  160. LoginScreen = 1153,
  161. SelectRecipiet = 30,
  162. JoinGuild = 34,
  163. MakeFriend = 38,
  164. ChatWhisper = 40,
  165. CloseClient = 43,
  166. HotKey = 53,
  167. Furniture1 = 54,
  168. TQForum = 79,
  169. PathFind = 97,
  170. LockItem = 102,
  171. Day = 104,
  172. MapStatus = 105,
  173. ShowRevive = 1053,
  174. HideRevive = 1054,
  175. StatueMaker = 1066,
  176. Furniture = 1070,
  177. GambleOpen = 1077,
  178. GambleClose = 1078,
  179. Compose = 1086,
  180. Craft1 = 1088,
  181. Craft2 = 1089,
  182. Warehouse = 1090,
  183. ShoppingMallShow = 1100,
  184. ShoppingMallHide = 1101,
  185. NoOfflineTraining = 1117,
  186. CenterClient = 1155,
  187. ClaimCP = 1197,
  188. ClaimAmount = 1198,
  189. NewPatch = 1085,
  190. SendTC = 1140,
  191. MerchantApply = 1201,
  192. MerchantDone = 1202,
  193. RedeemEquipment = 1233,
  194. ClaimPrize = 1234,
  195. RepairAll = 1239,
  196. FlowerIcon = 1244,
  197. SendFlower = 1246,
  198. ReciveFlower = 1248,
  199. WarehouseVIP = 1272,
  200. UseExpBall = 1288,
  201. HackProtection = 1298,
  202. HideGUI = 1307,
  203. Inscribe = 3059,
  204. BuyPrayStone = 3069,
  205. itemsgui = 3112,
  206. HonorStore = 3104,
  207. Opponent = 3107,
  208. CountDownQualifier = 3109,
  209. QualifierStart = 3111,
  210. ItemsReturnedShow = 3117,
  211. ItemsReturnedWindow = 3118,
  212. ItemsReturnedHide = 3119,
  213. QuestFinished = 3147,
  214. QuestPoint = 3148,
  215. QuestPointSparkle = 3164,
  216. StudyPointsUp = 3192,
  217. PKTeamName = 3209,
  218. CTFFlag = 3211,
  219. Updates = 3218,
  220. IncreaseLineage = 3227,
  221. HorseRacingStore = 3245,
  222. GuildPKTourny = 3249,
  223. QuitPK = 3251,
  224. Spectators = 3252,
  225. CardPlayOpen = 3270,
  226. CardPlayClost = 3271,
  227. ArtifactPurification = 3344,
  228. SafeguardConvoyShow = 3389,
  229. SafeguardConvoyHide = 3390,
  230. RefineryStabilization = 3392,
  231. ArtifactStabilization = 3398,
  232. SmallChat = 3406,
  233. NormalChat = 3407,
  234. Reincarnation = 3439,
  235. GuiHeavenBlessing = 3064,
  236. DoneEffect = 3130,
  237. Market = 3300,
  238. Advertise = 3274,
  239. CTFEnd = 3549,
  240. CTFScores = 3359;
  241. }
  242. public class WindowCommands
  243. {
  244. public const ushort
  245. Compose = 1,
  246. Craft = 2,
  247. Warehouse = 4,
  248. DetainRedeem = 336,
  249. DetainClaim = 337,
  250. VIPWarehouse = 341,
  251. Breeding = 368,
  252. PurificationWindow = 455,
  253. StabilizationWindow = 459,
  254. TalismanUpgrade = 347,
  255. GemComposing = 422,
  256. OpenSockets = 425,
  257. Blessing = 426,
  258. TortoiseGemComposing = 438,
  259. RefineryStabilization = 448,
  260. HorseRacingStore = 464,
  261. Reincarnation = 485;
  262. }
  263. public const ushort
  264. RemoveTrap = 434,
  265. ObserveKnownPerson = 54,
  266. SetLocation = 74,
  267. Hotkeys = 75,
  268. ConfirmFriends = 76,
  269. ConfirmProficiencies = 77,
  270. ConfirmSpells = 78,
  271. ChangeDirection = 79,
  272. ChangeAction = 81,
  273. UsePortal = 85,
  274. Teleport = 86,
  275. Leveled = 92,
  276. XPListEnd = 93,
  277. Revive = 94,
  278. DeleteCharacter = 95,
  279. ChangePKMode = 96,
  280. ConfirmGuild = 97,
  281. SwingPickaxe = 99,
  282. UnknownEntity = 102,
  283. TeamSearchForMember = 106,
  284. NewCoordonates = 108,
  285. DropMagic = 109,
  286. DropSkill = 110,
  287. OwnBooth = 111,
  288. GetSurroundings = 114,
  289. OpenCustom = 116,
  290. ObserveEquipment = 117,
  291. EndTransformation = 118,
  292. EndFly = 120,
  293. ViewEnemyInfo = 123,
  294. OpenWindow = 126,
  295. CompleteLogin = 251,
  296. RemoveEntity = 135,
  297. Jump = 137,
  298. Die = 145,
  299. EndTeleport = 146,
  300. ViewFriendInfo = 148,
  301. ChangeFace = 151,
  302. ViewPartnerInfo = 152,
  303. Confiscator = 153,
  304. FlashStep = 156,
  305. CountDown = 159,
  306. Away = 161,
  307. Bulletin = 166,
  308. ClaimableItem = 408,
  309. AppearanceType = 178,
  310. LevelUpSpell = 252,
  311. SpawnEffect = 134,
  312. GuardJump = 130,
  313. LevelUpProficiency = 253,
  314. ObserveEquipment2 = 310,
  315. BeginSteedRace = 401,
  316. FinishSteedRace = 402,
  317. SwirlingStorm = 179,
  318. JiangHu = 126,
  319. TeamMemberPos = 101,
  320. Shop = 160,
  321. PathFinding = 162,
  322. Disconnect = 132,
  323. ItemDetained = 154,
  324. DetainItem = 155,
  325. HideGui = 158,
  326. SendTC = 177,
  327. FirstCredit = 255,
  328. GetMoney = 121,
  329. DragonBallDropped = 165,
  330. DetainWindowRequest = 153;
  331.  
  332. byte[] Buffer;
  333. public Data(bool Create)
  334. {
  335. if (Create)
  336. {
  337. Buffer = new byte[50];
  338. WriteUInt16(42, 0, Buffer);
  339. WriteUInt16(10010, 2, Buffer);
  340. WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, Buffer);
  341. }
  342. }
  343. public static Data Custom(uint customType, uint uid, ushort wParam1 = 0, ushort wParam2 = 0)
  344. {
  345. Data data = new Data(true);
  346. data.ID = Data.OpenCustom;
  347. data.UID = uid;
  348. data.TimeStamp = Time32.Now;
  349. data.dwParam = customType;
  350. data.wParam1 = wParam1;
  351. data.wParam2 = wParam2;
  352. return data;
  353. }
  354. public uint UID
  355. {
  356. get { return BitConverter.ToUInt32(Buffer, 8); }
  357. set { Writer.WriteUInt32(value, 8, Buffer); }
  358. }
  359. public uint dwParam//CustomType
  360. {
  361. get { return BitConverter.ToUInt32(Buffer, 12); }
  362. set { WriteUInt32(value, 12, Buffer); }
  363. }
  364. public ushort X//For TwilightDance
  365. {
  366. get { return BitConverter.ToUInt16(Buffer, 12); }
  367. set { WriteUInt16(value, 12, Buffer); }
  368. }
  369. public ushort Y//For TwilightDance
  370. {
  371. get { return BitConverter.ToUInt16(Buffer, 14); }
  372. set { WriteUInt16(value, 14, Buffer); }
  373. }
  374. public Time32 TimeStamp
  375. {
  376. get { return new Time32(BitConverter.ToUInt32(Buffer, 20)); }
  377. set { WriteUInt32((uint)value.GetHashCode(), 20, Buffer); }
  378. }
  379. public uint TimeStamp2//For Npc Shop
  380. {
  381. get { return BitConverter.ToUInt32(Buffer, 20); }
  382. set { WriteUInt32(value, 20, Buffer); }
  383. }
  384. public uint ID
  385. {
  386. get { return BitConverter.ToUInt16(Buffer, 24); }
  387. set { WriteUInt32(value, 24, Buffer); }
  388. }
  389. public Game.Enums.ConquerAngle Facing
  390. {
  391. get { return (Game.Enums.ConquerAngle)Buffer[26]; }
  392. }
  393. public ushort wParam1//X
  394. {
  395. get { return BitConverter.ToUInt16(Buffer, 28); }
  396. set { WriteUInt16(value, 28, Buffer); }
  397. }
  398. public uint Data28_Uint//For Poker
  399. {
  400. get { return BitConverter.ToUInt32(Buffer, 28); }
  401. set { WriteUInt32(value, 28, Buffer); }
  402. }
  403. public ushort wParam2//Y
  404. {
  405. get { return BitConverter.ToUInt16(Buffer, 30); }
  406. set { WriteUInt16(value, 30, Buffer); }
  407. }
  408. public void Deserialize(byte[] buffer)
  409. {
  410. this.Buffer = buffer;
  411. }
  412. public byte[] ToArray()
  413. {
  414. return Buffer;
  415. }
  416. public void Send(Client.GameState client)
  417. {
  418. client.Send(Buffer);
  419. }
  420. public static void Process(byte[] packet, Client.GameState client)
  421. {
  422. if (client.Action != 2) return;
  423. Data gData = new Data(false);
  424. gData.Deserialize(packet);
  425. switch (gData.ID)
  426. {
  427. case Data.SwirlingStorm:
  428. {
  429. client.Entity.SwirlingStamp = gData.TimeStamp;
  430. break;
  431. }
  432. case Data.DetainWindowRequest:
  433. {
  434. if (!client.JustOpenedDetain)
  435. {
  436. if (client.DeatinedItem.Count != 0)
  437. {
  438. client.Send(new Data(true)
  439. {
  440. ID = Data.OpenWindow,
  441. dwParam = Data.WindowCommands.DetainRedeem,
  442. UID = client.Entity.UID
  443. });
  444. }
  445. if (client.ClaimableItem.Count != 0)
  446. {
  447. client.Send(new Data(true)
  448. {
  449. ID = Data.OpenWindow,
  450. dwParam = Data.WindowCommands.DetainClaim,
  451. UID = client.Entity.UID
  452. });
  453. }
  454. }
  455. client.JustOpenedDetain = !client.JustOpenedDetain;
  456. break;
  457. }
  458. case Data.SendTC:
  459. {
  460. client.Entity.Teleport(1002, 301, 288);
  461. break;
  462. }
  463. case Data.Bulletin:
  464. {
  465. if (DateTime.Now.DayOfWeek == DayOfWeek.Wednesday && DateTime.Now.Hour ==
  466. 19 && DateTime.Now.Minute == 45 && DateTime.Now.Minute <= 50)//skill team pk
  467. {
  468. client.Entity.Teleport(1002, 313, 143);//Teleport
  469. }
  470. else if (DateTime.Now.DayOfWeek == DayOfWeek.Friday && DateTime.Now.Hour == 19
  471. && DateTime.Now.Minute == 55 && DateTime.Now.Minute <= 59)//elite pk
  472. {
  473. client.Entity.Teleport(1002, 302, 144);//Teleport
  474. }
  475. else if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday && DateTime.Now.Hour ==
  476. 18 && DateTime.Now.Minute == 45 && DateTime.Now.Minute <= 50)//team pk
  477. {
  478. client.Entity.Teleport(1002, 292, 146);//Teleport
  479. }
  480. else if (DateTime.Now.Day <= 7 && DateTime.Now.DayOfWeek == DayOfWeek.Sunday &&
  481. DateTime.Now.Hour == 22 && DateTime.Now.Minute >= 01 && DateTime.Now.Minute <= 14)//Monthly PK
  482. {
  483. client.Entity.Teleport(1002, 324, 194);//Teleport
  484. }
  485. else if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday &&
  486. DateTime.Now.Hour == 20 && DateTime.Now.Minute >= 05 && DateTime.Now.Minute <= 15)// Weekly PK
  487. {
  488. client.Entity.Teleport(1002, 324, 194);//Teleport
  489. }
  490. if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday && DateTime.Now.Hour ==
  491. 21 && DateTime.Now.Minute == 36 && DateTime.Now.Minute <= 59)//CaptureTheFlag
  492. {
  493. client.Entity.Teleport(1002, 225, 237);//Teleport
  494. }
  495. else if (DateTime.Now.DayOfWeek == DayOfWeek.Wednesday || DateTime.Now.DayOfWeek ==
  496. DayOfWeek.Friday) if ((DateTime.Now.Hour == 12 || DateTime.Now.Hour == 19) && DateTime.Now.Minute ==
  497. 01 && DateTime.Now.Minute <= 05)//Dis City
  498. {
  499. client.Entity.Teleport(1002, 297, 149);//Teleport
  500. }
  501. break;
  502. }
  503. case Data.ClaimableItem:
  504. {
  505. if (!client.JustOpenedDetain)
  506. if (client.ClaimableItem.Count != 0)
  507. client.Send(new Data(true)
  508. {
  509. ID = Data.OpenWindow,
  510. dwParam = Data.WindowCommands.DetainClaim,
  511. UID = client.Entity.UID
  512. });
  513. client.JustOpenedDetain = !client.JustOpenedDetain;
  514. break;
  515. }
  516. case Data.FinishSteedRace:
  517. {
  518. if (client.Entity.MapID == Game.SteedRace.MAPID)
  519. Server.Thread.SteedRace.FinishRace(client);
  520. break;
  521. }
  522. case Data.Disconnect:
  523. {
  524. client.Disconnect();
  525. break;
  526. }
  527. case Data.AppearanceType:
  528. {
  529. GeneralData.ChangeAppearance(gData, client);
  530. break;
  531. }
  532. case Data.LevelUpSpell:
  533. {
  534. GeneralData.LevelUpSpell(gData, client);
  535. break;
  536. }
  537. case Data.LevelUpProficiency:
  538. {
  539. GeneralData.LevelUpProficiency(gData, client);
  540. break;
  541. }
  542. case Data.SwingPickaxe:
  543. {
  544. client.Mining = true;
  545. break;
  546. }
  547. case Data.Revive:
  548. {
  549. GeneralData.Revive(gData, client);
  550. break;
  551. }
  552. case Data.UsePortal:
  553. {
  554. GeneralData.UsePortal(gData, client);
  555. break;
  556. }
  557. case Data.ChangePKMode:
  558. {
  559. GeneralData.ChangePKMode(gData, client);
  560. break;
  561. }
  562. case Data.ChangeAction:
  563. {
  564. GeneralData.ChangeAction(gData, client);
  565. break;
  566. }
  567. case Data.ChangeDirection:
  568. {
  569. GeneralData.ChangeDirection(gData, client);
  570. break;
  571. }
  572. case Data.Hotkeys:
  573. {
  574. client.Send(packet);
  575. break;
  576. }
  577. case Data.ConfirmSpells:
  578. {
  579. if (client.Spells != null)
  580. foreach (Interfaces.ISkill spell in client.Spells.Values)
  581. if (spell.ID != 3060)
  582. spell.Send(client);
  583. client.Send(packet);
  584. break;
  585. }
  586. case Data.ConfirmProficiencies:
  587. {
  588. if (client.Proficiencies != null)
  589. foreach (Interfaces.IProf proficiency in client.Proficiencies.Values)
  590. proficiency.Send(client);
  591. client.Send(packet);
  592. break;
  593. }
  594. case Data.ConfirmGuild:
  595. {
  596. client.Send(packet);
  597. break;
  598. }
  599. case Data.ConfirmFriends:
  600. {
  601. #region Friends/Enemy/TradePartners/Apprentices
  602. Message msg2 = new Message("Your friend, " + client.Entity.Name + ", has come to the game!.", System.Drawing.Color.Red, Message.TopLeft);
  603.  
  604. foreach (Game.ConquerStructures.Society.Friend friend in client.Friends.Values)
  605. {
  606. if (friend.IsOnline)
  607. {
  608. var pckt = new KnownPersons(true)
  609. {
  610. UID = client.Entity.UID,
  611. Type = KnownPersons.RemovePerson,
  612. Name = client.Entity.Name,
  613. NobilityRank = client.Entity.NobilityRank,
  614. IsBoy = Game.Features.Flowers.IsBoy(client.Entity.Body),
  615. Online = true
  616. };
  617. friend.Client.Send(pckt);
  618. pckt.Type = KnownPersons.GetInfo;
  619. friend.Client.Send(pckt);
  620. friend.Client.Send(msg2);
  621. }
  622. client.Send(new KnownPersons(true)
  623. {
  624. UID = friend.ID,
  625. Type = KnownPersons.GetInfo,
  626. Name = friend.Name,
  627. NobilityRank = friend.NobilityRank,
  628. IsBoy = friend.IsBoy,
  629. Online = friend.IsOnline
  630. });
  631. if (friend.Message != "")
  632. {
  633. client.Send(new Message(friend.Message, client.Entity.Name, friend.Name, System.Drawing.Color.Red, Message.Whisper));
  634. Database.KnownPersons.UpdateMessageOnFriend(friend.ID, client.Entity.UID, "");
  635. }
  636. }
  637. foreach (Game.ConquerStructures.Society.Enemy enemy in client.Enemy.Values)
  638. {
  639. if (enemy.IsOnline)
  640. {
  641. var pckt = new KnownPersons(true)
  642. {
  643. UID = client.Entity.UID,
  644. Type = KnownPersons.EnemyOnline,
  645. Name = client.Entity.Name,
  646. NobilityRank = client.Entity.NobilityRank,
  647. IsBoy = Game.Features.Flowers.IsBoy(client.Entity.Body),
  648. Online = true
  649. };
  650. enemy.Client.Send(pckt);
  651. pckt.Type = KnownPersons.AddEnemy;
  652. enemy.Client.Send(pckt);
  653. }
  654. client.Send(new KnownPersons(true)
  655. {
  656. UID = enemy.ID,
  657. Type = KnownPersons.AddEnemy,
  658. Name = enemy.Name,
  659. NobilityRank = enemy.NobilityRank,
  660. IsBoy = enemy.IsBoy,
  661. Online = enemy.IsOnline
  662. });
  663. }
  664. Message msg3 = new Message("Your partner, " + client.Entity.Name + ", has logged in.", System.Drawing.Color.Red, Message.TopLeft);
  665. foreach (Game.ConquerStructures.Society.TradePartner partner in client.Partners.Values)
  666. {
  667. if (partner.IsOnline)
  668. {
  669. var packet3 = new TradePartner(true)
  670. {
  671. UID = client.Entity.UID,
  672. Type = TradePartner.BreakPartnership,
  673. Name = client.Entity.Name,
  674. HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours),
  675. Online = true
  676. };
  677. partner.Client.Send(packet3);
  678. packet3.Type = TradePartner.AddPartner;
  679. partner.Client.Send(packet3);
  680. partner.Client.Send(msg3);
  681. }
  682. var packet4 = new TradePartner(true)
  683. {
  684. UID = partner.ID,
  685. Type = TradePartner.AddPartner,
  686. Name = partner.Name,
  687. HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours),
  688. Online = partner.IsOnline
  689. };
  690. client.Send(packet4);
  691. }
  692. foreach (Game.ConquerStructures.Society.Apprentice appr in client.Apprentices.Values)
  693. {
  694. if (appr.IsOnline)
  695. {
  696. ApprenticeInformation AppInfo = new ApprenticeInformation();
  697. AppInfo.Apprentice_ID = appr.ID;
  698. AppInfo.Apprentice_Level = appr.Client.Entity.Level;
  699. AppInfo.Apprentice_Class = appr.Client.Entity.Class;
  700. AppInfo.Apprentice_PkPoints = appr.Client.Entity.PKPoints;
  701. AppInfo.Apprentice_Experience = appr.Actual_Experience;
  702. AppInfo.Apprentice_Composing = appr.Actual_Plus;
  703. AppInfo.Apprentice_Blessing = appr.Actual_HeavenBlessing;
  704. AppInfo.Apprentice_Name = appr.Name;
  705. AppInfo.Apprentice_Online = true;
  706. AppInfo.Apprentice_Spouse_Name = appr.Client.Entity.Spouse;
  707. AppInfo.Enrole_date = appr.EnroleDate;
  708. AppInfo.Mentor_ID = client.Entity.UID;
  709. AppInfo.Mentor_Mesh = client.Entity.Mesh;
  710. AppInfo.Mentor_Name = client.Entity.Name;
  711. AppInfo.Type = 2;
  712. client.Send(AppInfo);
  713.  
  714. MentorInformation Information = new MentorInformation(true);
  715. Information.Mentor_Type = 1;
  716. Information.Mentor_ID = client.Entity.UID;
  717. Information.Apprentice_ID = appr.ID;
  718. Information.Enrole_Date = appr.EnroleDate;
  719. Information.Mentor_Level = client.Entity.Level;
  720. Information.Mentor_Class = client.Entity.Class;
  721. Information.Mentor_PkPoints = client.Entity.PKPoints;
  722. Information.Mentor_Mesh = client.Entity.Mesh;
  723. Information.Mentor_Online = true;
  724. Information.Shared_Battle_Power = appr.Client.Entity.BattlePowerFrom(client.Entity);
  725. Information.String_Count = 3;
  726. Information.Mentor_Name = client.Entity.Name;
  727. Information.Apprentice_Name = appr.Name;
  728. Information.Mentor_Spouse_Name = client.Entity.Spouse;
  729. appr.Client.ReviewMentor();
  730. appr.Client.Send(Information);
  731. }
  732. else
  733. {
  734. ApprenticeInformation AppInfo = new ApprenticeInformation();
  735. AppInfo.Apprentice_ID = appr.ID;
  736. AppInfo.Apprentice_Name = appr.Name;
  737. AppInfo.Apprentice_Online = false;
  738. AppInfo.Enrole_date = appr.EnroleDate;
  739. AppInfo.Mentor_ID = client.Entity.UID;
  740. AppInfo.Mentor_Mesh = client.Entity.Mesh;
  741. AppInfo.Mentor_Name = client.Entity.Name;
  742. AppInfo.Type = 2;
  743. client.Send(AppInfo);
  744. }
  745. }
  746. #endregion
  747. client.Send(packet);
  748. break;
  749. }
  750. case Data.EndTeleport:
  751. {
  752. break;
  753. }
  754. case Data.GetSurroundings:
  755. {
  756. if (client.Booth != null)
  757. {
  758. client.Entity.TransformationID = 0;
  759. client.Booth.Remove();
  760. client.Booth = null;
  761. }
  762. GeneralData.GetSurroundings(client);
  763. if (client.ChampionGroup != null)
  764. {
  765. byte[] p5442 = new byte[]
  766. {
  767. 20, 0, 86, 4, 40, 128, 14, 0,
  768. 160, 187, 13, 0, 103, 0, 21,
  769. 64, 12, 49, 0, 0, 84, 81, 83,
  770. 101, 114, 118, 101, 114
  771. };
  772. client.Send(p5442);
  773. }
  774. else
  775. client.Send(new MapStatus()
  776. {
  777. BaseID = client.Map.BaseID,
  778. ID = client.Map.ID,
  779. Status = Database.MapsTable.MapInformations[client.Map.ID].Status,
  780. Weather = Database.MapsTable.MapInformations[client.Map.ID].Weather
  781. });
  782. Game.WeatherStruct.CurrentWeatherBase.Send(client);
  783. client.Send(gData);
  784. break;
  785. }
  786. case Data.FirstCredit:
  787. {
  788. if (client.Entity.FirstCreditPoints >= 5000)
  789. {
  790. client.Entity.FirstCreditPoints -= 5000;
  791. client.Inventory.AddBoundItem(3001266, 0, 1);//FortunePack
  792. client.Inventory.AddBoundItem(3001268, 0, 1);//EXPPotionPack
  793. client.Inventory.AddBoundItem(3001270, 0, 1);//MeteorPack
  794. client.Inventory.AddBoundItem(3001271, 0, 1);//BigEXPBallPack
  795. client.Inventory.AddBoundItem(3001275, 0, 1);//SuperWeapon
  796. client.Inventory.AddBoundItem(3001280, 0, 1);//SuperArmor
  797. client.Inventory.AddBoundItem(3001267, 0, 1);//+3WhiteSteed
  798. client.Inventory.AddBoundItem(3001282, 0, 1);//PrayingStone(L)
  799. client.Inventory.AddBoundItem(3001289, 0, 1);//PromotionGift
  800. FlagsUpdate upgrade = new FlagsUpdate(true);
  801. upgrade.UID = client.Entity.UID;
  802. upgrade.Append((byte)FlagsUpdate.DataType.FirstCreditGift, 21, 0, 0, 0);
  803. client.Send(upgrade.ToArray());
  804. client.Entity.ClaimedFirstCredit = true;
  805. }
  806. else
  807. {
  808. client.Send(new Message("Sorry not have CreditPoints you can donate to get CreditPoints", Message.System));
  809. }
  810. break;
  811. }
  812. case Data.SetLocation:
  813. {
  814. GeneralData.SetLocation(gData, client);
  815. break;
  816. }
  817. case Data.Jump:
  818. {
  819. client.Entity.SetAway(false);
  820. client.LastMove = Time32.Now;
  821. GeneralData.PlayerJump(gData, client);
  822. #region Remove MagicDefender
  823. if (Time32.Now <= client.Entity.MagicDefenderStamp.AddSeconds(client.Entity.MagicDefender))
  824. {
  825. if (client.Entity.ContainsFlag3((ulong)FlagsUpdate.Flags3.MagicDefender))
  826. {
  827. if (client.Spells.ContainsKey(11160) && Database.SpellTable.SpellInformations.ContainsKey(11160))
  828. {
  829. client.Entity.AddFlag3((ulong)FlagsUpdate.Flags3.MagicDefender);
  830. client.Entity.MagicDefender = 0;
  831. }
  832. }
  833. }
  834. #endregion
  835. client.Entity.SpellStamp = Time32.Now.AddSeconds(-1);
  836. break;
  837. }
  838. case Data.UnknownEntity:
  839. {
  840. #region UnknownEntity
  841. Client.GameState pClient = null;
  842. if (Kernel.GamePool.TryGetValue(gData.dwParam, out pClient))
  843. {
  844. if (Kernel.GetDistance(pClient.Entity.X, pClient.Entity.Y, client.Entity.X, client.Entity.Y) <= Constants.pScreenDistance && client.Map.ID == pClient.Map.ID)
  845. {
  846. if (pClient.Guild != null)
  847. pClient.Guild.SendName(client);
  848. if (client.Guild != null)
  849. client.Guild.SendName(pClient);
  850. if (pClient.Entity.UID != client.Entity.UID)
  851. {
  852. if (pClient.Map.ID == client.Map.ID)
  853. {
  854. if (pClient.Map.BaseID == 700 && pClient.Map.ID != 700)
  855. {
  856. if (client.InQualifier())
  857. {
  858. if (pClient.InQualifier())
  859. {
  860. client.Entity.SendSpawn(pClient);
  861. pClient.Entity.SendSpawn(client);
  862. if (pClient.Guild != null)
  863. client.Entity.SendSpawn(pClient, false);
  864. if (client.Guild != null)
  865. pClient.Entity.SendSpawn(client, false);
  866. }
  867. else
  868. {
  869. client.Entity.SendSpawn(pClient);
  870. if (pClient.Guild != null)
  871. client.Entity.SendSpawn(pClient, false);
  872. client.Screen.Add(pClient.Entity);
  873. }
  874. }
  875. else
  876. {
  877. if (pClient.InQualifier())
  878. {
  879. pClient.Entity.SendSpawn(client);
  880. if (client.Guild != null)
  881. pClient.Entity.SendSpawn(client, false);
  882. pClient.Screen.Add(client.Entity);
  883. }
  884. else
  885. {
  886. client.Entity.SendSpawn(pClient, false);
  887. pClient.Entity.SendSpawn(client, false);
  888. }
  889. }
  890. }
  891. else
  892. {
  893. client.Entity.SendSpawn(pClient, false);
  894. pClient.Entity.SendSpawn(client, false);
  895. }
  896. }
  897. }
  898. }
  899. }
  900. else
  901. {
  902. Game.Entity monster = null;
  903. if (client.Map.Entities.TryGetValue(gData.dwParam, out monster))
  904. {
  905. if (Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y) <= Constants.pScreenDistance)
  906. {
  907. monster.SendSpawn(client, false);
  908. }
  909. }
  910. if (client.Map.Companions.TryGetValue(gData.dwParam, out monster))
  911. {
  912. if (Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y) <= Constants.pScreenDistance)
  913. {
  914. monster.SendSpawn(client, false);
  915. }
  916. }
  917. }
  918. #endregion
  919. break;
  920. }
  921. case Data.CompleteLogin:
  922. {
  923. GeneralData.LoginMessages(client);
  924. client.Entity.AddFlag((ulong)FlagsUpdate.Flags.Stigma);
  925. ClientEquip equips = new ClientEquip();
  926. equips.DoEquips(client);
  927. client.Send(equips);
  928. client.Send(packet);
  929. client.LoadItemStats();
  930. break;
  931. }
  932. case Data.ChangeFace:
  933. {
  934. GeneralData.ChangeFace(gData, client);
  935. break;
  936. }
  937. case Data.ObserveEquipment:
  938. case Data.ObserveEquipment2:
  939. case Data.ObserveKnownPerson:
  940. {
  941. GeneralData.ObserveEquipment(gData, client);
  942. break;
  943. }
  944. case Data.ViewEnemyInfo:
  945. {
  946. if (client.Enemy.ContainsKey(gData.dwParam))
  947. {
  948. if (client.Enemy[gData.dwParam].IsOnline)
  949. {
  950. KnownPersonInfo info = new KnownPersonInfo(true);
  951. info.Fill(client.Enemy[gData.dwParam], true, false);
  952. if (client.Enemy[gData.dwParam].Client.Guild != null)
  953. client.Enemy[gData.dwParam].Client.Guild.SendName(client);
  954. client.Send(info);
  955. }
  956. }
  957. break;
  958. }
  959. case Data.ViewFriendInfo:
  960. {
  961. if (client.Friends.ContainsKey(gData.dwParam))
  962. {
  963. if (client.Friends[gData.dwParam].IsOnline)
  964. {
  965. KnownPersonInfo info = new KnownPersonInfo(true);
  966. info.Fill(client.Friends[gData.dwParam], false, false);
  967. if (client.Friends[gData.dwParam].Client.Guild != null)
  968. client.Friends[gData.dwParam].Client.Guild.SendName(client);
  969. client.Send(info);
  970. }
  971. }
  972. break;
  973. }
  974. case Data.ViewPartnerInfo:
  975. {
  976. if (client.Partners.ContainsKey(gData.dwParam))
  977. {
  978. if (client.Partners[gData.dwParam].IsOnline)
  979. {
  980. TradePartnerInfo info = new TradePartnerInfo(true);
  981. info.Fill(client.Partners[gData.dwParam]);
  982. if (client.Partners[gData.dwParam].Client.Guild != null)
  983. client.Partners[gData.dwParam].Client.Guild.SendName(client);
  984. client.Send(info);
  985. }
  986. }
  987. break;
  988. }
  989. case Data.EndFly:
  990. {
  991. if (client.Entity.ContainsFlag((ulong)FlagsUpdate.Flags.Freeze))
  992. {
  993. client.Send(new Message("Sorry can't EndFly now just wait", Message.System));
  994. return;
  995. }
  996. client.Entity.RemoveFlag((ulong)FlagsUpdate.Flags.Fly);
  997. break;
  998. }
  999. case Data.EndTransformation:
  1000. {
  1001. client.Entity.Untransform();
  1002. break;
  1003. }
  1004. case Data.XPListEnd:
  1005. {
  1006. break;
  1007. }
  1008. case Data.Die:
  1009. {
  1010. break;
  1011. }
  1012. case Data.OwnBooth:
  1013. {
  1014. if (!client.Entity.TradeOn) return;
  1015. client.Booth = new Game.ConquerStructures.Booth(client, gData);
  1016. client.Send(new Data(true) { ID = Data.ChangeAction, UID = client.Entity.UID, dwParam = 0 });
  1017. break;
  1018. }
  1019. case Data.Away:
  1020. {
  1021. client.Entity.SetAway(packet[12] == 1);
  1022. client.SendScreen(gData, true);
  1023.  
  1024. break;
  1025. }
  1026. case Data.DeleteCharacter:
  1027. {
  1028. if ((client.WarehousePW == 0 || gData.dwParam == 0) || (client.WarehousePW == gData.dwParam))
  1029. {
  1030. if (client.Entity.MapID != 1098)
  1031. {
  1032. using (var cmd = new Database.MySqlCommand(Database.MySqlCommandType.INSERT))
  1033. cmd.Insert("accountdelete")
  1034. .Insert("EntityID", client.Entity.UID)
  1035. .Insert("NamePlayer", client.Entity.Name)
  1036. .Execute();
  1037. using (var cmd = new AccServer.Database.MySqlCommand(AccServer.Database.MySqlCommandType.UPDATE))
  1038. cmd.Update("accounts")
  1039. .Set("EntityID", 0)
  1040. .Where("EntityID", client.Account.EntityID)
  1041. .Execute();
  1042. client.Disconnect();
  1043. }
  1044. }
  1045. break;
  1046. }
  1047. case Data.TeamSearchForMember:
  1048. {
  1049. if (client.Team != null)
  1050. {
  1051. Client.GameState Client = null;
  1052. if (!client.Team.IsTeammate(gData.UID)) return;
  1053. if (Kernel.GamePool.TryGetValue(gData.UID, out Client))
  1054. {
  1055. gData.wParam1 = Client.Entity.X;
  1056. gData.wParam2 = Client.Entity.Y;
  1057. gData.Send(client);
  1058. }
  1059. }
  1060. break;
  1061. }
  1062. default: if (client.Account.State == Database.AccountTable.AccountState.Administrator)
  1063. client.Send(new Message("[Data] Unknown Action: " + gData.ID, Message.System)); break;
  1064. }
  1065. }
  1066. }
  1067. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement