All pastes #535063 Raw Edit

Something

public text v1 · immutable
·published 2007-06-04 00:13 UTC
rendered paste body
        public static bool MoveWait(int x, int y)
        {
            Move(x, y);

            PacketConfirmation myDel = delegate(object packet)
            {
                if ((packet as GameServer.WalkVerify).X == x && (packet as GameServer.WalkVerify).Y == y)
                    return true;
                else
                    return false;
            };

            if (!WaitForPacket(GameServerPacket.WalkVerify, myDel, 5000))
                return false;

            return true;
        }

        public static bool WaitForPacket(GameServerPacket packet, PacketConfirmation confirmation, int timeOut)
        {
            Packet.Instance.Sniffer.AddAsyncListener(packet,
                delegate(object sender, PacketEventArgs args)
                {
                    if(confirmation(args.Packet))
                        Hero.Instance.State = HeroState.Idle;
                });

            DateTime start = DateTime.Now;

            while (Hero.Instance.State != HeroState.Idle)
            {
                if (((TimeSpan)DateTime.Now.Subtract(start)).TotalMilliseconds > timeOut)
                    return false;

                System.Threading.Thread.Sleep(10);
            }

            return true;
        }