Çözüldü expected an indented block

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.

comos

MT Üye
MT Üye
Editör
Mesaj
273
Çözümler
18
Beğeni
267
Puan
799
Ticaret Puanı
0
networkModule.SetSelectCharacterPhase - <type 'exceptions.IndentationError'>:expected an indented block (interfaceModule.py, line 1047)

Syserr'de aldığım hata bu.

Kod Görünüm:
indir.webp


Kod Görünüm 2:
indir (1).webp


Araştırdığımda boşluklar ile ilgili yanlış yaptığımı farkettim ama tam olarak hatanın sebebinin ne olduğunu anlayamadim. Sorunumu nasıl çözebilirim?
 
Çözüm
Öncelikle bir konuda bilgi vermek istiyorum. Kodların çalışma mantığı yukarıdan aşağıya işler. (istisnalar hariç)
Bu şekilde nasıl build edebildin bilmiyorum ama locale_inc.h dosyası
StdAfx.h dosyası ile beraber import ediliyor. Yani sistem büyük ihtimal bu satırları görmezden gelmiş.

Bu yüzden bu kodları aşağıya alıyoruz. Zaten en alta inerseniz buna benzer kodların olduğunu fark edeceksiniz.
locale_inc.h gelirsek en başa eklediğiniz kodu alta alın. :)
Bu hatayı zamanında bende çok yapıyordum. Büyük ihtimal herkesin başına gelmiştir diye düşünüyorum. :D
Sorun syntax hatasından kaynaklı.
1048. satır ile 1054. satır arasında kodlar şunlar;
Python:
Genişlet Daralt Kopyala
        if app.ENABLE_DUNGEON_INFO_SYSTEM:
    def ToggleDungeonInfoWindow(self):
        if False == player.IsObserverMode():
            if False == self.wndDungeonInfo.IsShow():
                self.wndDungeonInfo.Open()
            else:
                self.wndDungeonInfo.Close()

Kodları şu şekilde değiştirin;
Python:
Genişlet Daralt Kopyala
    if app.ENABLE_DUNGEON_INFO_SYSTEM:
        def ToggleDungeonInfoWindow(self):
            if False == player.IsObserverMode():
                if False == self.wndDungeonInfo.IsShow():
                    self.wndDungeonInfo.Open()
                else:
                    self.wndDungeonInfo.Close()

Bu arada üstteki fonksiyon ile bunun arasında bir satır boşluk olsun.
 
indir (2).webp

networkModule.SetSelectCharacterPhase - <type 'exceptions.IndentationError'>:expected an indented block (interfaceModule.py, line 1050)
 
Aynen bu şekilde gözükecek. Tab seçeneklerine bakar mısın? Forumdan kopyalayınca boşluk olarak ekliyor normalde.
 
Aynen bu şekilde gözükecek. Tab seçeneklerine bakar mısın? Forumdan kopyalayınca boşluk olarak ekliyor normalde.

Aynen, .... olarak eklemiş silip tab ile hizaladigimda o sorunu çözdüm fakat yeni bir sorun ile karşılaştım.

networkModule.SetSelectCharacterPhase - <type 'exceptions.AttributeError'>:'module' object has no attribute 'ENABLE_DUNGEON_INFO_SYSTEM'
 
Şimdi ENABLE_DUNGEON_INFO_SYSTEM bunun için modüle hatası veriyor. İlk başta interfacemodule.py dosyasında şu kod var mı diye bakmalısın.
Python:
Genişlet Daralt Kopyala
import app

Eğer yoksa client sourceden PythonApplicationModule.cpp dosyasında ekleyip clienti build etmeniz gerekiyor.

Örnek;
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_DUNGEON_INFO_SYSTEM
    PyModule_AddIntConstant(poModule, "ENABLE_DUNGEON_INFO_SYSTEM", 1);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_DUNGEON_INFO_SYSTEM", 0);
#endif

locale_inc.h dosyasında da bunun olması gerekli;
C++:
Genişlet Daralt Kopyala
#define ENABLE_DUNGEON_INFO_SYSTEM

Not bu arada sizin python sürümü nedir? Tab yerine 4 tane .... olduğunda da çalışması gerekiyor.
 
PythonApplicationModule.cpp şunu ekleyin;
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_DUNGEON_INFO_SYSTEM
    PyModule_AddIntConstant(poModule, "ENABLE_DUNGEON_INFO_SYSTEM", 1);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_DUNGEON_INFO_SYSTEM", 0);
#endif
 
Öncelikle bir konuda bilgi vermek istiyorum. Kodların çalışma mantığı yukarıdan aşağıya işler. (istisnalar hariç)
Bu şekilde nasıl build edebildin bilmiyorum ama locale_inc.h dosyası
StdAfx.h dosyası ile beraber import ediliyor. Yani sistem büyük ihtimal bu satırları görmezden gelmiş.

Bu yüzden bu kodları aşağıya alıyoruz. Zaten en alta inerseniz buna benzer kodların olduğunu fark edeceksiniz.
locale_inc.h gelirsek en başa eklediğiniz kodu alta alın. :)
 
Çözüm
Tam build ederken sorun yaşadığımı bildirecektim ki şu yaptığın yorumla buildi ve öncesinde aldığım hataları çözmüş oldun. Şuan başka bir hata aldım, kodları gözden geçirip bir kez daha deneyeceğim. Programlama altyapım olmadığı için böyle süzmelikler yapıyorum mazur görün. Benim gibi bir şeyleri çabalayan arkadaşlara bu konu çok iyi gelecektir. Teşekkür ediyorum.
 
Zamanında bende yaşadım halen de yaşıyorum. Önemli olan deneyim kazanmak. :)
Bu konunuz içinde baya bi soruna değindik aslında aynı sorunları yaşayanlar için kaynak olacaktır. Yaşadığınız diğer sorunlar için yardım istemekten çekinmeyin. Burada kimse kimseyi bilgisinden dolayı yadırgayamaz. :)
 
Teşekkür ederim. Şuan yaşadığım sorunda loading screende kalıyor. Syserr uzun olduğu için screenshot yerine kod blogu olarak ekliyorum:

Python:
Genişlet Daralt Kopyala
0916 16:48:00752 :: CSoundManager::PlayMusic - Failed to load stream sound : BGM/login_window.mp3
0916 16:48:13966 :: CSoundManager::PlayMusic - Failed to load stream sound : BGM/characterselect.mp3
0916 16:48:19844 :: CMapOutdoor::Load - LoadMonsterAreaInfo ERROR
0916 16:48:23158 :: Traceback (most recent call last):

0916 16:48:23158 ::   File "networkModule.py", line 246, in SetGamePhase

0916 16:48:23158 ::   File "system.py", line 130, in __pack_import

0916 16:48:23158 ::   File "
0916 16:48:23158 :: game.py
0916 16:48:23158 :: ", line
0916 16:48:23158 :: 1866
0916 16:48:23158 ::

0916 16:48:23158 ::    
0916 16:48:23158 :: def BINARY_AppendNotifyMessage(self, type):

0916 16:48:23158 ::    
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: 
0916 16:48:23158 :: ^

0916 16:48:23158 :: IndentationError
0916 16:48:23158 :: :
0916 16:48:23158 :: unindent does not match any outer indentation level
0916 16:48:23158 ::

0916 16:48:16855 :: CSoundManager::PlayMusic - Failed to load stream sound : BGM/login_window.mp3
 
Syserr verdiği yere baktım ama sıkıntı gözükmüyor. Tab ayarlarını kontrol ettiniz mi? Bu fonksiyon client tarafından gönderilen verileri alıyor. Fonksiyon argumemtleri ile clientin gönderdiği değerlerin uyuşması gerekiyor.
 
Geri
Üst