shrpnl 1
shrpnl
Agora Metin2 1
Agora Metin2
xranzei 1
xranzei
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Karan2offical 1
Karan2offical
Fethi Polat 1
Fethi Polat
ShadowFon 1
ShadowFon
bikral 1
bikral
-TuRKuaZ- 1
-TuRKuaZ-
Hikaye Ekle

ApplyAddonTo Güncellemesi

  • Konuyu başlatan Konuyu başlatan TheAdmin33
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 608

TheAdmin33

Level 3
TM Üye
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
Ticaret - 0%
0   0   0

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]
 
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.
 
Son düzenleme:
Teşekkürler bence gayet yararlı bir paylaşım en azından kendi adıma öyle. Emeğinize sağlık
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst