예제 #1
0
            protected override void OnTarget(Mobile from, object target)
            {
                Mobile mob = target as Mobile;

                if (mob == null || mob.NetState == null)
                {
                    from.SendMessage("You must target a Mobile with a NetState!");
                    return;
                }
                if (Command == LogPacketCommandType.StartLogging)
                {
                    mob.NetState.LogPackets = true;
                    mob.SendEverything();
                }
                else if (Command == LogPacketCommandType.Execute)
                {
                    mob.NetState.LogPackets = false;
                    new LogExecuteTimer(mob.NetState);
                }
                else if (Command == LogPacketCommandType.SendOne)
                {
                    if (mob.NetState.Logger != null && mob.NetState.Logger.Packets.Count > 0)
                    {
                        PacketSimulation sim = mob.NetState.Logger.Packets.Dequeue();
                        sim.Process(mob.NetState);
                    }
                    else
                    {
                        from.SendMessage("No logged packets to send!");
                    }
                }
                else if (Command == LogPacketCommandType.Delete)
                {
                    if (mob.NetState.Logger != null && mob.NetState.Logger.Packets.Count > 0)
                    {
                        mob.NetState.Logger.Packets.Clear();
                    }
                    mob.NetState.LogPackets = false;
                }
            }
예제 #2
0
            protected override void OnTick()
            {
                try
                {
                    if (State == null || State.Logger == null || State.Logger.Packets.Count == 0)
                    {
                        Stop();
                        return;
                    }

                    PacketSimulation sim = State.Logger.Packets.Peek();
                    if (DateTime.UtcNow > sim.ProcessedTime + TimeDifference)
                    {
                        State.Logger.Packets.Dequeue();
                        sim.Process(State);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("PacketLogExecute error: " + e.Message);
                    Console.WriteLine(e.StackTrace);
                    Stop();
                }
            }