this is for servuo 57

i asked this before but forgot to do it. i want to set a lot of skills to 120 by default and have them not count towards the total skill cap but register as being 120.
 
Look at RewardSystem.cs


public class RewardSystem
{
public static bool Enabled = Config.Get("VetRewards.Enabled", true);
public static int SkillCap = Config.Get("PlayerCaps.TotalSkillCap", 7000);
public static int SkillCapBonus = Config.Get("VetRewards.SkillCapBonus", 200);
public static int SkillCapBonusLevels = Config.Get("VetRewards.SkillCapBonusLevels", 4);
public static TimeSpan RewardInterval = Config.Get("VetRewards.RewardInterval", TimeSpan.FromDays(30.0d));
public static int StartingLevel = Config.Get("VetRewards.StartingLevel", 0);


I would raise TotalSkillCap 7000 to what you require and maybe add the innate skills into CharacterCreation.cs
 
I think this requires a core edit to Skills.cs.

You would need to exclude them from the total skill count. I think the math you want to start messing with is around line 1040 (in my repo at least). There is a switch in Skills that looks like a good starting point. Remember that each skill has a number associated with it, you can likely just do something like

sk != 44 to start removing like Lumberjacking from the total. Wild guess though.

Again, these are core edits. You will likely get tons of errors the more you start tweaking, but this is a very achievable goal.
 
Haven't tested it but i think you should be able to achieve this by modifying 2 locations in the Server\Skills.cs

around Line 305 (in public int BaseFixedPoint):
if (m_Base != sv)
{
    m_Owner.Total = (m_Owner.Total - m_Base) + sv;

    m_Base = sv;

    m_Owner.OnSkillChange(this);

to:
if (m_Base != sv)
{
    switch(SkillName)
    {
        //Skills you want to ignore
        case SkillName.Blacksmith:
        case SkillName.Alchemy:
            break;

        default:
            m_Owner.Total = (m_Owner.Total - m_Base) + sv;
            break;
    }

    m_Base = sv;

    m_Owner.OnSkillChange(this);

and

around Line 1002 (in public Skills(Mobile owner, GenericReader reader)):
if (sk.BaseFixedPoint != 0 || sk.CapFixedPoint != 1000 || sk.Lock != SkillLock.Up || sk.KnownMasteries != 0)
{
    m_Skills[i] = sk;
    m_Total += sk.BaseFixedPoint;
}

to:
if (sk.BaseFixedPoint != 0 || sk.CapFixedPoint != 1000 || sk.Lock != SkillLock.Up || sk.KnownMasteries != 0)
{
    m_Skills[i] = sk;

    switch (sk.SkillName)
    {
        default:
            break;

        //Skills you want to exclude
        case SkillName.Blacksmith:
        case SkillName.Alchemy:
            continue;
    }

    m_Total += sk.BaseFixedPoint;
}
 
We played around with this and got it sort of working but never finished it.
One of the issues we ran into was it seemed you could get it working but the client would still count it towards the cap causing issues, we came to the conclusion that the client itself would also have to be modified and eventually gave up.

But I would like to see this working as well.
 
urgh, that's frustrating! It's hard to believe that'd be a client-side thing. I'll keep digging away at it and see if I can get it working!
 
Back