Yardım pet hakkında

  • Konuyu açan Konuyu açan TheAdmin33
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 7
  • Gösterim Gösterim 312
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

TheAdmin33

Geliştirme günlüğü olmayan adam
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
900
Çözümler
53
Beğeni
1.863
Puan
1.149
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:
Genişlet Daralt Kopyala
    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:
Genişlet Daralt Kopyala
                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:
Genişlet Daralt Kopyala
    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:
Genişlet Daralt Kopyala
                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.
 
Üst