B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Accessory Percent Fix

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

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,820
DevLira
66
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ 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.

[CODE lang="cpp" title="constants.cpp"]const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] =
{
0, 10, 20, 40
};[/CODE]

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

Fixden Önce



Fixten Sonra



Fix;

[CODE lang="cpp" title="item.cpp"]//Arat;

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

long value = m_pProto->aApplies.lValue;

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

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


//Değiştir;

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

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);
}
}

[/CODE]

[CODE lang="python" title="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

[/CODE]
 
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 : 0, Üye: 0, Misafir: 0)

Geri
Üst