#W# Crafting and Gathering skills don't count towards skill cap.

This commit is contained in:
WarrentyExpired 2026-08-07 18:39:32 -04:00
parent f556a5a740
commit 5f61347479
3 changed files with 51 additions and 17 deletions

View file

@ -121,16 +121,19 @@ namespace Server.Misc
{
if ( from.Skills.Cap == 0 )
return false;
double gainer = 2.0;
gainer = gainer - ValidSettings.SkillGain();
double gainer = 2.0;
gainer = gainer - ValidSettings.SkillGain();
bool success = ( chance >= Utility.RandomDouble() );
double gc = (double)(from.Skills.Cap - from.Skills.Total) / from.Skills.Cap;
gc += ( skill.Cap - skill.Base ) / skill.Cap;
gc /= gainer;
gc /= gainer;
gc /= 2;
gc += ( 1.0 - chance ) * ( success ? 0.5 : (Core.AOS ? 0.0 : 0.2) );
gc /= gainer;
gc /= gainer;
gc /= 2;
gc *= skill.Info.GainFactor;
@ -212,8 +215,9 @@ namespace Server.Misc
toGain = Utility.Random( 4 ) + 1;
Skills skills = from.Skills;
bool isSecondarySkill = skill.IsSecondarySkill();
if ( from.Player && ( skills.Total / skills.Cap ) >= Utility.RandomDouble() )//( skills.Total >= skills.Cap )
if ( !isSecondarySkill && from.Player && ( skills.Total / skills.Cap ) >= Utility.RandomDouble() )//( skills.Total >= skills.Cap )
{
for ( int i = 0; i < skills.Length; ++i )
{
@ -234,7 +238,7 @@ namespace Server.Misc
toGain *= Utility.RandomMinMax(2, 5);
#endregion
if ( !from.Player || (skills.Total + toGain) <= skills.Cap )
if ( !from.Player || isSecondarySkill || (skills.Total + toGain) <= skills.Cap )
{
skill.BaseFixedPoint += toGain;
}
@ -244,11 +248,11 @@ namespace Server.Misc
{
SkillInfo info = skill.Info;
if ( from.StrLock == StatLockType.Up && (info.StrGain / ValidSettings.StatGain()) > Utility.RandomDouble() )
if ( from.StrLock == StatLockType.Up && (info.StrGain / 33.3) > Utility.RandomDouble() )
GainStat( from, Stat.Str );
else if ( from.DexLock == StatLockType.Up && (info.DexGain / ValidSettings.StatGain()) > Utility.RandomDouble() )
else if ( from.DexLock == StatLockType.Up && (info.DexGain / 33.3) > Utility.RandomDouble() )
GainStat( from, Stat.Dex );
else if ( from.IntLock == StatLockType.Up && (info.IntGain / ValidSettings.StatGain()) > Utility.RandomDouble() )
else if ( from.IntLock == StatLockType.Up && (info.IntGain / 33.3) > Utility.RandomDouble() )
GainStat( from, Stat.Int );
}
}
@ -337,7 +341,7 @@ namespace Server.Misc
}
}
private static TimeSpan m_StatGainDelay = ValidSettings.StatGainDelay(); //TimeSpan.FromMinutes( ( Core.ML ) ? 0.05 : 15 );
private static TimeSpan m_StatGainDelay = TimeSpan.FromMinutes( ( Core.ML ) ? 0.05 : 15 );
private static TimeSpan m_PetStatGainDelay = TimeSpan.FromMinutes( 5.0 );
public static void GainStat( Mobile from, Stat stat )