Uzun bir süre arşivimde yer tutmuş güzel bir yarışma scripti.


using System;
using System.Collections;
using Server.Misc;
using Server.Mobiles;
using Server.Network;
using Server.Gumps;
using Server.Regions;
using Server;
using Server.Items;

namespace Server.Items
{
   public class Skullball : Item
   {
      private int m_silverscore = 0;
      private int m_goldscore = 0;
      private int m_101 = 0;
      private int m_102;
      private int m_Xp = 0;
      private int m_Yp = 0;
      private int m_Xn = 0;
      private int m_Yn = 0;
      private int m_silverb1 = 0;
      private int m_silverb2 = 0;
      private int m_silverb3 = 0;
      private int m_silverb4 = 0;
      private int m_goldb1 = 0;
      private int m_goldb2 = 0;
      private int m_goldb3 = 0;
      private int m_goldb4 = 0;
      private int m_HomeY = 0;
      private int m_HomeX = 0;
      private Mobile m_AllowedPlayer1;
      private Mobile m_AllowedPlayer2;

      [CommandProperty( AccessLevel.Administrator )]
      public int Yp{ get{ return m_Yp; } set{ m_Yp = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int Xp{ get{ return m_Xp; } set{ m_Xp = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int Yn{ get{ return m_Yn; } set{ m_Yn = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int Xn{ get{ return m_Xn; } set{ m_Xn = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int silverb1{ get{ return m_silverb1; } set{ m_silverb1 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int silverb2{ get{ return m_silverb2; } set{ m_silverb2 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int silverb3{ get{ return m_silverb3; } set{ m_silverb3 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int silverb4{ get{ return m_silverb4; } set{ m_silverb4 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int goldb1{ get{ return m_goldb1; } set{ m_goldb1 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int goldb2{ get{ return m_goldb2; } set{ m_goldb2 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int goldb3{ get{ return m_goldb3; } set{ m_goldb3 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int goldb4{ get{ return m_goldb4; } set{ m_goldb4 = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int HomeX{ get{ return m_HomeX; } set{ m_HomeX = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int HomeY{ get{ return m_HomeY; } set{ m_HomeY = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int silverscore{ get{ return m_silverscore; } set{ m_silverscore = value; } }
      [CommandProperty( AccessLevel.Administrator )]
      public int goldscore{ get{ return m_goldscore; } set{ m_goldscore = value; } }
      [CommandProperty( AccessLevel.GameMaster )]
      public Mobile MobileSilverTeam{ get{ return m_AllowedPlayer1; } set{ m_AllowedPlayer1 = value; } }
      [CommandProperty( AccessLevel.GameMaster )]
      public Mobile MobileGoldTeam{ get{ return m_AllowedPlayer2; } set{ m_AllowedPlayer2 = value; } }

      [Constructable]
      public Skullball() : base( 6880 )
      {
         Movable = false;
         Hue = 1109;
         Name = "a skullball";
         Light = LightType.Circle300;
      }

      public Skullball( Serial serial ) : base( serial )
      {
      }
      
      public void goldteamb()
      {
         this.X = m_HomeX;
         this.Y = m_HomeY;

         if( m_goldscore >= 20)
         {
            int oldgoldscore;
            int oldsilverscore;
            oldgoldscore = m_goldscore;
            oldsilverscore = m_silverscore;   
            m_goldscore = 0;
            m_silverscore = 0;
            SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );

            if( m_AllowedPlayer2 != null )
               m_AllowedPlayer2.Say( "Gold won! The final score is "+ oldgoldscore +" to " + oldsilverscore + ".");
            if( m_AllowedPlayer1 != null )
               m_AllowedPlayer1.Say( "Gold won! The final score is "+ oldgoldscore +" to " + oldsilverscore + ".");

            return;
         }

         if( m_AllowedPlayer2 != null )
         {
            if( m_goldscore > m_silverscore )
            {
               SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );
               m_AllowedPlayer2.Say( "Gold is winning, the score is " + m_goldscore + " to " + m_silverscore + ".");
            }
            else if( m_goldscore < m_silverscore )
            {
               SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );
               m_AllowedPlayer2.Say( "Silver is winning, the score is " + m_silverscore + " to " + m_goldscore + ".");
            }
            else
            {
               SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );
               m_AllowedPlayer2.Say( "Both teams are tied, the score is " + m_goldscore + " to " + m_silverscore + ".");
            }
         }

         if( m_AllowedPlayer1 != null )
         {
            if( m_goldscore > m_silverscore )
               m_AllowedPlayer1.Say( "Gold is winning, the score is " + m_goldscore + " to " + m_silverscore + ".");
            else if( m_goldscore < m_silverscore )
               m_AllowedPlayer1.Say( "Silver is winning, the score is " + m_silverscore + " to " + m_goldscore + ".");
            else
               m_AllowedPlayer1.Say( "Both teams are tied, the score is " + m_goldscore + " to " + m_silverscore + ".");
         }
      }
      
      public void silverteamb()
      {
         this.X = m_HomeX;
         this.Y = m_HomeY;
         
         if( m_silverscore >= 20)
         {
            int oldgoldscore;
            int oldsilverscore;
            oldgoldscore = m_goldscore;
            oldsilverscore = m_silverscore;   
            m_goldscore = 0;
            m_silverscore = 0;
            SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );

            if( m_AllowedPlayer2 != null )
               m_AllowedPlayer2.Say( "Silver won! The final score is "+ oldsilverscore +" to " + oldgoldscore + ".");
            if( m_AllowedPlayer1 != null )
               m_AllowedPlayer1.Say( "Silver won! The final score is "+ oldsilverscore +" to " + oldgoldscore + ".");

            return;
         }

         if( m_AllowedPlayer2 != null )
         {
            if( m_goldscore > m_silverscore )
            {
               SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );
               m_AllowedPlayer2.Say( "Gold is winning, the score is " + m_goldscore + " to " + m_silverscore + ".");
            }
            else if( m_goldscore < m_silverscore )
            {
               SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );
               m_AllowedPlayer2.Say( "Silver is winning, the score is " + m_silverscore + " to " + m_goldscore + ".");
            }
            else
            {
               SetHue( m_AllowedPlayer1.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer1, m_AllowedPlayer2.FindItemOnLayer( Layer.OuterTorso ), m_AllowedPlayer2, this );
               m_AllowedPlayer2.Say( "Both teams are tied, the score is " + m_goldscore + " to " + m_silverscore + ".");
            }
         }

         if( m_AllowedPlayer1 != null )
         {
            if( m_goldscore > m_silverscore )
               m_AllowedPlayer1.Say( "Gold is winning, the score is " + m_goldscore + " to " + m_silverscore + ".");
            else if( m_goldscore < m_silverscore )
               m_AllowedPlayer1.Say( "Silver is winning, the score is " + m_silverscore + " to " + m_goldscore + ".");
            else
               m_AllowedPlayer1.Say( "Both teams are tied, the score is " + m_goldscore + " to " + m_silverscore + ".");
         }
      }

      public void bc()
      {
         ArrayList mobs = new ArrayList( World.Mobiles.Values );
         foreach ( Mobile ko in mobs )
         {
            if ( ( ko is PlayerMobile ) && ( ko != null )  )
            {
               if ( ko.SolidHueOverride == 2101 || ko.SolidHueOverride == 2125 )
               {
                  if( m_goldscore >= 20)
                  {
                     if( m_AllowedPlayer2 != null )
                        ko.SendMessage( ko.SolidHueOverride, "Gold won! The final score is "+ m_goldscore +" to " + m_silverscore + ".");
                     if( m_AllowedPlayer1 != null )
                        ko.SendMessage( ko.SolidHueOverride, "Gold won! The final score is "+ m_goldscore +" to " + m_silverscore + ".");
                     return;
                  }
                  if( m_silverscore >= 20)
                  {
                     if( m_AllowedPlayer2 != null )
                        ko.SendMessage( ko.SolidHueOverride, "Silver won! The final score is "+ m_silverscore +" to " + m_goldscore + ".");
                     if( m_AllowedPlayer1 != null )
                        ko.SendMessage( ko.SolidHueOverride, "Silver won! The final score is "+ m_silverscore +" to " + m_goldscore + ".");
                     return;
                  }

                  if( m_goldscore > m_silverscore )
                     ko.SendMessage( ko.SolidHueOverride, "Gold is winning, the score is " + m_goldscore + " to " + m_silverscore + ".");
                  else if( m_goldscore < m_silverscore )
                     ko.SendMessage( ko.SolidHueOverride, "Silver is winning, the score is " + m_silverscore + " to " + m_goldscore + ".");
                  else
                     ko.SendMessage( ko.SolidHueOverride, "Both teams are tied, the score is " + m_goldscore + " to " + m_silverscore + ".");
               }
            }
         }
      }
      
      public static void SetHue(Item g, Mobile a, Item r, Mobile s, Skullball b)
      {
         if( b.goldscore > b.silverscore )
         {
            if( g != null )
               g.Hue = 2125;
            if( a != null )
               a.SpeechHue = 2125;
            if( r != null )
               r.Hue = 2125;
            if( s != null )
               s.SpeechHue = 2125;
            if( b != null )
               b.Hue = 2125;
         }
         else if( b.silverscore > b.goldscore )
         {
            if( g != null )
               g.Hue = 2101;
            if( a != null )
               a.SpeechHue = 2101;
            if( r != null )
               r.Hue = 2101;
            if( s != null )
               s.SpeechHue = 2101;
            if( b != null )
               b.Hue = 2101;
         }
         else
         {
            if( g != null )
               g.Hue = 1109;
            if( a != null )
               a.SpeechHue = 1109;
            if( r != null )
               r.Hue = 1109;
            if( s != null )
               s.SpeechHue = 1109;
            if( b != null )
               b.Hue = 1109;
         }
      }

      public override bool OnMoveOver( Mobile m )
      {
         if ( m.SolidHueOverride == 2125 || m.SolidHueOverride == 2101  )
         {
            if ( m.Direction == Direction.East || (m.Direction & ~Direction.Running) == Direction.East )
            {
               if( ( m_goldb1 == this.Y ) && ( m_Xp == this.X ) || ( m_goldb2 == this.Y )  && ( m_Xp == this.X ) || ( m_goldb3 == this.Y )  && ( m_Xp == this.X )  || ( m_goldb4 == this.Y )  && ( m_Xp == this.X ) )
               {
                  m_goldscore += 1;
                  this.bc();
                  this.goldteamb();
               }
               else
               {
                  if( m_Xp != this.X )
                     X += 1;
                  else
                     X -= 1;
               }
            }
            else if ( m.Direction == Direction.West || (m.Direction & ~Direction.Running) == Direction.West )
            {
               if( ( m_silverb1 == this.Y ) && ( m_Xn == this.X ) || ( m_silverb2 == this.Y )  && ( m_Xn == this.X )|| ( m_silverb3 == this.Y )  && ( m_Xn == this.X )|| (m_silverb4 == this.Y )  && ( m_Xn == this.X ))
               {
                  m_silverscore += 1;
                  this.bc();
                  this.silverteamb();
               }
               else
               {
                  if( m_Xn != this.X )
                     X -= 1;
                  else
                     X += 1;
               }
            }
            else if ( m.Direction == Direction.South || (m.Direction & ~Direction.Running) == Direction.South )
            {
               if( m_Yp != this.Y )
                  Y += 1;
               else
                  Y -= 1;
            }
            else if ( m.Direction == Direction.North || m.Direction == Direction.Running )
            {
               if( m_Yn != this.Y )
                  Y -= 1;
               else
                  Y += 1;
            }
            else if ( m.Direction == Direction.Down || (m.Direction & ~Direction.Running) == Direction.Down )
            {   
               if( ( m_goldb2 == this.Y )  && ( m_Xp == this.X ) || ( m_goldb3 == this.Y )  && ( m_Xp == this.X )  || ( m_goldb4 == this.Y )  && ( m_Xp == this.X ) )
               {   
                  m_goldscore += 1;
                  this.bc();
                  this.goldteamb();
               }
               else
               {
                  if( m_Yp != this.Y )
                     Y += 1;
                  else
                     Y -= 1;
                  if( m_Xp != this.X )
                     X += 1;
                  else
                     X -= 1;
               }
            }
            else if ( m.Direction == Direction.Mask || m.Direction == Direction.ValueMask )
            {
               if( ( m_silverb1 == this.Y ) && ( m_Xn == this.X ) || ( m_silverb2 == this.Y )  && ( m_Xn == this.X )|| ( m_silverb3 == this.Y )  && ( m_Xn == this.X ))
               {
                  m_silverscore += 1;
                  this.bc();
                  this.silverteamb();
               }
               else
               {
                  if( m_Yn != this.Y )
                     Y -= 1;
                  else
                     Y += 1;
                  if( m_Xn != this.X )
                     X -= 1;
                  else
                     X += 1;
               }
            }
            else if ( m.Direction == Direction.Left || (m.Direction & ~Direction.Running) == Direction.Left )
            {
               if( ( m_silverb2 == this.Y )  && ( m_Xn == this.X )|| ( m_silverb3 == this.Y )  && ( m_Xn == this.X )|| (m_silverb4 == this.Y )  && ( m_Xn == this.X ))
               {
                  m_silverscore += 1;
                  this.bc();
                  this.silverteamb();
               }
               else
               {
                  if( m_Yp != this.Y )
                     Y += 1;
                  else
                     Y -= 1;
                  if( m_Xn != this.X )
                     X -= 1;
                  else
                     X += 1;
               }
            }
            else if ( m.Direction == Direction.Right || (m.Direction & ~Direction.Running) == Direction.Right )
            {
               if( ( m_goldb1 == this.Y ) && ( m_Xp == this.X ) || ( m_goldb2 == this.Y )  && ( m_Xp == this.X ) || ( m_goldb3 == this.Y )  && ( m_Xp == this.X ) )
               {
                  m_goldscore += 1;
                  this.bc();
                  this.goldteamb();
               }
               else
               {
                  if( m_Yn != this.Y )
                     Y -= 1;
                  else
                     Y += 1;
                  
                  if( m_Xp != this.X )
                     X += 1;
                  else
                     X -= 1;
               }
            }

                    switch (Utility.Random( 5 )) 
            {
               case 0: this.ItemID = 6880;
                  break;
               case 1: this.ItemID = 6881;
                  break;
               case 2: this.ItemID = 6882;
                  break;
               case 3: this.ItemID = 6883;
                  break;
               case 4: this.ItemID = 6884;
                  break;
            }
         }

         return true;
      }

      public override void Serialize( GenericWriter writer )
      {
         base.Serialize( writer );
         writer.Write( (int) 0 );   
         writer.Write( m_silverscore );
         writer.Write( m_goldscore );
         writer.Write( m_Xp );
         writer.Write( m_Yp );
         writer.Write( m_Xn );
         writer.Write( m_Yn );
         writer.Write( m_silverb1 );
         writer.Write( m_silverb2 );
         writer.Write( m_silverb3 );
         writer.Write( m_silverb4 );
         writer.Write( m_goldb1 );
         writer.Write( m_goldb2 );
         writer.Write( m_goldb3 );
         writer.Write( m_goldb4 );
         writer.Write( m_HomeY );
         writer.Write( m_HomeX );
         writer.Write( m_AllowedPlayer1 );
         writer.Write( m_AllowedPlayer2 );
      }

      public override void Deserialize( GenericReader reader )
      {
         base.Deserialize( reader );

         int version = reader.ReadInt();

         m_silverscore = reader.ReadInt();
         m_goldscore = reader.ReadInt();
         m_Xp = reader.ReadInt();
         m_Yp = reader.ReadInt();
         m_Xn = reader.ReadInt();
         m_Yn = reader.ReadInt();
         m_silverb1 = reader.ReadInt();
         m_silverb2 = reader.ReadInt();
         m_silverb3 = reader.ReadInt();
         m_silverb4 = reader.ReadInt();
         m_goldb1 = reader.ReadInt();
         m_goldb2 = reader.ReadInt();
         m_goldb3 = reader.ReadInt();
         m_goldb4 = reader.ReadInt();
         m_HomeY = reader.ReadInt();
         m_HomeX = reader.ReadInt();
         m_AllowedPlayer1 = reader.ReadMobile();
         m_AllowedPlayer2 = reader.ReadMobile();
      }
   }

   public enum Team
   {
      Gold,
      Silver
   }

   public class SkullballEnterGate : Item
   {
      private Team m_Team;
      private Point3D m_PointDest;
      private Map m_MapDest;

      [CommandProperty( AccessLevel.GameMaster )]
      public Team Team{ get{ return m_Team; } set{ m_Team = value; } }
      [CommandProperty( AccessLevel.GameMaster )]
      public Point3D PointDest{ get{ return m_PointDest; } set{ m_PointDest = value; } }
      [CommandProperty( AccessLevel.GameMaster )]
      public Map MapDest{ get{ return m_MapDest; } set{ m_MapDest = value; } }

      [Constructable]
      public SkullballEnterGate() : base( 0xF6C )
      {
         Movable = false;
         Name = "Enter Skullball";
         Light = LightType.Circle300;
      }

      public SkullballEnterGate( Serial serial ) : base( serial )
      {
      }

      public override bool OnMoveOver( Mobile m )
      {
         Point3D p = m_PointDest;
         Map map = m_MapDest;
         if ( map == null || map == Map.Internal )
            map = m.Map;

         if( p == Point3D.Zero )
         {
            m.SendMessage( "There is no destination set for this gate. Please contact a GM." );
            return false;
         }

         if( m.SolidHueOverride == 2125 || m.SolidHueOverride == 2101 )
         {
            m.SendMessage( "You are already in a Skullball game!" );
            return false;
         }

         if( m.Mounted )
         {
            m.SendMessage( "Please dismount before entering the Skullball field." );
            return false;
         }

         if ( m_Team == Team.Gold )
         {
            m.MoveToWorld( p, map );
            m.Blessed = true;
            m.SolidHueOverride = 2125;

            ArrayList mobs = new ArrayList( World.Mobiles.Values );
            foreach ( Mobile ko in mobs )
            {
               if ( ( ko is PlayerMobile ) && ( ko != null )  )
               {
                  if ( ko.SolidHueOverride == 2101 || ko.SolidHueOverride == 2125 )
                     ko.SendMessage( ko.SolidHueOverride, m.Name + " has joined the Skullball game." );
               }
            }   
         }
         else
         {
            m.MoveToWorld( p, map );
            m.Blessed = true;
            m.SolidHueOverride = 2101;
            
            ArrayList mobs = new ArrayList( World.Mobiles.Values );
            foreach ( Mobile ko in mobs )
            {
               if ( ( ko is PlayerMobile ) && ( ko != null )  )
               {
                  if ( ko.SolidHueOverride == 2101 || ko.SolidHueOverride == 2125 )
                     ko.SendMessage( ko.SolidHueOverride, m.Name + " has joined the Skullball game." );
               }
            }
         }
         return false;
      }

      public override void Serialize( GenericWriter writer )
      {
         base.Serialize( writer );
         writer.Write( (int) 0 );
   
         writer.Write( (int) m_Team );
         writer.Write( m_PointDest );
         writer.Write( m_MapDest );
      }

      public override void Deserialize( GenericReader reader )
      {
         base.Deserialize( reader );

         int version = reader.ReadInt();

         m_Team = (Team)reader.ReadInt();
         m_PointDest = reader.ReadPoint3D();
         m_MapDest = reader.ReadMap();
      }
   }

   public class SkullballExitGate : Item
   {
      private Point3D m_PointDest;
      private Map m_MapDest;

      [CommandProperty( AccessLevel.GameMaster )]
      public Point3D PointDest{ get{ return m_PointDest; } set{ m_PointDest = value; } }
      [CommandProperty( AccessLevel.GameMaster )]
      public Map MapDest{ get{ return m_MapDest; } set{ m_MapDest = value; } }

      [Constructable]
      public SkullballExitGate() : base( 0xF6C )
      {
         Movable = false;
         Name = "Exit Skullball";
         Light = LightType.Circle300;
      }

      public SkullballExitGate( Serial serial ) : base( serial )
      {
      }

      public override bool OnMoveOver( Mobile m )
      {
         Point3D p = m_PointDest;
         Map map = m_MapDest;
         if ( map == null || map == Map.Internal )
            map = m.Map;

         if( p == Point3D.Zero )
         {
            m.SendMessage( "There is no destination set for this gate. Please contact a GM." );
            return false;
         }

         if( m.SolidHueOverride != 2125 && m.SolidHueOverride != 2101 )
         {
            m.SendMessage( "You aren't in a Skullball game!" );
            return false;
         }

         ArrayList mobs = new ArrayList( World.Mobiles.Values );
         foreach ( Mobile ko in mobs )
         {
            if ( ( ko is PlayerMobile ) && ( ko != null )  )
            {
               if ( ko.SolidHueOverride == 2101 || ko.SolidHueOverride == 2125 )
                  ko.SendMessage( ko.SolidHueOverride, m.Name + " has left the Skullball game." );
            }
         }

         m.MoveToWorld( p, map );
         m.Blessed = false;
         m.SolidHueOverride = -1;   

         return false;
      }

      public override void Serialize( GenericWriter writer )
      {
         base.Serialize( writer );
         writer.Write( (int) 0 );
   
         writer.Write( m_PointDest );
         writer.Write( m_MapDest );
      }

      public override void Deserialize( GenericReader reader )
      {
         base.Deserialize( reader );

         int version = reader.ReadInt();

         m_PointDest = reader.ReadPoint3D();
         m_MapDest = reader.ReadMap();
      }
   }
   
   public class SetUpStoneForSkullball : Item
   {   
      [Constructable]
      public SetUpStoneForSkullball() : base( 4483 )
      {
         Movable = false;
         Name = "SetUp stone for Skullball";
         Light = LightType.Circle300;
      }   

      public SetUpStoneForSkullball( Serial serial ) : base( serial )
      {
      }

      public override void OnDoubleClick( Mobile m )
      {   
         ///////////////////////////////////////////////////////////////////  body
         for ( int Yy = this.Y; Yy <= 9 + this.Y; ++Yy )
         for ( int Xx = this.X; Xx <= 20 + this.X; ++Xx )
         new Server.Items.Static( 6014 ).MoveToWorld( new Point3D( Xx, Yy, this.Z ), this.Map );
         ////////////////////////////////////////////////////////////////////
         
         ////////////////////////////////////////////////////////////////////// out side area
         //for ( int Yy = this.Y; Yy <= 9 + this.Y; ++Yy )
         for ( int Xx = this.X; Xx <= 22 + this.X; ++Xx )
         {
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( Xx - 1, this.Y - 1, this.Z ), this.Map );
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( Xx - 1, this.Y + 10, this.Z ), this.Map );
         }
         
         for ( int Yy = this.Y; Yy <= 2 + this.Y; ++Yy )
         {
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( this.X - 1, Yy, this.Z ), this.Map );
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( this.X + 21, Yy, this.Z ), this.Map );
            
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( this.X - 1, Yy + 7, this.Z ), this.Map );
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( this.X + 21, Yy + 7, this.Z ), this.Map );
            
         }
         
         for ( int Yy = this.Y; Yy <= 5 + this.Y; ++Yy )
         {
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( this.X - 2, Yy + 2, this.Z ), this.Map );
            new Server.Items.Static( 1313 ).MoveToWorld( new Point3D( this.X + 22, Yy + 2, this.Z ), this.Map );
         }
         ////////////////////////////////////////////////////////////////////
         
         ////////////////////////////////////////////////////////////////////// out side area 2
         //for ( int Yy = this.Y; Yy <= 9 + this.Y; ++Yy )
         for ( int Xx = this.X; Xx <= 24 + this.X; ++Xx )
         {
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( Xx - 2, this.Y - 2, this.Z ), this.Map );
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( Xx - 2, this.Y + 11, this.Z ), this.Map );
         }
         
         for ( int Yy = this.Y; Yy <= 2 + this.Y; ++Yy )
         {
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( this.X - 2, Yy -1, this.Z ), this.Map );
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( this.X + 22, Yy -1, this.Z ), this.Map );
            
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( this.X - 2, Yy + 8, this.Z ), this.Map );
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( this.X + 22, Yy + 8, this.Z ), this.Map );
            
         }
         
         for ( int Yy = this.Y; Yy <= 7 + this.Y; ++Yy )
         {
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( this.X - 3, Yy + 1, this.Z ), this.Map );
            new Server.Items.Static( 1801 ).MoveToWorld( new Point3D( this.X + 23, Yy + 1, this.Z ), this.Map );
         }
         ////////////////////////////////////////////////////////////////////
         
         Static static1 = new Static( 1179 );
         static1.Hue = 2125;
         static1.X = this.X -1;
         static1.Y = this.Y +3;
         static1.Z = this.Z;
         static1.Map = this.Map;
         Static static2 = new Static( 1179 );
         static2.Hue = static1.Hue;
         static2.X = static1.X;
         static2.Y = static1.Y +1;
         static2.Z = this.Z;
         static2.Map = this.Map;
         Static static3 = new Static( 1179 );
         static3.Hue = static1.Hue;
         static3.X = static1.X;
         static3.Y = static1.Y +2;
         static3.Z = this.Z;
         static3.Map = this.Map;
         Static static4 = new Static( 1179 );
         static4.Hue = static1.Hue;
         static4.X = static1.X;
         static4.Y = static1.Y +3;
         static4.Z = this.Z;
         static4.Map = this.Map;
         
         Static static5 = new Static( 1179 );
         static5.Hue = 2101;
         static5.X = this.X +21;
         static5.Y = this.Y +3;
         static5.Z = this.Z;
         static5.Map = this.Map;
         Static static6 = new Static( 1179 );
         static6.Hue = static5.Hue;
         static6.X = static5.X;
         static6.Y = static5.Y +1;
         static6.Z = this.Z;
         static6.Map = this.Map;
         Static static7 = new Static( 1179 );
         static7.Hue = static5.Hue;
         static7.X = static5.X;
         static7.Y = static5.Y +2;
         static7.Z = this.Z;
         static7.Map = this.Map;
         Static static8 = new Static( 1179 );
         static8.Hue = static5.Hue;
         static8.X = static5.X;
         static8.Y = static5.Y +3;
         static8.Z = this.Z;
         static8.Map = this.Map;

         /*for ( int Yy = this.Y; Yy <= 3 + this.Y; ++Yy )
         {
            new Server.Items.Static( 1179 ).MoveToWorld( new Point3D( this.X - 1, Yy + 3, this.Z ), this.Map );
            new Server.Items.Static( 1267 ).MoveToWorld( new Point3D( this.X + 21, Yy + 3, this.Z ), this.Map );
         }*/
         
         Skullball ball = new Skullball();
         ball.Yn = this.Y;
         ball.Yp = this.Y + 9;
         
         ball.Xn = this.X;
         ball.Xp = this.X + 20;
         
         ball.goldb4 = this.Y + 3;
         ball.goldb3 = this.Y + 4;
         ball.goldb2 = this.Y + 5;
         ball.goldb1 = this.Y + 6;
         
         ball.silverb4 = this.Y + 3;
         ball.silverb3 = this.Y + 4;
         ball.silverb2 = this.Y + 5;
         ball.silverb1 = this.Y + 6;
         
         ball.HomeX = this.X + 10;
         ball.HomeY = this.Y + 4;
         
         
         
         Referee ref1 = new Referee();
         ball.MobileSilverTeam = ref1;
         ref1.Direction = Direction.South;
         ref1.MoveToWorld( new Point3D( this.X + 10, this.Y - 2, this.Z + 5 ), this.Map );
         
         Referee ref2 = new Referee();
         ball.MobileGoldTeam = ref2;
         ref2.Direction = Direction.North;
         ref2.MoveToWorld( new Point3D( this.X + 10, this.Y + 11, this.Z + 5 ), this.Map );
         
         ball.MoveToWorld( new Point3D( this.X + 10, this.Y + 4, this.Z + 2 ), this.Map );
         
         this.Delete();
      }

      public override void Serialize( GenericWriter writer )
      {
         base.Serialize( writer );
         writer.Write( (int) 0 );
      }

      public override void Deserialize( GenericReader reader )
      {
         base.Deserialize( reader );

         int version = reader.ReadInt();
      }
   }
}

namespace Server.Mobiles
{
   [CorpseName( "a referee corpse" )]
   public class Referee : Mobile
   {
      [Constructable]
      public Referee() : base()
      {
         Name = "a referee";
         Body = 400;
         Hue = 1109;
         Blessed = true;
         SpeechHue = 1109;
         CantWalk = true;

         GMRobe robe = new GMRobe();
         robe.Hue = 1109;
         robe.Name = "Referee's Robe";
         AddItem( robe );
      }

      public Referee( Serial serial ) : base( serial )
      {
      }

      public override void Serialize(GenericWriter writer)
      {
         base.Serialize( writer );

         writer.Write( (int) 0 );
      }

      public override void Deserialize(GenericReader reader)
      {
         base.Deserialize( reader );

         int version = reader.ReadInt();
      }
   }
} 

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.