Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
KO Developers Platformuna Hoşgeldin!
cacaa

Rogue Classında Dex Statının Attack Vermemesi Sorunu

Önerilen Mesajlar

Evet sorun başlıkta belirtildiği üzere rogue classlarında dex verince attackın değişmemesi, str basınca ise artmasıdır.

user.cpp içerisinde bulunan temp_dex bölümünden şüpheleniyorum. Nasıl çözüm üretebiliriz?

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Evet sorun başlıkta belirtildiği üzere rogue classlarında dex verince attackın değişmemesi, str basınca ise artmasıdır.

user.cpp içerisinde bulunan temp_dex bölümünden şüpheleniyorum. Nasıl çözüm üretebiliriz?


Kodlar şu şekilde:


int temp_str = GetStat(STAT_STR), temp_dex = getStatTotal(STAT_DEX);
// if( temp_str > 255 ) temp_str = 255;
// if( temp_dex > 255 ) temp_dex = 255;

uint32 baseAP = 0, ap_stat = 0, additionalAP = 3;
if (temp_str > 150)
baseAP = temp_str - 150;

if (temp_str == 160)
baseAP--;

temp_str += GetStatBonusTotal(STAT_STR);


m_sMaxWeight = ((((GetStatWithItemBonus(STAT_STR) + GetLevel()) * 50) + m_sMaxWeightBonus) * (m_bMaxWeightAmount
if (isRogue())
{
ap_stat = temp_dex;
}
else
{
ap_stat = temp_str;
additionalAP += baseAP;
}
if (isWarrior() || isPriest() || isKurian())
{
m_sTotalHit = (uint16)((0.010f * sItemDamage * (ap_stat + 40)) + (hitcoefficient * sItemDamage * GetLevel() * ap_stat));
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;
}
if (isRogue())
{
m_sTotalHit = (uint16)((0.007f * sItemDamage * (ap_stat + 40)) + (hitcoefficient * sItemDamage * GetLevel() * ap_stat));
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;
}
else if (isMage())
{
m_sTotalHit = (uint16)((0.005f * sItemDamage * (ap_stat + 40)) + (hitcoefficient * sItemDamage * GetLevel()));
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;
}
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;

m_sTotalAc = (short)(p_TableCoefficient->AC * (GetLevel() + m_sItemAc));
if (m_sACPercent m_sACPercent = 100;
m_sTotalAc = m_sTotalAc * m_sACPercent / 100;

m_fTotalHitrate = ((1 + p_TableCoefficient->Hitrate * GetLevel() * temp_dex) * m_sItemHitrate / 100) * (m_bHitRateAmount / 100);

m_fTotalEvasionrate = ((1 + p_TableCoefficient->Evasionrate * GetLevel() * temp_dex) * m_sItemEvasionrate / 100) * (m_sAvoidRateAmount / 100);

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Kodlar şu şekilde:


int temp_str = GetStat(STAT_STR), temp_dex = getStatTotal(STAT_DEX);
// if( temp_str > 255 ) temp_str = 255;
// if( temp_dex > 255 ) temp_dex = 255;

uint32 baseAP = 0, ap_stat = 0, additionalAP = 3;
if (temp_str > 150)
baseAP = temp_str - 150;

if (temp_str == 160)
baseAP--;

temp_str += GetStatBonusTotal(STAT_STR);


m_sMaxWeight = ((((GetStatWithItemBonus(STAT_STR) + GetLevel()) * 50) + m_sMaxWeightBonus) * (m_bMaxWeightAmount
if (isRogue())
{
ap_stat = temp_dex;
}
else
{
ap_stat = temp_str;
additionalAP += baseAP;
}
if (isWarrior() || isPriest() || isKurian())
{
m_sTotalHit = (uint16)((0.010f * sItemDamage * (ap_stat + 40)) + (hitcoefficient * sItemDamage * GetLevel() * ap_stat));
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;
}
if (isRogue())
{
m_sTotalHit = (uint16)((0.007f * sItemDamage * (ap_stat + 40)) + (hitcoefficient * sItemDamage * GetLevel() * ap_stat));
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;
}
else if (isMage())
{
m_sTotalHit = (uint16)((0.005f * sItemDamage * (ap_stat + 40)) + (hitcoefficient * sItemDamage * GetLevel()));
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;
}
m_sTotalHit = (m_sTotalHit + additionalAP) * (100 + m_byAPBonusAmount) / 100;

m_sTotalAc = (short)(p_TableCoefficient->AC * (GetLevel() + m_sItemAc));
if (m_sACPercent m_sACPercent = 100;
m_sTotalAc = m_sTotalAc * m_sACPercent / 100;

m_fTotalHitrate = ((1 + p_TableCoefficient->Hitrate * GetLevel() * temp_dex) * m_sItemHitrate / 100) * (m_bHitRateAmount / 100);

m_fTotalEvasionrate = ((1 + p_TableCoefficient->Evasionrate * GetLevel() * temp_dex) * m_sItemEvasionrate / 100) * (m_sAvoidRateAmount / 100);


Çözüm 2 (Skill açtırınca dex deaktif oluyorsa):

isRogue() olan kısımların yanına || isRogueNovice() ekleyip kaydedin.

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...