romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplandı Battlepass Syserr

  • Konuyu başlatan Konuyu başlatan rido1997
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 144

rido1997

Level 3
TM Üye
Katılım
7 Kas 2008
Konular
31
Mesajlar
169
Çözüm
4
Online süresi
22d 1h
Reaksiyon Skoru
102
Altın Konu
0
Başarım Puanı
129
Yaş
29
MmoLira
3,068
DevLira
6
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Arkadaşlar özellik veren battle pass sistemini razuning v5'e ekledim, client game src ve python tarafını sorunsuzca eklemem gereken her şeyi ekledim ama loading ekranı dolduktan sonra crash veriyor ve aşağıdaki gibi bir syserr var, yardımcı olabilirseniz çok sevinirim
[CODE title="Syserr"]1121 18:59:10567 ::
uinewbattlepass.py(line:48) LoadWindow
ui.py(line:2719) GetChild

BattlePassWindow.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'Log_Container'

1121 18:59:10567 :: ============================================================================================================
1121 18:59:10567 :: Abort!!!!


[/CODE]

Sorun nerede acaba?

Bu pack/root/uinewbattlepass.py dosyamın içeriği
[CODE title="pack/root/uinewbattlepass.py"]import ui, net, uiToolTip, nonplayer

class BattlePassWindow(ui.ScriptWindow):
def __init__(self):
super(BattlePassWindow, self).__init__()
self.Initialize()
self.LoadWindow()

def __del__(self):
super(BattlePassWindow, self).__del__()

def Destroy(self):
self.ClearDictionary()

def Open(self):
self.SetTop()
self.SetCenterPosition()
self.Show()
if not self.isLoad:
self.EnableRefreshSymbol()
net.SendBattlePassOpenPacket()
self.isLoad = True
else:
self.LoadMissions()

def Close(self):
self.Hide()
map(MissionButtons.Close, self.MissionContainer.GetItems())

def OnPressEscapeKey(self):
self.Close()
return True

def Initialize(self):
self.missionsList = []
self.selectedIndex = 0
self.MissionContainer = None
self.isLoad = False

def LoadWindow(self):
try:
ui.PythonScriptLoader().LoadScriptFile(self, "uiscript/newbattlepass.py")
except:
import exception
exception.Abort("BattlePassWindow.LoadWindow.LoadObject")
try:
self.GetChild("TitleBar").SetCloseEvent(self.Close)
self.MissionContainer = self.GetChild("Log_Container")
self.RefreshSymbol = self.GetChild("RefreshSymbol")
self.status_text = self.GetChild("mission_text_0")
self.scrollbar = self.GetChild("LogScrollBar")
self.affect_text_list = [self.GetChild("mission_text_%d" % i) for i in range(4, 7)]
self.desc_text_list = [self.GetChild("mission_text_%d" % i) for i in range(1, 4)]
except:
import exception
exception.Abort("BattlePassWindow.LoadWindow.BindObject")

self.MissionContainer.SetItemStep(45)
self.MissionContainer.SetItemSize(290, 250)
self.MissionContainer.SetScrollBar(self.scrollbar)

def UpdateMissions(self, missionValue, targetVnum, desc):
desc = desc.replace('#', ' ').title()
upData = { 'mission_value': long(missionValue), 'target_value': int(targetVnum), 'desc': desc, 'player_val' : 0, 'reward_arr' : [], 'aff_arr' : [] }
self.missionsList.append(upData)

def UpdateMissionItemReward(self, idx, vnum, count):
try:
itemList = (vnum, count)
self.missionsList[idx]['reward_arr'].append(itemList)
except: pass

def UpdateMissionAffReward(self, idx, affType, affVal):
try:
affList = (affType, affVal)
self.missionsList[idx]['aff_arr'].append(affList)
except: pass

def UpdatePlayerValue(self, idx, value):
try:
self.missionsList[idx]['player_val'] = long(value)
item = self.MissionContainer.GetItemWithIndex(int(idx))
if item is not None:
item.UpdatePlayerValue(value)
if int(idx) == self.selectedIndex:
self.LoadMissionInfos()
except: pass

def LoadMissions(self):
self.MissionContainer.RemoveAllItems()
for idx, elm in enumerate(self.missionsList):
info = MissionButtons(self, idx, elm['mission_value'], elm['target_value'], elm['desc'], elm['player_val'], elm['reward_arr'], elm['aff_arr'])
self.MissionContainer.AppendItem(info)
self.DisableRefreshSymbol()
self.SelectFirstItem()

def SelectFirstItem(self):
firstItem = self.MissionContainer.GetFirstItem()
firstItem.ButtonAction()

def EnableRefreshSymbol(self):
self.RefreshSymbol.Show()

def DisableRefreshSymbol(self):
self.RefreshSymbol.Hide()

def SetUpButtons(self):
for btn in self.MissionContainer.GetItems():
btn.UpButton()

def LoadMissionInfos(self):
info = self.missionsList[self.selectedIndex]
statText = "Devam ediyor"
if info['player_val'] >= info['mission_value']:
statText = "Tamamland\xfd"
self.status_text.SetText(statText)

for idx, aff in enumerate(info['aff_arr']):
cls = uiToolTip.ItemToolTip()
affText = cls.GetAffectString(aff[0], aff[1])
self.affect_text_list[idx].SetText(affText)

self.desc_text_list[0].SetText("Hedef : {}".format(nonplayer.GetMonsterName(info['target_value'])))
self.desc_text_list[1].SetText("Aciklama: %s" % info['desc'])
self.desc_text_list[2].SetText("Ilerleme : {} / {}".format(info['player_val'], info['mission_value']))

def OnRunMouseWheel(self, a):
if not self.IsInPosition():
return False
if not self.scrollbar.IsShow():
return False
if a > 0:
self.scrollbar.OnUp()
else:
self.scrollbar.OnDown()
return True

import wndMgr
class MissionButtons(ui.Window):
ROOT = "battlepass/"
WIDTH = 290
def __init__(self, parent, idx, mission_value, target_value, desc, player_val, item_list, aff_list):
super(MissionButtons, self).__init__()
self.SetParent(parent)
self.parent = parent
self.idx = int(idx)
self.mission_value = long(mission_value)
self.target_value = long(target_value)
self.desc = str(desc)
self.player_val = long(player_val)
self.item_list = item_list
self.aff_list = aff_list
self.ToolTipItem = uiToolTip.ItemToolTip()
# self.SetColor(ui.NewListBoxItem.DEFAULT_COLOR)
self.SetSize(self.WIDTH, 44)
self.InitItem()
self.LoadItemRewards()

def __del__(self):
super(MissionButtons, self).__del__()
del self.parent
del self.idx
del self.mission_value
del self.target_value
del self.desc
del self.button
del self.missionImg
del self.imgGaugeBack
del self.imgGauge
del self.ToolTipItem
del self.item_list
del self.aff_list
del self.player_val

def InitItem(self):
self.button = ui.RadioButton()
self.button.SetParent(self)
self.button.SetUpVisual(self.ROOT + "mission_bg_normal.tga")
self.button.SetOverVisual(self.ROOT + "mission_bg_over.tga")
self.button.SetDownVisual(self.ROOT + "mission_bg_selected.tga")
self.button.SetEvent(lambda: self.ButtonAction())
self.button.SetPosition(0, 0)
self.button.Show()
# self.RegisterComponent(self.button)

self.missionText = ui.TextLine()
self.missionText.SetParent(self.button)
self.missionText.SetPosition(45, 5)
self.missionText.SetText(self.desc)
self.missionText.Show()
# self.RegisterComponent(self.missionText)

self.imgGaugeBack = ui.ImageBox()
self.imgGaugeBack.SetParent(self.button)
self.imgGaugeBack.LoadImage(self.ROOT + "mission_progress_empty.tga")
self.imgGaugeBack.SetPosition(45, 25)
self.imgGaugeBack.Show()
# self.RegisterComponent(self.imgGaugeBack)

self.imgGauge = ui.AniImageBox()
self.imgGauge.SetParent(self.imgGaugeBack)
self.imgGauge.AppendImage(self.ROOT + "mission_progress_middle.tga")
self.imgGauge.SetPosition(7, 2)
self.UpdatePlayerValue()
# self.imgGauge.SetPercentage(0,100)
self.imgGauge.Show()
# self.RegisterComponent(self.imgGauge)

self.missionImg = ui.ImageBox()
self.missionImg.SetParent(self)
self.missionImg.LoadImage(self.ROOT + "mission_1_small.tga")
self.missionImg.SetPosition(3, 1)
self.missionImg.Show()
# self.RegisterComponent(self.missionImg)

self.rewardSlot = ui.GridSlotWindow()
self.rewardSlot.SetParent(self)
self.rewardSlot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
self.rewardSlot.ArrangeSlot(0, 3, 1, 32, 32, 0, 0)
self.rewardSlot.SetOverInItemEvent(ui.__mem_func__(self.OnOverInItem))
self.rewardSlot.SetOverOutItemEvent(ui.__mem_func__(self.OnOverOutItem))
self.rewardSlot.SetPosition(self.WIDTH - 102, 6)
self.rewardSlot.Show()
# self.RegisterComponent(self.rewardSlot)

def LoadItemRewards(self):
for idx,elm in enumerate(self.item_list):
if idx > 2: break
self.rewardSlot.SetItemSlot(idx, int(elm[0]), int(elm[1]))
self.rewardSlot.RefreshSlot()

def UpdatePlayerValue(self, val = 0):
if val > 0:
self.player_val = long(val)
try:
perc = (float(self.player_val) / float(self.mission_value)) * 100
perc = min(100, perc)
except ZeroDivisionError:
perc = 0
self.imgGauge.SetPercentage(perc, 100)

def OnOverInItem(self, slotIndex):
if self.ToolTipItem:
vnum = int(self.item_list[slotIndex][0])
self.ToolTipItem.SetItemToolTip(vnum)

def OnOverOutItem(self):
if self.ToolTipItem:
self.ToolTipItem.HideToolTip()
self.ToolTipItem.ClearToolTip()

def ButtonAction(self):
self.parent.SetUpButtons()
self.button.Down()
self.parent.selectedIndex = self.idx
self.parent.LoadMissionInfos()

def UpButton(self):
self.button.SetUp()

def Close(self):
self.OnOverOutItem()
self.Hide()[/CODE]

Bu da pack/uiscript/newbattlepass.py dosya içeriğim

[CODE title="pack/uiscript/newbattlepass.py"]import localeInfo
import uiScriptLocale
import app

BOARD_WIDTH = 537
BOARD_HEIGHT = 277

PATH = "battlepass/"

window = {
"name": "BattlePassWindow",

"x": 0,
"y": 0,

"style": ("movable", "float",),

"width": BOARD_WIDTH,
"height": BOARD_HEIGHT,

"children":
(
{
"name": "board",
"type": "board",
"style": ("attach",),

"x": 0,
"y": 0,

"width": BOARD_WIDTH,
"height": 320, #ana gui

#ana "children":
(
## Title
## {
"name": "TitleBar",
"type": "titlebar",
"style": ("attach",),

"x": 6,
"y": 6,

"width": BOARD_WIDTH - 13,
"color": "yellow",

"children":
(
{"name": "TitleName", "type": "text", "x": BOARD_WIDTH / 2, "y": 3,
"text": "Battle Pass", "text_horizontal_align": "center"},
),
},

## Scroll Border
## {
"name": "BorderScroll",
"type": "thinboard_circle",
"x": 295, "y": 75,
"width": 20, "height": BOARD_HEIGHT - 42,
},
## Missions Borde## {
"name": "BorderMissions", "type": "thinboard_circle",
"x": 8, "y": 75,
"width": BOARD_HEIGHT + 21, "height": BOARD_HEIGHT - 42,
"children":
(
# Log Container
{
"name": "Log_Container",
"type": "listboxex",
"x": 5,
"y": 5,
"width": 290,
"height": 44 * 5,
"viewcount": 5,
},
),
},

# Main Board Scroll
{
"name": "LogScrollBar",
"type": "scrollbar",

"x": 295+ 13,
"y": 75,
"size": BOARD_HEIGHT - 42,
},
{
"name" : "itembar",
"type" : "image",
"x" : 8,
"y" : 31,
"image" : "d:/ymir work/ui/game/bpknk/basket_button2.png",
},
{
"name": "mission_text_10", "type": "text",
"x":0, "y": 42,
"text": localeInfo.BATTLEPASS_UYARI,
"fontsize": "LARGE",
"color": 0xFFFEE3AE,
"text_horizontal_align" : "center",
"horizontal_align" : "center",
},


## General Info B##der
{
"name": "BorderInfoGeneral", "type": "thinboard_circle",
"x": 320, "y": BOARD_HEIGHT - 200, #affect tarafı
#affect "width": 207, "height": BOARD_HEIGHT - 48,
"children":
(
{
"name": "bgImageMission", "type": "image",
"x": 3, "y": 3,
"image": PATH + "mission_big_clean.png",
"children":
(
{
"name": "missionImageTitle", "type": "image",
"x": 0, "y": 0,
"image": PATH + "title_bar_special.tga",
"children":
(
{
"name": "missionTitleText", "type": "text",
"x": 100, "y": 4,
"text": "Bilgiler",
"text_horizontal_align": "center",
"text_color": 0xffffeea6,
},
),
},
{
"name": "mission_image_10", "type": "image",
"x": 0, "y": 22,
"image": PATH + "info_bar_title.tga",
"children":
(
{
"name": "mission_text_10", "type": "text",
"x": 5, "y": 0,
"text": "Durum",
"fontsize": "LARGE",
"color": 0xFFFEE3AE,
# "text_horizontal_align" : "center",
# "horizontal_align" : "center",
},
),
},
{
"name": "mission_text_0", "type": "text",
"x": 5, "y": 42,
"text": "",
},
{
"name": "mission_image_20", "type": "image",
"x": 0, "y": 65,
"image": PATH + "info_bar_title.tga",
"children":
(
{
"name": "mission_text_20", "type": "text",
"x": 5, "y": 0,
"text": "Gorev Bilgileri",
"fontsize": "LARGE",
"color": 0xFFFEE3AE,
# "text_horizontal_align" : "center",
# "horizontal_align" : "center",
},
),
},
{
"name": "mission_text_1", "type": "text",
"x": 5, "y": 85,
"text": "",
},
{
"name": "mission_image_2", "type": "image",
"x": 0, "y": 101,
"image": PATH + "info_bar_even.tga",
"children":
(
{
"name": "mission_text_2", "type": "text",
"x": 5, "y": 2,
"text": "",
},
),
},
{
"name": "mission_text_3", "type": "text",
"x": 5, "y": 124,
"text": "",
},
{
"name": "mission_image_30", "type": "image",
"x": 0, "y": 149,
"image": PATH + "info_bar_title.tga",
"children":
(
{
"name": "mission_text_30", "type": "text",
"x": 5, "y": 0,
"text": "Affect Bilgileri",
"fontsize": "LARGE",
"color": 0xFFFEE3AE,
# "text_horizontal_align" : "center",
# "horizontal_align" : "center",
},
),
},
{
"name": "mission_text_4", "type": "text",
"x": 5, "y": 169,
"text": "",
},
{
"name": "mission_image_5", "type": "image",
"x": 0, "y": 185,
"image": PATH + "info_bar_even.tga",
"children":
(
{
"name": "mission_text_5", "type": "text",
"x": 5, "y": 2,
"text": "",
},
),
},
{
"name": "mission_text_6", "type": "text",
"x": 5, "y": 205,
"text": "",
},
),
},
),
},

# loading image
{
"name": "RefreshSymbol",
"type": "ani_image",

"x": 0, "y": 0,
"horizontal_align": "center",
"vertical_align": "center",

"images": (
PATH + "loading/loading_image0.dds",
PATH + "loading/loading_image1.dds",
PATH + "loading/loading_image2.dds",
PATH + "loading/loading_image3.dds",
PATH + "loading/loading_image4.dds",
PATH + "loading/loading_image5.dds",
PATH + "loading/loading_image6.dds",
PATH + "loading/loading_image7.dds",
),
},



),
},
),
}

[/CODE]
 
Çözüm
Ticaret - 0%
0   0   0
1763799384456.png


Log_Container typesi listboxex olarak adlandırılmış ve senin ui.py dosyasında 'listboxex' diye bir class olmadığından key error alıyorsun bunu düzeltmek için ui.py'ye bu tanımı eklemen gerekiyor.

ui.py aç class listbox arat ve üstüne bunu ekle


Daha sonra
elif Type == "listbox": bunu aratıp bunu ekle


Son hali böyle olmalı

1763799803050.png
1763799384456.png


Log_Container typesi listboxex olarak adlandırılmış ve senin ui.py dosyasında 'listboxex' diye bir class olmadığından key error alıyorsun bunu düzeltmek için ui.py'ye bu tanımı eklemen gerekiyor.

ui.py aç class listbox arat ve üstüne bunu ekle


Daha sonra
elif Type == "listbox": bunu aratıp bunu ekle


Son hali böyle olmalı

1763799803050.png
 
Çözüm
Ekli dosyayı görüntüle 159415

Log_Container typesi listboxex olarak adlandırılmış ve senin ui.py dosyasında 'listboxex' diye bir class olmadığından key error alıyorsun bunu düzeltmek için ui.py'ye bu tanımı eklemen gerekiyor.

ui.py aç class listbox arat ve üstüne bunu ekle


Daha sonra
elif Type == "listbox": bunu aratıp bunu ekle


Son hali böyle olmalı

Ekli dosyayı görüntüle 159416
Çok teşekkürler hocam, başka biri bağlandı ve tam olarak bahsettiğiniz şekilde çözdü.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst