Banethorn

Member
ServUO Version
Publish 57
Ultima Expansion
Endless Journey
I have looked and can't find the place to turn on recall to inside public houses. Pub 57. Any idea? Thanks!
 
I have looked inside spellhelper.cs, recall.cs and I feel it might be somewhere in houseregion.cs but simply can not find it. Anyone got any ideas? Currently if you recall to a public house you appear in the ban area under the sign outside. Thank you for any suggestions!!
 
In SpellHelper, it's CheckMulti. You would need an additional check for Mobile from to check if the player recalling is the owner, etc.

C#:
public static bool CheckMulti(Point3D p, Map map, bool houses, int housingrange)
        {
            if (map == null || map == Map.Internal)
                return false;

            Sector sector = map.GetSector(p.X, p.Y);

            for (int i = 0; i < sector.Multis.Count; ++i)
            {
                BaseMulti multi = sector.Multis[i];

                if (multi is BaseHouse)
                {
                    BaseHouse bh = (BaseHouse)multi;

                    if ((houses && bh.IsInside(p, 16)) || (housingrange > 0 && bh.InRange(p, housingrange)))
                        return true;
                }
                else if (multi.Contains(p))
                {
                    return true;
                }
            }

            return false;
        }

Or you can just remove the CheckMulti entirely from recall and allow the house to kick players outside of it if they aren't allowed to be in it

C#:
 else if (checkMulti && SpellHelper.CheckMulti(loc, map) && !isboatkey)
            {
                Caster.SendLocalizedMessage(501025); // Something is blocking the location.
            }
 
Tested commenting out that section as I was curious about this as well and even if set to public recalling still takes you to the sign post outside the house. It's probably going to have to be done in spell helper.
 
Tested commenting out that section as I was curious about this as well and even if set to public recalling still takes you to the sign post outside the house. It's probably going to have to be done in spell helper.
Same here, It did not work commenting out those items in recall.cs. I have messed with spellhelper a little but so far I still get dumped at sign in front of house.
 
Ihave messed with everything I can in spellhelper. It is funny, it lets you port but puts you in the ban location under the sign, Been looking in houseregion as well , after 4 hours of screwing with it I am out of ideas.
 
found it, it's in RecallRune > method named Mark

this works, at least in conjunction with the previous block comment mentioned


C#:
public void Mark(Mobile m)
        {
            RecallRuneEmpty();

            m_Marked = true;

            bool setDesc = false;

            m_Galleon = BaseBoat.FindBoatAt(m) as BaseGalleon;

            if (m_Galleon != null)
            {
                Type = RecallRuneType.Ship;
            }
            else
            {
                m_House = BaseHouse.FindHouseAt(m);

                if (m_House == null)
                {
                    Target = m.Location;
                    m_TargetMap = m.Map;

                    Type = RecallRuneType.Normal;
                }
                else
                {
                    HouseSign sign = m_House.Sign;

                    if (sign != null)
                        m_Description = sign.Name;
                    else
                        m_Description = null;

                    if (m_Description == null || (m_Description = m_Description.Trim()).Length == 0)
                        m_Description = "an unnamed house";

                    setDesc = true;

                    /* int x = m_House.BanLocation.X;
                    int y = m_House.BanLocation.Y + 2;
                    int z = m_House.BanLocation.Z;

                    Map map = m_House.Map;

                    if (map != null && !map.CanFit(x, y, z, 16, false, false))
                        z = map.GetAverageZ(x, y); */

                   // Target = new Point3D(x, y, z);
                    Target = m.Location;
                   // m_TargetMap = map;
                    m_TargetMap = m.Map;

                    Type = RecallRuneType.Shop;
                }
            }

            if (!setDesc)
                m_Description = BaseRegion.GetRuneNameFor(Region.Find(Target, m_TargetMap));

            CalculateHue();
            InvalidateProperties();
        }
Confirmed just now, that as staff i can recall into a private home with those edits.
As a player if I try go into a private home i'm booted to the ban location still as should be expected.
 
Last edited:
Awesome, Thanks for finding it, I agree crazy way to do it but heck, whatever lol :)
Tried it and it works like a charm, Thanks a ton!
 
Last edited:

Active Shards

Donations

Total amount
$0.00
Goal
$1,000.00
Back