Im slowly bring over my custom scripts from an old Repo to the new Repo and and while bring over my StatsGump for players to quickly check their stats. I can't find any of this information to fix the OSI values to my liking.
int SDICap = 100; (PVM) - Possibly not capped unless manually capped?
------------------------------------------------------------------------------------------------------------------------------------------
I Already Found these:
int LRCCap = 100;
Default Value.
int LMCCap = 50;
Line 892 of: Scripts/Spells/Base/Spell.cs
int SDICap = 100;
PVP SDICap : Line 105 of: Scripts/Spells/Base/SpellHelper.cs
int FCCap = 8;
int FCRCap = 10;
Line 973 of: Scripts/Spells/Base/Spell.cs
int SwingSpeedCap = 100;
Line 1459 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
int DamageIncreaseCap = 200;
Line 3525 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
int DCICap = 50;
Line 1399 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
int HCICap = 100;
Line 1396 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
double BandageSpeedCap = 2.0;
Line 672 of: Scripts/Items/Resources/Bandages.cs
int ReflectDamageCap = 50;
Line 269 of: Scripts/Misc/AOS.cs
Replace
With
int SDICap = 100; (PVM) - Possibly not capped unless manually capped?
------------------------------------------------------------------------------------------------------------------------------------------
I Already Found these:
int LRCCap = 100;
Default Value.
int LMCCap = 50;
Line 892 of: Scripts/Spells/Base/Spell.cs
Code:
// Lower Mana Cost = 40%
int lmc = AosAttributes.GetValue(m_Caster, AosAttribute.LowerManaCost);
if (lmc > 40)
{
lmc = 40;
}
int SDICap = 100;
PVP SDICap : Line 105 of: Scripts/Spells/Base/SpellHelper.cs
Code:
public static int PvPSpellDamageCap(Mobile m, SkillName castskill)
{
if (!Core.SA)
return 15;
if (HasSpellFocus(m, castskill))
{
return 30;
}
else
{
return Core.TOL ? 20 : 15;
}
}
int FCCap = 8;
int FCRCap = 10;
Line 973 of: Scripts/Spells/Base/Spell.cs
Code:
// Faster casting cap of 2 (if not using the protection spell)
// Faster casting cap of 0 (if using the protection spell)
// Paladin spells are subject to a faster casting cap of 4
// Paladins with magery of 70.0 or above are subject to a faster casting cap of 2
int fcMax = 6;
if (CastSkill == SkillName.Magery || CastSkill == SkillName.Necromancy || CastSkill == SkillName.Mysticism ||
(CastSkill == SkillName.Chivalry && (m_Caster.Skills[SkillName.Magery].Value >= 70.0 || m_Caster.Skills[SkillName.Mysticism].Value >= 70.0)))
{
fcMax = 2;
}
int SwingSpeedCap = 100;
Line 1459 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
Code:
int bonus = AosAttributes.GetValue(m, AosAttribute.WeaponSpeed);
if (bonus > 50)
{
bonus = 50;
}
int DamageIncreaseCap = 200;
Line 3525 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
Code:
#region Modifiers
/*
* The following are damage modifiers whose effect shows on the status bar.
* Capped at 100% total.
*/
int damageBonus = AosAttributes.GetValue(attacker, AosAttribute.WeaponDamage);
if (damageBonus > 100)
{
damageBonus = 100;
}
#endregion
int DCICap = 50;
Line 1399 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
Code:
int max = 45 + BaseArmor.GetRefinedDefenseChance(defender);
// Defense Chance Increase = 45%
if (bonus > max)
bonus = max;
theirValue = (defValue + 20.0) * (100 + bonus);
bonus = 0;
int HCICap = 100;
Line 1396 of: Scripts/Items/Equipment/Weapons/BaseWeapons.cs
Code:
#region SA
// this value will not be shown on the status bar
if (hciMod > 0)
bonus -= (int)(((double)bonus * ((double)hciMod / 100)));
#endregion
//SA Gargoyle cap is 50, else 45
bonus = Math.Min(attacker.Race == Race.Gargoyle ? 50 : 45, bonus);
ourValue = (atkValue + 20.0) * (100 + bonus);
double BandageSpeedCap = 2.0;
Line 672 of: Scripts/Items/Resources/Bandages.cs
Code:
if (onSelf)
{
if (Core.AOS)
{
seconds = Math.Min(8, Math.Ceiling(11.0 - healer.Dex / 20));
seconds = Math.Max(seconds, 4);
}
else
{
seconds = 9.4 + (0.6 * ((double)(120 - dex) / 10));
}
}
else
{
if (Core.AOS && GetPrimarySkill(patient) == SkillName.Veterinary)
{
seconds = 2.0;
}
else if (Core.AOS)
{
seconds = Math.Ceiling((double)4 - healer.Dex / 60);
seconds = Math.Max(seconds, 2);
}
else
{
if (dex >= 100)
{
seconds = 3.0 + resDelay;
}
else if (dex >= 40)
{
seconds = 4.0 + resDelay;
}
else
{
seconds = 5.0 + resDelay;
}
}
}
int ReflectDamageCap = 50;
Line 269 of: Scripts/Misc/AOS.cs
Replace
Code:
int reflectPhys = AosAttributes.GetValue(m, AosAttribute.ReflectPhysical);
With
Code:
int reflectPhysCap = 50;
//int reflectPhys = AosAttributes.GetValue(m, AosAttribute.ReflectPhysical);
int reflectPhys = Math.Min( AosAttributes.GetValue( m, AosAttribute.ReflectPhysical ), reflectPhysCap);
// math.min( a, b ) will use the lower of the two values, so if it's over the cap, then the cap is the min - else it's the actual value.
Last edited: