jayates

Member
Why would this happen? You go and hand the pet claim ticket to the breeder and they don't except it. You get a message that says: Error! Contact Gamemaster
 
What system are you using? This is not a real UO feature so more information is required.
 
Sorry, I should have put in the post that i'm using FS-ATS Gen2 and when I went to turn in the pet claim ticket to the breeder it returned it to my pack. I got a message saying: Error! Contact Gamemaster.
[doublepost=1499041984][/doublepost]Here's the breeder script
Code:
using System;
using System.Collections;
using Server;
using Server.Gumps;
using Server.Items;
using Server.Network;
using Server.Targeting;
using Server.ContextMenus;
using System.Collections.Generic;

namespace Server.Mobiles
{
    public class AnimalBreeder : BaseVendor
    {
        //private ArrayList m_SBInfos = new ArrayList();
        //protected override ArrayList SBInfos{ get { return m_SBInfos; } }
        private List<SBInfo> m_SBInfos = new List<SBInfo>();
        protected override List<SBInfo> SBInfos { get { return m_SBInfos; } }

        [Constructable]
        public AnimalBreeder() : base( "the animal breeder" )
        {
            SetSkill( SkillName.AnimalLore, 64.0, 100.0 );
            SetSkill( SkillName.AnimalTaming, 90.0, 100.0 );
            SetSkill( SkillName.Veterinary, 65.0, 88.0 );
        }

        public override void InitSBInfo()
        {
            //m_SBInfos.Add( new SBAnimalTrainer() );
        }

        public override VendorShoeType ShoeType
        {
            get{ return Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots; }
        }

        public override int GetShoeHue()
        {
            return 0;
        }

        public override void InitOutfit()
        {
            base.InitOutfit();

            AddItem( Utility.RandomBool() ? (Item)new QuarterStaff() : (Item)new ShepherdsCrook() );
        }

        public AnimalBreeder( Serial serial ) : base( serial )
        {
        }

        public override bool OnDragDrop( Mobile from, Item dropped )
        {
            if ( dropped is PetClaimTicket )
            {
                PetClaimTicket pct = (PetClaimTicket)dropped;
                if ( pct.Time <= DateTime.UtcNow )
                {
                    if ( pct.Pet == null )
                    {
                        from.SendMessage( "Error! Contact Gamemaster" );
                                           
                        return false;
                    }
                    else if ( from.Followers == 0 )
                    {
                        Type pettype = pct.Pet.GetType();
                        BaseCreature bc = (BaseCreature)pct.Pet;

                        bc.IsStabled = true;
                        from.Stabled.Add( bc );
                        this.SayTo( from, "I have put your pet that was mating in the stable under you name." );

                        BaseCreature baby = null;
  
                        if ( pettype != null )
                        {
                            object o = Activator.CreateInstance( pettype );
                                baby = o as BaseCreature;
                        }

                        if ( baby == null )
                        {
                            from.SendMessage( 38, "There was an internal error and breeding has failed due to lack of type, Please contact a member of the staff." );
                            return false;
                        }
                        else
                        {
                            if ( from == pct.Owner )
                            {
                                if ( Banker.Withdraw( from, pct.Price ) )
                                {
                                    from.SendLocalizedMessage( 1060398, pct.Price.ToString() );
                                    from.SendLocalizedMessage( 1060022, Banker.GetBalance( from ).ToString() );

                                    baby.Str = pct.Str;
                                    baby.Dex = pct.Dex;
                                    baby.Int = pct.Int;
                                    baby.HitsMaxSeed = pct.Hits;
                                    baby.StamMaxSeed = pct.Stam;
                                    baby.ManaMaxSeed = pct.Mana;
                                    baby.PhysicalResistanceSeed = pct.Phys;
                                    baby.FireResistSeed = pct.Fire;
                                    baby.ColdResistSeed = pct.Cold;
                                    baby.EnergyResistSeed = pct.Nrgy;
                                    baby.PoisonResistSeed = pct.Pois;
                                    baby.DamageMin = pct.Dmin;
                                    baby.DamageMax = pct.Dmax;
                                    baby.MaxLevel = pct.Mlev;
                                    baby.Generation = pct.Gen + 1;

                                        baby.Controlled = true;
                                        baby.ControlMaster = from;
                                        baby.Location = from.Location;
                                    baby.ControlOrder = OrderType.Follow;
                                    baby.ControlTarget = from;
                                        baby.Map = from.Map;
                                    baby.Name = baby.Name + " baby";

                                    if ( pct.AI == 1 )
                                        baby.AI = AIType.AI_Mage;
                                    else if ( pct.AI == 2 )
                                        baby.AI = AIType.AI_Melee;

                                        World.AddMobile( baby );

                                    pct.Delete();

                                    return true;
                                }
                                else
                                {
                                    this.SayTo( from, "Hey! you tring to cheat me! This anit for free buddy." );
                                    from.SendMessage( "You lack the gold in your banking account to do this." );
                                    return false;
                                }
                            }
                            else
                            {
                                this.SayTo( from, "You are not the owner of this deed." );
                                return false;
                            }
                        }
                    }
                    else
                    {
                        this.SayTo( from, "Please stable or shrink all your pets before we go on." );
                        return false;
                    }
                }
                else
                {
                    if ( pct.Pet != null )
                    {
                        this.SayTo( from, "Your pet {0} is not done mating yet, Please check back later.", pct.Pet.Name );
                        return false;
                    }
                    else
                    {
                        from.SendMessage( "Error in your (Pet Claim Ticket) please contact the staff." );
                        return false;
                    }
                }
            }
            else
            {
                return false;
            }
              
        }

        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 0 ); // version
        }

        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();
        }
    }
}
 
Last edited:
I've had that happen a few times too, and when you props the ticket, the pet is NULL. I'm not sure if it's because the pet is either killed, or dies, or goes wild? I haven't been able to pinpoint any consistent issues other than the ticket is NULL.
 
Was the pet that you were breeding a custom pet?
Was it happy/content before you bred it?
What is it's MinTameSkill compared to your player's Taming?

Pets can go wild while stabled, and that's essentially what happens when they're in limbo for breeding.
 
We've only had a couple tickets so far, so going forward I'm just going to keep track of the pet type, the status, the taming skill, etc to see if it's the same thing causing it. We haven't had one in a while now.
 

Active Shards

Donations

Total amount
$0.00
Goal
$1,000.00
Back