Beispiel #1
0
        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++;
        }
Beispiel #2
0
 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();
         }
     }
 }