POLL: Add Taming Level to Animal Lore Results

Discussion in 'Renaissance Discussion' started by Kirby, Jun 19, 2017.

Should the minimum taming level be added to Animal Lore results gump

  1. Yes

    82.2%
  2. No

    4.4%
  3. Who cares?!

    13.3%
  1. Kirby

    Kirby Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 24, 2016
    Messages:
    2,330
    Likes Received:
    2,458
    I don't have anything to back this up, or anything, I just think it would be awesome.

    As it is, if you Lore an animal, you get the bard level. Why can't we add the animal's current taming level to that, too? Barding level doesn't change, right? Taming level does, based on how many people have tamed it. As it is, it's just a complete mystery. Can I tame this? Well, I'll have to sit here and try for 5 minutes before I determine whether I'm failing because too many people have tamed it or because the RNG hates me right now.
  2. Pekka

    Pekka Well-Known Member

    Joined:
    Mar 31, 2017
    Messages:
    754
    Likes Received:
    503
    Very very good idea Kirby. :)
  3. Kirby

    Kirby Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 24, 2016
    Messages:
    2,330
    Likes Received:
    2,458
  4. BabyGerald

    BabyGerald Member

    Joined:
    Jun 18, 2015
    Messages:
    95
    Likes Received:
    89
    It's funny, I was thinking the exact same thing this week. It would really help identify second/third etc. Tames
  5. Lyta

    Lyta Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 29, 2015
    Messages:
    760
    Likes Received:
    1,400
    Telamon talked about this at some point. It had to do with being way more complicated, code wise, than was worth it.

    A bandaid solution might be more feasible; such as getting a sysmessage that something is out of your range or that it is not possible to tame something again.

    I haven't looked at the taming code in RunUO but this is what I heard. Someone more knowledgeable on the source code should comment.
  6. Sara

    Sara Well-Known Member

    Joined:
    Jul 20, 2016
    Messages:
    492
    Likes Received:
    426
    I think it would be cool if you could tell how many times something has been tamed with lore, even if a system message tells you it's untamable at your leave cause it's a retake would be amazing.
  7. LaggMaster

    LaggMaster Active Member

    Joined:
    May 13, 2017
    Messages:
    122
    Likes Received:
    52
    Code:
    using System;
    using Server;
    using Server.Gumps;
    using Server.Mobiles;
    using Server.Targeting;
    
    namespace Server.SkillHandlers
    {
        public class AnimalLore
        {
            public static void Initialize()
            {
                SkillInfo.Table[(int)SkillName.AnimalLore].Callback = new SkillUseCallback( OnUse );
            }
    
            public static TimeSpan OnUse(Mobile m)
            {
                m.Target = new InternalTarget();
    
                m.SendLocalizedMessage( 500328 ); // What animal should I look at?
    
                return TimeSpan.FromSeconds( 1.0 );
            }
    
            private class InternalTarget : Target
            {
                public InternalTarget() : base( 8, false, TargetFlags.None )
                {
                }
    
                protected override void OnTarget( Mobile from, object targeted )
                {
                    if ( !from.Alive )
                    {
                        from.SendLocalizedMessage( 500331 ); // The spirits of the dead are not the province of animal lore.
                    }
                    else if ( targeted is BaseCreature )
                    {
                        BaseCreature c = (BaseCreature)targeted;
    
                        if ( !c.IsDeadPet )
                        {
                            if ( c.Body.IsAnimal || c.Body.IsMonster || c.Body.IsSea )
                            {
                                if ( !c.Controlled && from.Skills[SkillName.AnimalLore].Value < 100.0 )
                                {
                                    from.SendLocalizedMessage( 1049674 ); // At your skill level, you can only lore tamed creatures.
                                }
                                else if ( !c.Controlled && !c.Tamable && from.Skills[SkillName.AnimalLore].Value < 110.0 )
                                {
                                    from.SendLocalizedMessage( 1049675 ); // At your skill level, you can only lore tamed or tameable creatures.
                                }
                                else if ( !from.CheckTargetSkill( SkillName.AnimalLore, c, 0.0, 120.0 ) )
                                {
                                    from.SendLocalizedMessage( 500334 ); // You can't think of anything you know offhand.
                                }
                                else
                                {
                                    from.CloseGump( typeof( AnimalLoreGump ) );
                                    from.SendGump( new AnimalLoreGump( c ) );
                                }
                            }
                            else
                            {
                                from.SendLocalizedMessage( 500329 ); // That's not an animal!
                            }
                        }
                        else
                        {
                            from.SendLocalizedMessage( 500331 ); // The spirits of the dead are not the province of animal lore.
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage( 500329 ); // That's not an animal!
                    }
                }
            }
        }
    
        public class AnimalLoreGump : Gump
        {
            private static string FormatSkill( BaseCreature c, SkillName name )
            {
                Skill skill = c.Skills[name];
    
                if ( skill.Base < 10.0 )
                    return "<div align=right>---</div>";
    
                return String.Format( "<div align=right>{0:F1}</div>", skill.Value );
            }
    
            private static string FormatAttributes( int cur, int max )
            {
                if ( max == 0 )
                    return "<div align=right>---</div>";
    
                return String.Format( "<div align=right>{0}/{1}</div>", cur, max );
            }
    
            private static string FormatStat( int val )
            {
                if ( val == 0 )
                    return "<div align=right>---</div>";
    
                return String.Format( "<div align=right>{0}</div>", val );
            }
    
            private static string FormatDouble( double val )
            {
                if ( val == 0 )
                    return "<div align=right>---</div>";
    
                return String.Format( "<div align=right>{0:F1}</div>", val );
            }
    
            private static string FormatElement( int val )
            {
                if ( val <= 0 )
                    return "<div align=right>---</div>";
    
                return String.Format( "<div align=right>{0}%</div>", val );
            }
    
            #region Mondain's Legacy
            private static string FormatDamage( int min, int max )
            {
                if ( min <= 0 || max <= 0 )
                    return "<div align=right>---</div>";
    
                return String.Format( "<div align=right>{0}-{1}</div>", min, max );
            }
            #endregion
    
            private const int LabelColor = 0x24E5;
    
            public AnimalLoreGump( BaseCreature c ) : base( 250, 50 )
            {
                AddPage( 0 );
    
                AddImage( 100, 100, 2080 );
                AddImage( 118, 137, 2081 );
                AddImage( 118, 207, 2081 );
                AddImage( 118, 277, 2081 );
                AddImage( 118, 347, 2083 );
    
                AddHtml( 147, 108, 210, 18, String.Format( "<center><i>{0}</i></center>", c.Name ), false, false );
    
                AddButton( 240, 77, 2093, 2093, 2, GumpButtonType.Reply, 0 );
    
                AddImage( 140, 138, 2091 );
                AddImage( 140, 335, 2091 );
    
                int pages = ( Core.AOS ? 5 : 3 );
                int page = 0;
    
    
                #region Attributes
                AddPage( ++page );
    
                AddImage( 128, 152, 2086 );
                AddHtmlLocalized( 147, 150, 160, 18, 1049593, 200, false, false ); // Attributes
    
                AddHtmlLocalized( 153, 168, 160, 18, 1049578, LabelColor, false, false ); // Hits
                AddHtml( 280, 168, 75, 18, FormatAttributes( c.Hits, c.HitsMax ), false, false );
    
                AddHtmlLocalized( 153, 186, 160, 18, 1049579, LabelColor, false, false ); // Stamina
                AddHtml( 280, 186, 75, 18, FormatAttributes( c.Stam, c.StamMax ), false, false );
    
                AddHtmlLocalized( 153, 204, 160, 18, 1049580, LabelColor, false, false ); // Mana
                AddHtml( 280, 204, 75, 18, FormatAttributes( c.Mana, c.ManaMax ), false, false );
    
                AddHtmlLocalized( 153, 222, 160, 18, 1028335, LabelColor, false, false ); // Strength
                AddHtml( 320, 222, 35, 18, FormatStat( c.Str ), false, false );
    
                AddHtmlLocalized( 153, 240, 160, 18, 3000113, LabelColor, false, false ); // Dexterity
                AddHtml( 320, 240, 35, 18, FormatStat( c.Dex ), false, false );
    
                AddHtmlLocalized( 153, 258, 160, 18, 3000112, LabelColor, false, false ); // Intelligence
                AddHtml( 320, 258, 35, 18, FormatStat( c.Int ), false, false );
    
                if ( Core.AOS )
                {
                    int y = 276;
    
                    if ( Core.SE )
                    {
                        double bd = Items.BaseInstrument.GetBaseDifficulty( c );
                        if ( c.Uncalmable )
                            bd = 0;
    
                        AddHtmlLocalized( 153, 276, 160, 18, 1070793, LabelColor, false, false ); // Barding Difficulty
                        AddHtml( 320, y, 35, 18, FormatDouble( bd ), false, false );
    
                        y += 18;
                    }
    
                    AddImage( 128, y + 2, 2086 );
                    AddHtmlLocalized( 147, y, 160, 18, 1049594, 200, false, false ); // Loyalty Rating
                    y += 18;
    
                    AddHtmlLocalized( 153, y, 160, 18, (!c.Controlled || c.Loyalty == 0) ? 1061643 : 1049595 + (c.Loyalty / 10), LabelColor, false, false );
                }
                else
                {
                    AddImage( 128, 278, 2086 );
                    AddHtmlLocalized( 147, 276, 160, 18, 3001016, 200, false, false ); // Miscellaneous
    
                    AddHtmlLocalized( 153, 294, 160, 18, 1049581, LabelColor, false, false ); // Armor Rating
                    AddHtml( 320, 294, 35, 18, FormatStat( c.VirtualArmor ), false, false );
                }
    
                AddButton( 340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1 );
                AddButton( 317, 358, 5603, 5607, 0, GumpButtonType.Page, pages );
                #endregion
    
                #region Resistances
                if ( Core.AOS )
                {
                    AddPage( ++page );
    
                    AddImage( 128, 152, 2086 );
                    AddHtmlLocalized( 147, 150, 160, 18, 1061645, 200, false, false ); // Resistances
    
                    AddHtmlLocalized( 153, 168, 160, 18, 1061646, LabelColor, false, false ); // Physical
                    AddHtml( 320, 168, 35, 18, FormatElement( c.PhysicalResistance ), false, false );
    
                    AddHtmlLocalized( 153, 186, 160, 18, 1061647, LabelColor, false, false ); // Fire
                    AddHtml( 320, 186, 35, 18, FormatElement( c.FireResistance ), false, false );
    
                    AddHtmlLocalized( 153, 204, 160, 18, 1061648, LabelColor, false, false ); // Cold
                    AddHtml( 320, 204, 35, 18, FormatElement( c.ColdResistance ), false, false );
    
                    AddHtmlLocalized( 153, 222, 160, 18, 1061649, LabelColor, false, false ); // Poison
                    AddHtml( 320, 222, 35, 18, FormatElement( c.PoisonResistance ), false, false );
    
                    AddHtmlLocalized( 153, 240, 160, 18, 1061650, LabelColor, false, false ); // Energy
                    AddHtml( 320, 240, 35, 18, FormatElement( c.EnergyResistance ), false, false );
    
                    AddButton( 340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1 );
                    AddButton( 317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1 );
                }
                #endregion
    
                #region Damage
                if ( Core.AOS )
                {
                    AddPage( ++page );
    
                    AddImage( 128, 152, 2086 );
                    AddHtmlLocalized( 147, 150, 160, 18, 1017319, 200, false, false ); // Damage
    
                    AddHtmlLocalized( 153, 168, 160, 18, 1061646, LabelColor, false, false ); // Physical
                    AddHtml( 320, 168, 35, 18, FormatElement( c.PhysicalDamage ), false, false );
    
                    AddHtmlLocalized( 153, 186, 160, 18, 1061647, LabelColor, false, false ); // Fire
                    AddHtml( 320, 186, 35, 18, FormatElement( c.FireDamage ), false, false );
    
                    AddHtmlLocalized( 153, 204, 160, 18, 1061648, LabelColor, false, false ); // Cold
                    AddHtml( 320, 204, 35, 18, FormatElement( c.ColdDamage ), false, false );
    
                    AddHtmlLocalized( 153, 222, 160, 18, 1061649, LabelColor, false, false ); // Poison
                    AddHtml( 320, 222, 35, 18, FormatElement( c.PoisonDamage ), false, false );
    
                    AddHtmlLocalized( 153, 240, 160, 18, 1061650, LabelColor, false, false ); // Energy
                    AddHtml( 320, 240, 35, 18, FormatElement( c.EnergyDamage ), false, false );
    
                    #region Mondain's Legacy
                    if ( Core.ML )
                    {
                        AddHtmlLocalized( 153, 258, 160, 18, 1076750, LabelColor, false, false ); // Base Damage
                        AddHtml( 300, 258, 55, 18, FormatDamage( c.DamageMin, c.DamageMax ), false, false );
                    }
                    #endregion
    
                    AddButton( 340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1 );
                    AddButton( 317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1 );
                }
                #endregion
    
                #region Skills
                AddPage( ++page );
    
                AddImage( 128, 152, 2086 );
                AddHtmlLocalized( 147, 150, 160, 18, 3001030, 200, false, false ); // Combat Ratings
    
                AddHtmlLocalized( 153, 168, 160, 18, 1044103, LabelColor, false, false ); // Wrestling
                AddHtml( 320, 168, 35, 18, FormatSkill( c, SkillName.Wrestling ), false, false );
    
                AddHtmlLocalized( 153, 186, 160, 18, 1044087, LabelColor, false, false ); // Tactics
                AddHtml( 320, 186, 35, 18, FormatSkill( c, SkillName.Tactics ), false, false );
    
                AddHtmlLocalized( 153, 204, 160, 18, 1044086, LabelColor, false, false ); // Magic Resistance
                AddHtml( 320, 204, 35, 18, FormatSkill( c, SkillName.MagicResist ), false, false );
    
                AddHtmlLocalized( 153, 222, 160, 18, 1044061, LabelColor, false, false ); // Anatomy
                AddHtml( 320, 222, 35, 18, FormatSkill( c, SkillName.Anatomy ), false, false );
    
                #region Mondain's Legacy
                if ( c is CuSidhe )
                {
                    AddHtmlLocalized( 153, 240, 160, 18, 1044077, LabelColor, false, false ); // Healing
                    AddHtml( 320, 240, 35, 18, FormatSkill( c, SkillName.Healing ), false, false );
                }
                else
                {
                    AddHtmlLocalized( 153, 240, 160, 18, 1044090, LabelColor, false, false ); // Poisoning
                    AddHtml( 320, 240, 35, 18, FormatSkill( c, SkillName.Poisoning ), false, false );
                }
                #endregion
    
                AddImage( 128, 260, 2086 );
                AddHtmlLocalized( 147, 258, 160, 18, 3001032, 200, false, false ); // Lore & Knowledge
    
                AddHtmlLocalized( 153, 276, 160, 18, 1044085, LabelColor, false, false ); // Magery
                AddHtml( 320, 276, 35, 18, FormatSkill( c, SkillName.Magery ), false, false );
    
                AddHtmlLocalized( 153, 294, 160, 18, 1044076, LabelColor, false, false ); // Evaluating Intelligence
                AddHtml( 320, 294, 35, 18,FormatSkill( c, SkillName.EvalInt ), false, false );
    
                AddHtmlLocalized( 153, 312, 160, 18, 1044106, LabelColor, false, false ); // Meditation
                AddHtml( 320, 312, 35, 18, FormatSkill( c, SkillName.Meditation ), false, false );
    
                AddButton( 340, 358, 5601, 5605, 0, GumpButtonType.Page, page + 1 );
                AddButton( 317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1 );
                #endregion
    
                #region Misc
                AddPage( ++page );
    
                AddImage( 128, 152, 2086 );
                AddHtmlLocalized( 147, 150, 160, 18, 1049563, 200, false, false ); // Preferred Foods
    
                int foodPref = 3000340;
    
                if ( (c.FavoriteFood & FoodType.FruitsAndVegies) != 0 )
                    foodPref = 1049565; // Fruits and Vegetables
                else if ( (c.FavoriteFood & FoodType.GrainsAndHay) != 0 )
                    foodPref = 1049566; // Grains and Hay
                else if ( (c.FavoriteFood & FoodType.Fish) != 0 )
                    foodPref = 1049568; // Fish
                else if ( (c.FavoriteFood & FoodType.Meat) != 0 )
                    foodPref = 1049564; // Meat
                else if ( (c.FavoriteFood & FoodType.Eggs) != 0 )
                    foodPref = 1044477; // Eggs
    
                AddHtmlLocalized( 153, 168, 160, 18, foodPref, LabelColor, false, false );
    
                AddImage( 128, 188, 2086 );
                AddHtmlLocalized( 147, 186, 160, 18, 1049569, 200, false, false ); // Pack Instincts
    
                int packInstinct = 3000340;
    
                if ( (c.PackInstinct & PackInstinct.Canine) != 0 )
                    packInstinct = 1049570; // Canine
                else if ( (c.PackInstinct & PackInstinct.Ostard) != 0 )
                    packInstinct = 1049571; // Ostard
                else if ( (c.PackInstinct & PackInstinct.Feline) != 0 )
                    packInstinct = 1049572; // Feline
                else if ( (c.PackInstinct & PackInstinct.Arachnid) != 0 )
                    packInstinct = 1049573; // Arachnid
                else if ( (c.PackInstinct & PackInstinct.Daemon) != 0 )
                    packInstinct = 1049574; // Daemon
                else if ( (c.PackInstinct & PackInstinct.Bear) != 0 )
                    packInstinct = 1049575; // Bear
                else if ( (c.PackInstinct & PackInstinct.Equine) != 0 )
                    packInstinct = 1049576; // Equine
                else if ( (c.PackInstinct & PackInstinct.Bull) != 0 )
                    packInstinct = 1049577; // Bull
    
                AddHtmlLocalized( 153, 204, 160, 18, packInstinct, LabelColor, false, false );
    
                if ( !Core.AOS )
                {
                    AddImage( 128, 224, 2086 );
                    AddHtmlLocalized( 147, 222, 160, 18, 1049594, 200, false, false ); // Loyalty Rating
    
                    AddHtmlLocalized( 153, 240, 160, 18, (!c.Controlled || c.Loyalty == 0) ? 1061643 : 1049595 + (c.Loyalty / 10), LabelColor, false, false );
    
                    AddHtml( 153, 260, 160, 18, "Tame Count", false, false );
                    AddHtml( 320, 260, 35, 18, FormatStat( c.Owners.Count ), false, false );
    
                }
    
                AddButton( 340, 358, 5601, 5605, 0, GumpButtonType.Page, 1 );
                AddButton( 317, 358, 5603, 5607, 0, GumpButtonType.Page, page - 1 );
                #endregion
            }
        }
    }
    Pekka, Lyta and One like this.
  8. LaggMaster

    LaggMaster Active Member

    Joined:
    May 13, 2017
    Messages:
    122
    Likes Received:
    52
    Not sure why it won't set the changed code hue to red. Here is what needs to be added.

    Code:
    AddHtml( 153, 260, 160, 18, "Tame Count", false, false );
    AddHtml( 320, 260, 35, 18, FormatStat( c.Owners.Count ), false, false );
    [​IMG]

    I did the edit the runuo version 2.3
  9. One

    One Well-Known Member
    UO:R Donor

    Joined:
    Jun 22, 2015
    Messages:
    5,818
    Likes Received:
    5,097
    .
    Last edited: Feb 5, 2023
  10. Blaise

    Blaise Well-Known Member
    UO:R Subscriber

    Joined:
    Jul 14, 2012
    Messages:
    7,706
    Likes Received:
    3,632
    Anything we can do to make the plight of the tamer less painful, I'm all for. Is there anything else we could possibly do, to make the most powerful class in the game that you can GM in a week, not so.....challenging?


    *places catch pan for all the dripping sarcasm*
    One, Zyler and wylwrk like this.
  11. Lyta

    Lyta Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 29, 2015
    Messages:
    760
    Likes Received:
    1,400
    You can GM anything in a week. As far as 'hassle to raise' goes, I would consider taming to be highest on that list. What's the harm in a quality of life addition? It's not like a bunch of stun-mages have been chomping at the bit to make a tamer, but not knowing how many times an animal was pre-tamed has been staying their hands.
  12. Blaise

    Blaise Well-Known Member
    UO:R Subscriber

    Joined:
    Jul 14, 2012
    Messages:
    7,706
    Likes Received:
    3,632
    They are already living the top quality life. They need no additions. They need reductions or the shard will continue in perpetuity as "UO Taming" (this is already what people are calling it in other corners of the net).

    If you're not getting gains or success from a potential tame, fucking kill it and move on to the next like a big kid. Stop worrying about a complete non-issue that's only being turned into an issue out of sheer laziness and greed.
  13. Pirul

    Pirul Well-Known Member
    UO:R Subscriber

    Joined:
    May 16, 2013
    Messages:
    3,219
    Likes Received:
    2,468
    Good luck with lockpicking then!
  14. Blaise

    Blaise Well-Known Member
    UO:R Subscriber

    Joined:
    Jul 14, 2012
    Messages:
    7,706
    Likes Received:
    3,632
    lol, try Remove Trap. LP ain't got nothing on that!
  15. Lyta

    Lyta Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 29, 2015
    Messages:
    760
    Likes Received:
    1,400
    Given the bonus from DH I didn't find GMing that necessary. I got to 95 in a couple of days and haven't bothered with the rest. I can do any related content just fine with that setup. But true, lock picking is a pita.
  16. Lyta

    Lyta Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 29, 2015
    Messages:
    760
    Likes Received:
    1,400
    Implementing the display of a property isn't going to affect the number of tamers. If you want reductions you should be championing modifications that will have such an effect. Which is something I would love to see as well. I'd start with how pretty much all high end content is not feasible for anything but a tamer; or maybe if archery didn't blow and most difficult mobs insta-tele with a whiff of anything projectile. Personally my favorite aspect of NoH is how everyone is running around on mages or dexxers.

    Just because you find something to be a non-issue doesn't make it the same for everyone else. If you don't like a suggestion that will have absolutely no affect on game play, fucking ignore it and move on like a big kid. Stop plastering valid suggestions with sarcasm and flippancy just because you are annoyed that everyone and their mom plays a tamer.
    Last edited: Jul 5, 2017
    Shosara likes this.
  17. Blaise

    Blaise Well-Known Member
    UO:R Subscriber

    Joined:
    Jul 14, 2012
    Messages:
    7,706
    Likes Received:
    3,632
    Hey, welcome to the internet and using discussion forums in general. This is a place for discourse regarding topics pertaining to this shard. If you don't like my opinion in any particular conversation, you are also welcome to "fucking ignore it and move on like a big kid".


    Personally my least favorite aspect of NoH is that it's one of the few places those templates actually shine. Not so much in the rest of the game world.

    There are countless improvements that can be made and the only thing this change will help is people trying to semi-afk train their tamers. It's useless and will not be of any good benefit outside of training or using your tamers to aide in the training of other tamers. In my opinion, this is just more frosting on the cake they've been getting fat on for years. I'll pass.
  18. Blaise

    Blaise Well-Known Member
    UO:R Subscriber

    Joined:
    Jul 14, 2012
    Messages:
    7,706
    Likes Received:
    3,632
    There was once a time where players didn't get some magical bullshit bonus for having a practically useless skill give a 5.0 skill bonus to something that should actually take some effort to GM for the benefits you get by having it there.


    le sigh
  19. Lyta

    Lyta Well-Known Member
    UO:R Subscriber

    Joined:
    Oct 29, 2015
    Messages:
    760
    Likes Received:
    1,400
    Thanks, I had no idea what the internet was before now. My parents finally let me get rid of Compuserve so I'm new to all of this.

    I see what you are getting at, but there is another aspect to which I would find this addition more beneficial. I don't have any plans on making more tamers because it is boring as hell. There is an individual, or maybe more, that has been taming and releasing mares. It's been quite frustrating. Am I just having bad luck with the RNG or has the mare been tamed previously and I have no chance?

    So, it would not be completely useless to me and a few others I know. It definitely is a quality of life change and is not necessary; and I agree, there is an infinite pool of changes that would improve the game without really affecting game play. However, given how easy this implementation has been made to appear, I don't see why two lines of code that has even been provided is such a catastrophe. *Shrug* I don't know what Telamon's testing processes are, but given the how benign the function appears to be, I doubt much rigor is needed on QAing something like this either.

    I would love to be able to hunt everywhere as a dexxer (feasibly, not risking million dollar slayers and taking 30x longer to kill something). It would be nice if pet damage and HP were severely nerfed and high end content adjusted accordingly.
    Last edited: Jul 5, 2017
  20. ham

    ham Well-Known Member
    UO:R Subscriber
    UO:R Donor

    Joined:
    Apr 29, 2017
    Messages:
    388
    Likes Received:
    366
    FORK PULL MERGE.

    Maybe we need open source UOR :D

Share This Page