RunUo.Korean.Forum    :: RunUo Document 2.0 RC1 (Beta):: 
Statistics  Archive (html)  S-BLOG  [RSS FEED]   

 
  RunUo.Korean.Forum
ÀæÀºÁú¹®  ÀæÀºÁú¹®    °Ë»ö   °Ë»ö    ȸ¿ø¸®½ºÆ®  È¸¿ø¸®½ºÆ®   À¯Àú±×·ì  À¯Àú±×·ì   Gabbly äÆÃ¿­±â  Ã¤ÆÃ¿­±â 
 
ȸ¿ø°¡ÀÔ  ::  ·Î±×ÀÎ ÂÊÁö ÇÔ È®ÀÎ
 
RunUo.Korean.Forum ¢º Script Support ¢º ´ç±Ù´Ô²²¼­ ¿Ã·ÁÁֽй®°ÔÀÌÆ® ¼öÁ¤...
»õ ±ÛÀ» ÀÛ¼ºÇÕ´Ï´Ù.´äº¯±ÛÀ» ÀÛ¼ºÇÕ´Ï´Ù. Post Printing
¡Ø TOPIC : ´ç±Ù´Ô²²¼­ ¿Ã·ÁÁֽй®°ÔÀÌÆ® ¼öÁ¤... ÀÌÀü ±Û :: ´ÙÀ½ ±Û
±Û ¾´ÀÌ ¸Þ¼¼Áö ³»¿ë
donomong
ÀÛ¼º±ÛÁ¦¸ñ : ´ç±Ù´Ô²²¼­ ¿Ã·ÁÁֽй®°ÔÀÌÆ® ¼öÁ¤...   ±Û ÀÛ¼º½Ã°£ : 2006-07-13 ¸ñ 6:53 pm ±ÛÀ» ÀοëÇÏ¿© ÀÛ¼ºÇÕ´Ï´Ù.

Second Cicle [2]
Second Cicle [2]

°¡ÀÔÀÏ: 2006³â 07¿ù 01ÀÏ
°Ô½Ã¹°: 23

'´ç±Ùºôµå'ÀÇ ½ºÅ©¸³À» ºô·Á¾²°íÀִµ¥¿ä,,

¹®°ÔÀÌÆ® ³»¿ëÀ» ¾Æ·¡ ÄÚµåó·³ ¹Ù²ãºÁµµ

ÀÌÀü¿¡ ÀÖ´ø ¸ñ·Ï(ÀÌ°è µîµî..)¸¸ °è¼Ó ¶ß³×¿ä..

¿ø·¡ ¹Ù²î°Å³ª,¾È¶ß°Å³ª,¿¡·¯°¡¶°¾ß Á¤»óÀÏÅÙµ¥..

´ëü ÀÌÀ¯°¡ ¸Ö±î¿ä?

ÄÚµå : 

using System;
using System.Collections;
using Server;
using Server.Gumps;
using Server.Network;
using Server.Mobiles;

namespace Server.Items
{
   public class PublicMoongate : Item
   {
      [Constructable]
      public PublicMoongate() : base( 0xF6C )
      {
         Movable = false;
         Light = LightType.Circle300;
      }

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

      public override void OnDoubleClick( Mobile from )
      {
         if ( !from.Player )
            return;

         if ( from.InRange( GetWorldLocation(), 1 ) )
            UseGate( from );
         else
            from.SendLocalizedMessage( 500446 ); // That is too far away.
      }

      public override bool OnMoveOver( Mobile m )
      {
         return !m.Player || UseGate( m );
      }

      public bool UseGate( Mobile m )
      {
         if ( m.Criminal )
         {
            m.SendLocalizedMessage( 1005561, "", 0x22 ); // Thou'rt a criminal and cannot escape so easily.
            return false;
         }
         else if ( Server.Spells.SpellHelper.CheckCombat( m ) )
         {
            m.SendLocalizedMessage( 1005564, "", 0x22 ); // Wouldst thou flee during the heat of battle??
            return false;
         }
         else if ( m.Spell != null )
         {
            m.SendLocalizedMessage( 1049616 ); // You are too busy to do that at the moment.
            return false;
         }
         else
         {
            m.CloseGump( typeof( DangeonMoongateGump ) );
            m.CloseGump( typeof( MoongateGump ) );
            m.SendGump( new MoongateGump( m, this ) );

            if ( !m.Hidden || m.AccessLevel == AccessLevel.Player )
               Effects.PlaySound( m.Location, m.Map, 0x20E );

            return true;
         }
      }

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

         writer.Write( (int) 0 ); // version
      }

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

         int version = reader.ReadInt();
      }

      public static void Initialize()
      {
         Server.Commands.Register( "MoonGen", AccessLevel.Administrator, new CommandEventHandler( MoonGen_OnCommand ) );
      }

      [Usage( "MoonGen" )]
      [Description( "Generates public moongates. Removes all old moongates." )]
      public static void MoonGen_OnCommand( CommandEventArgs e )
      {
         DeleteAll();

         int count = 0;

         count += MoonGen( PMList.Trammel );
         count += MoonGen( PMList.Felucca );
         count += MoonGen( PMList.Ilshenar );
         count += MoonGen( PMList.Malas );
         count += MoonGen( PMList.Tokuno );

         World.Broadcast( 0x35, true, "{0} moongates generated.", count );
      }

      private static void DeleteAll()
      {
         ArrayList list = new ArrayList();

         foreach ( Item item in World.Items.Values )
         {
            if ( item is PublicMoongate )
               list.Add( item );
         }

         foreach ( Item item in list )
            item.Delete();

         if ( list.Count > 0 )
            World.Broadcast( 0x35, true, "{0} moongates removed.", list.Count );
      }

      private static int MoonGen( PMList list )
      {
         foreach ( PMEntry entry in list.Entries )
         {
            Item item = new PublicMoongate();

            item.MoveToWorld( entry.Location, list.Map );

//            if ( entry.Number == 1060642 ) // Umbra
//               item.Hue = 0x497;
         }

         return list.Entries.Length;
      }
   }

   public class PMEntry
   {
      private Point3D m_Location;
      private string m_Number;   //********************

      public Point3D Location
      {
         get
         {
            return m_Location;
         }
      }

      public string Number
      {
         get
         {
            return m_Number;
         }
      }

      public PMEntry( Point3D loc, string number )
      {
         m_Location = loc;
         m_Number = number;
      }
   }

   public class PMList
   {
      private string m_Number, m_SelNumber;
      private Map m_Map;
      private PMEntry[] m_Entries;

      public string Number
      {
         get
         {
            return m_Number;
         }
      }

      public string SelNumber
      {
         get
         {
            return m_SelNumber;
         }
      }

      public Map Map
      {
         get
         {
            return m_Map;
         }
      }

      public PMEntry[] Entries
      {
         get
         {
            return m_Entries;
         }
      }

      public PMList( string number, string selNumber, Map map, PMEntry[] entries )
      {
         m_Number = number;
         m_SelNumber = selNumber;
         m_Map = map;
         m_Entries = entries;
      }

      public static readonly PMList Felucca =
         new PMList( "µ¨·ç½Ã¾Æ ¿µÁö", "", Map.Felucca, new PMEntry[]
            {
               new PMEntry( new Point3D( 5259, 3987, 37 ), "µ¨·ç½Ã¾Æ" ),
               //new PMEntry( new Point3D( 2229, 1226, 0 ), "ºê¸®Æ°" ),
               //new PMEntry( new Point3D( 4300, 968, 5 ), "Ä«¿Â" ),
               //new PMEntry( new Point3D(  2012,  2756, 20 ), "¿ÀÄ«" ),
               //new PMEntry( new Point3D( 787,  2243, 0 ), "Çϵå·Ï" ),
               //new PMEntry( new Point3D( 1828, 2948,-20), "1012008"), // Trinsic
               //new PMEntry( new Point3D(  643, 2067, 5 ), "1012009" ), // Skara Brae
               //new PMEntry( new Point3D( 3563, 2139, 34), "1012010" ), // Magincia
               //new PMEntry( new Point3D( 2711, 2234, 0 ), "1019001" )  // Buccaneer's Den
            } );

      public static readonly PMList Tokuno =
         new PMList( "ÅäÄí³ë ¸·ºÎ", "", Map.Tokuno, new PMEntry[]
            {
               new PMEntry( new Point3D( 728,  1255,  30 ), "Á¨Åä" ),
               //new PMEntry( new Point3D(  802, 1204, 25 ), "Å©¸®Áî" ),
               //new PMEntry( new Point3D(  613,  424, 40 ), "·¹Å°³×" )
            } );

      public static readonly PMList Malas =
         new PMList( "·ç³ª ¿Õ±¹", "", Map.Malas, new PMEntry[]
            {
               new PMEntry( new Point3D( 1015,  527, -64 ), "·ç³ª" ),
               //new PMEntry( new Point3D( 2033, 1333, -88 ), "ÇÁÁö" )
            } );

      public static readonly PMList Ilshenar =
         new PMList( "¼û°ÜÁø ´ë·ú", "", Map.Ilshenar, new PMEntry[]
            {
               new PMEntry( new Point3D( 1117,  406, -75 ), "¼û°ÜÁ³´ø Àå¼Ò" ), // Compassion
               //new PMEntry( new Point3D(  843, 1175, -56 ), "µµ½ÃÀÇ ÈçÀû" ), // Honesty
               //new PMEntry( new Point3D(  1249,  571, -16 ), "Àΰ£ÀÇ ÈçÀû" ), // Honor
               //new PMEntry( new Point3D(  1363, 1105, -26 ), "Ä·ÇÁÀÇ ÈçÀû" ), // Humility
               //new PMEntry( new Point3D(  987, 1011, -32 ), "1012019" ), // Justice
               //new PMEntry( new Point3D( 1174, 1286, -30 ), "1012020" ), // Sacrifice
               //new PMEntry( new Point3D( 1532, 1340, - 3 ), "1012021" ), // Spirituality
               //new PMEntry( new Point3D(  528,  216, -45 ), "1012022" ), // Valor
               //new PMEntry( new Point3D( 1721,  218,  96 ), "1019000" )  // Chaos
            } );

      public static readonly PMList[] UORLists      = new PMList[] { Trammel, Felucca };
      public static readonly PMList[] UORlistsYoung   = new PMList[] { Trammel };
      public static readonly PMList[] LBRLists      = new PMList[] { Trammel, Felucca, Ilshenar };
      public static readonly PMList[] LBRListsYoung   = new PMList[] { Trammel, Ilshenar };
      public static readonly PMList[] AOSLists      = new PMList[] { Trammel, Felucca, Malas, Ilshenar };
      public static readonly PMList[] AOSListsYoung   = new PMList[] { Trammel, Malas, Ilshenar };
      public static readonly PMList[] SELists         = new PMList[] { Trammel, Felucca, Tokuno, Malas, Ilshenar };
      public static readonly PMList[] SEListsYoung   = new PMList[] { Trammel, Tokuno, Malas, Ilshenar };
      public static readonly PMList[] RedLists      = new PMList[] { Felucca };
      public static readonly PMList[] SigilLists      = new PMList[] { Felucca };
   }

   public class MoongateGump : Gump
   {
      private Mobile m_Mobile;
      private Item m_Moongate;
      private PMList[] m_Lists;

      public MoongateGump( Mobile mobile, Item moongate ) : base( 100, 100 )
      {
         m_Mobile = mobile;
         m_Moongate = moongate;

         PMList[] checkLists;

         if ( mobile.Player )
         {
            if ( Factions.Sigil.ExistsOn( mobile ) )
            {
               checkLists = PMList.SigilLists;
            }
            else if ( mobile.Kills >= 5 )
            {
               checkLists = PMList.RedLists;
            }
            else
            {
               int flags = mobile.NetState == null ? 0 : mobile.NetState.Flags;
               bool young = mobile is PlayerMobile ? ((PlayerMobile)mobile).Young : false;

               if ( Core.SE && (flags & 0x10) != 0 )
                  checkLists = young ? PMList.SEListsYoung : PMList.SELists;
               else if ( Core.AOS && (flags & 0x8) != 0 )
                  checkLists = young ? PMList.AOSListsYoung : PMList.AOSLists;
               else if ( (flags & 0x4) != 0 )
                  checkLists = young ? PMList.LBRListsYoung : PMList.LBRLists;
               else
                  checkLists = young ? PMList.UORlistsYoung : PMList.UORLists;
            }
         }
         else
         {
            checkLists = PMList.SELists;
         }

         m_Lists = new PMList[checkLists.Length];

         for ( int i = 0; i < m_Lists.Length; ++i )
            m_Lists[i] = checkLists[i];

         for ( int i = 0; i < m_Lists.Length; ++i )
         {
            if ( m_Lists[i].Map == mobile.Map )
            {
               PMList temp = m_Lists[i];

               m_Lists[i] = m_Lists[0];
               m_Lists[0] = temp;

               break;
            }
         }

         AddPage( 0 );

         AddBackground( 0, 0, 380, 280, 5054 );

         AddButton( 10, 210, 4005, 4007, 1, GumpButtonType.Reply, 0 );
         AddHtml( 45, 210, 140, 25, "À̵¿", false, false ); // OKAY

         AddButton( 10, 235, 4005, 4007, 0, GumpButtonType.Reply, 0 );
         AddHtml( 45, 235, 140, 25, "Ãë¼Ò", false, false ); // CANCEL

         AddHtml( 5, 5, 200, 20, "¸ñÀûÁö¸¦ ¼±ÅÃÇØÁÖ¼¼¿ä.", false, false ); // Pick your destination:

         for ( int i = 0; i < checkLists.Length; ++i )
         {
            AddButton( 10, 35 + (i * 25), 2117, 2118, 0, GumpButtonType.Page, Array.IndexOf( m_Lists, checkLists[i] ) + 1 );
            AddHtml( 30, 35 + (i * 25), 150, 20, checkLists[i].Number, false, false );
         }

         for ( int i = 0; i < m_Lists.Length; ++i )
            RenderPage( i, Array.IndexOf( checkLists, m_Lists[i] ) );
      }

      private void RenderPage( int index, int offset )
      {
         PMList list = m_Lists[index];

         AddPage( index + 1 );

         AddButton( 10, 35 + (offset * 25), 2117, 2118, 0, GumpButtonType.Page, index + 1 );
         AddHtml( 30, 35 + (offset * 25), 150, 20, list.SelNumber, false, false );

         PMEntry[] entries = list.Entries;

         for ( int i = 0; i < entries.Length; ++i )
         {
            AddRadio( 200, 35 + (i * 25), 210, 211, false, (index * 100) + i );
            AddHtml( 225, 35 + (i * 25), 150, 20, entries[i].Number, false, false );
         }
      }

      public override void OnResponse( NetState state, RelayInfo info )
      {
         if ( info.ButtonID == 0 ) // Cancel
            return;
         else if ( m_Mobile.Deleted || m_Moongate.Deleted || m_Mobile.Map == null )
            return;

         int[] switches = info.Switches;

         if ( switches.Length == 0 )
            return;

         int switchID = switches[0];
         int listIndex = switchID / 100;
         int listEntry = switchID % 100;

         if ( listIndex < 0 || listIndex >= m_Lists.Length )
            return;

         PMList list = m_Lists[listIndex];

         if ( listEntry < 0 || listEntry >= list.Entries.Length )
            return;

         PMEntry entry = list.Entries[listEntry];

         if ( !m_Mobile.InRange( m_Moongate.GetWorldLocation(), 1 ) || m_Mobile.Map != m_Moongate.Map )
         {
            m_Mobile.SendLocalizedMessage( 1019002 ); // You are too far away to use the gate.
         }
         else if ( m_Mobile.Player && m_Mobile.Kills >= 5 && list.Map != Map.Felucca )
         {
            m_Mobile.SendLocalizedMessage( 1019004 ); // You are not allowed to travel there.
         }
         else if ( Factions.Sigil.ExistsOn( m_Mobile ) && list.Map != Factions.Faction.Facet )
         {
            m_Mobile.SendLocalizedMessage( 1019004 ); // You are not allowed to travel there.
         }
         else if ( m_Mobile.Criminal )
         {
            m_Mobile.SendLocalizedMessage( 1005561, "", 0x22 ); // Thou'rt a criminal and cannot escape so easily.
         }
         else if ( Server.Spells.SpellHelper.CheckCombat( m_Mobile ) )
         {
            m_Mobile.SendLocalizedMessage( 1005564, "", 0x22 ); // Wouldst thou flee during the heat of battle??
         }
         else if ( m_Mobile.Spell != null )
         {
            m_Mobile.SendLocalizedMessage( 1049616 ); // You are too busy to do that at the moment.
         }
         else if ( m_Mobile.Map == list.Map && m_Mobile.InRange( entry.Location, 1 ) )
         {
            m_Mobile.SendLocalizedMessage( 1019003 ); // You are already there.
         }
         else
         {
            BaseCreature.TeleportPets( m_Mobile, entry.Location, list.Map );

            m_Mobile.Combatant = null;
            m_Mobile.Warmode = false;
            m_Mobile.Hidden = true;

            m_Mobile.MoveToWorld( entry.Location, list.Map );

            Effects.PlaySound( entry.Location, list.Map, 0x1FE );
         }
      }
   }
}
¡è ¸Ç À§·Î °¡±â ¡è
ȸ¿ø ÇÁ·ÎÇÊ º¸±â ÂÊÁö º¸³»±â
ppchun
ÀÛ¼º±ÛÁ¦¸ñ : ¾Æ¸¶...   ±Û ÀÛ¼º½Ã°£ : 2006-07-14 ±Ý 10:20 pm ±ÛÀ» ÀοëÇÏ¿© ÀÛ¼ºÇÕ´Ï´Ù.

Third Cicle [2]
Third Cicle [2]

°¡ÀÔÀÏ: 2005³â 07¿ù 27ÀÏ
°Ô½Ã¹°: 40

Ȥ½Ã ½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇÏ°í ¼­¹ö ²°´Ù°¡ ´Ù½Ã Ä״µ¥ ¾ÆÁ÷µµ ¹®°ÔÀÌÆ®¿¡ ÀÌÀü¿¡ ¼³Á¤µÇ¾î ÀÖ´ø Àå¼ÒµéÀÌ ±×´ë·Î Ç¥½ÃµÈ´Ù´Â À̾߱âÀΰ¡¿ä?

±× ¸»ÀÌ ¸Â´Ù¸é
Ȥ½Ã
[moongen
¸í·ÉÀ¸·Î ¹®°ÔÀÌÆ® Á¦³×·¹À̼ÇÀº Çϼ̴ÂÁö¿ä?

½ºÅ©¸³ ¼öÁ¤¸¸Çؼ­´Â ¾ÈµÇ°í¿ä ±âÁ¸ ¼¼À̺ê È­ÀÏ¿¡ ÇöÀç ½ºÆùµÈ Á¤º¸°¡ ±×´ë·Î
ÀúÀå µÇ¾î ÀÖÀ¸´Ï
¹®°ÔÀÌÆ®¸¦ ´Ù½Ã ¸®½ºÆù ÇÏ¼Å¾ß ¹Ù²ï ½ºÅ©¸³À¸·Î ´Ù½Ã »ý¼º µÉ°Çµ¥¿ä..

Áú¹®À» Àß ÀÌÇØ ¸øÇßÀ» ¼öµµ ...
¡è ¸Ç À§·Î °¡±â ¡è
ȸ¿ø ÇÁ·ÎÇÊ º¸±â ÂÊÁö º¸³»±â
ÀÌÀü °Ô½Ã¹°º¸±â :
»õ ±ÛÀ» ÀÛ¼ºÇÕ´Ï´Ù.´äº¯±ÛÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÇöÀçÆäÀÌÁö : 1/1

RunUo.Korean.Forum ¢º Script Support ¢º ´ç±Ù´Ô²²¼­ ¿Ã·ÁÁֽй®°ÔÀÌÆ® ¼öÁ¤...
¹Ù·Î°¡±â:


°Ô½Ã¹° ÀÛ¼º : (X)
´äº¯±Û ÀÛ¼º : (X)
°Ô½Ã¹° ¼öÁ¤ : (X)
°Ô½Ã¹° »èÁ¦ : (X)
ÅõÇ¥ Çϱâ : (X)
ÆÄÀÏ ¾÷·Îµå : (X)
ÆÄÀÏ ´Ù¿î·Îµå : (0)



DAJ Glass (1.0.5) template by Dustin Baccetti // template edit by GangPung
EQ graphic based off of a design from www.freeclipart.nu
Powered by phpBB 2001, 2002 phpBB Group, Translated by zzangga

DNS Powered by DNSEver.com