does anyone have any idea why when i set my private server to UOR expansion or lower my mage spells dont show inside my spellbook ingame. but they work if you macro them etc.
 

Attachments

  • spellbook.png
    spellbook.png
    111.1 KB · Views: 23
im useing servuo latest with UOR expansion enabled. this seems to be the problem because when i switch back to aos it works fine.
im new to all this so just looking for abit of help :)
 
Show your Scripts\Items\Equipment\Spellbooks\Spellbook.cs script, we will try to understand. And please specify your version of the client.
 
Last edited:
I think you trying to use ObjectPropertyList packets on Pre-AOS Eras, when this packets don't work, this may affect other packets.
Try check your Scripts\Misc\CurrentExpansion.cs
and if you will find something as this:
C#:
ObjectPropertyList.Enabled = true;
try to change this line to:
C#:
ObjectPropertyList.Enabled = Core.AOS;
 
can also tweak spellbook.cs as so starting at line 806. Might cause other breakage somewhere down the line so will need testing.

//if (ObjectPropertyList.Enabled)
//{
// if (ns.NewSpellbook)
// {
// to.Send(new NewSpellbookContent(this, ItemID, BookOffset + 1, m_Content));
// }
// else
// {
// if (ns.ContainerGridLines)
// {
// to.Send(new SpellbookContent6017(m_Count, BookOffset + 1, m_Content, this));
// }
// else
// {
// to.Send(new SpellbookContent(m_Count, BookOffset + 1, m_Content, this));
// }
// }
//}
//else
//{
if (ns.ContainerGridLines)
{
to.Send(new SpellbookContent6017(m_Count, BookOffset + 1, m_Content, this));
}
else
{
to.Send(new SpellbookContent(m_Count, BookOffset + 1, m_Content, this));
}
//}
Post automatically merged:

If you're going this direction, the next challenge you'll have is in commodity deeds. The commoditydeed.cs doesn't even have an OnSingleClick handler, so you'll need to create one otherwise they'll simply show as empty or filled with no indication of commodity or amount
 
I changed the objectproperty to core.AOS and its has fixxed the spellbook issue, but now the menu drop down on Mobiles does not work. as soon as you change back the object propertylist.enabled = core.aos and vise versa.
 
I believe it may have something to do with this part. but i could be wrong :D
set it true and you get you single click props but not visible spells.
set it false and you loose your single click prop and spells are visible.

C#:
AOS.DisableStatInfluences();

            if (ObjectPropertyList.Enabled)
            {
                PacketHandlers.SingleClickProps = true; // single click for everything is overriden to check object property list
            }
Post automatically merged:

C#:
public virtual void AddProperty(ObjectPropertyList list)
        {
        }

i have also found this inside spellbook. left blank
 
Last edited:
I tested it, it's work for me on latest version of servuo. 1571708707093.png.
You need change your DispayTo method in Spellbook.cs to next:

C#:
        public void DisplayTo(Mobile to)
        {
            // The client must know about the spellbook or it will crash!
            NetState ns = to.NetState;

            if (ns == null)
            {
                return;
            }

            if (Parent == null)
            {
                to.Send(WorldPacket);
            }
            else if (Parent is Item)
            {
                // What will happen if the client doesn't know about our parent?
                if (ns.ContainerGridLines)
                {
                    to.Send(new ContainerContentUpdate6017(this));
                }
                else
                {
                    to.Send(new ContainerContentUpdate(this));
                }
            }
            else if (Parent is Mobile)
            {
                // What will happen if the client doesn't know about our parent?
                to.Send(new EquipUpdate(this));
            }

            if (ns.HighSeas)
            {
                to.Send(new DisplaySpellbookHS(this));
            }
            else
            {
                to.Send(new DisplaySpellbook(this));
            }

        /*    if (ObjectPropertyList.Enabled)
            {
                if (ns.NewSpellbook)
                {
                    to.Send(new NewSpellbookContent(this, ItemID, BookOffset + 1, m_Content));
                }
                else
                {
                    if (ns.ContainerGridLines)
                    {
                        to.Send(new SpellbookContent6017(m_Count, BookOffset + 1, m_Content, this));
                    }
                    else
                    {
                        to.Send(new SpellbookContent(m_Count, BookOffset + 1, m_Content, this));
                    }
                }
            }
            else
            {*/
                if (ns.ContainerGridLines)
                {
                    to.Send(new SpellbookContent6017(m_Count, BookOffset + 1, m_Content, this));
                }
                else
                {
                    to.Send(new SpellbookContent(m_Count, BookOffset + 1, m_Content, this));
                }
        //    }
        }
And enable your ObjectPropertyList if you dissabled it earlier.
ObjectPropertyList.Enabled = true;
 
Back