UoKit.com Форумы > Ultima Online : Dev > RunUO Server > Вопросы по RunUO
Atheist
1 Где установить статкап я разобрался...вопрос : где установить максимум для каждого стата
2 Где регулировать скорость статгейна
Вверх
Soteric
Все делается в файле Scripts\Misc\SkillCheck.cs. Максимум каждого стата:
Код
case Stat.Str: return ( from.StrLock == StatLockType.Up && from.RawStr < 125 );
case Stat.Dex: return ( from.DexLock == StatLockType.Up && from.RawDex < 125 );
case Stat.Int: return ( from.IntLock == StatLockType.Up && from.RawInt < 125 );

125 заменить на нужный.

Скорость статгейна можно регулировать двумя способами. Первый:
Код
if ( from.StrLock == StatLockType.Up && (info.StrGain / 33.3) > Utility.RandomDouble() )
    GainStat( from, Stat.Str );
else if ( from.DexLock == StatLockType.Up && (info.DexGain / 33.3) > Utility.RandomDouble() )
    GainStat( from, Stat.Dex );
else if ( from.IntLock == StatLockType.Up && (info.IntGain / 33.3) > Utility.RandomDouble() )
    GainStat( from, Stat.Int );

Вместо 33.3 вписываем то, что нужно. Зависимость обратнопропорциональная (чем больше, тем сложнее качать).

Второй:
Код
private static TimeSpan m_StatGainDelay = TimeSpan.FromMinutes( 15.0 );

15.0 - это минимальное количество минут, которое должно пройти между поднятием статов. Т.е. чаще чем раз в 15 минут никакой стат не поднимешь.
Вверх
Atheist
еще есть 3 способ

if ( skill.Lock == SkillLock.Up )
{
SkillInfo info = skill.Info;

double StatGainBonus = .05; //от 0 до еденицы


if ( from.StrLock == StatLockType.Up && ((info.StrGain / 33.3) + StatGainBonus) > Utility.RandomDouble() )
GainStat( from, Stat.Str );
else if ( from.DexLock == StatLockType.Up && ((info.DexGain / 33.3) + StatGainBonus) > Utility.RandomDouble() )
GainStat( from, Stat.Dex );
else if ( from.IntLock == StatLockType.Up && ((info.IntGain / 33.3) + StatGainBonus) > Utility.RandomDouble() )
GainStat( from, Stat.Int );
}
}
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.