Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 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:
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
- 675
- Cevaplar
- 10
- Görüntüleme
- 2K
- Cevaplar
- 4
- Görüntüleme
- 574
- Cevaplar
- 15
- Görüntüleme
- 2K