Advertisement
Guest User

Untitled

a guest
Jul 28th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.63 KB | None | 0 0
  1. public void Teleport(ushort X, ushort Y)
  2. {
  3. if (EntityFlag == EntityFlag.Player)
  4. {
  5. AdvancedTeleport(true);
  6. if (!Database.MapsTable.MapInformations.ContainsKey(MapID) && !Kernel.Maps.ContainsKey(MapID) && !Owner.InQualifier())
  7. {
  8. MapID = 1002;
  9. X = 432;
  10. Y = 378;
  11. }
  12. if (Owner.Team != null)
  13. Owner.Team.GetClanShareBp(Owner);
  14. if (Owner.ProgressBar != null)
  15. Owner.ProgressBar.End(Owner);
  16. this.X = X;
  17. this.Y = Y;
  18. Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
  19. Data.UID = UID;
  20. Data.ID = Network.GamePackets.Data.Teleport;
  21. Data.dwParam = Database.MapsTable.MapInformations[MapID].BaseID;
  22. Data.wParam1 = X;
  23. Data.wParam2 = Y;
  24. Owner.Send(Data);
  25. Owner.Screen.FullWipe();
  26. Owner.Screen.Reload(null);
  27. Owner.Send(new MapStatus() { BaseID = Owner.Map.BaseID, ID = Owner.Map.ID, Status = Database.MapsTable.MapInformations[Owner.Map.ID].Status, Weather = Database.MapsTable.MapInformations[Owner.Map.ID].Weather });
  28. AdvancedTeleport();
  29. }
  30. }
  31. public void SetLocation(ushort MapID, ushort X, ushort Y)
  32. {
  33. if (EntityFlag == EntityFlag.Player)
  34. {
  35. this.X = X;
  36. this.Y = Y;
  37. this.MapID = MapID;
  38. }
  39. }
  40. public void Teleport(ushort MapID, ushort X, ushort Y, bool Old_Cordinates = true)
  41. {
  42. if (this.EntityFlag == Conquer_Online_Server.Game.EntityFlag.Player)
  43. {
  44. this.AdvancedTeleport(true);
  45. ushort baseID = 0;
  46. if (!Kernel.Maps.ContainsKey(MapID))
  47. {
  48. if (!(MapsTable.MapInformations.ContainsKey(MapID) || (this.Owner.QualifierGroup != null)))
  49. {
  50. baseID = (ushort)(MapID = 0x3ea);
  51. X = 0x130;
  52. Y = 0x116;
  53. }
  54. else
  55. {
  56. baseID = MapsTable.MapInformations[MapID].BaseID;
  57. }
  58. }
  59. else
  60. {
  61. baseID = Kernel.Maps[MapID].BaseID;
  62. }
  63. if (((MapID == 0x3ea) && Old_Cordinates) && ((((this.MapID != 0x3ea) || (this.X != X)) || (this.Y != Y)) && (((this.PreviousMapID != 0x3ea) || (this.PrevX != X)) || (this.PrevY != Y))))
  64. {
  65. X = (ushort)(X - 0x80);
  66. Y = (ushort)(Y - 100);
  67. }
  68. if (this.EntityFlag == Conquer_Online_Server.Game.EntityFlag.Player)
  69. {
  70. if (this.Owner.ProgressBar != null)
  71. {
  72. this.Owner.ProgressBar.End(this.Owner);
  73. }
  74. if (this.Owner.InQualifier() && ((MapID != 700) && (MapID < 0x2af8)))
  75. {
  76. this.Owner.EndQualifier();
  77. }
  78. }
  79. if (MapID == this.MapID)
  80. {
  81. this.Teleport(X, Y);
  82. }
  83. else
  84. {
  85. this.X = X;
  86. this.Y = Y;
  87. this.PreviousMapID = this.MapID;
  88. this.MapID = MapID;
  89. Data buffer = new Data(true)
  90. {
  91. UID = this.UID,
  92. ID = 0x56,
  93. dwParam = baseID,
  94. wParam1 = X,
  95. wParam2 = Y
  96. };
  97. this.Owner.Send(buffer);
  98. this.Owner.Screen.FullWipe();
  99. this.Owner.Screen.Reload(null);
  100. MapStatus status = new MapStatus
  101. {
  102. BaseID = this.Owner.Map.BaseID,
  103. ID = this.Owner.Map.ID,
  104. Status = MapsTable.MapInformations[this.Owner.Map.ID].Status,
  105. Weather = MapsTable.MapInformations[this.Owner.Map.ID].Weather
  106. };
  107. this.Owner.Send(status);
  108. this.Owner.Entity.Action = 0;
  109. this.Owner.ReviveStamp = Time32.Now;
  110. this.Owner.Attackable = false;
  111. if (!this.Owner.Equipment.Free((byte)12) && ((this.Owner.Map.ID == 0x40c) && (this.Owner.Equipment.TryGetItem((byte)12).Plus < 6)))
  112. {
  113. this.RemoveFlag(0x4000000000000L);
  114. }
  115. this.AdvancedTeleport(false);
  116. }
  117. }
  118. }
  119. public ushort PrevX, PrevY;
  120. public void Teleport(ushort MapID, ushort X, ushort Y)
  121. {
  122.  
  123. if (EntityFlag == EntityFlag.Player)
  124. {
  125. ushort baseID = 0;
  126. if (!Kernel.Maps.ContainsKey(MapID))
  127. {
  128. if (!Database.MapsTable.MapInformations.ContainsKey(MapID) && Owner.QualifierGroup == null)
  129. {
  130. baseID = MapID = 1002;
  131. X = 432;
  132. Y = 378;
  133. }
  134. else
  135. {
  136. baseID = Database.MapsTable.MapInformations[MapID].BaseID;
  137. }
  138. }
  139. else
  140. {
  141. baseID = Kernel.Maps[MapID].BaseID;
  142. }
  143.  
  144. //if (EntityFlag == EntityFlag.Player)
  145. //{
  146. // if (Owner.InQualifier())
  147. // if (MapID != 700 && MapID < 11000)
  148. // Owner.EndQualifier();
  149. // if (Owner.Companion != null)
  150. // {
  151. // Owner.Map.RemoveEntity(Owner.Companion);
  152. // Data data = new Data(true);
  153. // data.UID = Owner.Companion.UID;
  154. // data.ID = Network.GamePackets.Data.RemoveEntity;
  155. // Owner.Companion.MonsterInfo.SendScreen(data);
  156. // Owner.Companion = null;
  157. // }
  158. // if (Owner.AIBot != null)
  159. // if (Owner.aisummoned)
  160. // Owner.AIBot.Dispose();
  161. //}
  162. if (MapID == this.MapID)
  163. {
  164. Teleport(X, Y);
  165. return;
  166. }
  167. this.X = X;
  168. this.Y = Y;
  169. Owner.Screen.FullWipe();
  170. Owner.Screen.Reload(null);
  171. this.PreviousMapID = this.MapID;
  172. this.MapID = MapID;
  173. Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
  174. Data.UID = UID;
  175. Data.ID = Network.GamePackets.Data.Teleport;
  176. Data.dwParam = baseID;
  177. Data.wParam1 = X;
  178. Data.wParam2 = Y;
  179. Owner.Send(Data);
  180. Owner.Send(new MapStatus() { BaseID = Owner.Map.BaseID, ID = Owner.Map.ID, Status = Database.MapsTable.MapInformations[Owner.Map.ID].Status, Weather = Database.MapsTable.MapInformations[Owner.Map.ID].Weather });
  181. Owner.Entity.Action = Conquer_Online_Server.Game.Enums.ConquerAction.None;
  182. Owner.ReviveStamp = Time32.Now;
  183. Owner.Attackable = false;
  184. if (!Owner.Equipment.Free(12))
  185. if (Owner.Map.ID == 1036 && Owner.Equipment.TryGetItem((byte)12).Plus < 6)
  186. RemoveFlag(Network.GamePackets.Update.Flags.Ride);
  187.  
  188. }
  189. Owner.Screen.Reload(null);
  190. }
  191.  
  192. public void Teleport(ushort BaseID, ushort DynamicID, ushort X, ushort Y)
  193. {
  194. if (EntityFlag == EntityFlag.Player)
  195. {
  196. if (!Database.DMaps.MapPaths.ContainsKey(BaseID))
  197. return;
  198.  
  199. if (Owner.InQualifier())
  200. if (BaseID != 700 && BaseID < 11000)
  201. Owner.EndQualifier();
  202. if (!Kernel.Maps.ContainsKey(DynamicID)) new Map(DynamicID, BaseID, Database.DMaps.MapPaths[BaseID]);
  203. this.PrevX = this.X;
  204. this.PrevY = this.Y;
  205. this.X = X;
  206. this.Y = Y;
  207. this.PreviousMapID = this.MapID;
  208. this.MapID = DynamicID;
  209. Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
  210. Data.UID = UID;
  211. Data.ID = Network.GamePackets.Data.Teleport;
  212. Data.dwParam = BaseID;
  213. Data.wParam1 = X;
  214. Data.wParam2 = Y;
  215. Owner.Send(Data);
  216. Owner.Entity.Action = Conquer_Online_Server.Game.Enums.ConquerAction.None;
  217. Owner.ReviveStamp = Time32.Now;
  218. Owner.Attackable = false;
  219. if (Owner.ChampionGroup == null)
  220. Owner.Send(new MapStatus() { BaseID = Owner.Map.BaseID, ID = Owner.Map.ID, Status = Database.MapsTable.MapInformations[Owner.Map.BaseID].Status, Weather = Database.MapsTable.MapInformations[Owner.Map.BaseID].Weather });
  221. if (!Owner.Equipment.Free(12))
  222. if (Owner.Map.ID == 1036 && Owner.Equipment.TryGetItem((byte)12).Plus < 6)
  223. RemoveFlag(Network.GamePackets.Update.Flags.Ride);
  224. }
  225. }
  226.  
  227. public void AdvancedTeleport(bool remove = false)
  228. {
  229. #region Teleport With Pet & Clones
  230. if (EntityFlag == EntityFlag.Player)
  231. {
  232. if (MyClones.Count > 0)
  233. {
  234. foreach (var clone in MyClones.Values)
  235. {
  236. if (clone == null) continue;
  237. if (remove)
  238. {
  239. Data data = new Data(true);
  240. data.UID = clone.UID;
  241. data.ID = Network.GamePackets.Data.RemoveEntity;
  242. Owner.SendScreen(data);
  243. Owner.RemoveScreenSpawn(clone, true);
  244.  
  245. }
  246. else
  247. {
  248.  
  249. clone.MapID = this.MapID;
  250. clone.X = this.X;
  251. clone.Y = this.Y;
  252.  
  253. Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
  254. Data.UID = clone.UID;
  255. Data.ID = Network.GamePackets.Data.Teleport;
  256. Data.dwParam = Database.MapsTable.MapInformations[MapID].BaseID;
  257. Data.wParam1 = clone.X;
  258. Data.wParam2 = clone.Y;
  259. Owner.SendScreen(Data);
  260.  
  261. Owner.SendScreenSpawn(clone, true);
  262. }
  263. }
  264. }
  265. if (Owner.Pet.Pets.Count > 0)
  266. {
  267. foreach (var pet in Owner.Pet.Pets.Values)
  268. {
  269. if (pet == null) continue;
  270. if (pet.Entity == null) continue;
  271. if (remove)
  272. {
  273. Data data = new Data(true);
  274. data.UID = pet.Entity.UID;
  275. data.ID = Network.GamePackets.Data.RemoveEntity;
  276. Owner.SendScreen(data);
  277. Owner.RemoveScreenSpawn(pet.Entity, true);
  278. }
  279. else
  280. {
  281. pet.Entity.MapID = this.MapID;
  282. pet.Entity.X = this.X;
  283. pet.Entity.Y = this.Y;
  284.  
  285. Owner.SendScreenSpawn(pet.Entity, true);
  286. }
  287. }
  288. }
  289. if (remove)
  290. Owner.RemoveScreenSpawn(Owner.Entity, false);
  291. }
  292. #endregion Teleport With Pet & Clones
  293. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement