Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.18 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using Conquer_Online_Server.Game;
  4.  
  5. namespace Conquer_Online_Server.Network.GamePackets
  6. {
  7. public class Update : Writer, Interfaces.IPacket
  8. {
  9. public struct UpdateStruct
  10. {
  11. public uint Type;
  12. public ulong Value1;
  13. public ulong Value2;
  14. }
  15. public enum CountryID : uint
  16. {
  17. Default = 0,
  18. Australia = 1,
  19. Brazil = 2,
  20. Canada = 3,
  21. Conquer = 4,
  22. Egypt = 5,
  23. France = 6,
  24. Macedonia = 7,
  25. Germany = 8,
  26. SaudiArabia = 9,
  27. Malaysia = 10,
  28. Mexico = 11,
  29. Nederlands = 12,
  30. Philippines = 13,
  31. Poland = 14,
  32. Portugal = 15,
  33. Romania = 16,
  34. Singapore = 17,
  35. Sweden = 18,
  36. Turkey = 19,
  37. UK = 20,
  38. USA = 21,
  39. Vietnam = 22
  40. }
  41.  
  42. public class Flags
  43. {
  44.  
  45. public const ulong
  46. FreezeSmall = 1UL << 54,
  47. Stun = 1UL << 58,
  48. ChaosCycle = 1UL << 60,
  49. Cursed = 1UL << 32,
  50. Normal = 0x0,
  51. FlashingName = 0x1,
  52. Poisoned = 0x2,
  53. Invisible = 0x4,
  54. XPList = 0x10,
  55. Dead = 0x20,
  56. TeamLeader = 0x40,
  57. StarOfAccuracy = 0x80,
  58. MagicShield = 0x100,
  59. Stigma = 0x200,
  60. Ghost = 0x400,
  61. FadeAway = 0x800,
  62. RedName = 0x4000,
  63. BlackName = 0x8000,
  64. ReflectMelee = 0x20000,
  65. Superman = 0x40000,
  66. Ball = 0x80000,
  67. Ball2 = 0x100000,
  68. Invisibility = 0x400000,
  69. Cyclone = 0x800000,
  70. Dodge = 0x4000000,
  71. Fly = 0x8000000,
  72. Intensify = 0x10000000,
  73. CastPray = 0x40000000,
  74. Praying = 0x80000000,
  75. HeavenBlessing = 0x200000000,
  76. TopGuildLeader = 0x400000000,
  77. TopDeputyLeader = 0x800000000,
  78. MonthlyPKChampion = 0x1000000000,
  79. WeeklyPKChampion = 0x2000000000,
  80. TopWarrior = 0x4000000000,
  81. TopTrojan = 0x8000000000,
  82. TopArcher = 0x10000000000,
  83. TopWaterTaoist = 0x20000000000,
  84. TopFireTaoist = 0x40000000000,
  85. TopNinja = 0x80000000000,
  86. ShurikenVortex = 0x400000000000,
  87. FatalStrike = 0x800000000000,
  88. Flashy = 0x1000000000000,
  89. Ride = 0x4000000000000,
  90. TopSpouse = 1UL << 51,
  91. OrangeSparkles = 1UL << 52,
  92. PurpleSparkles = 1UL << 53,
  93. Frightened = 1UL << 54,
  94. SpeedIncreased = 1UL << 55,
  95. MoveSpeedRecovered = 1UL << 56,
  96. DivineShield = 1UL << 57,
  97. Dizzy = 1UL << 58,
  98. Freeze = 1UL << 59,
  99. Confused = 1UL << 60;
  100. }
  101. public class Flags2
  102. {
  103.  
  104. public const ulong
  105. #region Projectx
  106. WeeklyTop8Pk = 1UL << 0,//top
  107. WeeklyTop2PkGold = 1UL << 1,
  108. WeeklyTop2PkBlue = 1UL << 2,
  109. MonthlyTop8Pk = 1UL << 3,
  110. MontlyTop2Pk = 1UL << 4,
  111. MontlyTop3Pk = 1UL << 5,
  112. Top8Fire = 1UL << 6,
  113. Top2Fire = 1UL << 7,//top
  114. Top3Fire = 1UL << 8,
  115. Top8Water = 1UL << 9,
  116. Top2Water = 1UL << 10,
  117. Top3Water = 1UL << 11,
  118. Top8Ninja = 1UL << 12,
  119. Top2Ninja = 1UL << 13,
  120. Top3Ninja = 1UL << 14,
  121. Top8Warrior = 1UL << 15,//top
  122. Top2Warrior = 1UL << 16,
  123. Top3Warrior = 1UL << 17,
  124. Top8Trojan = 1UL << 18,
  125. Top2Trojan = 1UL << 19,//top
  126. Top3Trojan = 1UL << 20,
  127. Top8Archer = 1UL << 21,
  128. Top2Archer = 1UL << 22,
  129. Top3Archer = 1UL << 23,
  130. Top3SpouseBlue = 1UL << 24,
  131. Top2SpouseBlue = 1UL << 25,
  132. Top3SpouseYellow = 1UL << 26,
  133. Top8Monk = 1UL << 51,
  134. Top2Monk = 1UL << 52,
  135. Top3Monk = 1UL << 53,
  136. Toppirate8 = 1UL << 59,
  137. Toppirate2 = 1UL << 60,//top
  138. Toppirate3 = 1UL << 61,
  139.  
  140. #endregion
  141.  
  142.  
  143. Contestant = 0x8000000,
  144. ChainBoltActive = 0x10000000,
  145. AzureShield = 0x20000000,
  146. AzureShieldFade = 0x40000000,
  147. TyrantAura = 0x400000000,
  148. TyrantAura2 = 0x600000000,
  149. FendAura = 0x1000000000,
  150. FendAura2 = 0x1800000000,
  151. MetalAura = 0x4000000000,
  152. MetalAura2 =0x6000000000,
  153. WoodAura = 0x10000000000,
  154. WoodAura2 = 0x18000000000,
  155. WaterAura = 0x40000000000,
  156. WaterAura2 = 0x60000000000,
  157. FireAura = 17592186044416,
  158. FireAura2 = 0x180000000000,
  159. EarthAura = 0x400000000000,
  160. EarthAura2 = 0x600000000000,
  161. SoulShackle = 140737488355328,
  162. Oblivion = 0x1000000000000,
  163.  
  164. LionShield = 0x200000000000000,
  165. OrangeHaloGlow = 1125899906842624,
  166. LowVigorUnableToJump = 1125899906842624,
  167. TopSpouse = 2251799813685248,
  168. GoldSparkle = 4503599627370496,
  169. VioletSparkle = 9007199254740992,
  170. Dazed = 18014398509481984,//no movement
  171. BlueRestoreAura = 36028797018963968,
  172. MoveSpeedRecovered = 72057594037927936,
  173. SuperShieldHalo = 144115188075855872,
  174. HUGEDazed = 288230376151711744,//no movement
  175. IceBlock = 576460752303423488, //no movement
  176. Confused = 1152921504606846976,//reverses movement
  177.  
  178. CannonBarrage = 1UL << 120,
  179. BlackbeardsRage = 1UL << 121,
  180. Fatigue = 1UL << 126,
  181. TopMonk = 0x4000000000000L,
  182. TopPirate = 1UL << 58;
  183. public const ulong Congelado = 0x400000000000000,
  184. Aturdido = 1152921504606846976,
  185. // CarryingFlag = 18014398509481984;
  186. EffectBall = 1UL << 119,
  187. CarryingFlag = 1UL << 118;
  188.  
  189. }
  190.  
  191. public class Flags4
  192. {//By Mina
  193. public const ulong
  194. Omnipotence = 1UL << 192,
  195. JusticeChant = 1UL << 194,
  196. BlockFrostGaze = 1UL << 195,
  197. HealingSnow = 1UL << 196,
  198. ChillingSnow = 1UL << 197,
  199. xChillingSnow = 1UL << 198,
  200. FreezingPelter = 1UL << 200,
  201. xFreezingPelter = 1UL << 201,
  202. RevengeTaill = 1UL << 202,
  203. WindwalkerTop = 1UL << 203,
  204. ShadowofChaser = 1UL << 204;
  205. }
  206. public class Flags3
  207. {
  208. public const ulong
  209. WarriorEpicShield = 1UL << 55,
  210. ShieldBreak = 1UL << 176,
  211. DivineGuard = 1UL << 177,
  212. GoldBrickNormal = 1UL << 161,
  213. GoldBrickRefined = 1UL << 162,
  214. GoldBrickUnique = 1UL << 163,
  215. GoldBrickElite = 1UL << 164,
  216. GoldBrickSuper = 1UL << 165,
  217. MagicDefender = 1UL << 128,
  218. RemoveName = 1UL << 129,
  219. PurpleBall = 1UL << 131,
  220. skull = (uint)1UL << 4,
  221. ninja = (uint)1UL << 3,
  222. BlueBall = 1UL << 132,
  223. Assassin = 1UL << 145,
  224. BladeFlurry = 1UL << 146,
  225. KineticSpark = 1UL << 147,
  226. DragonFlow = 1UL << 148,
  227. SuperCyclone = 1UL << 150,
  228. ConuqerSuperYellow = 1UL << 151,
  229. ConuqerSuperBlue = 1UL << 152,
  230. ConuqerSuperUnderBlue = 1UL << 153,
  231. MrConquer = 1UL << 166,
  232. MsConquerHostess = 1UL << 167,
  233. DragonWarriorTop = 1UL << 154,
  234. AutoHunting = 1UL << 155,
  235. DragonFury = 1UL << 158,
  236. DragonCyclone = 1UL << 159,
  237. DragonSwing = 1UL << 160,
  238. AuroraLotus = 1UL << 172,
  239. FlameLotus = 1UL << 173,
  240. rygh_hglx = 1UL << 174,//top
  241. rygh_syzs = 1UL << 175,//top
  242. lianhuaran01 = 1UL << 168,
  243. lianhuaran02 = 1UL << 169,
  244. lianhuaran03 = 1UL << 170,
  245. lianhuaran04 = 1UL << 171;
  246. }
  247. public const byte
  248. mantos = 82,
  249. mantos1 = 1,
  250. mantos2 = 2,
  251. mantos3 = 3,
  252. mantos4 = 4,
  253. mantos5 = 5,
  254. mantos6 = 6,
  255. mantos7 = 7,
  256. mantos8 = 8,
  257. mantos9 = 9,
  258. mantos10 = 10,
  259. mantos11 = 11,
  260. mantos12 = 12,
  261. mantos13 = 13,
  262. Hitpoints = 0,
  263. MaxHitpoints = 1,
  264. Mana = 2,
  265. MaxMana = 3,
  266. Money = 4,
  267. Experience = 5,
  268. PKPoints = 6,
  269. Class = 7,
  270. Stamina = 8,
  271. WHMoney = 9,
  272. Atributes = 10,
  273. Mesh = 11,
  274. Level = 12,
  275. Spirit = 13,
  276. Vitality = 14,
  277. Strength = 15,
  278. Agility = 16,
  279. HeavensBlessing = 17,
  280. DoubleExpTimer = 18,
  281. CursedTimer = 20,
  282. Reborn = 22,
  283. StatusFlag = 25,
  284. HairStyle = 26,
  285. XPCircle = 27,
  286. LuckyTimeTimer = 28,
  287. ConquerPoints = 29,
  288. OnlineTraining = 31,
  289. MentorBattlePower = 36,
  290. Merchant = 38,
  291. VIPLevel = 39,
  292. QuizPoints = 40,
  293. EnlightPoints = 41,
  294. HonorPoints = 42,
  295. GuildBattlepower = 44,
  296. BoundConquerPoints = 45,
  297. RaceShopPoints = 47,
  298. MagicDefenderIcone = 49,
  299. SoulShackle = 54,
  300. FirsRebornClass = 51,
  301. SecondRebornClass = 50,
  302. DefensiveStance = 56,
  303. DragonSwing = 75,
  304. Lotus = 78,
  305. Sash = 79,
  306. AvailableSlots = 80,
  307. AuroraLotus = 172,
  308. FlameLotus = 173,
  309. lianhuaran01 = 168,
  310. lianhuaran02 = 169,
  311. InnerPowerPotency = 77,
  312. lianhuaran03 = 170,
  313. lianhuaran04 = 171;
  314. public const byte ClanShareBp = 42;
  315.  
  316.  
  317. byte[] Buffer;
  318. const byte minBufferSize = 48;
  319. public Update(bool Create)
  320. {
  321. if (Create)
  322. {
  323. Buffer = new byte[minBufferSize + 8];
  324. WriteUInt16(minBufferSize, 0, Buffer);
  325. WriteUInt16(10017, 2, Buffer);
  326. WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, Buffer);
  327. }
  328. }
  329.  
  330. public uint UID
  331. {
  332. get { return BitConverter.ToUInt32(Buffer, 8); }
  333. set { WriteUInt32(value, 8, Buffer); }
  334. }
  335. public uint self
  336. {
  337. get { return BitConverter.ToUInt32(Buffer, 12); }
  338. set { WriteUInt32(value, 12, Buffer); }
  339. }
  340. public uint UpdateCount
  341. {
  342. get { return BitConverter.ToUInt32(Buffer, 12); }
  343. set
  344. {
  345. byte[] buffer = new byte[minBufferSize + 8 + 28 * value];
  346. Buffer.CopyTo(buffer, 0);
  347. WriteUInt16((ushort)(minBufferSize + 28 * value), 0, buffer);
  348. Buffer = buffer;
  349. WriteUInt32(value, 12, Buffer);
  350. }
  351. }
  352. public void Append(byte type, byte value)
  353. {
  354. UpdateCount = UpdateCount + 1;
  355. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  356. WriteUInt32(type, offset, Buffer);
  357. WriteUInt64(value, offset + 4, Buffer);
  358. }
  359. public void Append(byte type, ushort value)
  360. {
  361. UpdateCount = UpdateCount + 1;
  362. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  363. WriteUInt32(type, offset, Buffer);
  364. WriteUInt64(value, offset + 4, Buffer);
  365. }
  366.  
  367. public void AppendFull(byte type, ulong val1, ulong val2, ulong val3, ulong val4)
  368. {
  369. UpdateCount = UpdateCount + 1;
  370. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  371. WriteUInt32(type, offset, Buffer);
  372. WriteUInt64(val1, offset + 4, Buffer);
  373. WriteUInt64(val2, offset + 12, Buffer);
  374. WriteUInt64(val3, offset + 20, Buffer);
  375. WriteUInt64(val4, offset + 28, Buffer);
  376. }
  377.  
  378. public void PoPAppend(byte type, ulong val1, ulong val2)
  379. {
  380. UpdateCount = UpdateCount + 1;
  381. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  382. WriteUInt32(type, offset, Buffer);
  383. WriteUInt64(val1, offset + 8, Buffer);
  384. WriteUInt64(val2, offset + 16, Buffer);
  385. }
  386. public void Append(byte type, uint value)
  387. {
  388. UpdateCount++;
  389. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 32));
  390. WriteUInt32(type, offset, Buffer);
  391. WriteUInt64((ulong)value, offset + 4, Buffer);
  392. }
  393.  
  394. public void Append4(byte type, uint value)
  395. {
  396. UpdateCount = UpdateCount + 1;
  397. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  398. WriteUInt32(type, offset, Buffer);
  399. WriteUInt64(value, offset + 4, Buffer);
  400. }
  401.  
  402. public void Append(byte type, ulong value)
  403. {
  404. UpdateCount = UpdateCount + 1;
  405. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  406. WriteUInt32(type, offset, Buffer);
  407. WriteUInt64(value, offset + 4, Buffer);
  408. }
  409. public void Append2(byte type, byte value)
  410. {
  411. UpdateCount = UpdateCount + 1;
  412. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  413. WriteUInt32(type, offset, Buffer);
  414. WriteUInt64(value, offset + 12, Buffer);
  415. }
  416. public void Append2(byte type, ushort value)
  417. {
  418. UpdateCount = UpdateCount + 1;
  419. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  420. WriteUInt32(type, offset, Buffer);
  421. WriteUInt64(value, offset + 12, Buffer);
  422. }
  423. public void Append2(byte type, uint value)
  424. {
  425. UpdateCount = UpdateCount + 1;
  426. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  427. WriteUInt32(type, offset, Buffer);
  428. WriteUInt64(value, offset + 12, Buffer);
  429. }
  430.  
  431. public void Append2(byte type, ulong value)
  432. {
  433. UpdateCount = UpdateCount + 1;
  434. ushort offset = (ushort)(16 + ((UpdateCount - 1) * 28));
  435. WriteUInt32(type, offset, Buffer);
  436. WriteUInt64(value, offset + 12, Buffer);
  437. }
  438.  
  439. public void Clear()
  440. {
  441. byte[] buffer = new byte[minBufferSize + 8];
  442. WriteUInt16(minBufferSize, 0, Buffer);
  443. WriteUInt16(10017, 2, Buffer);
  444. WriteUInt32(UID, 8, buffer);
  445. WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, Buffer);
  446. Buffer = buffer;
  447. }
  448.  
  449. public List<UpdateStruct> Updates
  450. {
  451. get
  452. {
  453. List<UpdateStruct> structs = new List<UpdateStruct>();
  454. ushort offset = 16;
  455. if (UpdateCount > 0)
  456. {
  457. for (int c = 0; c < UpdateCount; c++)
  458. {
  459. UpdateStruct st = new UpdateStruct();
  460. st.Type = BitConverter.ToUInt32(Buffer, offset); offset += 4;
  461. st.Value1 = BitConverter.ToUInt64(Buffer, offset); offset += 8;
  462. st.Value2 = BitConverter.ToUInt64(Buffer, offset); offset += 8;
  463. structs.Add(st);
  464. }
  465. }
  466. return structs;
  467. }
  468. }
  469.  
  470. public byte[] ToArray()
  471. {
  472. return Buffer;
  473. }
  474.  
  475. public void Deserialize(byte[] buffer)
  476. {
  477. Buffer = buffer;
  478. }
  479.  
  480. public void Send(Client.GameState client)
  481. {
  482. client.Send(Buffer);
  483. }
  484. public void Append(byte type, byte value, byte second, byte second2, byte second3, byte second4, byte second5, byte second6, byte second7)
  485. {
  486. UpdateCount = UpdateCount + 1;
  487. ushort offset = (ushort)(UpdateCount * 16);//12
  488. WriteUInt32(type, offset, Buffer);
  489. WriteUInt64(value, offset + 4, Buffer);
  490. WriteByte(second, offset + 12, Buffer);
  491. WriteByte(second2, offset + 13, Buffer);
  492. WriteByte(second3, offset + 14, Buffer);
  493. WriteByte(second4, offset + 15, Buffer);
  494. WriteByte(second5, offset + 16, Buffer);
  495. WriteByte(second6, offset + 17, Buffer);
  496. WriteByte(second7, offset + 18, Buffer);
  497. }
  498. public void Append(ulong val1, ulong val2, ulong val3, uint val4, uint val5, uint val6, uint val7)
  499. {
  500. WriteUInt32(val4, 24, Buffer);
  501. WriteUInt32(val6, 32, Buffer);
  502. }
  503.  
  504. public void Append(byte type, uint[] value)
  505. {
  506. UpdateCount = UpdateCount + 1;
  507. ushort offset = (ushort)(16 + (UpdateCount - 1) * 20);
  508. WriteUInt32(type, offset, Buffer);
  509. for (byte x = 0; x < value.Length; x++)
  510. WriteUInt32(value[x], (ushort)((offset + 4) + x * 4), Buffer);
  511. }
  512.  
  513. public void xAzureShield(Entity Entity, int Dmg, byte SpellLevel, byte Time_)
  514. {
  515. /*byte[] buffer = new byte[84 + 4 + 8];
  516. Writer.WriteUInt16(84 + 4, 0, buffer);
  517. Writer.WriteUInt16(10017, 2, buffer);
  518. Writer.WriteUInt32(Entity.UID, 4 + 4, buffer);
  519. Writer.WriteUInt32(2, 8 + 4, buffer);
  520. Writer.WriteInt32(25, 12 + 4, buffer);
  521. Writer.WriteUInt16(2, 20 + 4, buffer);
  522. Writer.WriteByte(0x20, 27 + 4, buffer);
  523. Writer.WriteUInt64(Entity.StatusFlag, 16 + 4, buffer);
  524. Writer.WriteUInt64(Entity.StatusFlag2, 16 + 4 + 8, buffer);
  525. Writer.WriteUInt32(0x31, 36 + 4, buffer);
  526. Writer.WriteUInt32(93, 40 + 4, buffer);
  527. Writer.WriteInt32(Time_, 44 + 4, buffer);
  528. Writer.WriteInt32(Dmg, 48 + 4, buffer);
  529. Writer.WriteUInt32(SpellLevel, 52 + 4, buffer);*/
  530. byte[] buffer = new byte[84 + 4 + 8];
  531. Writer.WriteUInt16(84 + 4, 0, buffer);
  532. Writer.WriteUInt16(10017, 2, buffer);
  533. Writer.WriteUInt32(Entity.UID, 4 + 4, buffer);
  534. Writer.WriteUInt32(2, 8 + 4, buffer);
  535. Writer.WriteInt32(25, 12 + 4, buffer);
  536. Writer.WriteUInt16(2, 20 + 4, buffer);
  537. Writer.WriteByte(0x20, 27 + 4, buffer);
  538. Writer.WriteUInt64(Entity.StatusFlag, 16 + 4, buffer);
  539. Writer.WriteUInt64(Entity.StatusFlag2, 16 + 4 + 8, buffer);
  540. Writer.WriteUInt32(0x31, 36 + 4, buffer);
  541. Writer.WriteUInt32(93, 40 + 4, buffer);
  542. Writer.WriteInt32(Time_, 44 + 4, buffer);
  543. Writer.WriteInt32(Dmg, 48 + 4, buffer);
  544. Writer.WriteUInt32(SpellLevel, 52 + 4, buffer);
  545. if (Kernel.GamePool.ContainsKey(Entity.UID))
  546. {
  547. Kernel.GamePool[Entity.UID].Send(buffer);
  548. }
  549. }
  550. public void xSoulShackle(Entity Entity, int Dmg, byte SpellLevel, byte Time_)
  551. {
  552. /*byte[] buffer = new byte[84 + 4 + 8];
  553. Writer.WriteUInt16(84 + 4, 0, buffer);
  554. Writer.WriteUInt16(10017, 2, buffer);
  555. Writer.WriteUInt32(Entity.UID, 4 + 4, buffer);
  556. Writer.WriteUInt32(2, 8 + 4, buffer);
  557. Writer.WriteInt32(25, 12 + 4, buffer);
  558. Writer.WriteUInt64(Entity.StatusFlag, 16 + 4, buffer);
  559. Writer.WriteUInt64(Entity.StatusFlag2, 16 + 4 + 8, buffer);
  560. Writer.WriteUInt32(0x80, 29 + 4, buffer);
  561. Writer.WriteUInt32(54, 36 + 4, buffer);
  562. Writer.WriteUInt32(111, 40 + 4, buffer);
  563. Writer.WriteInt32(Time_, 44 + 4, buffer);
  564. // Writer.WriteUInt32((uint)Dmg, 44, buffer);//10
  565. Writer.WriteUInt64(SpellLevel, 48 + 4, buffer);*/
  566. byte[] buffer = new byte[84 + 4 + 8];
  567. Writer.WriteUInt16(84 + 4, 0, buffer);
  568. Writer.WriteUInt16(10017, 2, buffer);
  569. Writer.WriteUInt32(Entity.UID, 4 + 4, buffer);
  570. Writer.WriteUInt32(2, 8 + 4, buffer);
  571. Writer.WriteInt32(25, 12 + 4, buffer);
  572. Writer.WriteUInt64(Entity.StatusFlag, 16 + 4, buffer);
  573. Writer.WriteUInt64(Entity.StatusFlag2, 16 + 4 + 8, buffer);
  574. Writer.WriteUInt32(0x80, 29 + 4, buffer);
  575. Writer.WriteUInt32(54, 36 + 4, buffer);
  576. Writer.WriteUInt32(111, 40 + 4, buffer);
  577. Writer.WriteInt32(Time_, 44 + 4, buffer);
  578. // Writer.WriteUInt32((uint)Dmg, 44, buffer);//10
  579. if (Kernel.GamePool.ContainsKey(Entity.UID))
  580. {
  581. Kernel.GamePool[Entity.UID].Send(buffer);
  582. }
  583. }
  584.  
  585. public enum AuraDataTypes
  586. {
  587. Add = 3,
  588. Remove = 2
  589. }
  590. public enum AuraType
  591. {
  592. TyrantAura = 1,
  593. FendAura = 2,
  594. MetalAura = 3,
  595. WoodAura = 4,
  596. WaterAura = 5,
  597. FireAura = 6,
  598. EarthAura = 7,
  599. MagicDefender = 8,
  600.  
  601.  
  602.  
  603.  
  604. }
  605. public byte[] PStrike(Entity attacker)//Done
  606. {
  607. byte[] buffer = new byte[96];
  608. Writer.WriteUInt16(88, 0, buffer);
  609. Writer.WriteUInt16(10017, 2, buffer);
  610. Writer.WriteUInt32(attacker.UID, 8, buffer);
  611. Writer.WriteUInt32(2, 12, buffer);
  612. Writer.WriteInt32(25, 16, buffer);
  613. Writer.WriteInt32(2, 37, buffer);
  614. Writer.WriteInt32(59, 40, buffer);
  615. Writer.WriteInt32(137, 44, buffer);
  616. Writer.WriteInt32(80, 48, buffer);
  617. Writer.WriteInt32(150, 52, buffer);
  618. return buffer;
  619. }
  620. public byte[] MStrike(Entity attacker)//Done
  621. {
  622. byte[] buffer = new byte[96];
  623. Writer.WriteUInt16(88, 0, buffer);
  624. Writer.WriteUInt16(10017, 2, buffer);
  625. Writer.WriteUInt32(attacker.UID, 8, buffer);
  626. Writer.WriteUInt32(2, 12, buffer);
  627. Writer.WriteInt32(25, 16, buffer);
  628. Writer.WriteInt32(2, 37, buffer);
  629. Writer.WriteInt32(60, 40, buffer);
  630. Writer.WriteInt32(137, 44, buffer);
  631. Writer.WriteInt32(80, 48, buffer);
  632. Writer.WriteInt32(150, 52, buffer);
  633. return buffer;
  634. }
  635. public byte[] Immunity(Entity attacker)//Done
  636. {
  637. byte[] buffer = new byte[96];
  638. Writer.WriteUInt16(88, 0, buffer);
  639. Writer.WriteUInt16(10017, 2, buffer);
  640. Writer.WriteUInt32(attacker.UID, 8, buffer);
  641. Writer.WriteUInt32(2, 12, buffer);
  642. Writer.WriteInt32(25, 16, buffer);
  643. Writer.WriteInt32(2, 37, buffer);
  644. Writer.WriteInt32(61, 40, buffer);
  645. Writer.WriteInt32(137, 44, buffer);
  646. Writer.WriteInt32(80, 48, buffer);
  647. Writer.WriteInt32(150, 52, buffer);
  648. return buffer;
  649. }
  650. public byte[] Break(Entity attacker)//Done
  651. {
  652. byte[] buffer = new byte[96];
  653. Writer.WriteUInt16(88, 0, buffer);
  654. Writer.WriteUInt16(10017, 2, buffer);
  655. Writer.WriteUInt32(attacker.UID, 8, buffer);
  656. Writer.WriteUInt32(2, 12, buffer);
  657. Writer.WriteInt32(25, 16, buffer);
  658. Writer.WriteInt32(2, 37, buffer);
  659. Writer.WriteInt32(62, 40, buffer);
  660. Writer.WriteInt32(137, 44, buffer);
  661. Writer.WriteInt32(80, 48, buffer);
  662. Writer.WriteInt32(150, 52, buffer);
  663. return buffer;
  664. }
  665. public byte[] Antibreak(Entity attacker)//Done
  666. {
  667. byte[] buffer = new byte[96];
  668. Writer.WriteUInt16(88, 0, buffer);
  669. Writer.WriteUInt16(10017, 2, buffer);
  670. Writer.WriteUInt32(attacker.UID, 8, buffer);
  671. Writer.WriteUInt32(2, 12, buffer);
  672. Writer.WriteInt32(25, 16, buffer);
  673. Writer.WriteInt32(2, 37, buffer);
  674. Writer.WriteInt32(63, 40, buffer);
  675. Writer.WriteInt32(137, 44, buffer);
  676. Writer.WriteInt32(80, 48, buffer);
  677. Writer.WriteInt32(150, 52, buffer);
  678. return buffer;
  679. }
  680. public byte[] MaxHP(Entity attacker)//Unknown
  681. {
  682. byte[] buffer = new byte[96];
  683. Writer.WriteUInt16(88, 0, buffer);
  684. Writer.WriteUInt16(10017, 2, buffer);
  685. Writer.WriteUInt32(attacker.UID, 8, buffer);
  686. Writer.WriteUInt32(2, 12, buffer);
  687. Writer.WriteInt32(25, 16, buffer);
  688. Writer.WriteInt32(2, 37, buffer);
  689. Writer.WriteInt32(64, 40, buffer);
  690. Writer.WriteInt32(137, 44, buffer);
  691. Writer.WriteInt32(80, 48, buffer);
  692. Writer.WriteInt32(3000, 52, buffer);
  693. return buffer;
  694. }
  695. public byte[] immunizecontrol(Entity attacker)//Done
  696. {
  697. byte[] buffer = new byte[96];
  698. Writer.WriteUInt16(88, 0, buffer);
  699. Writer.WriteUInt16(10017, 2, buffer);
  700. Writer.WriteUInt32(attacker.UID, 8, buffer);
  701. Writer.WriteUInt32(2, 12, buffer);
  702. Writer.WriteInt32(25, 16, buffer);
  703. Writer.WriteInt32(2, 37, buffer);
  704. Writer.WriteInt32(65, 40, buffer);
  705. Writer.WriteInt32(137, 44, buffer);
  706. Writer.WriteInt32(80, 48, buffer);
  707. Writer.WriteInt32(3000, 52, buffer);
  708. return buffer;
  709. }
  710. public byte[] immunizeall(Entity attacker)//Done
  711. {
  712. byte[] buffer = new byte[96];
  713. Writer.WriteUInt16(88, 0, buffer);
  714. Writer.WriteUInt16(10017, 2, buffer);
  715. Writer.WriteUInt32(attacker.UID, 8, buffer);
  716. Writer.WriteUInt32(2, 12, buffer);
  717. Writer.WriteInt32(25, 16, buffer);
  718. Writer.WriteInt32(2, 37, buffer);
  719. Writer.WriteInt32(66, 40, buffer);
  720. Writer.WriteInt32(137, 44, buffer);
  721. Writer.WriteInt32(80, 48, buffer);
  722. Writer.WriteInt32(3000, 52, buffer);
  723. return buffer;
  724. }
  725. public byte[] FinalPDamage(Entity attacker)//Done
  726. {
  727. byte[] buffer = new byte[96];
  728. Writer.WriteUInt16(88, 0, buffer);
  729. Writer.WriteUInt16(10017, 2, buffer);
  730. Writer.WriteUInt32(attacker.UID, 8, buffer);
  731. Writer.WriteUInt32(2, 12, buffer);
  732. Writer.WriteInt32(25, 16, buffer);
  733. Writer.WriteInt32(2, 37, buffer);
  734. Writer.WriteInt32(67, 40, buffer);
  735. Writer.WriteInt32(137, 44, buffer);
  736. Writer.WriteInt32(80, 48, buffer);
  737. Writer.WriteInt32(3000, 52, buffer);
  738. return buffer;
  739. }
  740. public byte[] FinalMDamage(Entity attacker)//Done
  741. {
  742. byte[] buffer = new byte[96];
  743. Writer.WriteUInt16(88, 0, buffer);
  744. Writer.WriteUInt16(10017, 2, buffer);
  745. Writer.WriteUInt32(attacker.UID, 8, buffer);
  746. Writer.WriteUInt32(2, 12, buffer);
  747. Writer.WriteInt32(25, 16, buffer);
  748. Writer.WriteInt32(2, 37, buffer);
  749. Writer.WriteInt32(68, 40, buffer);
  750. Writer.WriteInt32(137, 44, buffer);
  751. Writer.WriteInt32(80, 48, buffer);
  752. Writer.WriteInt32(3000, 52, buffer);
  753. return buffer;
  754. }
  755. public byte[] FinalPAttack(Entity attacker)//Done
  756. {
  757. byte[] buffer = new byte[96];
  758. Writer.WriteUInt16(88, 0, buffer);
  759. Writer.WriteUInt16(10017, 2, buffer);
  760. Writer.WriteUInt32(attacker.UID, 8, buffer);
  761. Writer.WriteUInt32(2, 12, buffer);
  762. Writer.WriteInt32(25, 16, buffer);
  763. Writer.WriteInt32(2, 37, buffer);
  764. Writer.WriteInt32(69, 40, buffer);
  765. Writer.WriteInt32(137, 44, buffer);
  766. Writer.WriteInt32(80, 48, buffer);
  767. Writer.WriteInt32(3000, 52, buffer);
  768. return buffer;
  769. }
  770. public byte[] FinalMAttack(Entity attacker)//Done
  771. {
  772. byte[] buffer = new byte[96];
  773. Writer.WriteUInt16(88, 0, buffer);
  774. Writer.WriteUInt16(10017, 2, buffer);
  775. Writer.WriteUInt32(attacker.UID, 8, buffer);
  776. Writer.WriteUInt32(2, 12, buffer);
  777. Writer.WriteInt32(25, 16, buffer);
  778. Writer.WriteInt32(2, 37, buffer);
  779. Writer.WriteInt32(70, 40, buffer);
  780. Writer.WriteInt32(137, 44, buffer);
  781. Writer.WriteInt32(80, 48, buffer);
  782. Writer.WriteInt32(3000, 52, buffer);
  783. return buffer;
  784. }
  785. public void Aura(Entity Entity, AuraDataTypes state, AuraType AuraType, Database.SpellInformation spell)
  786. {
  787. Aura(Entity, state, AuraType, spell.Level, spell.Power);
  788. }
  789. public void Aura(Entity Entity, AuraDataTypes state, AuraType AuraType, uint Level, uint Power)
  790. {
  791. //Update update = new Update(true);
  792. //update.UID = Entity.UID;
  793. //update.Append(52, 1320);
  794. //Entity.Owner.Send(update);
  795.  
  796. byte[] buffer = new byte[40];
  797. Writer.WriteUInt16(32, 0, buffer);
  798. Writer.WriteUInt16(2410, 2, buffer);
  799. Writer.WriteUInt32((uint)state, 8, buffer);
  800. Writer.WriteUInt32(Entity.UID, 12, buffer);
  801. Writer.WriteUInt32((uint)AuraType, 16, buffer);
  802. Writer.WriteUInt32(Level, 20, buffer);
  803. Writer.WriteUInt32(Power, 24, buffer);
  804. Writer.WriteUInt32(Power, 28, buffer);
  805.  
  806. if (Kernel.GamePool.ContainsKey(Entity.UID))
  807. {
  808. Kernel.GamePool[Entity.UID].Send(buffer);
  809. }
  810.  
  811.  
  812.  
  813. }
  814. // public const byte InnerPowerPotency = 77;
  815. public void Append(uint type, uint Flag, uint Time, uint Dmg, uint Level)
  816. {
  817. UpdateCount = UpdateCount + 1;
  818. ushort offset = (ushort)(16 + (UpdateCount - 1) * 28);
  819. WriteUInt32(type, offset, Buffer);//12
  820. WriteUInt32(Flag, (ushort)(offset + 4), Buffer);//16
  821. WriteUInt32(Time, (ushort)(offset + 8), Buffer);
  822. WriteUInt32(Dmg, (ushort)(offset + 12), Buffer);
  823. WriteUInt32(Level, (ushort)(offset + 16), Buffer);
  824. }
  825. }
  826. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement