public void Teleport(RealmTime time, TeleportPacket pkt) { var obj = Owner.GetEntity(pkt.ObjectId); if (obj == null) { return; } Move(obj.X, obj.Y); fames.Teleport(); SetNewbiePeriod(); UpdateCount++; Owner.BroadcastPacket(new GotoPacket() { ObjectId = Id, Position = new Position() { X = X, Y = Y } }, null); Owner.BroadcastPacket(new ShowEffectPacket() { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position() { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); }
public void Teleport(RealmTime time, int objId) { if (!TPCooledDown()) { SendError("Too soon to teleport again!"); return; } SetTPDisabledPeriod(); Entity obj = Owner.GetEntity(objId); if (obj == null) { return; } Move(obj.X, obj.Y); fames.Teleport(); SetNewbiePeriod(); UpdateCount++; Owner.BroadcastPacket(new GotoPacket { ObjectId = Id, Position = new Position { X = X, Y = Y } }, null); if (!isNotVisible) { Owner.BroadcastPacket(new ShowEffectPacket { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); } if (Pet != null) { Pet.Move(X, Y); Pet.UpdateCount++; Pet.Owner.BroadcastPacket(new GotoPacket { ObjectId = Pet.Id, Position = new Position { X = Pet.X, Y = Pet.Y } }, null); } }
public void Teleport(RealmTime time, int objId) { if (!this.TPCooledDown()) { psr.SendPacket(new TextPacket() { BubbleTime = 0, Stars = -1, Name = "", Text = "Too soon to teleport again!" }); return; } SetTPDisabledPeriod(); var obj = Owner.GetEntity(objId); if (obj == null) { return; } Move(obj.X, obj.Y); fames.Teleport(); SetNewbiePeriod(); UpdateCount++; Owner.BroadcastPacket(new GotoPacket() { ObjectId = Id, Position = new Position() { X = X, Y = Y } }, null); Owner.BroadcastPacket(new ShowEffectPacket() { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position() { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); }
public void TeleportPosition(RealmTime time, Position position, bool ignoreRestrictions = false) { if (!ignoreRestrictions) { if (!TPCooledDown()) { SendError("Too soon to teleport again!"); return; } SetTPDisabledPeriod(); SetNewbiePeriod(); FameCounter.Teleport(); } HandleQuest(time, true, position); var id = IsControlling ? SpectateTarget.Id : Id; var tpPkts = new Packet[] { new Goto() { ObjectId = id, Pos = position }, new ShowEffect() { EffectType = EffectType.Teleport, TargetObjectId = id, Pos1 = position, Color = new ARGB(0xFFFFFFFF) } }; foreach (var plr in Owner.Players.Values) { plr.AwaitGotoAck(time.TotalElapsedMs); plr.Client.SendPackets(tpPkts); } }
public void Teleport(RealmTime time, int objId) { if (!TPCooledDown()) { SendError("Player.teleportCoolDown"); return; } SetTPDisabledPeriod(); var obj = Owner.GetEntity(objId); if (obj == null) { return; } Move(obj.X, obj.Y); FameCounter.Teleport(); SetNewbiePeriod(); UpdateCount++; Owner.BroadcastPacket(new GotoPacket() { ObjectId = Id, Position = new Position() { X = X, Y = Y } }, null); Owner.BroadcastPacket(new ShowEffectPacket() { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position() { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); }
public void Teleport(RealmTime time, TELEPORT packet) { var obj = Client.Player.Owner.GetEntity(packet.ObjectId); try { if (obj == null) { return; } if (!TPCooledDown()) { SendError("Player.teleportCoolDown"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Invisible)) { SendError("server.no_teleport_to_invisible"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Paused)) { SendError("server.no_teleport_to_paused"); return; } if (obj is Player player && !player.NameChosen) { SendError("server.teleport_needs_name"); return; } if (obj.Id == Id) { SendError("server.teleport_to_self"); return; } if (!Owner.AllowTeleport) { SendError(GetLanguageString("server.no_teleport_in_realm", new KeyValuePair <string, object>("realm", Owner.Name))); return; } SetTPDisabledPeriod(); Move(obj.X, obj.Y); FameCounter.Teleport(); SetNewbiePeriod(); UpdateCount++; } catch (Exception) { SendError("player.cannotTeleportTo"); return; } Owner.BroadcastMessage(new GOTO { ObjectId = Id, Position = new Position { X = X, Y = Y } }, null); Owner.BroadcastMessage(new SHOWEFFECT { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); foreach (var plr in Owner.Players.Values) { plr.AwaitGotoAck(time.TotalElapsedMs); } }
public void Teleport(RealmTime time, TeleportPacket packet) { var obj = Client.Player.Owner.GetEntity(packet.ObjectId); try { if (obj == null) { return; } if (!TpCooledDown()) { SendError("Player.teleportCoolDown"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Invisible)) { SendError("server.no_teleport_to_invisible"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Paused)) { SendError("server.no_teleport_to_paused"); return; } var player = obj as Player; if (player != null && !player.NameChosen) { SendError("server.teleport_needs_name"); return; } if (obj.Id == Id) { SendError("server.teleport_to_self"); return; } if (player.Client.Account.Rank < 1) { if (!Owner.AllowTeleport) { SendError(GetLanguageString("server.no_teleport_in_realm", new KeyValuePair <string, object>("realm", Owner.Name))); return; } } SetTpDisabledPeriod(); Move(obj.X, obj.Y); Pet?.Move(obj.X, obj.X); FameCounter.Teleport(); SetNewbiePeriod(); detectGodExploit = 7000; ApplyConditionEffect(new ConditionEffect { Effect = ConditionEffectIndex.Invulnerable, DurationMS = 5 * 1000 }); UpdateCount++; } catch (Exception ex) { Console.WriteLine(ex); SendError("player.cannotTeleportTo"); return; } Owner.BroadcastPacket(new GotoPacket { ObjectId = Id, Position = new Position { X = X, Y = Y } }, null); Owner.BroadcastPacket(new ShowEffectPacket { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); }
public void Teleport(RealmTime time, TeleportPacket packet) { var obj = Client.Player.Owner.GetEntity(packet.ObjectId); try { if (obj == null) { return; } if (!TPCooledDown()) { SendError("Player.teleportCoolDown"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Invisible)) { SendError("server.no_teleport_to_invisible"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Paused)) { SendError("server.no_teleport_to_paused"); return; } var player = obj as Player; /*if (player != null && (!player.NameChosen || player.NameChosen)) * { * SendError("server.teleport_needs_name"); * return; * }*/ if (obj.Id == Id) { SendError("server.teleport_to_self"); return; } if (!Owner.AllowTeleport) { SendError(GetLanguageString("server.no_teleport_in_realm", new KeyValuePair <string, object>("realm", Owner.Name))); return; } SetTPDisabledPeriod(); Move(obj.X, obj.Y); Pet?.Move(obj.X, obj.X); FameCounter.Teleport(); SetNewbiePeriod(); UpdateCount++; } catch// (Exception ex) { //log.Error(ex); //SendError("player.cannotTeleportTo"); return; } Owner.BroadcastPacket(new GotoPacket { ObjectId = Id, Position = new Position { X = X, Y = Y } }, null); Owner.BroadcastPacket(new ShowEffectPacket { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); }
public void Teleport(RealmTime time, TeleportPacket packet) { var obj = Client.Player.Owner.GetEntity(packet.ObjectId); try { if (obj == null) { return; } if (!TPCooledDown()) { SendError("Player.teleportCoolDown"); return; } if (obj.HasConditionEffect(ConditionEffectIndex.Paused)) { SendError("server.no_teleport_to_paused"); return; } var player = obj as Player; if (player != null && !player.NameChosen) { SendError("server.teleport_needs_name"); return; } if (obj.Id == Id) { SendError("server.teleport_to_self"); return; } if (!Owner.AllowTeleport) { SendError(GetLanguageString("server.no_teleport_in_realm", new KeyValuePair <string, object>("realm", Owner.Name))); return; } if (CheckTeleportLowHp() && HP <= MaxHp / 2) { ApplyConditionEffect(new ConditionEffect { Effect = ConditionEffectIndex.Damaging, DurationMS = 5000 }); } else { ApplyConditionEffect(new ConditionEffect { Effect = ConditionEffectIndex.Damaging, DurationMS = 0 }); } SetTPDisabledPeriod(); Move(obj.X, obj.Y); Pet?.Move(obj.X, obj.X); FameCounter.Teleport(); SetNewbiePeriod(); UpdateCount++; } catch (Exception ex) { log.Error(ex); SendError("player.cannotTeleportTo"); return; } Owner.BroadcastPacket(new GotoPacket { ObjectId = Id, Position = new Position { X = X, Y = Y } }, null); if (!isNotVisible) { Owner.BroadcastPacket(new ShowEffectPacket { EffectType = EffectType.Teleport, TargetId = Id, PosA = new Position { X = X, Y = Y }, Color = new ARGB(0xFFFFFFFF) }, null); } }