Yardım pet hakkında

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

TheAdmin33

Ah bu şarkıların gözü kör olsun
Premium Üye
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
808
Çözümler
48
Beğeni
1.506
Puan
1.139
Ticaret Puanı
0
Bakındım bakındım ama bir türlü bulamadım,

levelli pet sisteminde petin vermiş olduğu özellikler var bunlar genelde hp,savunma,saldırı oluyor ve bunların oranı oluyor 1.6 gibi 3.8 gibi vs.

Bu oranlar tam olarak nerede karakterin özelliklerine dahil ediliyor?

örnekle sormak gerekirse diyelimki bu petin 3.5 str si var karakterin ise 100 hasarı var diyelim bu petle birlikte 103.5 vuracak ya işte bu tam olarak nerede hasara dahil ediliyor? Bunun kodu nerde?
 
Genel olarak ya affect olarak verir ya da battle.cpp / char_battle.cpp'da etkilere müdahale eder. Bilmediğim başka bir yolu varsa ben de bilgilenmiş olurum :)
 
Çözüm
biraz daha bakındım anladığım şunlar;
1) Efsunları effectle ekliyorlar

new_pet_system.cpp:
    int cbonus[3] = {
        m_pkOwner->GetMaxHP(),
        m_pkOwner->GetPoint(POINT_DEF_GRADE),
        m_pkOwner->GetPoint(POINT_ATT_GRADE)
    };

    for (int i = 0; i < 3; ++i)
    {
        m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[m_dwbonuspet[i][0]].bPointType, (int)(cbonus[i] * m_dwbonuspet[i][1] / 1000), 0,  60 * 60 * 24 * 365, 0, false);
    }

2) şunu fark ettim nasıl itemlerin socket leri değişken veri tutmak için kullanılıyorsa attrvalue lerde bu amaçla kullanılabiliyormuş( ama attrtype belirlenmemesi gerekiyor) .

3) attrvalue lerde tutulan bu değişkenlerde aşağıdaki kod kullanılarak yazdırılıyor.

uitooltip.py:
                self.AppendTextLine("Can: +"+pointop(str(attrSlot[0][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
                self.AppendTextLine("Savunma: +"+pointop(str(attrSlot[1][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
                self.AppendTextLine("Hasar: +"+pointop(str(attrSlot[2][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
 
biraz daha bakındım anladığım şunlar;
1) Efsunları effectle ekliyorlar

new_pet_system.cpp:
    int cbonus[3] = {
        m_pkOwner->GetMaxHP(),
        m_pkOwner->GetPoint(POINT_DEF_GRADE),
        m_pkOwner->GetPoint(POINT_ATT_GRADE)
    };

    for (int i = 0; i < 3; ++i)
    {
        m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[m_dwbonuspet[i][0]].bPointType, (int)(cbonus[i] * m_dwbonuspet[i][1] / 1000), 0,  60 * 60 * 24 * 365, 0, false);
    }

2) şunu fark ettim nasıl itemlerin socket leri değişken veri tutmak için kullanılıyorsa attrvalue lerde bu amaçla kullanılabiliyormuş( ama attrtype belirlenmemesi gerekiyor) .

3) attrvalue lerde tutulan bu değişkenlerde aşağıdaki kod kullanılarak yazdırılıyor.

uitooltip.py:
                self.AppendTextLine("Can: +"+pointop(str(attrSlot[0][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
                self.AppendTextLine("Savunma: +"+pointop(str(attrSlot[1][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
                self.AppendTextLine("Hasar: +"+pointop(str(attrSlot[2][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
Güzel okumuşsun. attrtype mutlaka belirlenmek zorundadır, yoksa hangi bonusu artırmak istediğimizi nerden bilsin. cbonus array'inde belirlenmiş görünüyor.
 
Güzel okumuşsun. attrtype mutlaka belirlenmek zorundadır, yoksa hangi bonusu artırmak istediğimizi nerden bilsin. cbonus array'inde belirlenmiş görünüyor.
ben attrtype belirlenmemesi gerekiyor derken efsunlardan bahsetmedimki yanlış anlamışsın. Efsunlardan bağımsız bir değişken veri saklamak için attrvalue kullanılabiliyor ve bunun için attrtype belirlenmemesi gerekiyor. Kısaca 2. madde de yazdığım şey pet sisteminden bağımsız bir bilgiydi.
 
Geri
Üst