예제 #1
0
        // Test
        private void Network_MeanCollisionAlertHandler(object sender, PacketReceivedEventArgs e)
        {
            Debug.WriteLine("collision detected ");

            var packet = e.Packet;

            MeanCollisionAlertPacket collision = (MeanCollisionAlertPacket)packet;

            for (int i = 0; i < collision.MeanCollision.Length; i++)
            {
                MeanCollisionAlertPacket.MeanCollisionBlock block = collision.MeanCollision[i];

                DateTime          time = Utils.UnixTimeToDateTime(block.Time);
                MeanCollisionType type = (MeanCollisionType)block.Type;

                //Self_OnMeanCollision(e.Simulator, new MeanCollisionEventArgs(type, block.Perp, block.Victim, block.Mag, time));
                MeanCollisionEventArgs mc = new MeanCollisionEventArgs(type, block.Perp, block.Victim, block.Mag, time);
                Debug.WriteLine("Attacker = " + mc.Aggressor);
            }
        }
예제 #2
0
        private void MeanCollisionAlertHandler(object sender, PacketReceivedEventArgs e)
        {
            var sim    = e.Simulator;
            var packet = e.Packet;

            if (!IsMaster(sim))
            {
                return;
            }
            {
                MeanCollisionAlertPacket collision = (MeanCollisionAlertPacket)packet;

                for (int i = 0; i < collision.MeanCollision.Length; i++)
                {
                    MeanCollisionAlertPacket.MeanCollisionBlock block = collision.MeanCollision[i];

                    DateTime          time = Utils.UnixTimeToDateTime(block.Time);
                    MeanCollisionType type = (MeanCollisionType)block.Type;

                    Self_OnMeanCollision(sim, new MeanCollisionEventArgs(type, block.Perp, block.Victim, block.Mag, time));
                }
            }
        }
예제 #3
0
 /// <summary>
 /// Construct a new instance of the MeanCollisionEventArgs class
 /// </summary>
 /// <param name="type">The type of collision that occurred</param>
 /// <param name="perp">The ID of the agent or object that perpetrated the agression</param>
 /// <param name="victim">The ID of the Victim</param>
 /// <param name="magnitude">The strength of the collision</param>
 /// <param name="time">The Time the collision occurred</param>
 public MeanCollisionEventArgs(MeanCollisionType type, UUID perp, UUID victim,
     float magnitude, DateTime time)
 {
     this.m_Type = type;
     this.m_Aggressor = perp;
     this.m_Victim = victim;
     this.m_Magnitude = magnitude;
     this.m_Time = time;
 }
예제 #4
0
 static void Self_OnMeanCollision(MeanCollisionType type, UUID perp, UUID victim, float mag, DateTime time)
 {
     client.Self.Chat("Collision between victim: " + victim + " and perp: " + perp + ":", 0, ChatType.Normal);
     //Console.WriteLine(objectMap[perp]);
     if (perp != client.Self.AgentID && objectMap.ContainsKey(perp))
         client.Self.Touch(objectMap[perp].LocalID);
     else if (victim != client.Self.AgentID && objectMap.ContainsKey(victim))
         client.Self.Touch(objectMap[victim].LocalID);
 }