Corpse.cs

Specifically(If Default):
Line 408 - Controls how long until the corpse turns into bones.
Line 409 - Controls how long until the bones decay away.

Personally changed mine from 7mins and 7mins (14 mins total from time of player death)
To 10mins and 10mins (20mins total from time of player death)
 
Specifically(If Default):
Line 408 - Controls how long until the corpse turns into bones.
Line 409 - Controls how long until the bones decay away.

Personally changed mine from 7mins and 7mins (14 mins total from time of player death)
To 10mins and 10mins (20mins total from time of player death)
This seems changed? Where do you change how long it takes for player corpses and bone to decay? Where do you change how long it takes for monster corpses to decay?
 
I've been trying to figure this out as well. I made a change in Decayedcorpse.cs (because it was the only reference I could find) and it didn't seem to change anything.
 
If you want to change it, you can adjust it here

Mobile.cs in the Server folder, Line 3656
C#:
        public static TimeSpan DefaultCorpseDecay => _DefaultCorpseDecay;
        public static readonly TimeSpan _DefaultCorpseDecay = TimeSpan.FromMinutes(7);

        public static CreateCorpseHandler CreateCorpseHandler { get => m_CreateCorpse; set => m_CreateCorpse = value; }

        public virtual TimeSpan CorpseDecayTime => _DefaultCorpseDecay;

and also in Corpse.cs starting at Line 387

C#:
        public void TurnToBones()
        {
            if (Deleted)
            {
                return;
            }

            ProcessDelta();
            SendRemovePacket();
            ItemID = Utility.Random(0xECA, 9); // bone graphic
            Hue = 0;
            ProcessDelta();

            SetFlag(CorpseFlag.NoBones, true);
            SetFlag(CorpseFlag.IsBones, true);

            var delay = Owner?.CorpseDecayTime ?? Mobile.DefaultCorpseDecay;
            m_DecayTime = DateTime.UtcNow + delay;

            if (!TimerRegistry.UpdateRegistry(m_TimerID, this, delay))
            {
                TimerRegistry.Register(m_TimerID, this, delay, TimerPriority.FiveSeconds, c => c.DoDecay());
            }
        }

        public void BeginDecay(TimeSpan delay)
        {
            m_DecayTime = DateTime.UtcNow + delay;

            TimerRegistry.Register(m_TimerID, this, delay, TimerPriority.FiveSeconds, c => c.DoDecay());
        }
 
Back