void OnPlayerMove_Normal(Player sender, MCForge.API.Events.MoveEventArgs args) { int count = (int)sender.ExtraData["RunCounter"]; count++; sender.ExtraData["RunCounter"] = count; if (count % 15 != 0) { return; } sender.ExtraData["RunCounter"] = 0; Vector3S tmpPos = new Vector3S(args.FromPosition); tmpPos.Horizontal = tmpPos.Horizontal.GetMove(320, args.ToPosition.Horizontal); if (tmpPos.x < 32 || tmpPos.z < 32 || tmpPos.x > (sender.Level.Size.x - 1) * 32 || tmpPos.z > (sender.Level.Size.z - 1) * 32) { return; } Packet pa = new Packet(); pa.Add(Packet.Types.SendTeleport); pa.Add((sbyte)-1); pa.Add(tmpPos.x); pa.Add((short)(tmpPos.y)); pa.Add(tmpPos.z); pa.Add(sender.Rot); sender.oldPos = tmpPos; sender.Pos = tmpPos; sender.oldRot = sender.Rot; sender.SendPacket(pa); args.Cancel(); count++; }
void OnPlayerMove(Player sender, MCForge.API.Events.MoveEventArgs args) { foreach (Player p in Server.Players.ToArray()) { if (p.ExtraData.ContainsValue(sender.Username)) { p.Pos = args.ToPosition; p.Rot = sender.Rot; p.SendThisPlayerTheirOwnPos(); } } }