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 445

TheAdmin33

Ah, bu şarkıların gözü kör olsun
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
1.533
Çözümler
86
Beğeni
7.051
Puan
2.909
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.
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst