- Katılım
- 19 Kas 2022
- Konular
- 55
- Mesajlar
- 188
- Çözüm
- 1
- Online süresi
- 2mo 4d
- Reaksiyon Skoru
- 150
- Altın Konu
- 0
- Başarım Puanı
- 98
- MmoLira
- 13,880
- DevLira
- 66
HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Ortalama zarar ve beceri hasarı oranları bu fonksiyonda hesaplanır. Daha güncel hale getirmek için kodu güncelledim. Bu güncellemeyi uygulamak zorunda değilsiniz; bu sadece can sıkıntısından yaptığım ve paylaşmak istediğim bir şey. Ekleyip eklememek size kalmış.
[CODE lang="cpp" title="item_addon.cpp"]# include "stdafx.h"
# include "constants.h"
# include "utils.h"
# include "item.h"
# include "item_addon.h"
# include <random>
# include <cmath>
CItemAddonManager::CItemAddonManager()
{
}
CItemAddonManager::~CItemAddonManager()
{
}
void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
{
if (!pItem)
{
sys_err("ApplyAddonTo: item pointer null");
return;
}
std::random_device rd;
std::mt19937 gen(rd());
std::normal_distribution<> gauss_dist(0.0, 5.0);
int iSkillBonus = MINMAX(-30, static_cast<int>(std::round(gauss_dist(gen))), 30);
int iNormalHitBonus = 0;
if (std::abs(iSkillBonus) <= 20)
{
std::uniform_int_distribution<> dist_8_8(-8, 8);
std::uniform_int_distribution<> dist_1_4(1, 4);
iNormalHitBonus = -2 * iSkillBonus + std::abs(dist_8_8(gen) + dist_8_8(gen)) + dist_1_4(gen);
}
else
{
std::uniform_int_distribution<> dist_1_5(1, 5);
iNormalHitBonus = -2 * iSkillBonus + dist_1_5(gen);
}
pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
pItem->RemoveAttributeType(APPLY_NORMAL_HIT_DAMAGE_BONUS);
pItem->AddAttribute(APPLY_NORMAL_HIT_DAMAGE_BONUS, iNormalHitBonus);
pItem->AddAttribute(APPLY_SKILL_DAMAGE_BONUS, iSkillBonus);
}
[/CODE]
[CODE lang="cpp" title="item_addon.cpp"]# include "stdafx.h"
# include "constants.h"
# include "utils.h"
# include "item.h"
# include "item_addon.h"
# include <random>
# include <cmath>
CItemAddonManager::CItemAddonManager()
{
}
CItemAddonManager::~CItemAddonManager()
{
}
void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
{
if (!pItem)
{
sys_err("ApplyAddonTo: item pointer null");
return;
}
std::random_device rd;
std::mt19937 gen(rd());
std::normal_distribution<> gauss_dist(0.0, 5.0);
int iSkillBonus = MINMAX(-30, static_cast<int>(std::round(gauss_dist(gen))), 30);
int iNormalHitBonus = 0;
if (std::abs(iSkillBonus) <= 20)
{
std::uniform_int_distribution<> dist_8_8(-8, 8);
std::uniform_int_distribution<> dist_1_4(1, 4);
iNormalHitBonus = -2 * iSkillBonus + std::abs(dist_8_8(gen) + dist_8_8(gen)) + dist_1_4(gen);
}
else
{
std::uniform_int_distribution<> dist_1_5(1, 5);
iNormalHitBonus = -2 * iSkillBonus + dist_1_5(gen);
}
pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
pItem->RemoveAttributeType(APPLY_NORMAL_HIT_DAMAGE_BONUS);
pItem->AddAttribute(APPLY_NORMAL_HIT_DAMAGE_BONUS, iNormalHitBonus);
pItem->AddAttribute(APPLY_SKILL_DAMAGE_BONUS, iSkillBonus);
}
[/CODE]
Moderatör tarafında düzenlendi:
- Katılım
- 28 May 2023
- Konular
- 118
- Mesajlar
- 1,355
- Çözüm
- 4
- Online süresi
- 2mo 2d
- Reaksiyon Skoru
- 598
- Altın Konu
- 14
- Başarım Puanı
- 189
- Yaş
- 24
- MmoLira
- 806
- DevLira
- 21
thx
- Katılım
- 21 May 2024
- Konular
- 1,461
- Mesajlar
- 2,475
- Çözüm
- 7
- Online süresi
- 3mo 26d
- Reaksiyon Skoru
- 2,608
- Altın Konu
- 1,054
- Başarım Puanı
- 274
- Yaş
- 51
- MmoLira
- 31,841
- DevLira
- 110
Kodunuzu bu şekilde paylaşırsanız hata verneyecektir.
[Code ]...........[/Code]
[Code ] code ve köşeli parantez arasındaki boşluğu kaldırın sonra codelerin arasına kodlarınızı koyarsınız.
[Code ]...........[/Code]
[Code ] code ve köşeli parantez arasındaki boşluğu kaldırın sonra codelerin arasına kodlarınızı koyarsınız.
Son düzenleme:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 8
- Görüntüleme
- 1K
- Cevaplar
- 5
- Görüntüleme
- 672
- Cevaplar
- 10
- Görüntüleme
- 2K
- Cevaplar
- 4
- Görüntüleme
- 567
- Cevaplar
- 15
- Görüntüleme
- 2K








