Yardım skilin başarıyla geçmesi

  • Konuyu açan Konuyu açan TheAdmin33
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 3
  • Gösterim Gösterim 70
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
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
1.321
Çözümler
74
Beğeni
5.002
Puan
2.859
Ticaret Puanı
0
yaşlı kadından yada skill sıfırlama kağıdıyla(71100) skilimi sıfırladıktan sonra yeni yetenk öğreniyorum ve skili g yapıp ruh taşlarını okumaya başlıyorum ama bütün ruh taşları başarıyla skili geliştiriyor hiç başarısız olmuyor, belirli bir süre sonra(ne kadar bir süre bilmiyorum) normale dönüyor. Oyunda böyle bir şey varmı yoksa benim filesdamı bir sorun var? LearnGrandMasterSkill fonksiyonunu falanda kurcalamadım orjinal haliyle duruyor.
 
Merhaba, bu problem genellikle novaline ve mainline altyapılarda bulunuyor. Ben daha çok mainline tarafında görmüştüm. LearnGrandMasterSkill fonskiyonunda birkaç ufak düzeltme yaparak sorunu çözebilirsiniz. Veyahut lua veya quest yazarak brute edebilirsiniz ancak tavsiyem fonksiyon tarafında değişiklik yapmanızdır.
 
dosyaları yapay zekaya verip sordum cevabı bu oldu;

ClearSkill ya da ResetSkill sadece m_pSkillLevels (C++ tarafındaki skill seviyeleri) sıfırlıyor ama bu quest flag’leri hiç temizlenmiyor.
Bundan dolayı skille reset attıktan sonra LearnGrandMasterSkill çağrıldığında, flag hâlâ büyük bir değerde oluyor.
C++:
Genişlet Daralt Kopyala
    if (iTotalReadCount > iMaxReadCount)
        bSuccess = true;
Dolayısıyla fonksiyon hep true döndürüyor.

Bu quest flag’lerını nasıl temizleyebilirim bir fikri olan varmı?
 
Hocam ClearSkill() fonksiyonunu bulun. Bende char_skill.cpp dosyasında. Fonskiyonun sonuna;

Kod:
Genişlet Daralt Kopyala
char buf[32];
for (int i = 1; i <= 6; ++i) {
    snprintf(buf, sizeof(buf), "skill_%d_read", i);
    SetQuestFlag(buf, 0);
}

Ekleyiniz. Derledikten sonra çözüldü olarak işaretleyebilirsiniz.


İşiniz kolaylaşsın.

Kod:
Genişlet Daralt Kopyala
void CHARACTER::ResetSkill()
{
    for (int i = 0; i < SKILL_MAX_NUM; ++i)
        SetSkillLevel(i, 0);

    // Ruh taşı flag temizliği
    char buf[32];
    for (int i = 1; i <= 6; ++i) {
        snprintf(buf, sizeof(buf), "skill_%d_read", i);
        SetQuestFlag(buf, 0);
    }
}

Fonksiyonu bununla değiştirin
 
Geri
Üst