• 🎉 Hey there! I've just launched my brand new server voting platform — Metin2 P Servers 🚀

Not answered Aslan teleport problem

Member
Oct
Threads
2
45
2
8
HubMoney
403
Hi, I implemented the teleportation system from Aslan and when I enter the client it takes me out and I have this error:

uiteleportpanel.loadwindow.bindobject - <type 'exceptions.keyerror'>:'scrollbar'
 
Dec
Threads
0
14
0
1
HubMoney
147
1125 08:53:11326 ::
uiTeleportPanel.py(line:320) __LoadWindow
ui.py(line:4951) GetChild

uiTeleportPanel.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'ScrollBar'

1125 08:53:11327 :: ============================================================================================================
1125 08:53:11327 :: Abort!!!!


someone already fixed it??
i have the same error.
 
Member
Jan
Threads
0
2
0
1
HubMoney
122
put in
# Search

class SmallThinScrollBar(ScrollBar):
[...]

# add under this class

class ScrollBarFlat(Window):

SCROLLBAR_WIDTH = 11
SCROLLBAR_MIDDLE_HEIGHT = 12
MIDDLE_BAR_POS = 3
MIDDLE_BAR_UPPER_PLACE = 0
MIDDLE_BAR_DOWNER_PLACE = 4
TEMP_SPACE = MIDDLE_BAR_UPPER_PLACE + MIDDLE_BAR_DOWNER_PLACE

class MiddleBar(DragButton):
def __init__(self):
DragButton.__init__(self)
self.AddFlag("movable")
#self.AddFlag("restrict_x")

def MakeScrollBar(self):
self.scrollbar = Bar()
self.scrollbar.SetParent(self)
self.scrollbar.SetColor(0xFF6B655A)
self.scrollbar.SetPosition(3, 3)
self.scrollbar.SetSize(5, 10)
self.scrollbar.AddFlag("not_pick")
self.scrollbar.Show()

def SetSize(self, height):
height = max(12, height)
self.scrollbar.SetSize(5, height)
DragButton.SetSize(self, 8, height)

#height -= 4*3
#self.middle.SetRenderingRect(0, 0, 0, float(height)/4.0)

def __init__(self):
Window.__init__(self)

self.pageSize = 1
self.curPos = 0.0
self.eventScroll = lambda *arg: None
self.lockFlag = False
self.scrollStep1 = 0.20
self.scrollStep2 = 0.10

self.CreateScrollBar()

def __del__(self):
Window.__del__(self)

def CreateScrollBar(self):
self.barSlotOutline = Bar()
self.barSlotOutline.SetParent(self)
self.barSlotOutline.SetSize(11, 50)
self.barSlotOutline.SetPosition(0, 0)
self.barSlotOutline.SetColor(0xFF000000)
self.barSlotOutline.AddFlag("not_pick")
self.barSlotOutline.Show()

self.barSlotEdge = Bar()
self.barSlotEdge.SetParent(self.barSlotOutline)
self.barSlotEdge.SetSize(9, 48)
self.barSlotEdge.SetPosition(1, 1)
self.barSlotEdge.SetColor(0xFF6B655A)
self.barSlotEdge.AddFlag("not_pick")
self.barSlotEdge.Show()

self.barSlotMiddle = Bar()
self.barSlotMiddle.SetParent(self.barSlotOutline)
self.barSlotMiddle.SetSize(7, 46)
self.barSlotMiddle.SetPosition(2, 2)
self.barSlotMiddle.SetColor(0xFF0C0C0C)
self.barSlotMiddle.AddFlag("not_pick")
self.barSlotMiddle.Show()

self.middleBar = self.MiddleBar()
self.middleBar.SetParent(self)
self.middleBar.SetMoveEvent(__mem_func__(self.OnMove))
self.middleBar.MakeScrollBar()
self.middleBar.SetSize(12)
self.middleBar.Show()

self.SCROLLBAR_MIDDLE_HEIGHT = self.middleBar.GetHeight()

def Destroy(self):
self.middleBar = None
#self.upButton = None
#self.downButton = None
self.eventScroll = lambda *arg: None

def SetScrollEvent(self, event):
self.eventScroll = event

def SetMiddleBarSize(self, pageScale):
realHeight = self.GetHeight()
self.SCROLLBAR_MIDDLE_HEIGHT = int(pageScale * float(realHeight))
self.middleBar.SetSize(self.SCROLLBAR_MIDDLE_HEIGHT)
self.pageSize = self.GetHeight() - self.SCROLLBAR_MIDDLE_HEIGHT - (self.TEMP_SPACE)

def SetScrollBarSize(self, height):
self.pageSize = height - self.SCROLLBAR_MIDDLE_HEIGHT - self.TEMP_SPACE
self.SetSize(11, height)
self.middleBar.SetRestrictMovementArea(self.MIDDLE_BAR_POS, self.MIDDLE_BAR_UPPER_PLACE, self.MIDDLE_BAR_POS, height - self.TEMP_SPACE)
self.middleBar.SetPosition(self.MIDDLE_BAR_POS, 0)

self.UpdateBarSlot()

def UpdateBarSlot(self):
self.barSlotOutline.SetSize(11, self.GetHeight() + 1)
self.barSlotEdge.SetSize(9, self.barSlotOutline.GetHeight() - 2 + 1)
self.barSlotMiddle.SetSize(7, self.barSlotOutline.GetHeight() - 4 + 1)

def GetPos(self):
return self.curPos

def SetPos(self, pos):
pos = max(0.0, pos)
pos = min(1.0, pos)

newPos = float(self.pageSize) * pos
self.middleBar.SetPosition(self.MIDDLE_BAR_POS, int(newPos) + self.MIDDLE_BAR_UPPER_PLACE)
self.OnMove()

def SetScrollStep(self, step):
self.scrollStep1 = step

def GetScrollStep(self):
return self.scrollStep1

def OnUp(self):
self.SetPos(self.curPos-self.scrollStep1)

def OnDown(self):
self.SetPos(self.curPos+self.scrollStep1)

def OnUp2(self):
self.SetPos(self.curPos-self.scrollStep2)

def OnDown2(self):
self.SetPos(self.curPos+self.scrollStep2)

def OnMove(self):
if self.lockFlag:
return

if 0 == self.pageSize:
return

(xLocal, yLocal) = self.middleBar.GetLocalPosition()
self.curPos = float(yLocal - self.MIDDLE_BAR_UPPER_PLACE) / float(self.pageSize)

self.eventScroll()

def OnMouseLeftButtonDown(self):
(xMouseLocalPosition, yMouseLocalPosition) = self.GetMouseLocalPosition()
#pickedPos = yMouseLocalPosition
pickedPos = yMouseLocalPosition
newPos = float(pickedPos) / float(self.pageSize)
self.SetPos(newPos)

def LockScroll(self):
self.lockFlag = True

def UnlockScroll(self):
self.lockFlag = False

# search

elif Type == "small_thin_scrollbar":
parent.Children[Index] = SmallThinScrollBar()
parent.Children[Index].SetParent(parent)
self.LoadElementScrollBar(parent.Children[Index], ElementValue, parent)

# add

elif Type == "scrollbar_flat":
parent.Children[Index] = ScrollBarFlat()
parent.Children[Index].SetParent(parent)
self.LoadElementScrollBar(parent.Children[Index], ElementValue, parent)
@MagnusBee
 
Member
Jul
Threads
0
91
0
6
HubMoney
558
Hi, I implemented the teleportation system from Aslan and when I enter the client it takes me out and I have this error:

uiteleportpanel.loadwindow.bindobject - <type 'exceptions.keyerror'>:'scrollbar'
Bu konuyu tekrar gündeme getireceğim çünkü bu topluluğa kimse yardım etmediği için bu kolay bir hata.



Ui.py'yi açalım ve aşağıdakileri arayalım:



# Search



class Board(Window):
[...]


# add above this class



class BorderA(Window):
CORNER_WIDTH = 16
CORNER_HEIGHT = 16
LINE_WIDTH = 16
LINE_HEIGHT = 16
BOARD_COLOR = grp.GenerateColor(0.17, 0.027, 0.0, 0.70)


LT = 0
LB = 1
RT = 2
RB = 3
L = 0
R = 1
T = 2
B = 3

def __init__(self, layer = "UI"):
Window.__init__(self, layer)

CornerFileNames = [ "d:/ymir work/ui/pattern/border_a/border_a_"+dir+".tga" for dir in ["Left_Top","Left_Bottom","Right_Top","Right_Bottom"] ]
LineFileNames = [ "d:/ymir work/ui/pattern/border_a/border_a_"+dir+".tga" for dir in ["Left","Right","Top","Bottom"] ]
#BaseFileName = "d:/ymir work/ui/pattern/border_a/border_center.tga"

self.Corners = []
for fileName in CornerFileNames:
Corner = ExpandedImageBox()
Corner.AddFlag("not_pick")
Corner.LoadImage(fileName)
Corner.SetParent(self)
Corner.SetPosition(0, 0)
Corner.Show()
self.Corners.append(Corner)

self.Lines = []
for fileName in LineFileNames:
Line = ExpandedImageBox()
Line.AddFlag("not_pick")
Line.LoadImage(fileName)
Line.SetParent(self)
Line.SetPosition(0, 0)
Line.Show()
self.Lines.append(Line)

self.Base = ExpandedImageBox()
self.Base.AddFlag("not_pick")
self.Base.LoadImage("d:/ymir work/ui/pattern/border_a/border_a_center.tga")
self.Base.SetParent(self)
self.Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)
self.Base.Show()

self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)

def __del__(self):
Window.__del__(self)

def SetSize(self, width, height):

width = max(self.CORNER_WIDTH*2, width)
height = max(self.CORNER_HEIGHT*2, height)
Window.SetSize(self, width, height)

self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)
self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)
self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)
self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)
self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)

verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT
horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH
self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)

if self.Base:
self.Base.SetRenderingRect(0, 0, horizontalShowingPercentage, verticalShowingPercentage)

def ShowInternal(self):
self.Base.Show()
for wnd in self.Lines:
wnd.Show()
for wnd in self.Corners:
wnd.Show()

def HideInternal(self):
self.Base.Hide()
for wnd in self.Lines:
wnd.Hide()
for wnd in self.Corners:
wnd.Hide()




# Search



elif Type == "board":
parent.Children[Index] = Board()
parent.Children[Index].SetParent(parent)
self.LoadElementBoard(parent.Children[Index], ElementValue, parent)


# add under this class



elif Type == "border_a":
parent.Children[Index] = BorderA()
parent.Children[Index].SetParent(parent)
self.LoadElementBorderA(parent.Children[Index], ElementValue, parent)


# Search



## Board
def LoadElementBoard(self, window, value, parentWindow):

if False == self.CheckKeyList(value["name"], value, self.BOARD_KEY_LIST):
return False

window.SetSize(int(value["width"]), int(value["height"]))
self.LoadDefaultData(window, value, parentWindow)

return True


# add under this class



def LoadElementBorderA(self, window, value, parentWindow):

if False == self.CheckKeyList(value["name"], value, self.BOARD_KEY_LIST):
return False

window.SetSize(int(value["width"]), int(value["height"]))
self.LoadDefaultData(window, value, parentWindow)

return True


Umarım bu sistemden memnun kalırsınız.