cacaa 117 #1 Oluşturuldu: Ocak 23, 2020 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? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
cacaa 117 #2 Konu Sahibi Ocak 23, 2020 tarihinde gönderildi 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); Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
cacaa 117 #3 Konu Sahibi Ocak 24, 2020 tarihinde gönderildi Sorunu çözdüm. Çözüm: Userdata -> Design SkillTitle default değerini 0 yapın. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
cacaa 117 #4 Konu Sahibi Ocak 25, 2020 tarihinde gönderildi 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. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş