- Mesaj
- 1.408
- Çözümler
- 76
- Beğeni
- 5.637
- Puan
- 2.859
- Ticaret Puanı
- 0
pet sistemi yazdım buff verirken GetPoint kullanarak Def ve Str değerlerini çekiyorum ama "C" ekranında gösterilenle uyuşmuyor ve absürt değerlerde buff veriyor.
şu kodu kullanıyorum;
|
|
şu kodu kullanıyorum;
C++:
void CNewPet::GiveBuff()
{
if (!m_pkChar || !m_petItem)
return;
// Buff uygulanacak temel değerler
int baseValues[3] =
{
m_pkOwner->GetMaxHP(), // Maksimum HP
m_pkOwner->GetPoint(POINT_DEF_GRADE), // Savunma değeri
m_pkOwner->GetPoint(POINT_ATT_GRADE) // Saldırı değeri
};
m_pkOwner->ChatPacket(CHAT_TYPE_INFO, "MaxHP:%d ,Def:%d, Str:%d", baseValues[0], baseValues[1], baseValues[2]);
// Eski buff'ı kaldır
m_pkOwner->RemoveAffect(EPetConstants::PET_AFFECT_TYPE);
// Yeni buff'ları ekle
for (int i = 0; i < 3; ++i)
{
m_pkOwner->AddAffect(
EPetConstants::PET_AFFECT_TYPE, // Buff tipi
aApplyInfo[petBonusType[i]].bPointType, // Buff'ın uygulanacağı özellik
static_cast<int>(baseValues[i] * m_bonus[i] / 1000), // Buff değeri
0, //
INFINITE_AFFECT_DURATION, // Sonsuz süre
0, // Flag
false // Overwrite (üzerine yazma)
);
}
}