System FS-ATS Gen2 v2.0.0 2015-02-12

Converted and Fixed and Cleaned Up.

  1. Dragon Slayer

    Dragon Slayer Grandmaster Member

    Dragon Slayer submitted a new resource:

    FS-ATS Gen2 v2.0.0 - Converted and Fixed and Cleaned Up.

    Read more about this resource...
     
    • Like Like x 1
    • Winner Winner x 1
  2. SomeDude

    SomeDude Renowned Member

    Awesome share Slayer :Smile: thx
     
  3. SamP

    SamP Distinguished Member

    Thanks for a great resource. This is one people commonly asked for and dragon slayer has saved a lot of people time by converting this to justuo.

    Does anyone else have a problem with the leveling? I drag and drop the file with no other mods installed. However, there is always 0 "Exp Till Next Level" and as a result a pet will level with each kill regardless of how much XP is gained.
     
  4. Dragon Slayer

    Dragon Slayer Grandmaster Member

    yeah I seen that bug best chance do a such on runuo forums see if any one fixed this I have paged him on servuo but roningt hasn't been around for months
     
  5. SomeDude

    SomeDude Renowned Member

    Did this problem happen befor you Converted and made some fixes Slayer im just woundering maybe missed something i get some time im goin to check this out
     
  6. SamP

    SamP Distinguished Member

    I believe the problem is found in the PetLeveling.CS script line 217. When I change this

    int nextLevel = attacker.NextLevel * attacker.Level;

    to this

    int nextLevel = 1000;

    It works in the sense that your pet has to gain 1000xp to level up every level, where before it was 0xp requirement. Maybe the nextLevel calculation here isn't working correctly.
     
  7. Dragon Slayer

    Dragon Slayer Grandmaster Member

    if i am right it should be based o the monsters level ad how much xp that monster had or animal.. but I cant remember its been so long my self ill have to dig though runuo
     
  8. Dragon Slayer

    Dragon Slayer Grandmaster Member

    okay your right about that code u posted being part of the pet leveling I found this at runuo
    attacker.level is your pet

    int nextLevel = (attacker.Level * 100);
     
  9. Dragon Slayer

    Dragon Slayer Grandmaster Member

    Alright I find a nice balance fix by Lasdat at runuo

    Adding Balence to a fantastic animal leveling system

    Here is an eddit I made to PetLevelGump to help balance my shard not sure if something like this would be of use to you. what I have changed is the amont of ability points needed to purchase each trait.
    1 ap = 5 HP
    1 ap = 5 Stam
    1 Ap = 5 Mana
    2 ap = 1 resist
    3ap = 1 min dam
    3 ap = 1 max damage
    4 ap = 1 ar
    5 ap = 1 Str
    5 ap = 1 Dex
    5 ap = 1 Int
    2 ap = 1 special attack

    Code:
    using System;
    using Server;
    using Server.Gumps;
    using Server.Mobiles;
    using Server.Network;
    
    namespace Server.Gumps
    {
        public class PetLevelGump : Gump
        {
            private Mobile m_Pet;
    
            public PetLevelGump( Mobile pet ) : base( 0, 0 )
            {
                m_Pet = pet;
    
                BaseCreature bc = (BaseCreature)m_Pet;
    
                Closable=true;
                Disposable=true;
                Dragable=true;
                Resizable=false;
    
                AddPage(0);
    
                AddBackground(12, 9, 394, 526, 2620);
                AddImageTiled(17, 15, 384, 113, 9274);
                AddImageTiled(17, 136, 302, 27, 9274);
                AddImageTiled(17, 171, 302, 356, 9274);
                AddImageTiled(326, 136, 76, 27, 9274);
                AddImageTiled(326, 171, 76, 354, 9274);
                AddAlphaRegion(16, 15, 384, 511);
                AddLabel(22, 20, 1149, @"Ability Points:");
                AddLabel(22, 40, 1149, @"Pets Current Level:");
                AddLabel(22, 60, 1149, @"Pets Maxium Level:");
                AddLabel(22, 80, 1149, @"Pets Gender:");
                AddLabel(22, 100, 1149, @"Pets Name:");
    
                AddLabel(116, 20, 64, bc.AbilityPoints.ToString() );
                AddLabel(149, 40, 64, bc.Level.ToString() );
                AddLabel(144, 60, 64, bc.MaxLevel.ToString() );
    
                AddImage(336, 20, 5549);
    
                AddButton(300, 100, 2117, 2118, 1, GumpButtonType.Page, 1);
                AddButton(320, 100, 2117, 2118, 1, GumpButtonType.Page, 2);
              
                if ( bc.Female == true )
                    AddLabel(107, 80, 64, @"Female");
                else
                    AddLabel(107, 80, 64, @"Male");
                AddLabel(96, 100, 64, bc.Name.ToString() );
    
                AddLabel(22, 140, 1149, @"Property Name");
                AddLabel(330, 140, 1149, @"Amount");
    
                AddPage(1);
    
                if ( bc.Level != 0 )
                {
                    AddLabel(60, 175, 1149, @"Hit Points   (1 A.P. = +5 Hits)");
                    AddLabel(60, 200, 1149, @"Stamina     (1 A.P. = +5 Stam)");
                    AddLabel(60, 225, 1149, @"Mana       (1 A.P. = +5 Mana)");
    
                    AddLabel(330, 175, 1149, bc.HitsMax.ToString() + "/" + FSATS.NormalHITS.ToString() );
                    AddLabel(330, 200, 1149, bc.StamMax.ToString() + "/" + FSATS.NormalSTAM.ToString() );
                    AddLabel(330, 225, 1149, bc.ManaMax.ToString() + "/" + FSATS.NormalMANA.ToString() );
    
                    AddButton(24, 175, 4005, 4006, 1, GumpButtonType.Reply, 0);
                    AddButton(24, 200, 4005, 4006, 2, GumpButtonType.Reply, 0);
                    AddButton(24, 225, 4005, 4006, 3, GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(60, 175, 38, @"-Locked-");
                    AddLabel(60, 200, 38, @"-Locked-");
                    AddLabel(60, 225, 38, @"-Locked-");
    
                    AddLabel(330, 175, 38, @"???");
                    AddLabel(330, 200, 38, @"???");
                    AddLabel(330, 225, 38, @"???");
                }
    
                if ( bc.Level >= 20 )
                {
                    AddLabel(60, 250, 1149, @"Physical Resistance     (2 A.P. = +1 P.R.)");
                    AddLabel(60, 275, 1149, @"Fire Resistance         (2 A.P. = +1 F.R.)");
                    AddLabel(60, 300, 1149, @"Cold Resistance         (2 A.P. = +1 C.R.)");
                    AddLabel(60, 325, 1149, @"Energy Resistance       (2 A.P. = +1 E.R.)");
                    AddLabel(60, 350, 1149, @"Poison Resistance       (2 A.P. = +1 P.R.)");
    
                    AddLabel(330, 250, 1149, bc.PhysicalResistance.ToString() + "/" + FSATS.NormalPhys.ToString() );
                    AddLabel(330, 275, 1149, bc.FireResistance.ToString() + "/" + FSATS.NormalFire.ToString() );
                    AddLabel(330, 300, 1149, bc.ColdResistance.ToString() + "/" + FSATS.NormalCold.ToString() );
                    AddLabel(330, 325, 1149, bc.EnergyResistance.ToString() + "/" + FSATS.NormalEnergy.ToString() );
                    AddLabel(330, 350, 1149, bc.PoisonResistance.ToString() + "/" + FSATS.NormalPoison.ToString() );
    
                    AddButton(24, 250, 4005, 4006, 4, GumpButtonType.Reply, 0);
                    AddButton(24, 275, 4005, 4006, 5, GumpButtonType.Reply, 0);
                    AddButton(24, 300, 4005, 4006, 6, GumpButtonType.Reply, 0);
                    AddButton(24, 325, 4005, 4006, 7, GumpButtonType.Reply, 0);
                    AddButton(24, 350, 4005, 4006, 8, GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(60, 250, 38, @"-Locked-");
                    AddLabel(60, 275, 38, @"-Locked-");
                    AddLabel(60, 300, 38, @"-Locked-");
                    AddLabel(60, 325, 38, @"-Locked-");
                    AddLabel(60, 350, 38, @"-Locked-");
    
                    AddLabel(330, 250, 38, @"???");
                    AddLabel(330, 275, 38, @"???");
                    AddLabel(330, 300, 38, @"???");
                    AddLabel(330, 325, 38, @"???");
                    AddLabel(330, 350, 38, @"???");
                }
    
                if ( bc.Level >= 40 )
                {
                    AddLabel(60, 375, 1149, @"Min Damage        (3 A.P. = 1 Mn.D.)");
                    AddLabel(60, 400, 1149, @"Max Damage        (3 A.P. = 1 Mx.D.)");
    
                    AddLabel(330, 375, 1149, bc.DamageMin.ToString() + "/"  + FSATS.NormalMinDam.ToString() );
                    AddLabel(330, 400, 1149, bc.DamageMax.ToString() + "/"  + FSATS.NormalMaxDam.ToString() );
    
                    AddButton(24, 375, 4005, 4006, 9, GumpButtonType.Reply, 0);
                    AddButton(24, 400, 4005, 4006, 10, GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(60, 375, 38, @"-Locked-");
                    AddLabel(60, 400, 38, @"-Locked-");
    
                    AddLabel(330, 375, 38, @"???");
                    AddLabel(330, 400, 38, @"???");
                }
              
                if ( bc.Level >= 60 )
                {
                    AddLabel(60, 425, 1149, @"Armor Rating        (4 A.P. = +1 AR)");
    
                    AddLabel(330, 425, 1149, bc.VirtualArmor.ToString() + "/" + FSATS.NormalVArmor.ToString() );
    
                    AddButton(24, 425, 4005, 4006, 11, GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(60, 425, 38, @"-Locked-");
    
                    AddLabel(330, 425, 38, @"???");
                }
    
                if ( bc.Level >= 80 )
                {
                    AddLabel(60, 450, 1149, @"Strength       (5 A.P. = +1 Strength)");
                    AddLabel(60, 475, 1149, @"Dexterity     (5 A.P. = +1 Dexterity)");
                    AddLabel(60, 500, 1149, @"Intelligence (5 A.P. = +1 Intelligence)");
    
                    AddLabel(330, 450, 1149, bc.RawStr.ToString() + "/" + FSATS.NormalSTR.ToString() );
                    AddLabel(330, 475, 1149, bc.RawDex.ToString() + "/" + FSATS.NormalDEX.ToString() );
                    AddLabel(330, 500, 1149, bc.RawInt.ToString() + "/" + FSATS.NormalINT.ToString() );
    
                    AddButton(24, 450, 4005, 4006, 12, GumpButtonType.Reply, 0);
                    AddButton(24, 475, 4005, 4006, 13, GumpButtonType.Reply, 0);
                    AddButton(24, 500, 4005, 4006, 14, GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(60, 450, 38, @"-Locked-");
                    AddLabel(60, 475, 38, @"-Locked-");
                    AddLabel(60, 500, 38, @"-Locked-");
    
                    AddLabel(330, 450, 38, @"???");
                    AddLabel(330, 475, 38, @"???");
                    AddLabel(330, 500, 38, @"???");
                }
    
                AddPage(2);
    
                if ( bc.Level > 90 )
                {
                    AddLabel(60, 175, 1149, @"Roar         (2 A.P. = +1 Attack)");
                    AddLabel(60, 200, 1149, @"Poison       (2 A.P. = +1 Attack)");
                    AddLabel(60, 225, 1149, @"Fire Breath  (2 A.P. = +1 Attack)");
    
                    AddLabel(330, 175, 1149, bc.RoarAttack.ToString() + "/" + "100" );
                    AddLabel(330, 200, 1149, bc.PetPoisonAttack.ToString() + "/" + "100" );
                    AddLabel(330, 225, 1149, bc.FireBreathAttack.ToString() + "/" + "100" );
    
                    AddButton(24, 175, 4005, 4006, 15, GumpButtonType.Reply, 0);
                    AddButton(24, 200, 4005, 4006, 16, GumpButtonType.Reply, 0);
                    AddButton(24, 225, 4005, 4006, 17, GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(60, 175, 38, @"-Locked-");
                    AddLabel(60, 200, 38, @"-Locked-");
                    AddLabel(60, 225, 38, @"-Locked-");
    
                    AddLabel(330, 175, 38, @"???");
                    AddLabel(330, 200, 38, @"???");
                    AddLabel(330, 225, 38, @"???");
                }
    
            }
    
            public override void OnResponse( NetState state, RelayInfo info )
            {
                Mobile from = state.Mobile;
    
                BaseCreature bc = (BaseCreature)m_Pet;
    
                if ( from == null )
                    return;
    
                if ( info.ButtonID == 1 )
                {
                    if ( bc.HitsMax >= FSATS.NormalHITS )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 1;
    
                        if ( bc.HitsMaxSeed != -1 )
                            bc.HitsMaxSeed += 5;
                        else
                            bc.HitsMaxSeed = bc.HitsMax + 5;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 2 )
                {
                    if ( bc.StamMax >= FSATS.NormalSTAM )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 1;
    
                        if ( bc.StamMaxSeed != -1 )
                            bc.StamMaxSeed += 5;
                        else
                            bc.StamMaxSeed = bc.StamMax + 5;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 3 )
                {
                    if ( bc.ManaMax >= FSATS.NormalMANA )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 1;
                  
                        if ( bc.ManaMaxSeed != -1 )
                            bc.ManaMaxSeed += 5;
                        else
                            bc.ManaMaxSeed = bc.ManaMax + 5;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 4 )
                {
                    if ( bc.PhysicalResistance >= FSATS.NormalPhys )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.PhysicalResistanceSeed += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 5 )
                {
                    if ( bc.FireResistance >= FSATS.NormalFire )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.FireResistSeed += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 6 )
                {
                    if ( bc.ColdResistance >= FSATS.NormalCold )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.ColdResistSeed += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 7 )
                {
                    if ( bc.EnergyResistance >= FSATS.NormalEnergy )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.EnergyResistSeed += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 8 )
                {
                    if ( bc.PoisonResistance >= FSATS.NormalPoison )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.PoisonResistSeed += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 9 )
                {
                    if ( bc.DamageMin >= FSATS.NormalMinDam )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 3;
                        bc.DamageMin += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 10 )
                {
                    if ( bc.DamageMax >= FSATS.NormalMaxDam )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 3;
                        bc.DamageMax += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 11 )
                {
                    if ( bc.VirtualArmor >= FSATS.NormalVArmor )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 4;
                        bc.VirtualArmor += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 12 )
                {
                    if ( bc.RawStr >= FSATS.NormalSTR )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 5;
                        bc.Str += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 13 )
                {
                    if ( bc.RawDex >= FSATS.NormalDEX )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 5;
                        bc.Dex += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 14 )
                {
                    if ( bc.RawInt >= FSATS.NormalINT )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 5;
                        bc.Int += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 15 )
                {
                    if ( bc.RoarAttack >= 100 )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.RoarAttack += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 16 )
                {
                    if ( bc.PetPoisonAttack >= 100 )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.PetPoisonAttack  += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
    
                if ( info.ButtonID == 17 )
                {
                    if ( bc.FireBreathAttack >= 100 )
                    {
                        from.SendMessage( "This cannot gain any farther." );
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else if ( bc.AbilityPoints != 0 )
                    {
                        bc.AbilityPoints -= 2;
                        bc.FireBreathAttack += 1;
    
                        if ( bc.AbilityPoints != 0 )
                            from.SendGump( new PetLevelGump( bc ) );
                    }
                    else
                    {
                        from.SendMessage( "Your pet lacks the ability points to do that." );
                    }
                }
            }
        }
    }
    I made this change to PetLevel
    this lowers the xp as the level raises

    Code:
    if ( attacker.Controlled == true && attacker.ControlMaster != null && attacker.Summoned == false )
                    {
                        BaseCreature bc = (BaseCreature)defender;
    
                        expgainmin = (bc.HitsMax /10 ) + (bc.RawStr + bc.RawDex + bc.RawInt) / (2 +bc.Level);
                        expgainmax = (bc.HitsMax /10 ) + (bc.RawStr + bc.RawDex + bc.RawInt) / (1 +bc.Level);
    =1=l                                                                                                                                                                                        // this causes them  to hunt harder and harder thing in order to gain a level
                        int xpgain = Utility.RandomMinMax( expgainmin, expgainmax );
    Now what I am having problems with is on the level settings it sets every thing at a max. what I would like it to do is set it to a number over the original base of the creature. so say the max is set to 250 for Str. and a bunny spawns with 10 Str. the bunny's Str max would be 260 (10 + 250)
    and if a dragon spawns with 500 Str its Cap Would be 750. but I am having problems with it converting int to string.

    I hope these changes help you in your balencing your system:cool:
     
  10. Dragon Slayer

    Dragon Slayer Grandmaster Member

    stopping breading at a age point for pets
    Here is the edit I made to pet leveling to stop breeding at high level.
    this allows breeding from lvl 25 - 75 only change those numbers to the levels you want.
    Code:
                                                   if ( attacker.Level == 25 )
                            {
                                attacker.AllowMating = true;
                                cm.SendMessage( 1161, "Your pet is now at the level to mate." );
                            }
                            if ( attacker.Level == 75 )
                            {
                                attacker.AllowMating = false;
                                cm.SendMessage( 1161, "Your pet is now to old to mate." );
                            }
    
     
  11. Dragon Slayer

    Dragon Slayer Grandmaster Member

    limiting breading
    Okay this compiles but not fully tested.
    in base creature find all places it has Level and add these edits.
    this should stop breeding at 5 babies.

    Code:
    private int m_Level = 1;
            private int m_MaxLevel;
            private int m_Babies =0;//<---------------------add
    Code:
            [CommandProperty( AccessLevel.GameMaster )]
            public int Level
            {
                get{ return m_Level; }
                set{ m_Level = value; }
            }
            [CommandProperty( AccessLevel.GameMaster )]//<<<<<<<<<<<add this
            public int Babies                                                        //<<<<<<<<<<<add this
            {                                                                                   //<<<<<<<<<<<add this
                get{ return m_Babies; }                                     //<<<<<<<<<<<add this
                set{ m_Babies = value; }                                     //<<<<<<<<<<<add this
            }
    Code:
                           writer.Write( (int) m_Level );
                writer.Write( (int) m_Babies );
                writer.Write( (int) m_MaxLevel );              //<<<<<<<<<<<add this
    Code:
                                    m_Level = reader.ReadInt();
                    m_Babies = reader.ReadInt();               //<<<<<<<<<<<add this
                    m_MaxLevel = reader.ReadInt();
     
  12. Dragon Slayer

    Dragon Slayer Grandmaster Member

    In breedingacceptincgump make this change

    Code:
    if ( bc1 != null || bc2 != null )
                        {
                            bc1.MatingDelay = DateTime.Now + TimeSpan.FromHours( 144.0 );
                            bc1.Babies = +1        ;         //<<<<<<<<<<<add this       
                            bc2.MatingDelay = DateTime.Now + TimeSpan.FromHours( 144.0 );
                            bc2.Babies = +1    ;                        //<<<<<<<<<<<add this
                        }
                    }
    and in petleveling make this addition

    Code:
    if ( attacker.Level == 25 )
                            {
                                attacker.AllowMating = true;
                                cm.SendMessage( 1161, "Your pet is now at the level to mate." );
                            }
                            if ( attacker.Level == 75 )
                            {
                                attacker.AllowMating = false;
                                cm.SendMessage( 1161, "Your pet is now to old to mate." );
                            }
                            if ( attacker.Babies == Utility.RandomMinMax( 7, 13))//<<<<<<<<<<<add this limits number of babies to random 7 -13
                            {                                           //<<<<<<<<<<<add this
                        attacker.AllowMating = false;  //<<<<<<<<<<<add this
    cm.SendMessage( 1161, "Your pet has become Sterile and can not mate." );//<<<<<<<<<<<add this
                            }//<<<<<<<<<<<add this
     
  13. Döschl

    Döschl Super Contributor

    there is an error with the smallmobilebod.

    servercrash with this error:

    Code:
    System.NullReferenceException: Object reference not set to an object instance.
       (list Object Property List) at Server.Engines.BulkOrders.SmallMobileBOD.GetProperties
       at Server.Item.get_PropertyList () in c: \ JustUO R1 \ Server \ Item.cs: Line 2080th
       at Server.Item.InvalidateProperties () in c: \ JustUO R1 \ Server \ Item.cs: line 2132nd
       at Server.Item.MoveToWorld (Point3D location, Map map) in c: \ JustUO R1 \ Server \ Item.cs: Line 1830th
       at Server.Item.DropToWorld (from Mobile, Point3D p) in c: \ JustUO R1 \ Server \ Item.cs: Line 5077th
       at Server.Mobile.Drop (Point3D loc) in c: \ JustUO R1 \ Server \ Mobile.cs: Line 4870th
       at Server.Network.PacketHandlers.DropReq6017 (netstate state, PacketReader pvSrc) in c: \ JustUO R1 \ Server \ Network \ PacketHandlers.cs: Line 1158th
       at Server.Network.MessagePump.HandleReceive (netstate ns) in c: \ JustUO R1 \ Server \ Network \ MessagePump.cs: Line 313th
       at Server.Network.MessagePump.Slice () in c: \ JustUO R1 \ Server \ Network \ MessagePump.cs: Line 131st
       at Server.Core.Main (String [] args) in c: \ JustUO R1 \ Server \ Main.cs: Line 639th
     
  14. Dian

    Dian Administrator

    When did it crash.. Please provide more information: Did it crash when you received the BOD, when you tried to fill the BOD, or when you tried to turn IN your BOD?
     
  15. Döschl

    Döschl Super Contributor

    it crashes after .add smalltamingbod ....on the ground. if you move the bod, then server crashes .... or if you try to drag and drop the bod. from an animalvendor i didnt get a small taming bod...only large
     
  16. Döschl

    Döschl Super Contributor

    the bod didnt have a name or somlike this...mouseover it...nothing shows.
     
  17. Dian

    Dian Administrator

    Adding one that way will not enter any information to the BOD, so yeah.. that may be the null reference crash right there. They are meant to be created from the vendor, where the vendor does checks to determine what information to put on the BOD prior to giving it to the player.

    Either way, there really should be some null checks on the BOD's though, it seems.
     
  18. Dian

    Dian Administrator

    If you are just trying to test the system, set the time span for NextBOD to a very small time frame.
     
  19. Döschl

    Döschl Super Contributor

    k tried it.... i get only large bods...no small...nothing happens but an sysmessage: you can get an order now.

    and btw ... a small tailor bod i can add over .add smalltailorbod without errors.
     
  20. Dian

    Dian Administrator

    First.. BOD's large or small are decided on your skill. You have over (I think) 70 skill taming/lore you will get Large BOD's.. set your skill lower than 70's to get a small BOD.

    If you are only getting the message, and no BOD - You do not have the Taming folder in the correct location in the Data folder. Place the Taming folder with all of the *.CFG files in "Data/Bulk Orders" directory.
     
  21. Döschl

    Döschl Super Contributor

    omg you're right ... damn
    the folder ^^
     
  22. Dian

    Dian Administrator

    :Thumbsup:
     
    • Like Like x 1
  23. Omegaexdeath

    Omegaexdeath Distinguished Member

    *Edited Solved* my next post
    "What did I do,
    Okay so I just setup a justuo release 2 server, to try it out & the first thing I did was add this system, replaced originals with the distro files... & am getting 'QLPoints' does not exist in the current context for a number of Mobiles ..."
     
    Last edited: May 11, 2015
  24. Crymi

    Crymi Illustrious Member

    can you post the actual error message in code please.. This will help us locate the problem and set us on our way of fixing it
     
  25. Omegaexdeath

    Omegaexdeath Distinguished Member

    *EDITED*

    QlPoints Queen Loyalty Points should have clicked right away seeing as its the first system I ever made edits to but ya know...:Wacky::Roflmao::Rolleyes:
    the reason for the error is some difference in Dragonslayers Player mobile involving the QLP system
    I got FSATS working by editing Player Mobile, BaseCreature, BaseVendor myself no worries
    may still need to go back & replace/edit other scripts in distro after testing but for now it compiles:X3:
     
    Last edited: May 11, 2015

Share This Page