Àοë±Û : |
private double m_dMinTameSkill; |
ÄÚµå : |
[CommandProperty( AccessLevel.GameMaster )]
public double MinTameSkill
{
get
{
return m_dMinTameSkill;
}
set
{
m_dMinTameSkill = value;
}
} |
ÄÚµå : |
public virtual double GetControlChance( Mobile m )
{
if ( m_dMinTameSkill <= 29.1 || m_bSummoned || m.AccessLevel >= AccessLevel.GameMaster )
return 1.0;
double dMinTameSkill = m_dMinTameSkill;
if ( dMinTameSkill > -24.9 && Server.SkillHandlers.AnimalTaming.CheckMastery( m, this ) )
dMinTameSkill = -24.9;
int taming = (int)(m.Skills[SkillName.AnimalTaming].Value * 10);
int lore = (int)(m.Skills[SkillName.AnimalLore].Value * 10);
int difficulty = (int)(dMinTameSkill * 10);
int weighted = ((taming * 4) + lore) / 5;
int bonus = weighted - difficulty;
int chance;
if ( bonus > 0 )
chance = 700 + (bonus * 14);
else
chance = 700 + (bonus * 6);
if ( chance >= 0 && chance < 200 )
chance = 200;
else if ( chance > 990 )
chance = 990;
int loyaltyValue = 1;
if ( m_Loyalty > PetLoyalty.Confused )
loyaltyValue = (int)(m_Loyalty - PetLoyalty.Confused) * 10;
chance -= (100 - loyaltyValue) * 10;
return ( (double)chance / 10 );
} |