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!

OWLRT assistance please

daat99

Moderator
Staff member
If your lag is caused by the items than you would experience it only when you are in the vicinity of the items (64 steps away if I remember correctly).

If you experience this lag when you are not even remotely close to those items than they aren't the issue.

Other issues might be a script you have installed or a modification to one of the RunUO core/server files that caused massive overhead when you are not in your admin form.
 

jezika

Traveler
ok let me go check to see if im lagging by the items and not by the items

ok where I placed a hue tub house in nujelm, its horrible so I went to a town where I didn't touch it at all-Heartwood- and its still pretty horrid. I don't think I changed anything in the actual server core folder though. what would be the issue?
 

Hammerhand

Knight
An anti-virus program scanning could do it, as could others.. check your running processes (TaskManager - Right click on the task bar & select Task Manager) for CPU usage and see if you can track down a process thats using CPU time at a high level.
 

jezika

Traveler
ok checking that now.

UO is using 01-05 ranges and im not moving (weird) iexplorer 01-03 and taskmgr.exe 01 everything else is 00

nothing strangely high or abnormal
 

jezika

Traveler
If your lag is caused by the items than you would experience it only when you are in the vicinity of the items (64 steps away if I remember correctly).

If you experience this lag when you are not even remotely close to those items than they aren't the issue.

Other issues might be a script you have installed or a modification to one of the RunUO core/server files that caused massive overhead when you are not in your admin form.



Daat, you stated "Other issues might be a script you have installed or a modification to one of the RunUO core/server files that caused massive overhead when you are not in your admin form." what do you mean by That caused massive overhead. like a strain on the system?
 

jezika

Traveler
created a 2nd account. no admin rights just normal player mode....no latency issue with her...odd so why would I have issues with the admin account going from admin (no lag) to player ( major lag) and a normal account with no latency issues. this is quite weird to me.
 

Hammerhand

Knight
Just what do you mean going from admin to player? Using a staff orb or similiar? Dbl click & it changes you from staff to player & back again?
 

jezika

Traveler
that would be correct Hammerhand. I am using the staff orb. when I double click the orb in admin mode, it changes me to a normal player. that is when I notice the choppiness. on a normal account without the orb, im fine. only on the admins account. my daughter states that her GM account she does not notice any choppiness when she changes to gm to player. so its only admin to player I suppose. ill create a gm account on my computer to see for myself as well and will post the results

ok results:
I get lag on the gm account as well but only after I use the orb to transform into the gm and back to player. if I stay as "gm" & "admin" I get no choppiness. on my normal account I get no choppiness. only when I change from admin/gm to player is when I get the choppiness. think It might be the orb script causing it?
 

Hammerhand

Knight
Could be the orb isnt fully changing the admin to player or the server just isnt recognizing the change & is trying to keep all the staff level permissions & whatnot attached to the "player". Dunno... personally, I never cared for the orb & would just create a 2nd account for my player. What might work fine on RunUO 2.2 might not on 2.3.
 

jezika

Traveler
I'll do that. keep my admin account separate from my playing account. i'll let my daughter know as well not to mix the 2. you guys are awesome =)
 

daat99

Moderator
Staff member
Using a different account will be best.

As for the overhead I mentioned, there could be a script that doesn't know what's going on and when you run it on the "semi-player, semi-admin" then it doesn't work right.

This can be a script you added, modified or even part of the official release, can't tell.

What is the "CPU" usage of the RunUO.exe when you have this issue?
 

jezika

Traveler
Using a different account will be best.

As for the overhead I mentioned, there could be a script that doesn't know what's going on and when you run it on the "semi-player, semi-admin" then it doesn't work right.

This can be a script you added, modified or even part of the official release, can't tell.

What is the "CPU" usage of the RunUO.exe when you have this issue?


Let me find out for ya
 

jezika

Traveler
Let me find out for ya

on admin account but in "player mode" cpu usage bounces between 00-01 just bounced to 33 runuoserver core . in admin mode its 00-01 watching stays at 00 mostly and jumps to 01 every minute or so for a sec but when the account is in player mode it was 00 and 01 flipping back and forth and once every 30-40 seconds would spike to 33 then return to 01 and 00
 

daat99

Moderator
Staff member
That does sounds like a script doing it.

Can you reproduce it with a stock RunUO version without any edits (except the orb)?
 

jezika

Traveler
ahhh now that the forum is back I can reply to ya. for some reason it's not allowing me to attach the file so ill just copy paste it in the code do-dads
Code:
using System;
using Server;
using Server.Gumps;
using System.Collections;
using Server.ContextMenus;
using System.Collections.Generic;
 
namespace Server.Items
{
    /// <summary>
    /// David O'Hara
    /// 08-13-2004
    /// Version 3.0
    /// This orb allows staff to switch between a Player access level and their current staff level.
    /// It also sets the mortality as appropriate for staff.
    /// A home location can be set/used thru the context menu.
    /// Will auto resurrect it's owner on death.
    /// </summary>
    public class StaffOrb : Item
    {
        private Mobile m_Owner;
        private AccessLevel m_StaffLevel;
        public Point3D m_HomeLocation;
        public Map m_HomeMap;
        private bool m_AutoRes = true;
 
        [Constructable]
        public StaffOrb( ) : base( 0x0E2F )
        {
            LootType = LootType.Blessed;
            Weight = 0;
            Name = "Termax Staff Orb";
        }
 
        public StaffOrb( Serial serial ) : base( serial )
        {
        }
 
        [CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
        public Point3D HomeLocation
        {
            get
            {
                return m_HomeLocation;
            }
            set
            {
                m_HomeLocation = value;
            }
        }
 
        [CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
        public Map HomeMap
        {
            get
            {
                return m_HomeMap;
            }
            set
            {
                m_HomeMap = value;
            }
        }
 
        [CommandProperty( AccessLevel.Counselor)]
        public bool AutoRes
        {
            get
            {
                return m_AutoRes;
            }
            set
            {
                m_AutoRes = value;
            }
        }
 
        private class GoHomeEntry : ContextMenuEntry
        {
            private StaffOrb m_Item;
            private Mobile m_Mobile;
 
            public GoHomeEntry( Mobile from, Item item ) : base( 5134 ) // uses "Goto Loc" entry
            {
                m_Item = (StaffOrb)item;
                m_Mobile = from;
            }
 
            public override void OnClick()
            {
                // go to home location
                m_Mobile.Location = m_Item.HomeLocation;
                if ( m_Item.HomeMap != null )
                    m_Mobile.Map = m_Item.HomeMap;
            }
        }
 
        private class SetHomeEntry : ContextMenuEntry
        {
            private StaffOrb m_Item;
            private Mobile m_Mobile;
 
            public SetHomeEntry( Mobile from, Item item ) : base( 2055 ) // uses "Mark" entry
            {
                m_Item = (StaffOrb)item;
                m_Mobile = from;
            }
 
            public override void OnClick()
            {
                // set home location
                m_Item.HomeLocation = m_Mobile.Location;
                m_Item.HomeMap = m_Mobile.Map;
                m_Mobile.SendMessage( "The home location on your orb has been set to your current position." );
            }
        }
 
        public static void GetContextMenuEntries( Mobile from, Item item, List<ContextMenuEntry> list )
        {
            list.Add( new GoHomeEntry( from, item ) );
            list.Add( new SetHomeEntry( from, item ) );
        }
 
        public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list )
        {
            if ( m_Owner == null )
            {
                return;
            }
            else
            {
                if ( m_Owner != from )
                {
                    from.SendMessage( "This is not yours to use." );
                    return;
                }
                else
                {
                    base.GetContextMenuEntries( from, list );
                    StaffOrb.GetContextMenuEntries( from, this, list );
                }
            }
        }
 
        public override DeathMoveResult OnInventoryDeath(Mobile parent)
        {
            if ( m_AutoRes && parent == m_Owner )
            {
                SwitchAccessLevels( parent );
                new AutoResTimer( parent ).Start();
            }
            return base.OnInventoryDeath (parent);
        }
 
        public override void OnDoubleClick(Mobile from)
        {
            // set owner if not already set -- this is only done the first time.
            if ( m_Owner == null )
            {
                m_Owner = from;
                this.Name = m_Owner.Name.ToString() + "'s Staff Orb";
                this.HomeLocation = from.Location;
                this.HomeMap = from.Map;
                from.SendMessage( "This orb has been assigned to you." );
            }
            else
            {
                if ( m_Owner != from )
                {
                    from.SendMessage( "This is not yours to use." );
                    return;
                }
                else
                {
                    SwitchAccessLevels( from );
                }
            }
        }
 
        private class AutoResTimer : Timer
        {
            private Mobile m_Mobile;
            public AutoResTimer( Mobile mob ) : base( TimeSpan.FromSeconds( 5.0 ) )
            {
                m_Mobile = mob;
            }
 
            protected override void OnTick()
            {
                m_Mobile.Resurrect();
                m_Mobile.SendMessage( "As a staff member, you should be more careful in the future." );
                Stop();
            }
 
        }
 
        private void SwitchAccessLevels( Mobile from )
        {
            // check current access level
            if ( from.AccessLevel == AccessLevel.Player )
            {
                // return to staff status
                from.AccessLevel = m_StaffLevel;
                from.Blessed = true;
                from.Hidden = true;
                if(from.AccessLevel == AccessLevel.Counselor)
                {
                    from.Title = "[Counselor]";
                }
                if(from.AccessLevel == AccessLevel.GameMaster)
                {
                    from.Title = "[GM]";
                }
                if(from.AccessLevel == AccessLevel.Seer)
                {
                    from.Title = "[Seer]";
                }
                if(from.AccessLevel == AccessLevel.Administrator)
                {
                    from.Title = "[Admin]";
                }
                if(from.AccessLevel == AccessLevel.Developer)
                {
                    from.Title = "[Developer]";
                }
                if(from.AccessLevel == AccessLevel.Owner)
                {
                    from.Title = "[Owner]";
                }
            }
            else
            {
                m_StaffLevel = from.AccessLevel;
                from.AccessLevel = AccessLevel.Player;
                from.Blessed = false;
                from.Hidden = false;
                from.Title = null;
            }
        }
 
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );
 
            writer.Write( (int) 3 ); // version
 
            // version 3
            writer.Write( m_AutoRes );
 
            // version 2
            writer.Write( m_HomeLocation );
            writer.Write( m_HomeMap );
 
            writer.Write( m_Owner );
            writer.WriteEncodedInt( (int)m_StaffLevel );
        }
 
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );
 
            int version = reader.ReadInt();
            switch ( version )
            {
                case 3:
                {
                    m_AutoRes = reader.ReadBool();
                    goto case 2;
                }
                case 2:
                {
                    m_HomeLocation = reader.ReadPoint3D();
                    m_HomeMap = reader.ReadMap();
                    goto case 1;
                }
                case 1:
                {
                    m_Owner = reader.ReadMobile();
                    m_StaffLevel = (AccessLevel)reader.ReadEncodedInt();
                    break;
                }
            }
        }
 
    }
}
 

Hammerhand

Knight
Ok, the Termax Staff Orb then... the one used in Neruns Distro. I'll give it a try & see if I can replicate your problem.
 

jezika

Traveler
thanks Hammer =)
I actually have a bunch of questions im trying to find answers to atm so I am checking back and forth between here and 4 other forum sites for clues, guidance and answers as well as talking to another via Skype. so i'll be back again in about an hour =)
 

Hammerhand

Knight
On a freshly compiled 2.3 I'm only getting a tiny change in memory and/or CPU usage in my system on the client.exe*32 (RunUO client exe), Razor.exe *32 & on the RunUO.exe (RunUO ServerCore) after switching from admin to player, then switching back using Termax staff orb. I was running around on the map each time with no indication of lag. I cant seem to replicate the issue on my system, but I'll try a few more times to be sure.
 

jezika

Traveler
lol I should send you a complete copy of my runuo LOL I can zip it and send it via ummmm dropbox or Skype :D
 
Top