Çözüldü skillGetAffect - Strange Formula

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ı.

BisQvit

Üye
Üye
Mesaj
43
Çözümler
1
Beğeni
23
Puan
689
Ticaret Puanı
0
Tüm form üyelerine merhaba, baya bir zamandır formu takip ediyordum yardımlaşma konusunda ki geniş yelpazesi olsun cevap verme aralıkları olsun hepsini inceledim bu uzun zaman içerisinde. Bu da benim bu forma ilk kaydoluşum ve ilk konum, bir çok forma bakmama rağmen bu sorunun çözümü net olarak veren bir form bulamadım burada bu sorunun çözümünü bulmayı ve çözümünün de diğer arkadaşlara yardımcı olabileceğini düşünüyorum.

SORUN:
Başlıkta da belirttiğim gibi "skillGetAffect - Strange Formula" bir pack syserr'i. Çözümlerde sorunun skilldesc.txt kaynaklı olduğu belirtilmiş fakat bir çok farklı skilldesc satırı denedim sorun devam etti. Sizlere daha net bir syserr vermem gerekirse
Linkleri görebilmek için giriş yap veya kayıt ol.
.
Kod:
Genişlet Daralt Kopyala
SURA KARAKTERİ İÇİN AT SKİLL SYSERR
------------------------------------------------
0425 12:56:33525 :: skillGetAffect - Strange Formula [At Üzerinde Saldırı]
0425 12:56:39874 :: skillGetAffect - Strange Formula [Güç Dalgası]
Oyunda herhangi bir aksamaya neden olduğunu görmedim fakat sonuçta bir syserr ve çözümü illa ki vardır diye düşünüyorum, yardımcı olacak arkadaşlar lazım olan dosyaların isimlerini vermesi yeterlidir hemen yükleyip verebilirim. Şimdiden teşekkür ederim iyi formlar.

NOT:
Linkleri görebilmek için giriş yap veya kayıt ol.

Kod:
Genişlet Daralt Kopyala
137    HORSE    At Üzerinde Saldırı            At üzerinde Düşmana Saldırı.    Binicilik Becerisi                ATTACK_SKILL|HORSE_SKILL|MOVING_SKILL|WEAPON_LIMITATION    SWORD|TWO_HANDED|DAGGER|DOUBLE_SWORD|FAN|BELL    wildattack    121    1                            


138    HORSE    At Yürüyüşü            Yakındaki tüm düşmanların üstüne yürür.    Binicilik Becerisi                ATTACK_SKILL|HORSE_SKILL|SEARCH_TARGET|CHARGE_ATTACK        charge    122    1                            


139    HORSE    Güç Dalgası            Tüm düşmanlara Saldırı.    Binicilik Becerisi                ATTACK_SKILL|HORSE_SKILL|WEAPON_LIMITATION    SWORD|TWO_HANDED|DAGGER|DOUBLE_SWORD|BOW|FAN|BELL    splash    123    1                            


140    HORSE    Ok Fırtınası            Düşmanlara ok atar.    Binicilik Becerisi                ATTACK_SKILL|FAN_RANGE|NEED_TARGET|HORSE_SKILL|WEAPON_LIMITATION    BOW    wildattack    121    1    5
skilldesc.txt dosyasında syserr veren desc kodları.
 
En son bir moderatör tarafından düzenlenmiş:
Selam, hoş geldiniz :)
Bu sorunla ilgili kaynak kodunda araştırma yaptım ve Client/UserInterface/PythonSkill.cpp dosyasında şu kodları buldum.
C++:
Genişlet Daralt Kopyala
float CPythonSkill::SSkillData::ProcessFormula(CPoly * pPoly, float fSkillLevel, int iMinMaxType)
{
    if (pPoly->Analyze())
    {
        for (DWORD i = 0; i < pPoly->GetVarCount(); ++i)
        {
            const char * c_szVarName = pPoly->GetVarName(i);
            float fState;
            if (!strcmp("SkillPoint", c_szVarName) || !strcmp("k", c_szVarName))
            {
                fState = fSkillLevel;
            }
            else
            {
                int iState;
                if (!GetState(c_szVarName, &iState, iMinMaxType))
                    return 0.0f;

                fState = float(iState);

                if (!strcmp("ar", c_szVarName))
                    fState /= 100.0f;
            }
            pPoly->SetVar(c_szVarName, fState);
        }
    }
    else
    {
        TraceError("skillGetAffect - Strange Formula [%s]", strName.c_str());
        return 0.0f;
    }

    return pPoly->Eval();
}

pPoly->Analyze false döndürünce bu hatayı veriyor. Kod içeriği ise;
C++:
Genişlet Daralt Kopyala
int CPoly::Analyze(const char * pszStr)
{
    if (pszStr)
    SetStr(pszStr);

    if (0 == strData.length())
    return true;

    //DisposeList();
    ErrorOccur = false;
    uiLookPos = 0;
    iLookAhead = lexan();

    expr();

    if (tokenBase.empty())
    {
    //THROW(new CParseException("No Data"));
    return false;
    }

    return !ErrorOccur;
}

Bu hatayı askeri atta veriyor mu?

Bunlarda bende yer alan skilldesc.txt değerleri.
Kod:
Genişlet Daralt Kopyala
137    HORSE    At Üzerinde Savaş            At üzerinde düşmana saldır. (sev. 50 itibariyle)    Binicilik Becerisi                ATTACK_SKILL|HORSE_SKILL|MOVING_SKILL|WEAPON_LIMITATION    SWORD|TWO_HANDED|DAGGER|DOUBLE_SWORD|FAN|BELL|CLAW    wildattack    121    1                           
138    HORSE    At Yürüyüşü            Yakındaki tüm düşmanlara saldır.    Binicilik Becerisi                ATTACK_SKILL|HORSE_SKILL|SEARCH_TARGET|CHARGE_ATTACK        charge    122    1                           
139    HORSE    Güç Dalgası            Tüm düşmanlara at üzerinden saldır.    Binicilik Becerisi                ATTACK_SKILL|HORSE_SKILL|WEAPON_LIMITATION    SWORD|TWO_HANDED|DAGGER|DOUBLE_SWORD|BOW|FAN|BELL|CLAW    splash    123    1                           
140    HORSE    Ok Sağanağı            Düşmanlara at üzerinden ok at.    Binicilik Becerisi                ATTACK_SKILL|FAN_RANGE|NEED_TARGET|HORSE_SKILL|WEAPON_LIMITATION    BOW    wildattack    121    1    5

skilltable.txt;
Kod:
Genişlet Daralt Kopyala
137    난무    5    1    1    50    HP    -(atk+(2*atk*k))    60+80*k            5-(4*k)            ATTACK,USE_MELEE_DAMAGE,CRUSH        NONE                0    0    MELEE    10    1    300    0
138    돌격    5    1    1    52    HP    -(2.4*(200+1.5*lv)+(3*200*k))    60+120*k            15            ATTACK,USE_MELEE_DAMAGE,SPLASH,CRUSH_LONG        MOV_SPEED    50    5        0    0    MELEE    6    1    400    100
139    탈출    5    1    1    55    HP    -(2*(200+1.5*lv)+(3*200*k))    60+160*k            20            ATTACK,USE_MELEE_DAMAGE,SELFONLY,SPLASH,CRUSH        NONE                0    0    MELEE    12    1    400    250
140    난무(활)    5    1    1    50    HP    -(atk+(2*atk*k))    60+80*k            10            ATTACK,USE_ARROW_DAMAGE,CRUSH        NONE                0    0        5    1    2500    0
 
Evet asker at ve diğer bütün bineklerde aynı sorun var dediğiniz kod satırını inceledim herhangi bir farklılık yok dediğiniz gibi PythonSkill kısmında fals çevirince syserr veriyor fakat anlayamaıyorum fals çevirme sebebini neden böyle oluyor ?
 
Bende bilmiyorum. Verdiğim skilldesc ve skilltable değerlerini denediniz mi?
 
0425 16:45:08979 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=137) - Strange Skill Need Weapon(CLAW)
0425 16:45:08979 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=139) - Strange Skill Need Weapon(CLAW)

attığınız desc ve table'ları değiştirince üstte ki gibi bir sysyerr verdi bu seferde
 
Kod:
Genişlet Daralt Kopyala
|CLAW
Şu değerleri temizleyin düzelir :)
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst