Yardım Cube Ekranı Boş Geliyor

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

xxicecupexx

Üye
Üye
Mesaj
40
Çözümler
1
Beğeni
22
Puan
664
Ticaret Puanı
0
Merhaba,

@Kaptan Yosun Paylaştığı offical dosyaları kullanıyorum.

Aşağıdaki şekilde cube questim var.
cube.txt' de doğru şekilde doldurdum(baek godan örnek alıp aynı şekilde). Baek Go'da cube açtığımda ekran dolu ve doğru bir şekilde geliyor fakat Demircide ne yapsam yapayım cube ekranı boş gelmekte.

Cube Cuest:
quest testcube begin
state start begin
when 20016.chat."Paneli aç " with pc.level >= 15 begin
npckodu = mob_name(20016)
say_title(" "..npckodu.." ")
say("")
say("Panel açıldı. ")
wait()
setskin(NOWINDOW)
command("cube open")
end
end
end

cube.txt
#µµ¶óÁöÁø¾×
section
npc 20016
item 50722 1
reward 50802 1
percent 100
end

Yardımlarınızı rica ederim.

1722254366218.webp
 
En son bir moderatör tarafından düzenlenmiş:
Merhaba,

önce baek go nun cube penceresini açıp sonrasında demircinin cube penceresini açtığımda baek go daki itemler demircide göründü. Demircinin cube penceresi yenilenmedi. Kullandığım cube.h,cube.cpp,quest ve cube.txt ekteki şekilde. Sorunu bir çok şey denememe rağmen çözemedim yardımlarınızı rica ederim


Ekran Alıntısı.webp
Ekran Alıntısı2.webp
 

Dosya Eklentileri

Merhaba,

önce baek go nun cube penceresini açıp sonrasında demircinin cube penceresini açtığımda baek go daki itemler demircide göründü. Demircinin cube penceresi yenilenmedi. Kullandığım cube.h,cube.cpp,quest ve cube.txt ekteki şekilde. Sorunu bir çok şey denememe rağmen çözemedim yardımlarınızı rica ederim


18056 eklentisini görüntüle18057 eklentisini görüntüle
emin değilim ama gold satırı cube.txt de olmadığı için de yapıyor olabilir onu ekleyip dener misiniz?
 
emin değilim ama gold satırı cube.txt de olmadığı için de yapıyor olabilir onu ekleyip dener misiniz?
Denedim o da yemedi sorun sanırım clientte syserrde alttakini veriyor

0730 11:04:20638 :: Traceback (most recent call last):

0730 11:04:20638 :: File "ui.py", line 1516, in OnOverInItem

0730 11:04:20638 :: File "uiCube.py", line 139, in <lambda>

0730 11:04:20639 :: File "uiCube.py", line 231, in __OverInCubeResultSlot

0730 11:04:20639 :: IndexError
0730 11:04:20639 :: :
0730 11:04:20639 :: list index out of range
0730 11:04:20639 ::
 
Denedim o da yemedi sorun sanırım clientte syserrde alttakini veriyor

0730 11:04:20638 :: Traceback (most recent call last):

0730 11:04:20638 :: File "ui.py", line 1516, in OnOverInItem

0730 11:04:20638 :: File "uiCube.py", line 139, in <lambda>

0730 11:04:20639 :: File "uiCube.py", line 231, in __OverInCubeResultSlot

0730 11:04:20639 :: IndexError
0730 11:04:20639 :: :
0730 11:04:20639 :: list index out of range
0730 11:04:20639 ::
uicube.py atar mısın
 
Merhaba,

Belli bir noktaya kadar getirdim. Şu an itemler görünüyor fakat istediği item listesi ekranda görünmüyor. Client syserinde şu şekilde hata alıyorum. Konu hakkında forum forum gezdim sorunu hala çözemedim. Cube System - Reload Fix kullandım o da aynı şekilde çalışmadı.

syserr.txt
0731 19:47:20927 :: File "game.py", line 1642, in BINARY_Cube_ResultList

0731 19:47:20928 :: IndexError
0731 19:47:20928 :: :
0731 19:47:20928 :: list index out of range
0731 19:47:20928 ::

game.py cube bölümü.
# CUBE
def BINARY_Cube_Open(self, npcVNUM):
self.currentCubeNPC = npcVNUM
self.cubeInformation.clear()
self.interface.wndCube.ClearOldSlots()
self.interface.OpenCubeWindow()


if npcVNUM not in self.cubeInformation:
net.SendChatPacket("/cube r_info")
else:
cubeInfoList = self.cubeInformation[npcVNUM]

i = 0
for cubeInfo in cubeInfoList:
self.interface.wndCube.AddCubeResultItem(cubeInfo["vnum"], cubeInfo["count"])

j = 0
for materialList in cubeInfo["materialList"]:
for materialInfo in materialList:
itemVnum, itemCount = materialInfo
self.interface.wndCube.AddMaterialInfo(i, j, itemVnum, itemCount)
j = j + 1

i = i + 1

self.interface.wndCube.Refresh()

def BINARY_Cube_Close(self):
self.interface.CloseCubeWindow()

# 제작에 필요한 골드, 예상되는 완성품의 VNUM과 개수 정보 update
def BINARY_Cube_UpdateInfo(self, gold, itemVnum, count):
self.interface.UpdateCubeInfo(gold, itemVnum, count)

def BINARY_Cube_Succeed(self, itemVnum, count):
print "큐브 제작 성공"
self.interface.SucceedCubeWork(itemVnum, count)
pass

def BINARY_Cube_Failed(self):
print "큐브 제작 실패"
self.interface.FailedCubeWork()
pass

def BINARY_Cube_ResultList(self, npcVNUM, listText):
# ResultList Text Format : 72723,1/72725,1/72730.1/50001,5 이런식으로 "/" 문자로 구분된 리스트를 줌
#print listText

if npcVNUM == 0:
npcVNUM = self.currentCubeNPC

self.cubeInformation[npcVNUM] = []

try:
for eachInfoText in listText.split("/"):
eachInfo = eachInfoText.split(",")
itemVnum = int(eachInfo[0])
itemCount = int(eachInfo[1])

self.cubeInformation[npcVNUM].append({"vnum": itemVnum, "count": itemCount})
self.interface.wndCube.AddCubeResultItem(itemVnum, itemCount)

resultCount = len(self.cubeInformation[npcVNUM])
requestCount = 7
modCount = resultCount % requestCount
splitCount = resultCount / requestCount
for i in xrange(splitCount):
#print("/cube r_info %d %d" % (i * requestCount, requestCount))
net.SendChatPacket("/cube r_info %d %d" % (i * requestCount, requestCount))

if 0 < modCount:
#print("/cube r_info %d %d" % (splitCount * requestCount, modCount))
net.SendChatPacket("/cube r_info %d %d" % (splitCount * requestCount, modCount))

except RuntimeError, msg:
dbg.TraceError(msg)
return 0

pass

def BINARY_Cube_MaterialInfo(self, startIndex, listCount, listText):
# Material Text Format : 125,1|126,2|127,2|123,5&555,5&555,4/120000
try:
#print listText

if 3 > len(listText):
dbg.TraceError("Wrong Cube Material Infomation")
return 0



eachResultList = listText.split("@")

cubeInfo = self.cubeInformation[self.currentCubeNPC]

itemIndex = 0
for eachResultText in eachResultList:
cubeInfo[startIndex + itemIndex]["materialList"] = [[], [], [], [], []]
materialList = cubeInfo[startIndex + itemIndex]["materialList"]

gold = 0
splitResult = eachResultText.split("/")
if 1 < len(splitResult):
gold = int(splitResult[1])

#print "splitResult : ", splitResult
eachMaterialList = splitResult[0].split("&")

i = 0
for eachMaterialText in eachMaterialList:
complicatedList = eachMaterialText.split("|")

if 0 < len(complicatedList):
for complicatedText in complicatedList:
(itemVnum, itemCount) = complicatedText.split(",")
itemVnum = int(itemVnum)
itemCount = int(itemCount)
self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)

materialList.append((itemVnum, itemCount))

else:
itemVnum, itemCount = eachMaterialText.split(",")
itemVnum = int(itemVnum)
itemCount = int(itemCount)
self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)

materialList.append((itemVnum, itemCount))

i = i + 1



itemIndex = itemIndex + 1

self.interface.wndCube.Refresh()


except RuntimeError, msg:
dbg.TraceError(msg)
return 0

pass

# END_OF_CUBE


 
Durum güncelleme, demirci için cubeyi açıyorum istediği materyaller görünmüyor fakat ayarladığım şekilde itemleri ekleyip üret dediğimde üretim başarı ile gerçekleşiyor. Yani sonuç olarak sv side tarafında işlemler doğru çalışıyor ama client tarafında bir problem var gibi. Konu da destek atabilecek arkadaş var ise istediği game.py uicube vs iletebilirim.
 
Cube.txt de demircide ekledigin itemlere gold eklememissin ondan olabilir
Baek go da ekli olan itemin npc kodunu demircinin koduyla degistir
 
konu yaklaşık 1 haftadır açık bir çözüm bulunur mu diye takip ediyordum ama sanırım bir yere gitmiyor olaylar. olayla ilgili bir çözümüm yok ama neden offical olana geçmeyi düşünmediğinizi merak ediyorum. ben offical kullanıyorum sebebi de kontrolleri ve kullanımının basit olması ve bir çok aktif serverde artık offical a geçmeye başladı. belki eski tip seviyorsundur ayıp olmasın diye yazmıyordum ama 1 haftadır olay çözülmeyince bi yaızıyım dedim. :)


Merhaba,

@Kaptan Yosun Paylaştığı offical dosyaları kullanıyorum.

Aşağıdaki şekilde cube questim var.
cube.txt' de doğru şekilde doldurdum(baek godan örnek alıp aynı şekilde). Baek Go'da cube açtığımda ekran dolu ve doğru bir şekilde geliyor fakat Demircide ne yapsam yapayım cube ekranı boş gelmekte.

Cube Cuest:
quest testcube begin
state start begin
when 20016.chat."Paneli aç " with pc.level >= 15 begin
npckodu = mob_name(20016)
say_title(" "..npckodu.." ")
say("")
say("Panel açıldı. ")
wait()
setskin(NOWINDOW)
command("cube open")
end
end
end

cube.txt
#µµ¶óÁöÁø¾×
section
npc 20016
item 50722 1
reward 50802 1
percent 100
end

Yardımlarınızı rica ederim.

18052 eklentisini görüntüle
 
konu yaklaşık 1 haftadır açık bir çözüm bulunur mu diye takip ediyordum ama sanırım bir yere gitmiyor olaylar. olayla ilgili bir çözümüm yok ama neden offical olana geçmeyi düşünmediğinizi merak ediyorum. ben offical kullanıyorum sebebi de kontrolleri ve kullanımının basit olması ve bir çok aktif serverde artık offical a geçmeye başladı. belki eski tip seviyorsundur ayıp olmasın diye yazmıyordum ama 1 haftadır olay çözülmeyince bi yaızıyım dedim. :)
Merhaba,

Eski tarz temiz altyapıya 0 dan eklemeler ile bir yere getirmeyi hedefliyorum aslında o sebeple temiz bir altyapıdan ilerliyorum. Soruna çözüm getiremedim fakat sorun client kaynaklı aklımdaki sistem knight online'daki takı sistmeini kurmaktı 3 adet +0 takı ile 1 adet +1 takı üretmekti. Şu an sistem çalışıyor ama istenilen itemler görünmüyor. O konuda da direkt o pencereyi kapatarak sadece materyal bölümünü açık bırakarak ilerlemeyi düşünüyorum. Sonuçta yüzde yüz geçecek ve 3 itemin birleşimi +1 e geçecek.

Cube.txt de demircide ekledigin itemlere gold eklememissin ondan olabilir
Baek go da ekli olan itemin npc kodunu demircinin koduyla degistir
Yok gold ile alakalı değildi sorun. Sorun şu an çözüldü diyebilirim. İstediğimi elde edemedim ama başka yollarla aklımdaki sistemi oturttum :)
 
Üst