Çözüldü skilleri 16 da m yapmak

  • Konuyu açan Konuyu açan dorje
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 83
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

dorje

Çaylak Üye
Üye
Mesaj
18
Çözümler
2
Beğeni
2
Puan
6
Ticaret Puanı
0
Skilleri 16'da m yapmak istiyorum.
char_skill.cpp den
Kod:
Genişlet Daralt Kopyala
if (GetSkillLevel (pkSk->dwVnum) >= 16)
olarak düzenledim ardından vs'de derleme yaptım fakat hala 17-20 arası random yapıyor ne önerirsiniz ?
 
Çözüm
Kod:
Genişlet Daralt Kopyala
    if (GetSkillLevel (pkSk->dwVnum) == 16)
                {
                    if (GetQuestFlag ("reset_scroll.force_to_master_skill") > 0)
                    {
                        SetSkillLevel (pkSk->dwVnum, 20);
                        SetQuestFlag ("reset_scroll.force_to_master_skill", 0);
                    }
                    else
                    {

                            SetSkillLevel (pkSk->dwVnum, 20);
                    }
                }
                break;
Arkadaşlar sorunun çözümü bu şekilde. Belki aynı durumu yaşayan olur.

Kod:
Genişlet Daralt Kopyala
if (number (1, 16 - MIN (20, GetSkillLevel (pkSk->dwVnum))) == 1)

Bu satırı kaldırıyorsunuz tek şart skilin 16. seviyeye gelmiş olması olarak kalıyor ve böylece...
Kod:
Genişlet Daralt Kopyala
switch (GetSkillMasterType (pkSk->dwVnum))
        {
            case SKILL_NORMAL:
                // 번섭은 스킬 업그레이드 17~20 사이 랜덤 마스터 수련
                if (GetSkillLevel (pkSk->dwVnum) >= 16)
                {
                    if (GetQuestFlag ("reset_scroll.force_to_master_skill") > 0)
                    {
                        SetSkillLevel (pkSk->dwVnum, 20);
                        SetQuestFlag ("reset_scroll.force_to_master_skill", 0);
                    }
                    else
                    {
                        if (number (1, 21 - MIN (20, GetSkillLevel (pkSk->dwVnum))) == 1)
                        {
                            SetSkillLevel (pkSk->dwVnum, 20);
                        }
                    }
                }
                break;

kod bu şekilde şu an 16-20 arası yapıyor 16 dahil edildi fakat direkt 16 da m yapması için stabil şekilde ne yapabilirim
 
20 olan değerleri de 16 yapsan? 16 da yapmaz mı düz mantık da bilmiyorum denemedim ama
 
Hiç bir fikrim yok ama dene bakalım ne olacak :)

düzenlenmiş.cpp:
Genişlet Daralt Kopyala
switch (GetSkillMasterType(pkSk->dwVnum))
{
    case SKILL_NORMAL:
        // Beceri seviyesi tam olarak 16 ise yükseltme yapılacak
        if (GetSkillLevel(pkSk->dwVnum) == 16)
        {
            if (GetQuestFlag("reset_scroll.force_to_master_skill") > 0)
            {
                SetSkillLevel(pkSk->dwVnum, 20);
                SetQuestFlag("reset_scroll.force_to_master_skill", 0);
            }
            else
            {
                if (number(1, 21 - MIN(20, GetSkillLevel(pkSk->dwVnum))) == 1)
                {
                    SetSkillLevel(pkSk->dwVnum, 20);
                }
            }
        }
        break;
}
 
Hiç bir fikrim yok ama dene bakalım ne olacak :)

düzenlenmiş.cpp:
Genişlet Daralt Kopyala
switch (GetSkillMasterType(pkSk->dwVnum))
{
    case SKILL_NORMAL:
        // Beceri seviyesi tam olarak 16 ise yükseltme yapılacak
        if (GetSkillLevel(pkSk->dwVnum) == 16)
        {
            if (GetQuestFlag("reset_scroll.force_to_master_skill") > 0)
            {
                SetSkillLevel(pkSk->dwVnum, 20);
                SetQuestFlag("reset_scroll.force_to_master_skill", 0);
            }
            else
            {
                if (number(1, 21 - MIN(20, GetSkillLevel(pkSk->dwVnum))) == 1)
                {
                    SetSkillLevel(pkSk->dwVnum, 20);
                }
            }
        }
        break;
}
maalesef yine olmadı
 
buda olmadı x forumda da aynı öneriyi sunuyor fakat kodu değiştirip derledim olmadı
 
Kod:
Genişlet Daralt Kopyala
    if (GetSkillLevel (pkSk->dwVnum) == 16)
                {
                    if (GetQuestFlag ("reset_scroll.force_to_master_skill") > 0)
                    {
                        SetSkillLevel (pkSk->dwVnum, 20);
                        SetQuestFlag ("reset_scroll.force_to_master_skill", 0);
                    }
                    else
                    {

                            SetSkillLevel (pkSk->dwVnum, 20);
                    }
                }
                break;
Arkadaşlar sorunun çözümü bu şekilde. Belki aynı durumu yaşayan olur.

Kod:
Genişlet Daralt Kopyala
if (number (1, 16 - MIN (20, GetSkillLevel (pkSk->dwVnum))) == 1)

Bu satırı kaldırıyorsunuz tek şart skilin 16. seviyeye gelmiş olması olarak kalıyor ve böylece skiller 16 da m oluyor.
Farklı seviyeye sabitlemek isteyen 16 sayısını değiştirse yeterli olur.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst