RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Status Page Competable To Runuo 1.0

aleon

Wanderer
Status Page Competable To Runuo 1.0

Well in some shards people add there status page into the shard web site well why get tired of clicking and waiting to reach the site why not see the status in the real game here is the script it's compatable its good.(Thanks Bondb)Its his module but edited by me :D

Code:
using System;
using System.Diagnostics;
using System.Collections;
using System.Net;

using Server.Network;
using Server.Mobiles;
using Server.Accounting;
using Server.Guilds;
using Server.Items;
using Server.Misc;

namespace Server.Gumps
{
   public class StatusGump : Gump
   {
      public static void Initialize()
      {
         Commands.Register( "status", AccessLevel.Player, new CommandEventHandler( Status_OnCommand ) );
         Commands.Register( "ServerStatus", AccessLevel.Player, new CommandEventHandler( Status_OnCommand ) );
      }

      [Usage( "ServerStatus" )]
      [Description( "Show server status page." )]
      private static void Status_OnCommand( CommandEventArgs e )
      {
         e.Mobile.CloseGump( typeof(StatusGump) );
         e.Mobile.SendGump( new StatusGump( e.Mobile, 0, null, null ) );
      }

      public void AddBlackAlpha( int x, int y, int width, int height )
      {
         AddImageTiled( x, y, width, height, 2624 );
         AddAlphaRegion( x, y, width, height );
      }

      public static string FormatTimeSpan( TimeSpan ts )
      {
         return String.Format( "{0:D2}:{1:D2}:{2:D2}:{3:D2}", ts.Days, ts.Hours % 24, ts.Minutes % 60, ts.Seconds % 60 );
      }

      public static string FormatByteAmount( long totalBytes )
      {
         if ( totalBytes > 1000000000 )
            return String.Format( "{0:F1} GB", (double)totalBytes / 1073741824 );

         if ( totalBytes > 1000000 )
            return String.Format( "{0:F1} MB", (double)totalBytes / 1048576 );

         if ( totalBytes > 1000 )
            return String.Format( "{0:F1} KB", (double)totalBytes / 1024 );

         return String.Format( "{0} Bytes", totalBytes );
      }

      private ArrayList m_List;
      private int m_ListPage;
      private int[] m_CountList;

      public StatusGump( Mobile from, int listPage, ArrayList list, int[] count ) : base( 140, 80 )
      {
         from.CloseGump( typeof( StatusGump ) );

         m_List = list;
         m_ListPage = listPage;
         m_CountList = count;
         AddPage( 0 );

         AddBackground( 0, 0, 800, 600, 0x53 );

         AddImageTiled( 15, 15, 770, 17, 5154 );
         AddHtml( 15, 15, 770, 17, "<div align=\"center\" color=\"2100\">"+ ServerList.ServerName +"</div>", false, false );

	int t = NetState.Instances.Count;
	if (t != 0)
	{
		ArrayList KList = new ArrayList( NetState.Instances );
		for( int s = 0; s < t; ++s)
		{
			NetState nsk = KList[s] as NetState;
			if ( nsk == null )
				continue;
			Mobile mk = nsk.Mobile;
			if ( mk == null )
			{
				continue;
			}
			else
			{
				if ((from.AccessLevel == AccessLevel.Player && (( mk.AccessLevel == AccessLevel.Counselor && mk.Hidden ) || mk.AccessLevel >= AccessLevel.GameMaster )) || (from.AccessLevel >= AccessLevel.Player && mk.AccessLevel > from.AccessLevel))
				{
					--t;
				}
			}
		}
	}

         AddImageTiled( 15, 37, 190, 17, 5154 );
         AddLabel( 17, 36, 0x25, "Online :" );
         AddHtml( 160, 37, 30, 17, "<div align=\"right\" color=\"2100\">"+ t.ToString() +"</div>", false, false );

         AddImageTiled( 210, 37, 190, 17, 5154 );
         AddLabel( 212, 36, 0x68, "Accounts :" );
         AddHtml( 357, 37, 30, 17, "<div align=\"right\" color=\"2100\">"+ Accounts.Table.Count.ToString() +"</div>", false, false );

         AddImageTiled( 405, 37, 190, 17, 5154 );
         AddLabel( 407, 36, 2100, "Uptime :" );
         AddHtml( 485, 37, 109, 17, "<div align=\"right\" color=\"2100\">"+ FormatTimeSpan( DateTime.Now - Clock.ServerStart) +"</div>", false, false );

         AddImageTiled( 600, 37, 185, 17, 5154 );
         AddLabel( 602, 36, 2100, "RAM in use :" );
         AddHtml( 700, 37, 75, 17, "<div align=\"right\" color=\"2100\">"+ FormatByteAmount( GC.GetTotalMemory( false ) ) +"</div>", false, false );
            // A3C BB8 DAC E10 13BE 13EC 1400 1432 23F0 238C 23BE 2422 242C 2436 2454 2486 24A4 24AE 24B8 24EA 251C 254E 2557 2560 ?2776?
         AddBackground( 15, 59, 770, 526, 0x2454);
         AddBlackAlpha( 18, 62, 763, 520);
         AddLabelCropped(  20, 60, 220, 20, 2100, "Name" );
         AddLabelCropped( 222, 60, 209, 20, 2100, "Guild" );
         AddLabelCropped( 453, 60, 60, 20, 2100, "SumStats" );
         AddLabelCropped( 515, 60, 60, 20, 2100, "Skills" );
         AddLabelCropped( 577, 60, 60, 20, 2100, "Karma" );
         AddLabelCropped( 639, 60, 60, 20, 2100, "Fame" );
         AddLabelCropped( 701, 60, 60, 20, 2100, "Kills" );

         if ( m_List == null )
            m_List = new ArrayList( NetState.Instances );

         if ( (m_CountList == null) && (m_List.Count>25))
            m_CountList = new int[(int)(m_List.Count/25)];

         if ( listPage > 0 )
            AddButton( 744, 62, 0x15E3, 0x15E7, 1, GumpButtonType.Reply, 0 );
         else
            AddImage( 744, 62, 0x25EA );

         if ( (listPage + 1) * 25 < m_List.Count )
            AddButton( 761, 62, 0x15E1, 0x15E5, 2, GumpButtonType.Reply, 0 );
         else
            AddImage( 761, 62, 0x25E6 );
}
}
}

Just Add this into the custom folder :D the command is status if you want to change the command

Code:
Commands.Register( "status", AccessLevel.Player, new CommandEventHandler( Status_OnCommand ) );
change the status name into something else :D

Thnks Runuo More Post's From Me And All Runuo Fans Will Come Further More :
 

Merlex

Sorceror
Not a prob

I just figured if someone didnt tell ya you wil lget flooded with IM that it dont work haha
 
Hello,

I have the nice Gump. It shows how many accounts I have and how many people are logged in, however it shows no stats for anyone.... I just cut and pasted into a clean RUO1.0.0 I am behind a router on a LAN with four users... Any ideas?

A.V.
 

frozencorpse

Wanderer
Yeah I have the same problem here, but I am running a 1.0.0 server so what can be wrong? I see no script in there to get the info to show. No Loops, no nothing :) Just the huge gump. rsss it can be a good work, but need to work :) and, now that you are fixing it, try to put some admin stuff like, I dont think its so good to show all this info to everyone, I mean, its kaind of "private" stuff you know? Yours stats and skills and all. I think that it can be interesting to put a bool if i need this info showing or not. ok? I can do it my self on the script but I think that an implement of your part could be the best way rs.

Good work, keep doing it.
 

Phantom

Knight
frozencorpse said:
Yeah I have the same problem here, but I am running a 1.0.0 server so what can be wrong? I see no script in there to get the info to show. No Loops, no nothing :) Just the huge gump. rsss it can be a good work, but need to work :) and, now that you are fixing it, try to put some admin stuff like, I dont think its so good to show all this info to everyone, I mean, its kaind of "private" stuff you know? Yours stats and skills and all. I think that it can be interesting to put a bool if i need this info showing or not. ok? I can do it my self on the script but I think that an implement of your part could be the best way rs.

Good work, keep doing it.

What?
 
Working Gump

Hello,

After a bit of searching I found this and made sure it works with 1.0.0

Code:
// created by BondD
using System;
using System.Diagnostics;
using System.Collections;
using System.Net;

using Server.Network;
using Server.Mobiles;
using Server.Accounting;
using Server.Guilds;
using Server.Items;
using Server.Misc;

namespace Server.Gumps
{
   public class StatusGump : Gump
   {
      public static void Initialize()
      {
         Commands.Register( "SStat", AccessLevel.Player, new CommandEventHandler( Status_OnCommand ) );
         Commands.Register( "ServerStatus", AccessLevel.Player, new CommandEventHandler( Status_OnCommand ) );
      }

      [Usage( "ServerStatus" )]
      [Description( "Show server status page." )]
      private static void Status_OnCommand( CommandEventArgs e )
      {
         e.Mobile.CloseGump( typeof(StatusGump) );
         e.Mobile.SendGump( new StatusGump( e.Mobile, 0, null, null ) );
      }

      public void AddBlackAlpha( int x, int y, int width, int height )
      {
         AddImageTiled( x, y, width, height, 2624 );
         AddAlphaRegion( x, y, width, height );
      }

      public static string FormatTimeSpan( TimeSpan ts )
      {
         return String.Format( "{0:D2}:{1:D2}:{2:D2}:{3:D2}", ts.Days, ts.Hours % 24, ts.Minutes % 60, ts.Seconds % 60 );
      }

      public static string FormatByteAmount( long totalBytes )
      {
         if ( totalBytes > 1000000000 )
            return String.Format( "{0:F1} GB", (double)totalBytes / 1073741824 );

         if ( totalBytes > 1000000 )
            return String.Format( "{0:F1} MB", (double)totalBytes / 1048576 );

         if ( totalBytes > 1000 )
            return String.Format( "{0:F1} KB", (double)totalBytes / 1024 );

         return String.Format( "{0} Bytes", totalBytes );
      }

      private ArrayList m_List;
      private int m_ListPage;
      private ArrayList m_CountList;

      public StatusGump( Mobile from, int listPage, ArrayList list, ArrayList count ) : base( 140, 80 )
      {
         from.CloseGump( typeof( StatusGump ) );
         
         m_List = list;
         m_ListPage = listPage;   
         m_CountList = count;
         AddPage( 0 );

         AddBackground( 0, 0, 800, 600, 0x53 );

         AddImageTiled( 15, 15, 770, 17, 5154 );
         AddHtml( 15, 15, 770, 17, "<div align=\"center\" color=\"2100\">"+ ServerList.ServerName +"</div>", false, false );

	int t = NetState.Instances.Count;
	if (t != 0)
	{
		ArrayList KList = new ArrayList( NetState.Instances );
		for( int s = 0; s < t; ++s)
		{
			NetState nsk = KList[s] as NetState;
			if ( nsk == null )
				continue;
			Mobile m = nsk.Mobile;
			if ( m == null )
			{
				continue;
			}
			else
			{
				if ((from.AccessLevel == AccessLevel.Player && (( m.AccessLevel == AccessLevel.Counselor && m.Hidden ) || m.AccessLevel >= AccessLevel.GameMaster )) || (from.AccessLevel >= AccessLevel.Player && m.AccessLevel > from.AccessLevel))
				{
					--t;
				}
			}
		}
	}

         AddImageTiled( 15, 37, 190, 17, 5154 );
         AddLabel( 17, 36, 0x25, "Online :" );
         AddHtml( 160, 37, 30, 17, "<div align=\"right\" color=\"2100\">"+ t.ToString() +"</div>", false, false );

         AddImageTiled( 210, 37, 190, 17, 5154 );
         AddLabel( 212, 36, 0x68, "Accounts :" );
         AddHtml( 357, 37, 30, 17, "<div align=\"right\" color=\"2100\">"+ Accounts.Table.Count.ToString() +"</div>", false, false );

         AddImageTiled( 405, 37, 190, 17, 5154 );
         AddLabel( 407, 36, 2100, "Uptime :" );
         AddHtml( 485, 37, 109, 17, "<div align=\"right\" color=\"2100\">"+ FormatTimeSpan( DateTime.Now - Clock.ServerStart) +"</div>", false, false );

         AddImageTiled( 600, 37, 185, 17, 5154 );
         AddLabel( 602, 36, 2100, "RAM in use :" );
         AddHtml( 700, 37, 75, 17, "<div align=\"right\" color=\"2100\">"+ FormatByteAmount( GC.GetTotalMemory( false ) ) +"</div>", false, false );
            // A3C BB8 DAC E10 13BE 13EC 1400 1432 23F0 238C 23BE 2422 242C 2436 2454 2486 24A4 24AE 24B8 24EA 251C 254E 2557 2560 ?2776?
         AddBackground( 15, 59, 770, 526, 0x2454);
         AddBlackAlpha( 18, 62, 763, 520);
         AddLabelCropped(  20, 60, 220, 20, 2100, "Name" );
         AddLabelCropped( 222, 60, 209, 20, 2100, "Guild" );
         AddLabelCropped( 453, 60, 60, 20, 2100, "SumStats" );
         AddLabelCropped( 515, 60, 60, 20, 2100, "Skills" );
         AddLabelCropped( 577, 60, 60, 20, 2100, "Karma" );
         AddLabelCropped( 639, 60, 60, 20, 2100, "Fame" );
         AddLabelCropped( 701, 60, 60, 20, 2100, "Kills" );

         if ( m_List == null )
            m_List = new ArrayList( NetState.Instances );

         if ( listPage > 0 )
            AddButton( 744, 62, 0x15E3, 0x15E7, 1, GumpButtonType.Reply, 0 );
         else
            AddImage( 744, 62, 0x25EA );

         if ( (listPage + 1) * 25 < m_List.Count )
            AddButton( 761, 62, 0x15E1, 0x15E5, 2, GumpButtonType.Reply, 0 );
         else
            AddImage( 761, 62, 0x25E6 );

         if ( m_List.Count == 0 )
            AddLabel( 20, 80, 0x25, "There are no clients to display." );
         
         int k = 0;
         
         if ( listPage > 0 )
         {
            for ( int z = 0; z < ( listPage - 1 ); ++z )
            {
               k = k + Convert.ToInt32(m_CountList[z]);
            }
         }
         
         for ( int i = 0, j = 0, index=((listPage*25)+k) ; i < 25 && index >= 0 && index < m_List.Count && j >= 0; ++i, ++j, ++index )
         {
            NetState ns = m_List[index] as NetState;

            if ( ns == null )
               continue;

            Mobile m = ns.Mobile;

            int offset = 80 + (i * 20);

            if ( m == null )
            {
               if ( Admin.AdminNetwork.IsAuth( ns ) )
                  AddLabelCropped( 20, offset, 220, 20, 2100, "(remote admin)" );
               else
                  AddLabelCropped( 20, offset, 220, 20, 2100, "(logging in)" );
            }
            else
            {
               if ((from.AccessLevel == AccessLevel.Player && (( m.AccessLevel == AccessLevel.Counselor && m.Hidden ) || m.AccessLevel >= AccessLevel.GameMaster )) || (from.AccessLevel >= AccessLevel.Player && m.AccessLevel > from.AccessLevel))
               {
                  --i;
               }
               else
               {
                  AddLabelCropped(  20, offset, 220, 20, 2100, m.Name );

                  Guild g = m.Guild as Guild;

                  if ( g != null )
                  {
                     string title = m.GuildTitle;
                     string Ftitle;
                     Ftitle = "[";
                     if ( title != null )
                        title = title.Trim();
                     else
                        title = "";
                     if ( title.Length > 0 )
                     {
                        Ftitle = Ftitle + title + ",";
                     }
                     Ftitle = Ftitle + g.Abbreviation + "]";
                  
                     AddLabelCropped( 222, offset, 209, 20, 2100, Ftitle );
                  }
    }
                    }
               }
          }
     }
}

A Gump is fine, but a Gump with Information is better. Thanks go to BondD.

A.V.
 

Dark Rage

Wanderer
Ja...I was gonna say...this script had already been released by someone and works just fine in 1.0. (with the info, that is)
 
hmm i added this (all the code even) and it compiles and works in game but all i get is character names but none of their info is there. IE, fame karma and such. Any Ideas?

Thanks,
Dan
 

Iomega0318

Sorceror
If yall dont mind me asking.. how do ppl add the status page into their webserver.. i have a site but i dunno how to put it in can anyone help me??
 
Iomega0318 said:
If yall dont mind me asking.. how do ppl add the status page into their webserver.. i have a site but i dunno how to put it in can anyone help me??

Search these boards there is like 5 threads on this subject. Use "status" in your search and you will get the answeres you need.

Dan
 
Top