ApplyAddonTo Güncellemesi

  • Konuyu açan Konuyu açan TheAdmin33
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 230

TheAdmin33

Ah, bu şarkıların gözü kör olsun
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
1.323
Çözümler
75
Beğeni
5.006
Puan
2.859
Ticaret Puanı
0
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ış.

item_addon.cpp:
Genişlet Daralt Kopyala
#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);
}
 
Son düzenleme:
40 ort üstü zor gelsin kısmı buradan mı düzenleniyor düzenleniyorsa nasıl flag yazmak doğru olur
Ortalama hasar beceri hasarının geldiği en yüksek -'ye göre + geliyor aslında, 40 ort üstü zor gelsini buradan ayarlarsın ama bu sefer mesela 25 ort - olmayan becerili gibi efsunlar çok fazla görürsün, official bırakmak en iyisi.
 
Geri
Üst