Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void Teleport(ushort X, ushort Y)
- {
- if (EntityFlag == EntityFlag.Player)
- {
- AdvancedTeleport(true);
- if (!Database.MapsTable.MapInformations.ContainsKey(MapID) && !Kernel.Maps.ContainsKey(MapID) && !Owner.InQualifier())
- {
- MapID = 1002;
- X = 432;
- Y = 378;
- }
- if (Owner.Team != null)
- Owner.Team.GetClanShareBp(Owner);
- if (Owner.ProgressBar != null)
- Owner.ProgressBar.End(Owner);
- this.X = X;
- this.Y = Y;
- Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
- Data.UID = UID;
- Data.ID = Network.GamePackets.Data.Teleport;
- Data.dwParam = Database.MapsTable.MapInformations[MapID].BaseID;
- Data.wParam1 = X;
- Data.wParam2 = Y;
- Owner.Send(Data);
- Owner.Screen.FullWipe();
- Owner.Screen.Reload(null);
- 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 });
- AdvancedTeleport();
- }
- }
- public void SetLocation(ushort MapID, ushort X, ushort Y)
- {
- if (EntityFlag == EntityFlag.Player)
- {
- this.X = X;
- this.Y = Y;
- this.MapID = MapID;
- }
- }
- public void Teleport(ushort MapID, ushort X, ushort Y, bool Old_Cordinates = true)
- {
- if (this.EntityFlag == Conquer_Online_Server.Game.EntityFlag.Player)
- {
- this.AdvancedTeleport(true);
- ushort baseID = 0;
- if (!Kernel.Maps.ContainsKey(MapID))
- {
- if (!(MapsTable.MapInformations.ContainsKey(MapID) || (this.Owner.QualifierGroup != null)))
- {
- baseID = (ushort)(MapID = 0x3ea);
- X = 0x130;
- Y = 0x116;
- }
- else
- {
- baseID = MapsTable.MapInformations[MapID].BaseID;
- }
- }
- else
- {
- baseID = Kernel.Maps[MapID].BaseID;
- }
- if (((MapID == 0x3ea) && Old_Cordinates) && ((((this.MapID != 0x3ea) || (this.X != X)) || (this.Y != Y)) && (((this.PreviousMapID != 0x3ea) || (this.PrevX != X)) || (this.PrevY != Y))))
- {
- X = (ushort)(X - 0x80);
- Y = (ushort)(Y - 100);
- }
- if (this.EntityFlag == Conquer_Online_Server.Game.EntityFlag.Player)
- {
- if (this.Owner.ProgressBar != null)
- {
- this.Owner.ProgressBar.End(this.Owner);
- }
- if (this.Owner.InQualifier() && ((MapID != 700) && (MapID < 0x2af8)))
- {
- this.Owner.EndQualifier();
- }
- }
- if (MapID == this.MapID)
- {
- this.Teleport(X, Y);
- }
- else
- {
- this.X = X;
- this.Y = Y;
- this.PreviousMapID = this.MapID;
- this.MapID = MapID;
- Data buffer = new Data(true)
- {
- UID = this.UID,
- ID = 0x56,
- dwParam = baseID,
- wParam1 = X,
- wParam2 = Y
- };
- this.Owner.Send(buffer);
- this.Owner.Screen.FullWipe();
- this.Owner.Screen.Reload(null);
- MapStatus status = new MapStatus
- {
- BaseID = this.Owner.Map.BaseID,
- ID = this.Owner.Map.ID,
- Status = MapsTable.MapInformations[this.Owner.Map.ID].Status,
- Weather = MapsTable.MapInformations[this.Owner.Map.ID].Weather
- };
- this.Owner.Send(status);
- this.Owner.Entity.Action = 0;
- this.Owner.ReviveStamp = Time32.Now;
- this.Owner.Attackable = false;
- if (!this.Owner.Equipment.Free((byte)12) && ((this.Owner.Map.ID == 0x40c) && (this.Owner.Equipment.TryGetItem((byte)12).Plus < 6)))
- {
- this.RemoveFlag(0x4000000000000L);
- }
- this.AdvancedTeleport(false);
- }
- }
- }
- public ushort PrevX, PrevY;
- public void Teleport(ushort MapID, ushort X, ushort Y)
- {
- if (EntityFlag == EntityFlag.Player)
- {
- ushort baseID = 0;
- if (!Kernel.Maps.ContainsKey(MapID))
- {
- if (!Database.MapsTable.MapInformations.ContainsKey(MapID) && Owner.QualifierGroup == null)
- {
- baseID = MapID = 1002;
- X = 432;
- Y = 378;
- }
- else
- {
- baseID = Database.MapsTable.MapInformations[MapID].BaseID;
- }
- }
- else
- {
- baseID = Kernel.Maps[MapID].BaseID;
- }
- //if (EntityFlag == EntityFlag.Player)
- //{
- // if (Owner.InQualifier())
- // if (MapID != 700 && MapID < 11000)
- // Owner.EndQualifier();
- // if (Owner.Companion != null)
- // {
- // Owner.Map.RemoveEntity(Owner.Companion);
- // Data data = new Data(true);
- // data.UID = Owner.Companion.UID;
- // data.ID = Network.GamePackets.Data.RemoveEntity;
- // Owner.Companion.MonsterInfo.SendScreen(data);
- // Owner.Companion = null;
- // }
- // if (Owner.AIBot != null)
- // if (Owner.aisummoned)
- // Owner.AIBot.Dispose();
- //}
- if (MapID == this.MapID)
- {
- Teleport(X, Y);
- return;
- }
- this.X = X;
- this.Y = Y;
- Owner.Screen.FullWipe();
- Owner.Screen.Reload(null);
- this.PreviousMapID = this.MapID;
- this.MapID = MapID;
- Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
- Data.UID = UID;
- Data.ID = Network.GamePackets.Data.Teleport;
- Data.dwParam = baseID;
- Data.wParam1 = X;
- Data.wParam2 = Y;
- Owner.Send(Data);
- 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 });
- Owner.Entity.Action = Conquer_Online_Server.Game.Enums.ConquerAction.None;
- Owner.ReviveStamp = Time32.Now;
- Owner.Attackable = false;
- if (!Owner.Equipment.Free(12))
- if (Owner.Map.ID == 1036 && Owner.Equipment.TryGetItem((byte)12).Plus < 6)
- RemoveFlag(Network.GamePackets.Update.Flags.Ride);
- }
- Owner.Screen.Reload(null);
- }
- public void Teleport(ushort BaseID, ushort DynamicID, ushort X, ushort Y)
- {
- if (EntityFlag == EntityFlag.Player)
- {
- if (!Database.DMaps.MapPaths.ContainsKey(BaseID))
- return;
- if (Owner.InQualifier())
- if (BaseID != 700 && BaseID < 11000)
- Owner.EndQualifier();
- if (!Kernel.Maps.ContainsKey(DynamicID)) new Map(DynamicID, BaseID, Database.DMaps.MapPaths[BaseID]);
- this.PrevX = this.X;
- this.PrevY = this.Y;
- this.X = X;
- this.Y = Y;
- this.PreviousMapID = this.MapID;
- this.MapID = DynamicID;
- Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
- Data.UID = UID;
- Data.ID = Network.GamePackets.Data.Teleport;
- Data.dwParam = BaseID;
- Data.wParam1 = X;
- Data.wParam2 = Y;
- Owner.Send(Data);
- Owner.Entity.Action = Conquer_Online_Server.Game.Enums.ConquerAction.None;
- Owner.ReviveStamp = Time32.Now;
- Owner.Attackable = false;
- if (Owner.ChampionGroup == null)
- 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 });
- if (!Owner.Equipment.Free(12))
- if (Owner.Map.ID == 1036 && Owner.Equipment.TryGetItem((byte)12).Plus < 6)
- RemoveFlag(Network.GamePackets.Update.Flags.Ride);
- }
- }
- public void AdvancedTeleport(bool remove = false)
- {
- #region Teleport With Pet & Clones
- if (EntityFlag == EntityFlag.Player)
- {
- if (MyClones.Count > 0)
- {
- foreach (var clone in MyClones.Values)
- {
- if (clone == null) continue;
- if (remove)
- {
- Data data = new Data(true);
- data.UID = clone.UID;
- data.ID = Network.GamePackets.Data.RemoveEntity;
- Owner.SendScreen(data);
- Owner.RemoveScreenSpawn(clone, true);
- }
- else
- {
- clone.MapID = this.MapID;
- clone.X = this.X;
- clone.Y = this.Y;
- Network.GamePackets.Data Data = new Network.GamePackets.Data(true);
- Data.UID = clone.UID;
- Data.ID = Network.GamePackets.Data.Teleport;
- Data.dwParam = Database.MapsTable.MapInformations[MapID].BaseID;
- Data.wParam1 = clone.X;
- Data.wParam2 = clone.Y;
- Owner.SendScreen(Data);
- Owner.SendScreenSpawn(clone, true);
- }
- }
- }
- if (Owner.Pet.Pets.Count > 0)
- {
- foreach (var pet in Owner.Pet.Pets.Values)
- {
- if (pet == null) continue;
- if (pet.Entity == null) continue;
- if (remove)
- {
- Data data = new Data(true);
- data.UID = pet.Entity.UID;
- data.ID = Network.GamePackets.Data.RemoveEntity;
- Owner.SendScreen(data);
- Owner.RemoveScreenSpawn(pet.Entity, true);
- }
- else
- {
- pet.Entity.MapID = this.MapID;
- pet.Entity.X = this.X;
- pet.Entity.Y = this.Y;
- Owner.SendScreenSpawn(pet.Entity, true);
- }
- }
- }
- if (remove)
- Owner.RemoveScreenSpawn(Owner.Entity, false);
- }
- #endregion Teleport With Pet & Clones
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement