Hikayeler

Reklam vermek için turkmmo@gmail.com

Accessory Percent Fix

TheAdmin33

Level 3
Uzman
Katılım
19 Kas 2022
Konular
55
Mesajlar
188
Online süresi
2ay 4g
Reaksiyon Skoru
150
Altın Konu
0
Başarım Puanı
98
TM Yaşı
3 Yıl 5 Ay 2 Gün
MmoLira
13,490
DevLira
66

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

metin2 de iç itemlerinize eklediğin cevherlerin vermiş olduğu özellikler constants.cpp dosyasındaki aiAccessorySocketEffectivePct kısmındaki oranlara göre hesaplanır.

constants.cpp:
const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] =
{
    0, 10, 20, 40
};

tabi teoride öyle ama pratikte pekte öyle çalışmıyor. Bu fix bu durumu düzeltmenize yarar.

Fixden Önce



Fixten Sonra



Fix;

item.cpp:
//Arat;

    for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        if (m_pProto->aApplies[i].bType == APPLY_NONE)
            continue;

        long value = m_pProto->aApplies[i].lValue;

        if (m_pProto->aApplies[i].bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(m_pProto->aApplies[i].bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (0 != accessoryGrade)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100);

            m_pOwner->ApplyPoint(m_pProto->aApplies[i].bType, bAdd ? value : -value);
        }
    }


//Değiştir;

    for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        const auto& apply = m_pProto->aApplies[i];

        if (apply.bType == APPLY_NONE)
            continue;

        long value = apply.lValue;

        if (apply.bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(apply.bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (accessoryGrade > 0)
            {
                long totalBonus = 0;

                for (int j = 0; j < accessoryGrade; ++j)
                {
                    totalBonus += MAX(1, value * aiAccessorySocketEffectivePct[j + 1] / 100);
                }
                value += totalBonus;
            }
                m_pOwner->ApplyPoint(apply.bType, bAdd ? value : -value);
        }
    }

uitooltip.py:
#Arat;

    def __AppendAccessoryMetinSlotInfo(self, metinSlot, mtrlVnum):    
        ACCESSORY_SOCKET_MAX_SIZE = 3    

        cur=min(metinSlot[0], ACCESSORY_SOCKET_MAX_SIZE)
        end=min(metinSlot[1], ACCESSORY_SOCKET_MAX_SIZE)

        affectType1, affectValue1 = item.GetAffect(0)
        affectList1=[0, max(1, affectValue1*10/100), max(2, affectValue1*20/100), max(3, affectValue1*40/100)]

        affectType2, affectValue2 = item.GetAffect(1)
        affectList2=[0, max(1, affectValue2*10/100), max(2, affectValue2*20/100), max(3, affectValue2*40/100)]

        mtrlPos=0
        mtrlList=[mtrlVnum]*cur+[player.METIN_SOCKET_TYPE_SILVER]*(end-cur)
        for mtrl in mtrlList:
            affectString1 = self.__GetAffectString(affectType1, affectList1[mtrlPos+1]-affectList1[mtrlPos])        
            affectString2 = self.__GetAffectString(affectType2, affectList2[mtrlPos+1]-affectList2[mtrlPos])

            leftTime = 0
            if cur == mtrlPos+1:
                leftTime=metinSlot[2]

            self.__AppendMetinSlotInfo_AppendMetinSocketData(mtrlPos, mtrl, affectString1, affectString2, leftTime)
            mtrlPos+=1


#Değiştir;

    def #DeğiştirryMetinSl#D#DeğiştirsoryMetinSlInfo(self        ACCESSORY_SOCKET_MAX_SIZE = 3

        cur=min(metinSlot[0], ACCESSORY_SOCKET_MAX_SIZE)
        end=min(metinSlot[1], ACCESSORY_SOCKET_MAX_SIZE)

        affectType1, affectValue1 = item.GetAffect(0)
        affectType2, affectValue2 = item.GetAffect(1)

        percentList = [0, 10, 20, 40]

        affectList1=[0]
        affectList2=[0]

        for pct in percentList[1:]:
            affectList1.append(max(1, affectValue1 * pct / 100))
            affectList2.append(max(1, affectValue2 * pct / 100))

        mtrlPos=0
        mtrlList = [mtrlVnum] * cur + [player.METIN_SOCKET_TYPE_SILVER] * (end - cur)

        for mtrl in mtrlList:
            affectString1 = self.__GetAffectString(affectType1, affectList1[mtrlPos+1])
            affectString2 = self.__GetAffectString(affectType2, affectList2[mtrlPos+1])

            leftTime = 0

            if cur == mtrlPos+1:
                leftTime=metinSlot[2]

            self.__AppendMetinSlotInfo_AppendMetinSocketData(mtrlPos, mtrl, affectString1, affectString2, leftTime)
            mtrlPos+=1
 
Son düzenleme:
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler
 
teşekkürler <3
 

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

Geri
Üst