Switchbot Problem 6/7

05/01/2015 15:50 Prof.MindFreak#1
Guten Tag,
Ich habe ein Problem mit meinem Switchbot.
Ich kann bei der 6/7 Option keine Bonuse auswählen.
Wie kann ich das Board vergrößern ?

[Only registered and activated users can see links. Click Here To Register...]

PHP Code:
import shop
import player
import item
import ui
import net
import locale
import chat
import grp
import wndMgr
import mouseModule

from uitooltip import ItemToolTip
# Switchbot by Mijago ; v 2.2.1

WEAR_NAMES ItemToolTip.WEAR_NAMES
AFFECT_DICT 
ItemToolTip.AFFECT_DICT

### Hier die Boni angeben, die auf dem Server aktiviert sind. Die angegebene Liste ist nur ein Beispiel und MUSS angepasst werden!
BONI_AVAIL = [1,3,4,5,6,9,10,15,16,17,29,30,31,32,33,34,35,36,37,38,41,48,53,39,27,28,12]

# Hier 6/7 Boni angeben!
BONI_RARE_AVAIL = [1,3,4,5,6]

# Das Switch-Item
SWITCH_VNUM 71084
SWITCH_RARE_VNUM 
71052

# Die folgenden zahlen geben den MINMAX Bereich des Reglers an, der die Zeit angibt.
MIN_SWITCH_DELAY 35
MAX_SWITCH_DELAY_APPEND 
120

# Max 10!!
MAX_NUM 7

proposals 
= {
    
1: { # 1 = Weapon
        
"PVP (Koerper)":[
            [
9,10],
            [
15,10],
            [
17,10],
            [
16,10],
            [
5,8],
            [
3,8],
        ],
        
"PVP (Mental)":[
            [
9,10],
            [
15,10],
            [
17,10],
            [
6,8],
            [
5,10],
            [
16,10],
        ],
        
"PVM": [
            [
5,10],
            [
19,20],
        ],
    },
    
2: [ # Armor
        
#BODY,
        
],
        [ 
#HEAD,
        
],
        [ 
#SHIELD,
        
],
        [ 
#WRIST,
        
],
        [ 
#FOOTS,
        
],
        [ 
#NECK,
        
],
        [ 
#EAR,
        
],
    ],
}

# Farben :)
# COLOR_BG = grp.GenerateColor(0.0, 0.0, 0.0, 0.5)
# COLOR_INACTIVE = grp.GenerateColor(0.0, 0.0, 1.0, 0.2)
# COLOR_ACTIVE   = grp.GenerateColor(0.1, 0.6, 1.0, 0.2)
# COLOR_FINISHED = grp.GenerateColor(0.0, 0.8, 1.0, 0.3)

# COLOR_INACTIVE_RARE = grp.GenerateColor(0.0, 0.2, 1.0, 0.2)
# COLOR_ACTIVE_RARE   = grp.GenerateColor(0.2, 0.7, 1.0, 0.2)

# COLOR_HIGHLIGHT_RARE = grp.GenerateColor(0.2, 0.2, 1.0, 0.05)

# COLOR_PIN_HINT = grp.GenerateColor(0.0, 0.5, 1.0, 0.3)

# COLOR_CHECKBOX_NOT_SELECTED = grp.GenerateColor(0.0, 0.3, 1.0, 0.1)
# COLOR_CHECKBOX_SELECTED = grp.GenerateColor(0.0, 0.3, 1.0, 0.3)

# Standardfarben:
COLOR_BG grp.GenerateColor(0.00.00.00.5)
COLOR_INACTIVE grp.GenerateColor(1.00.00.00.2)
COLOR_ACTIVE   grp.GenerateColor(1.00.60.10.2)
COLOR_FINISHED grp.GenerateColor(0.01.00.00.2)

COLOR_INACTIVE_RARE grp.GenerateColor(1.00.20.00.2)
COLOR_ACTIVE_RARE   grp.GenerateColor(1.00.70.20.2)

COLOR_HIGHLIGHT_RARE grp.GenerateColor(1.00.20.20.05)

COLOR_PIN_HINT grp.GenerateColor(0.00.51.00.3)


COLOR_CHECKBOX_NOT_SELECTED grp.GenerateColor(1.00.30.00.1)
COLOR_CHECKBOX_SELECTED grp.GenerateColor(0.31.01.00.3)


DISTANCE_BOTTOM 36

class Bar(ui.Bar):
    
def __init__(self,layer "UI"):
        
ui.Bar.__init__(self,layer)
    
def SetColor(self,color):
        
wndMgr.SetColor(self.hWndcolor)
        
self.color color


class BonusSelector(ui.Bar):
    
def Activate(self):
        
self.sub_parent.resetSwitch()
        
self.Status_new.SetColor(COLOR_ACTIVE)
        
self.sub_parent.StatusBar.SetColor(COLOR_ACTIVE)
        
self.sub_parent.StatusText.SetText("Aktiv")
        
self.Starter.SetText("Switchen ("+str(self.index+1)+") anhalten")
        
self.sub_parent.boni_active 1
        
if self.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.swib_normal.SetColor(COLOR_ACTIVE)
        
pass
    def Deactivate
(self):
        
self.sub_parent.resetSwitch()
        
self.Status_new.SetColor(COLOR_INACTIVE)
        
self.sub_parent.StatusBar.SetColor(COLOR_INACTIVE)
        
self.sub_parent.StatusText.SetText("Inaktiv")
        
self.Starter.SetText("Switchen ("+str(self.index+1)+") starten")
        
self.sub_parent.boni_active 0
        
if self.sub_parent.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.swib_normal.SetColor(COLOR_INACTIVE)
        
pass
    
    def Activate_rare
(self):
        
self.sub_parent.resetSwitch_rare()
        
self.sub_parent.StatusBar_rare.SetColor(COLOR_ACTIVE_RARE)
        
self.sub_parent.StatusText_rare.SetText("6/7 Aktiv")
        
self.Starter_rare_boni.SetText("6/7 anhalten")
        
self.sub_parent.boni_rare_active 1
        
if self.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.swib_rare.SetColor(COLOR_ACTIVE_RARE)
        
pass
    def Deactivate_rare
(self):
        
self.sub_parent.resetSwitch_rare()
        
# self.Status_new.SetColor(COLOR_INACTIVE)
        
self.sub_parent.StatusBar_rare.SetColor(COLOR_INACTIVE_RARE)
        
self.sub_parent.StatusText_rare.SetText("6/7 Inaktiv")
        
self.Starter_rare_boni.SetText("6/7 starten")
        
self.Starter_rare_boni.SetUp()
        
self.sub_parent.boni_rare_active 0
        
if self.sub_parent.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.swib_rare.SetColor(COLOR_INACTIVE_RARE)
        
pass
        
    def Finish
(self):
        
self.Status_new.SetColor(COLOR_FINISHED)
        
self.sub_parent.StatusBar.SetColor(COLOR_FINISHED)
        
self.sub_parent.StatusText.SetText("Fertig")
        
self.Starter.SetText("Switchen ("+str(self.index+1)+") fortsetzen")
        
self.sub_parent.boni_active 0
        
if self.sub_parent.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.swib_normal.SetColor(COLOR_FINISHED)
        
pass
        
    def Finish_rare
(self):
        
# self.Status_new.SetColor(COLOR_FINISHED)
        
self.sub_parent.StatusBar_rare.SetColor(COLOR_FINISHED)
        
self.sub_parent.StatusText_rare.SetText("6/7 Fertig")
        
self.Starter_rare_boni.SetText("6/7 fortsetzen")
        
self.sub_parent.boni_rare_active 0
        
if self.sub_parent.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.swib_rare.SetColor(COLOR_FINISHED)
        
pass
    def Block
(self):
        
self.BlockBar.Show()
        
self.BlockBar.sub.Show()
        
self.Starter.Hide()
        
pass
    def Unblock
(self):
        
self.BlockBar.sub.Hide()
        
self.BlockBar.Hide()
        
self.Starter.Show()
        
pass
        
        
    def enable_rare_boni
(self):
        for 
i in range(0,4):
            
self.boni[6][i].Show()
            
self.boni[7][i].Show()
        
self.Starter.SetPosition(0,140+45)
        
self.bg_rare_boni.Show()
        
self.bg_rare_boni_but.Show()
        
self.Starter_rare_boni.Show()
        
self.sub_parent.StatusBar_rare.Show()
        
        if 
self.sub_parent.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.Enable_rare(1)
        
    
def disable_rare_boni(self):
        for 
i in range(0,4):
            
self.boni[6][i].Hide()
            
self.boni[7][i].Hide()
        
self.Starter.SetPosition(0,140)
        
self.bg_rare_boni.Hide()
        
self.bg_rare_boni_but.Hide()
        
self.Starter_rare_boni.Hide()
        
self.sub_parent.StatusBar_rare.Hide()
        
self.Deactivate_rare()
        if 
self.sub_parent.parentWindow.parentWindow.gameWindow != None:
            
self.sub_parent.blockBar.Enable_rare(0)
        
    
def __init__(self,sub_parent):
        
ui.Bar.__init__(self"UI")
        
self.sub_parent sub_parent
        self
.index sub_parent.index
        self
.SetColor(COLOR_BG)
        
self.SetSize(500,225+10)
        
self.boni = {}
        
self.Status_new ui.Bar()
        
self.Status_new.SetParent(self)
        
self.Status_new.SetColor(COLOR_INACTIVE)
        
self.Status_new.SetSize(500,5)
        
self.Status_new.Show()
        
        
        
self.bg_rare_boni ui.Bar()
        
self.bg_rare_boni.SetColor(COLOR_HIGHLIGHT_RARE)
        
self.bg_rare_boni.SetParent(self)
        
self.bg_rare_boni.SetPosition(0,132)
        
self.bg_rare_boni.SetSize(500,51)
        
self.bg_rare_boni.Hide()
        
        
self.bg_rare_boni_but ui.Bar()
        
self.bg_rare_boni_but.SetColor(COLOR_HIGHLIGHT_RARE)
        
self.bg_rare_boni_but.SetParent(self)
        
self.bg_rare_boni_but.SetPosition(400,133+50)
        
self.bg_rare_boni_but.SetSize(100,25)
        
self.bg_rare_boni_but.Hide()
        
        
self.EnableRareBoni CheckBox("6/7 Einblenden")
        
self.EnableRareBoni.SetParent(self)
        
self.EnableRareBoni.SetPosition(10,185)
        
self.EnableRareBoni.eventUp   self.disable_rare_boni
        self
.EnableRareBoni.eventDown self.enable_rare_boni
        self
.EnableRareBoni.Show()
        
        
self.Starter ui.ToggleButton()
        
self.Starter.SetWindowHorizontalAlignCenter()
        
self.Starter.SetParent(self)
        
self.Starter.SetUpVisual("d:/ymir work/ui/public/XLarge_Button_01.sub")
        
self.Starter.SetOverVisual("d:/ymir work/ui/public/XLarge_button_02.sub")
        
self.Starter.SetDownVisual("d:/ymir work/ui/public/XLarge_button_03.sub")
        
self.Starter.SetPosition(0,140)
        
self.Starter.SetText("Switchen starten")
        
self.Starter.SetToggleDownEvent(self.Activate)
        
self.Starter.SetToggleUpEvent(self.Deactivate)
        
self.Starter.Show()
        
        
self.Starter_rare_boni ui.ToggleButton()
        
self.Starter_rare_boni.SetWindowHorizontalAlignCenter()
        
self.Starter_rare_boni.SetParent(self)
        
self.Starter_rare_boni.SetUpVisual("d:/ymir work/ui/public/Large_Button_01.sub")
        
self.Starter_rare_boni.SetOverVisual("d:/ymir work/ui/public/Large_button_02.sub")
        
self.Starter_rare_boni.SetDownVisual("d:/ymir work/ui/public/Large_button_03.sub")
        
self.Starter_rare_boni.SetPosition(200,140+45)
        
self.Starter_rare_boni.SetText("6/7 Starten")
        
self.Starter_rare_boni.SetToggleDownEvent(self.Activate_rare)
        
self.Starter_rare_boni.SetToggleUpEvent(self.Deactivate_rare)
        
self.Starter_rare_boni.Hide()
        
        for 
i in range(7,5,-1):
            
vas i
            self
.boni[vas] = {}
            
self.boni[vas][0] = ui.TextLine()
            
self.boni[vas][0].SetParent(self)
            
self.boni[vas][0].SetText("Bonus "+str(vas))
            
self.boni[vas][0].SetPosition(15,10+25*(vas-1))
            
self.boni[vas][0].Hide()
            
self.boni[vas][1] = DropDown(self,"- Keiner -")
            
self.boni[vas][1].SetPosition(70,10+25*(vas-1))
            for 
x in AFFECT_DICT:
                if 
x in BONI_RARE_AVAIL:
                    
self.boni[vas][1].AppendItem(str(AFFECT_DICT[x](0)),x)
            
self.boni[vas][1].SetSize(330,20)
            
self.boni[vas][1].Hide()
            
self.boni[vas][2] = ui.Bar("UI")
            
self.boni[vas][2].SetParent(self)
            
self.boni[vas][2].SetPosition(410,10+25*(vas-1))
            
self.boni[vas][2].SetColor(0xC0000000)
            
self.boni[vas][2].SetSize(80,20)
            
self.boni[vas][2].Hide()
            
self.boni[vas][3] = Edit2("0",14)
            
self.boni[vas][3].SetParent(self.boni[vas][2])
            
self.boni[vas][3].SetNumberMode()
            
self.boni[vas][3].SetSize(80,20)
            
self.boni[vas][3].SetPosition(4,3)
            
self.boni[vas][3].Hide()
        
        for 
i in range(0,5):
            
vas 5-i
            self
.boni[vas] = {}
            
self.boni[vas][0] = ui.TextLine()
            
self.boni[vas][0].SetParent(self)
            
self.boni[vas][0].SetText("Bonus "+str(vas))
            
self.boni[vas][0].SetPosition(15,10+25*(vas-1))
            
self.boni[vas][0].Show()
            
self.boni[vas][1] = DropDown(self,"- Keiner -")
            
self.boni[vas][1].SetPosition(70,10+25*(vas-1))
            for 
x in AFFECT_DICT:
                if 
x in BONI_AVAIL:
                    
self.boni[vas][1].AppendItem(str(AFFECT_DICT[x](0)),x)
            
self.boni[vas][1].SetSize(330,20)
            
self.boni[vas][1].Show()
            
self.boni[vas][2] = ui.Bar("UI")
            
self.boni[vas][2].SetParent(self)
            
self.boni[vas][2].SetPosition(410,10+25*(vas-1))
            
self.boni[vas][2].SetColor(0xC0000000)
            
self.boni[vas][2].SetSize(80,20)
            
self.boni[vas][2].Show()
            
self.boni[vas][3] = Edit2("0",14)
            
self.boni[vas][3].SetParent(self.boni[vas][2])
            
self.boni[vas][3].SetNumberMode()
            
self.boni[vas][3].SetSize(80,20)
            
self.boni[vas][3].SetPosition(4,3)
            
self.boni[vas][3].Show()
        
        
self.but_propose DropDown(self,'Vorschlaege',0)
        
self.but_propose.SetParent(self)
        
self.but_propose.SetPosition(380,210)
        
self.but_propose.OnChange=self.change_boni
        self
.but_propose.Show()
            
        
self.BlockBar ui.Bar()
        
self.BlockBar.SetParent(self)
        
self.BlockBar.SetColor(COLOR_INACTIVE)
        
self.BlockBar.SetPosition(0,5)
        
self.BlockBar.SetSize(500,170-5+35+2)
        
self.BlockBar.Hide()
        
        
self.BlockBar.sub ui.Bar()
        
self.BlockBar.sub.SetParent(self)
        
self.BlockBar.sub.SetColor(COLOR_INACTIVE)
        
self.BlockBar.sub.SetPosition(500-122,5+170-5+35+2)
        
self.BlockBar.sub.SetSize(122,30)
        
self.BlockBar.sub.Hide()
        
        
self.BlockText ui.TextLine()
        
self.BlockText.SetParent(self.BlockBar)
        
self.BlockText.SetWindowHorizontalAlignCenter()
        
self.BlockText.SetHorizontalAlignCenter()
        
self.BlockText.SetPosition(0,140)
        
self.BlockText.SetText("Dieses Item kannst du nicht switchen.")
        
self.BlockText.Show()
        
        
        
self.prepare_propose()
        
    
def change_boni(self):
        use = 
self.but_propose.DropList.GetSelectedItem().value
        bon 
1
        item
.SelectItem(self.sub_parent.vnum)
        for 
x in use:
            
# TODO: Check if bonus exists on item!!
            
ok 1
            
for i in xrange(item.ITEM_APPLY_MAX_NUM):
                (
affectTypeaffectValue) = item.GetAffect(i)
                if 
affectType == x[0]:
                    
ok 0
            
if ok == 0:
                continue
            
self.boni[bon][1]
            
y.SelectByAffectId(x[0])
            
self.boni[bon][1].act.SetText(y.DropList.GetSelectedItem().textBox.GetText()) 
            
self.boni[bon][3].SetText(str(x[1]))
            
bon+=1

        
for x in range(bon,6):
            
self.boni[x][1].DropList
            y
.SelectIndex(0)
            
self.boni[x][1].act.SetText(y.GetSelectedItem().textBox.GetText()) 
            
self.boni[x][3].SetText("0")
            
        
    
def prepare_propose(self):
        
self.but_propose.DropList.RemoveAllItems()
        
self.but_propose.maxh 95
        self
.but_propose.0
        self
.but_propose.AppendItem("Leer",[])
        
        
item.SelectItem(self.sub_parent.vnum)
        
type item.GetItemType()
        
        use = 
proposals[type]
        if 
type == 2:
            use = use[
item.GetItemSubType()]
        
        for 
prop in use:
            
self.but_propose.AppendItem(prop,use[prop])
            
        
            
        
class 
ItemTabBar(ui.Window):
    
    class 
BlockBar(ui.Window):
        
size_res 32
        multi 
1
        def SetSize
(self,i=1):
            
self.multi i
            ui
.Window.SetSize(self,self.size_res,self.size_res*i)
            if 
self.rare_enabled == 1:
                
self.swib_normal.SetSize(self.size_res,self.size_res*i/3*2)
                
pos1 int(1.0*self.size_res*i/3.0*2.0)
                
self.swib_normal.SetSize(self.size_res,pos1)
                
self.swib_rare.SetSize(self.size_res,self.size_res*i-pos1)
                
self.swib_rare.SetPosition(0,pos1)
                
self.swib_rare.Show()
            else:
                
self.swib_normal.SetSize(self.size_res,self.size_res*i)
                
self.swib_rare.Hide()
            
        
def Enable_rare(self,1):
            
self.rare_enabled o
            self
.SetSize(self.multi)
            
        
def __init__(self):
            
ui.Window.__init__(self)
            
self.rare_enabled 0
            self
.swib_normal ui.Bar()
            
self.swib_normal.SetParent(self)
            
self.swib_normal.SetSize(self.size_res,self.size_res*self.multi)
            
self.swib_normal.SetColor(COLOR_INACTIVE)
            
self.swib_normal.SetPosition(0,0)
            
self.swib_normal.Show()
            
            
self.swib_rare ui.Bar()
            
self.swib_rare.SetParent(self)
            
self.swib_rare.SetSize(self.size_res,self.size_res)
            
self.swib_rare.SetColor(COLOR_INACTIVE_RARE)
            
self.swib_rare.SetPosition(0,0)
            
self.swib_rare.Hide()
            
self.SetSize(1)
            
    
    class 
ItemTab(ui.Bar):
        
        
height_selected   36*3+8
        height_unselected 
36*3+5
        
        def Destroy
(self):
            
self.parentWindow.parentWindow.enable_rebuy.SetParent(self.parentWindow.parentWindow)
            
self.parentWindow.parentWindow.but_speed.SetParent(self.parentWindow.parentWindow)
            
self.parentWindow.parentWindow.help_show_rare.SetParent(self.parentWindow.parentWindow)
            
self.parentWindow.parentWindow.help_rebuy.SetParent(self.parentWindow.parentWindow)
            
# self.parentWindow.parentWindow.help_stop_all.SetParent(self.parentWindow.parentWindow)
            
self.parentWindow.parentWindow.help_duration.SetParent(self.parentWindow.parentWindow)
            
# self.parentWindow.parentWindow.but_deactivate_all.SetParent(self.parentWindow.parentWindow)
            # self.parentWindow.parentWindow.but_deactivate_all.Hide()
            
self.parentWindow.parentWindow.enable_rebuy.Hide()
            
self.parentWindow.parentWindow.but_speed.Hide()
            
            
self.bonusSelector.Hide()
            
self.bonusSelector.__del__()
            
self.Hide()
            
self.__del__()
        
        
def DeleteMe(self):
            
self.parentWindow.DeleteTab(self.tabnum)
        
        
def __init__(self,parent,tabnum,index 0,vnum 0): ## Init ItemTab
            
ui.Bar.__init__(self)
            
self.SetColor(COLOR_BG)
            
self.SetSize(self.width,self.height_unselected)
            
self.index index
            self
.tabnum tabnum
            self
.vnum vnum
            self
.count 0
            self
.count_rare 0
            self
.parentWindow parent
            self
.SetParent(parent)

            
            
            if 
self.parentWindow.parentWindow.gameWindow != None:
                
self.blockBar ItemTabBar.BlockBar()
                
self.blockBar.SetParent(self.parentWindow.parentWindow.gameWindow.interface.wndInventory.wndItem)
                
ipi self.parentWindow.parentWindow.gameWindow.interface.wndInventory.inventoryPageIndex
                self
.blockBar.Show()
                
ip2 self.index ipi*45
                self
.blockBar.SetPosition(((ip2-int(ip2/5)*5)*self.blockBar.size_res),int(ip2/5)*self.blockBar.size_res)
            
            
self.ItemIcon ui.ImageBox()
            
self.ItemIcon.SetParent(self)
            
self.ItemIcon.AddFlag("not_pick")
            
self.ItemIcon.SetWindowHorizontalAlignCenter()
            
self.ItemIcon.SetWindowVerticalAlignCenter()
            
self.ItemIcon.Show()
            
            
self.SlotName ui.TextLine()
            
self.SlotName.SetParent(self)
            
self.SlotName.SetWindowHorizontalAlignCenter()
            
self.SlotName.SetHorizontalAlignCenter()
            
self.SlotName.SetPosition(0,5)
            
self.SlotName.SetText("Slot %d" % (self.index+1))
            
self.SlotName.AddFlag("not_pick")
            
self.SlotName.Show()
            
            
self.StatusBar Bar() # Special Bar
            
self.StatusBar.SetParent(self)
            
self.StatusBar.SetWindowVerticalAlignBottom()
            
self.StatusBar.SetSize(self.width,20)
            
self.StatusBar.SetPosition(0,20)
            
self.StatusBar.SetColor(COLOR_INACTIVE)
            
self.StatusBar.AddFlag("not_pick")
            
self.StatusBar.Show()
            
            
self.StatusText ui.TextLine()
            
self.StatusText.SetParent(self.StatusBar)
            
# self.StatusText.SetParent(self)
            
self.StatusText.SetWindowHorizontalAlignCenter()
            
self.StatusText.SetWindowVerticalAlignCenter()
            
self.StatusText.SetHorizontalAlignCenter()
            
self.StatusText.SetVerticalAlignCenter()
            
self.StatusText.SetPosition(0,0)
            
self.StatusText.SetText("Inaktiv")
            
self.StatusText.Show()
            
            
            
self.StatusBar_rare Bar() # Special Bar
            
self.StatusBar_rare.SetParent(self)
            
self.StatusBar_rare.SetWindowVerticalAlignBottom()
            
self.StatusBar_rare.SetSize(self.width,20)
            
self.StatusBar_rare.SetPosition(0,40)
            
self.StatusBar_rare.SetColor(COLOR_INACTIVE_RARE)
            
self.StatusBar_rare.AddFlag("not_pick")
            
self.StatusBar_rare.Hide()
            
            
self.StatusText_rare ui.TextLine()
            
self.StatusText_rare.SetParent(self.StatusBar_rare)
            
self.StatusText_rare.SetWindowHorizontalAlignCenter()
            
self.StatusText_rare.SetWindowVerticalAlignCenter()
            
self.StatusText_rare.SetHorizontalAlignCenter()
            
self.StatusText_rare.SetVerticalAlignCenter()
            
self.StatusText_rare.SetPosition(0,0)
            
self.StatusText_rare.SetText("6/7 Inaktiv")
            
self.StatusText_rare.Show()
            
            
            
self.CloseBut ui.Button()
            
self.CloseBut.SetParent(self)
            
self.CloseBut.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
            
self.CloseBut.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
            
self.CloseBut.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
            
self.CloseBut.SetToolTipText("Tab schliessen"0, -23)
            
self.CloseBut.SetEvent(self.DeleteMe)
            
self.CloseBut.SetPosition(0,0)
            
self.CloseBut.Show()
            
        
            
            
self.OnMouseLeftButtonDown lambdaself.Select()
            
            
self.boni_active 0
            self
.boni_rare_active 0
            
            self
.bonusSelector BonusSelector(self)
            
self.bonusSelector.SetParentProxy(self.parentWindow.parentWindow)
            
self.bonusSelector.SetPosition(10,35+36*3+4*2)
            
self.bonusSelector.Hide()
            
self.vnum 0
            self
.SetIndex(index)
            
            
self.resetSwitch()
            
self.resetSwitch_rare()

        
def IsActive(self):
            return 
self.boni_active == 1
        def IsActive_rare
(self):
            return 
self.boni_rare_active == 1
            
        def SetParentProxy
(self,parent):
            
ui.Bar.SetParentProxy(self,parent)
        
def Select(self):
            for 
a in self.parentWindow.tabList:
                
self.parentWindow.tabList[a].UnSelect()
                
self.parentWindow.tabList[a].bonusSelector.Hide()
            
self.bonusSelector.Show()
            
self.SetSize(self.width,self.height_selected)
            
self.Update()
            
# self.parentWindow.parentWindow.but_deactivate_all.SetParent(self.bonusSelector)
            # self.parentWindow.parentWindow.but_deactivate_all.SetPosition(415-10,200+10)
            # self.parentWindow.parentWindow.but_deactivate_all.Show()
            
self.parentWindow.parentWindow.enable_rebuy.SetParent(self.bonusSelector)
            
self.parentWindow.parentWindow.enable_rebuy.SetPosition(10,200+10)
            
self.parentWindow.parentWindow.enable_rebuy.Show()
            
self.parentWindow.parentWindow.but_speed.SetParent(self.bonusSelector)
            
self.parentWindow.parentWindow.but_speed.SetPosition(0,205+10)
            
self.parentWindow.parentWindow.but_speed.Show()
            
            
self.parentWindow.parentWindow.help_show_rare.SetParent(self.bonusSelector)
            
self.parentWindow.parentWindow.help_rebuy.SetParent(self.bonusSelector)
            
# self.parentWindow.parentWindow.help_stop_all.SetParent(self.bonusSelector)
            
self.parentWindow.parentWindow.help_duration.SetParent(self.bonusSelector)
            
            
        
def UnSelect(self):
            
self.SetSize(self.width,self.height_unselected)
            
self.Update()
            
        
def Update(self):
            
self.StatusBar.SetPosition(0,20)
            
self.SetPosition((self.width+self.dist)*self.tabnum,0)
            
self.SlotName.SetText("Slot %d" % (self.index+1))
            
        
def resetSwitch(self):
            
self.values = [0,0,0,0,0]
        
def resetSwitch_rare(self):
            
self.values_rare = [0,0]
        
        
# last_switch = -1
        
rebuyed 0
        def nachkauf
(self):
            if 
self.parentWindow.parentWindow.buyed != 0:
                return
            else:
                
self.parentWindow.parentWindow.buyed 1
            
if self.parentWindow.parentWindow.enable_rebuy.checked == 1:
                for 
i in range(0,shop.SHOP_SLOT_COUNT):
                    
me shop.GetItemID(i)
                    if 
me == SWITCH_VNUM:
                        if 
shop.GetItemPrice(i) > player.GetMoney():
                            
# chat.AppendChat(1,"-- Switchitem gefunden! Aber wir haben kein Geld :(")
                            
self.bonusSelector.Deactivate()
                            return
                        else:
                            
net.SendShopBuyPacket(i)
                            
self.rebuyed 1
                            
# self.Switch()
                            
return
                            
        
rebuyed_rare 0
        def nachkauf_rare
(self):
            if 
self.parentWindow.parentWindow.buyed_rare != 0:
                return
            else:
                
self.parentWindow.parentWindow.buyed_rare 1
            
if self.parentWindow.parentWindow.enable_rebuy.checked == 1:
                for 
i in range(0,shop.SHOP_SLOT_COUNT):
                    
me shop.GetItemID(i)
                    if 
me == SWITCH_RARE_VNUM:
                        if 
shop.GetItemPrice(i) > player.GetMoney():
                            
# chat.AppendChat(1,"-- Switchitem gefunden! Aber wir haben kein Geld :(")
                            
self.bonusSelector.Deactivate_rare()
                            return
                        else:
                            
net.SendShopBuyPacket(i)
                            
self.rebuyed_rare 1
                            
# self.Switch()
                            
return
            
# self.bonusSelector.Deactivate()
        
        
def Switch_rare(self):
            
lc 0
            
for i in range(0,90*2):
                if 
player.GetItemIndex(i) == SWITCH_RARE_VNUM:
                    
lc+=player.GetItemCount(i)
                    
            if 
lc == and self.parentWindow.parentWindow.enable_rebuy.checked == 0:
                
chat.AppendChat(2,"Slot %d: 6/7 Switchen abgebrochen -> Keine Switchitems & Nachkauf war nicht erfolgreich!" % (self.index+1))
                
self.bonusSelector.Deactivate_rare()
                return
            
            if 
lc 15:
                
self.nachkauf_rare()
            
            if 
lc == 0:
                
self.bonusSelector.Deactivate_rare()
                
chat.AppendChat(2,"Slot %d: 6/7 Switchen abgebrochen -> Keine Switchitems!" % (self.index+1))
                return
            
            for 
i in range(0,90*2):
                if 
player.GetItemIndex(i) == SWITCH_RARE_VNUM:
                    
net.SendItemUseToItemPacket(i,self.index)
                    return
        
        
def Switch(self):
            
lc 0
            
for i in range(0,90*2):
                if 
player.GetItemIndex(i) == SWITCH_VNUM:
                    
lc+=player.GetItemCount(i)
            
            if 
lc == and self.parentWindow.parentWindow.enable_rebuy.checked == 0:
                
self.bonusSelector.Deactivate()
                return
            
            if 
lc 15:
                
self.nachkauf()
                
            if 
lc == 0:
                
self.bonusSelector.Deactivate()
                return

            for 
i in range(0,90*2):
                if 
player.GetItemIndex(i) == SWITCH_VNUM:
                    
net.SendItemUseToItemPacket(i,self.index)
                    return
            
# self.nachkauf()
            
        
def checkSwitch(self):
            
ok 0
            
for i in range(0,5):
                if 
player.GetItemAttribute(self.indexi) != self.values[i]:
                    
ok 1
            self
.prob self.GetProb()
            
self.StatusText.SetText("Aktiv (%d%%)" %self.prob)
            if 
ok == or self.prob >= 90:
                if 
self.prob >= 90:
                    
chat.AppendChat(1,"Slot %d: fertig geswitcht!" % (self.index+1))
                    
self.bonusSelector.Finish()
                    return
                
self.values  = [player.GetItemAttribute(self.indexi) for i in range(0,5)]
                
self.Switch()
            
elif self.rebuyed 0:
                
self.rebuyed 0
                self
.Switch()
            
elif ok == and self.count 5:
                
self.count+=1
            elif ok 
== and self.count >= 5:
                
self.count 0
                self
.Switch()
            
# elif self.last_switch > -1 and player.GetItemCount(self.last_switch) == 0:
            # chat.AppendChat(2,"%d"%player.GetItemCount(self.last_switch))
                # self.last_switch = 0
                # self.Switch()
            # else:
                # if self.GetProb() != 100:
                    # self.Switch()
            
pass
        
        def checkSwitch_rare
(self):
            
ok 0
            
for i in range(0,2):
                if 
player.GetItemAttribute(self.indexi+6) != self.values_rare[i]:
                    
ok 1
            self
.prob_rare self.GetProb_rare()
            
self.StatusText_rare.SetText("Aktiv (%d%%)" %self.prob_rare)
            if 
ok == or self.prob_rare >= 90:
                if 
self.prob_rare >= 90:
                    
self.bonusSelector.Finish_rare()
                    
chat.AppendChat(1,"Slot %d: 6/7 fertig geswitcht!" % (self.index+1))
                    return
                
self.values_rare  = [player.GetItemAttribute(self.indexi) for i in range(5,7)]
                
self.Switch_rare()
            
elif self.rebuyed_rare 0:
                
self.rebuyed_rare 0
                self
.Switch_rare()
            
elif ok == and self.count_rare 5:
                
self.count_rare+=1
            elif ok 
== and self.count_rare >= 5:
                
self.count_rare 0
                self
.Switch_rare()
                
            
pass
        def UpdateItem
(self):
            
# try:
            
vnum player.GetItemIndex(self.index)
            if 
vnum == and self.vnum != 0:
                
self.resetSwitch()
                
self.resetSwitch_rare()
                
self.vnum 0
                self
.bonusSelector.Deactivate()
                
self.bonusSelector.Block()
                
self.bonusSelector.prepare_propose()
                
self.ItemIcon.Hide()
                if 
self.parentWindow.parentWindow.gameWindow != None:
                    
self.blockBar.SetSize(1)
                return
            
elif vnum != self.vnum:
                
self.resetSwitch()
                
self.resetSwitch_rare()
                
self.vnum vnum
                self
.bonusSelector.Deactivate()
                
self.bonusSelector.prepare_propose()
                
item.SelectItem(self.vnum)
                if 
self.parentWindow.parentWindow.gameWindow != None:
                    (
w,h) = item.GetItemSize()
                    
self.blockBar.SetSize(h)
                
                if 
item.GetItemType() != and item.GetItemType() != 2:
                    
self.bonusSelector.Block()
                else:
                    
self.bonusSelector.Unblock()
                
                
                
self.ItemIcon.Show()
                
self.ItemIcon.LoadImage(item.GetIconImageFileName())
                
# self.values = [player.GetItemAttribute(self.index, i) for i in range(0,5)]
                
return
            if 
self.IsActive():
                
self.checkSwitch()
                
            if 
self.IsActive_rare():
                
self.checkSwitch_rare()
                
            
# except:
                # pass
            
        
def SetIndex(self,index):
            
self.index index
            self
.bonusSelector.index index
            self
.bonusSelector.Starter.SetText("Switchen ("+str(index+1)+") starten")
            
self.Update()
            
self.UpdateItem()
            
        
def GetProb_rare(self):
            
values = [player.GetItemAttribute(self.indexi+6) for i in range(0,2)]
            
val2 = {}
            for 
i in range(0,2):
                try:
                    
affectString AFFECT_DICT[values[i][0]](values[i][1])
                    
val2[values[i][0]] = values[i][1]
                    
self.bonusSelector.ibi[i+6].SetText(affectString)
                
except:
                    
pass
            prob 
0
            max  
0
            
            yp 
self.GenList_rare()
            for 
x in yp:
                if 
yp[xin val2 and val2[yp[x]] >= int(self.bonusSelector.boni[x+5][3].GetText()):
                    
prob prob+1
                max 
max+1
            
if max 0:
                
prozent 100/max*prob
            
else:
                
prozent 100
            
return prozent
            pass
        def GetProb
(self):
            
values = [player.GetItemAttribute(self.indexi) for i in range(0,5)]
            
val2 = {}
            
# for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
            
for i in range(0,5):
                try:
                    
affectString AFFECT_DICT[values[i][0]](values[i][1])
                    
val2[values[i][0]] = values[i][1]
                    
self.bonusSelector.ibi[i].SetText(affectString)
                
except:
                    
pass
            prob 
0
            max  
0
            yp 
self.GenList()
            for 
x in yp:
                if 
yp[xin val2 and val2[yp[x]] >= int(self.bonusSelector.boni[x][3].GetText()):
                    
prob prob+1
                max 
max+1
            
if max 0:
                
prozent 100/max*prob
            
else:
                
prozent 100
            
return prozent
            
        def GenList
(self):
            
ret = {}
            for 
i in range(0,5):
                if 
self.bonusSelector.boni[5-i][1].selected.value != 0:
                    
ret[5-i] = self.bonusSelector.boni[5-i][1].selected.value
            
return ret
        def GenList_rare
(self):
            
ret = {}
            for 
i in range(0,2):
                if 
self.bonusSelector.boni[6+i][1].selected.value != 0:
                    
ret[i+1] = self.bonusSelector.boni[6+i][1].selected.value
            
return ret
            
    def __init__
(self,parent):
        
ui.Window.__init__(self)
        
self.SetSize(500,36*3+4*2)
        
self.tabCount 0
        self
.tabList = {}
        
        
self.parentWindow parent
        self
.SetParent(parent)
        
self.plusBar ui.Bar()
        
self.plusBar.SetParent(self)
        
self.plusBar.SetSize(90,30)
        
self.plusBar.SetWindowVerticalAlignCenter()
        
self.plusBar.SetColor(COLOR_BG)
        
# self.plusBar.OnMouseLeftButtonDown = lambda: self.AddTab_pre()
        
self.plusBar.OnMouseLeftButtonUp lambdaself.AddTab_pre()
        
self.OnMouseLeftButtonUp lambdaself.AddTab_pre()
        
self.plusBar.SetPosition(30,0)
        
self.plusBar.Show()
        
        
self.AddText ui.TextLine()
        
self.AddText.SetParent(self.plusBar)
        
self.AddText.SetText("Item hier platzieren")
        
self.AddText.SetWindowVerticalAlignCenter()
        
self.AddText.SetWindowHorizontalAlignCenter()
        
self.AddText.SetVerticalAlignCenter()
        
self.AddText.SetHorizontalAlignCenter()
        
self.AddText.SetPosition(0,0)
        
self.AddText.Show()
        
        
dist = [
            [
500,  0  ], #1
            
[24010  ],
            [
16010  ],
            [
11710.5],
            
# [ 80, 25  ], #5
            
9210  ], #5
            
7510  ], #6
            
64,  9  ], #7
            
56,  7.5], #8
            
50,  6.5], #9
            
45,  5.5], #10
        
][MAX_NUM-1]
        
self.ItemTab.width dist[0]
        
self.ItemTab.dist  dist[1]

        
        
#For 8
        # dist  = 9-1.5
        # width = 56
        
        # For 9
        # dist  = 9-2.5
        # width = 50
        
        # For 10
        # dist  = 9-3.5
        # width = 45
        
        
    
def DeleteTab(self,id):
        if 
self.parentWindow.gameWindow != None:
            
self.tabList[id].blockBar.Hide()
            
self.tabList[id].blockBar.Destroy()
        
self.tabList[id].Destroy()
        
# del self.tabList[id]
        
self.tabCount self.tabCount -
        
if self.tabCount id and id 5:
            for 
i in xrange(id,self.tabCount):
                
self.tabList[i] = self.tabList[i+1
                
self.tabList[i].tabnum i
                self
.tabList[i].SetPosition((self.tabList[i].width+self.tabList[i].dist)*i,0)
                
            
del self.tabList[self.tabCount]
            
        else:
            
del self.tabList[id]
            
        
        if 
self.tabCount 0:
            
self.tabList[0].Select()
        
        if (
self.ItemTab.width+self.ItemTab.dist)*self.tabCount 20:
            
self.parentWindow.SetSize(520,387-210)
            
self.parentWindow.but_speed.Hide()
            
self.plusBar.SetPosition(20,0)
        else:
            (
x,y) = self.tabList[self.tabCount-1].GetLocalPosition()
            
self.plusBar.SetPosition(x+self.ItemTab.width+self.ItemTab.dist,0)
            
# self.plusBar.SetPosition((self.ItemTab.width+self.ItemTab.dist)*self.tabCount-10,0)
        
self.plusBar.Show()
        
    
def AddTab_pre(self):
        if 
mouseModule.mouseController.isAttached():
            
attachedSlotType mouseModule.mouseController.GetAttachedType()
            
attachedSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
            
attachedSlotVnum mouseModule.mouseController.GetAttachedItemIndex()
            
            
item.SelectItem(attachedSlotVnum)
            if 
item.GetItemType() != and item.GetItemType() != 2:
                
mouseModule.mouseController.DeattachObject()
                
chat.AppendChat(2,"Dieses Item kannst du nicht switchen.")
                return
            
            for 
a in self.tabList:
                if 
self.tabList[a].index == attachedSlotPos:
                    
mouseModule.mouseController.DeattachObject()
                    
chat.AppendChat(2,"Dieser Slot ist bereits eingefuegt worden!")
                    return
                
                
            if 
player.SLOT_TYPE_INVENTORY == attachedSlotType:
                
self.AddTab(attachedSlotPos,attachedSlotVnum)
                
chat.AppendChat(2,"Item hinzugefuegt!")

            
mouseModule.mouseController.DeattachObject()
        
    
def AddTab(self,id,vnum 0):
        if 
self.tabCount MAX_NUM:
            
self.tabList[self.tabCount] = self.ItemTab(self,self.tabCount,id,vnum)
            
            
self.tabList[self.tabCount].Select()
            
self.tabList[self.tabCount].Show()
            
self.tabCount+= 1
            
if (self.ItemTab.width+self.ItemTab.dist)*self.tabCount 20:
                
self.plusBar.SetPosition(20,0)
            else:
                (
x,y) = self.tabList[self.tabCount-1].GetLocalPosition()
                
self.plusBar.SetPosition(x+self.ItemTab.width+self.ItemTab.dist,0)
        
        if 
self.tabCount == MAX_NUM:
            
self.plusBar.Hide()
            
        
self.parentWindow.SetSize(520,387+10)
        
self.parentWindow.but_speed.Show()
            
# return 0

class Bot(ui.BoardWithTitleBar):
    class 
PinGroup(ui.Bar):
        
def OnUpdate(self):
            
## Now check position.
            
(x,y) = self.GetGlobalPosition()
            
max_x wndMgr.GetScreenWidth()-self.GetWidth()
            
max_y wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM
            
if not x == self.pos_x  or not y == self.pos_y:
                
old_dir self.dir
                
if self.pos_x == and not self.pos_y == and not self.pos_y == max_y and old_dir != 1:
                    
self.parse_dir(1)
                
elif self.pos_x == max_x and not self.pos_y == and not self.pos_y == max_y and old_dir != 2:
                    
self.parse_dir(2)
                
elif self.pos_y == max_y and not self.pos_x == and not self.pos_x == max_x and old_dir != 4:
                    
self.parse_dir(4)
                
elif self.pos_y == and not self.pos_x == and not self.pos_x == max_x and old_dir != 3:
                    
self.parse_dir(3)
                    
                
max_x wndMgr.GetScreenWidth()-self.GetWidth()
                
max_y wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM    
                    
                
                
if self.pos_x == and not self.pos_y == and not self.pos_y == max_y:
                    
0
                elif self
.pos_x == max_x and not self.pos_y == and not self.pos_y == max_y:
                    
max_x
                elif self
.pos_y == and not self.pos_x == and not self.pos_x == max_x:
                    
0
                elif self
.pos_y == max_y and not self.pos_x == and not self.pos_x == max_x:
                    
max_y
                
if and max_x and and max_y:
                    if 
int(max_y/2):
                        
0
                    
else:
                        
max_y
                    
                    
if int(max_x/2):
                        
0
                    
else:
                        
max_x
                        
                
                x 
min(max(0,x),wndMgr.GetScreenWidth()-self.GetWidth())
                
min(max(0,y),wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM)
                
self.SetPosition(x,y)
                
self.pos_x x
                self
.pos_y y
            
# (self.pos_x,self.pos_y) = self.GetGlobalPosition()
            
self.parent.OnUpdate()
            for 
c in self.txtlist:
                
c.SetColor(c.item.StatusBar.color)
                
c.txt2.SetText("Status: %s" c.item.StatusText.GetText())
                try:
                    
c.listWin2.SetColor(c.item.StatusBar_rare.color)
                    
c.txt3.SetText("Status: %s" c.item.StatusText_rare.GetText())
                
except:
                    
pass
                
        def ShowMainWindow
(self):
            (
x,y) = self.parent.GetGlobalPosition()
            
min(max(32,x),wndMgr.GetScreenWidth()-self.parent.GetWidth()-32)
            
min(max(32,y),wndMgr.GetScreenHeight()-self.parent.GetHeight()-DISTANCE_BOTTOM-32)
            
self.parent.SetPosition(x,y)
            
self.parent.Show()
            
self.__del__()
        
def parse_dir(self,dir):
            
self.dir dir
            w
,100,50
            
for listWin in self.txtlist:
                
itm listWin.item
                listWin
.AddFlag("not_pick")
                if 
dir >= 3:
                    
listWin.SetPosition(w,4)
                    
listWin.SetSize(90,h-8)
                    
w+=92
                    
if itm.bonusSelector.EnableRareBoni.checked == 1:
                        
w+=15
                        listWin
.SetSize(105,4+12+12)
                        
listWin.listWin2.SetSize(105,14)
                        
listWin.listWin2.Show()
                        
listWin.txt3.Show()
                else:
                    
listWin.SetPosition(0,h)
                    
listWin.SetSize(w,4+12+12+2)
                    
                    if 
itm.bonusSelector.EnableRareBoni.checked == 1:
                        
listWin.SetSize(w,4+12+12)
                        
listWin.listWin2.SetSize(w,14)
                        
listWin.listWin2.Show()
                        
listWin.txt3.Show()
                        
# itl.append(txt3)
                        
h+=12
                        pass
                    h
+=4+12+12+4
            self
.SetSize(w,h)
        
        
def __init__(self,parent,dir 1):
            
self.parent parent
            self
.dir dir
            ui
.Bar.__init__(self)
            
# Direction: 1 = left; 2 = right; 3 = top
            
self.SetColor(COLOR_BG)
            
w,100,50
            
            self
.AddFlag("float")
            
self.AddFlag("movable")

            
            
            
self.maximise_but ui.Button()
            
self.maximise_but.SetParent(self)
            
self.maximise_but.SetPosition(4,4)
            
self.maximise_but.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
            
self.maximise_but.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
            
self.maximise_but.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
            
self.maximise_but.SetText("Vergroessern")
            
self.maximise_but.SetEvent(self.ShowMainWindow)
            
self.maximise_but.Show()
            
            
self.stop_but ui.Button()
            
self.stop_but.SetParent(self)
            
self.stop_but.SetPosition(4,24)
            
self.stop_but.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
            
self.stop_but.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
            
self.stop_but.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
            
self.stop_but.SetText("Alle Deaktivieren")
            
self.stop_but.SetEvent(self.parent.deactivate_all)
            
self.stop_but.Show()
            
            
self.txtlist = []
            for 
a in self.parent.itemTabBar.tabList:
                
itm self.parent.itemTabBar.tabList[a]
                
                
listWin ui.Bar()
                
listWin.item itm
                self
.txtlist.append(listWin)
                
listWin.SetColor(itm.StatusBar.color)
                
listWin.SetParent(self)
                
listWin.AddFlag("not_pick")
                
listWin.Show()
                
                
listWin.txt1 ui.TextLine()
                
listWin.txt1.SetParent(listWin)
                
listWin.txt1.SetText("Slot %d:" %(itm.index+1))
                
listWin.txt1.Show()
                
listWin.txt1.SetPosition(4,2)
                
                
listWin.txt2 ui.TextLine()
                
listWin.txt2.SetParent(listWin)
                
listWin.txt2.SetText("Status: %s" itm.StatusText.GetText())
                
listWin.txt2.SetPosition(4,2+12)
                
listWin.txt2.Show()
                
                
listWin.listWin2 ui.Bar()
                
listWin.listWin2.AddFlag("not_pick")
                
listWin.listWin2.SetColor(itm.StatusBar_rare.color)
                
listWin.listWin2.SetParent(listWin)
                
listWin.listWin2.SetPosition(0,4+12+12)
                
listWin.listWin2.SetSize(w,12+2)
                
listWin.listWin2.Hide()
                
                
listWin.txt3 ui.TextLine()
                
listWin.txt3.SetParent(listWin.listWin2)
                
listWin.txt3.SetText("Status: %s" itm.StatusText_rare.GetText())
                
listWin.txt3.SetPosition(4,0)
                
listWin.txt3.Hide()
                
                if 
dir >= 3:
                    
listWin.SetPosition(w,4)
                    
listWin.SetSize(90,h-8)
                    
w+=92
                    
if itm.bonusSelector.EnableRareBoni.checked == 1:
                        
w+=15
                        listWin
.SetSize(105,4+12+12)
                        
listWin.listWin2.SetSize(105,14)
                        
listWin.listWin2.Show()
                        
listWin.txt3.Show()
                else:
                    
listWin.SetPosition(0,h)
                    
listWin.SetSize(w,4+12+12+2)
                    
                    if 
itm.bonusSelector.EnableRareBoni.checked == 1:
                        
listWin.SetSize(w,4+12+12)
                        
listWin.listWin2.Show()
                        
listWin.txt3.Show()
                        
# itl.append(txt3)
                        
h+=12
                        pass
                    
                    h
+=4+12+12+4
                
# else:
                    
                # self.txtlist.append(itl)
            
            
self.SetSize(w,h)
            (
x,y) = self.parent.GetGlobalPosition()
            
            
min(max(0,x),wndMgr.GetScreenWidth()-self.GetWidth())
            
min(max(0,y),wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM)
            if 
dir == 1:
                
# self.SetWindowHorizontalAlignLeft()
                
self.SetPosition(0,y)
            
elif dir == 2:
                
# self.SetWindowHorizontalAlignRight()
                
self.SetPosition(wndMgr.GetScreenWidth()-self.GetWidth(),y)
            
elif dir == 3:
                
# self.SetWindowVerticalAlignTop()
                
self.SetPosition(x,0)
            else:
                
# self.SetWindowVerticalAlignBottom()
                
self.SetPosition(x,wndMgr.GetScreenHeight()-(DISTANCE_BOTTOM+h))
                
            (
self.pos_x,self.pos_y) = self.GetGlobalPosition()
                
            
self.parse_dir(dir)
            
# if dir == 1:
                # self.SetWindowHorizontalAlignLeft()
                # self.SetPosition(0,0)
            # elif dir == 2:
                # self.SetWindowHorizontalAlignRight()
                # self.SetPosition(self.GetWidth(),0)
            # elif dir == 3:
                # self.SetWindowHorizontalAlignCenter()
                # self.SetPosition(0,0)
            # elif dir == 4:
                # self.SetWindowHorizontalAlignCenter()
                # self.SetPosition(0,36+h)
            # else:
                # return # ERR
                
                
    
    
pinhint 0
    def ShowPinHint
(self,type):
        
self.pinhint type
        
if type == 0:
            
self.PinHint.Hide()
            return
        
# type=2
        
        
(x,y) = self.GetGlobalPosition()
        if 
type == 1:  # Left
            
self.PinHint.SetWindowHorizontalAlignLeft()
            
self.PinHint.SetWindowVerticalAlignCenter()
            
self.PinHint.SetSize(max(min(30,30-x),3),wndMgr.GetScreenHeight())
            
self.PinHint.SetPosition(0,0)
        
elif type == 2# Right
            
self.PinHint.SetWindowHorizontalAlignRight()
            
self.PinHint.SetWindowVerticalAlignCenter()
            
self.PinHint.SetSize(30,wndMgr.GetScreenHeight())
            
self.PinHint.SetPosition(max(min(30,30-(wndMgr.GetScreenWidth()-(x+self.GetWidth()))),3),0)
        
elif type == 3# Top
            
self.PinHint.SetWindowHorizontalAlignCenter()
            
self.PinHint.SetWindowVerticalAlignTop()
            
self.PinHint.SetSize(wndMgr.GetScreenWidth(),max(min(30,30-y),3))
            
self.PinHint.SetPosition(0,0)
        
elif type == 4# Top
            
self.PinHint.SetWindowHorizontalAlignCenter()
            
self.PinHint.SetWindowVerticalAlignBottom()
            
self.PinHint.SetSize(wndMgr.GetScreenWidth(),30)
            
self.PinHint.SetPosition(0,36+max(min(30,30-(wndMgr.GetScreenHeight()-36-(y+self.GetHeight()))),3))
        
self.PinHint.Show()
        
# else:
            
    
    
def __init__(self):
        
ui.BoardWithTitleBar.__init__(self)
        
self.gameWindow None
        
        self
.SetTitleName("Switchbot (Version 2.2)")
        
self.AddFlag("float")
        
self.AddFlag("movable")
        
self.SetPosition(30,30)
        
# self.SetSize(520,387)
        # self.SetSize(520,387-210)
        
self.SetSize(520,387-210)
        
        
self.PinHint ui.Bar()
        
self.PinHint.SetColor(COLOR_PIN_HINT)
        
self.PinHint.Show()
        
        
self.OnMouseLeftButtonDown self.drag_start
        self
.OnMouseLeftButtonUp   self.drag_end
        
        self
.titleBar.MinimizeBut ui.Button()
        
self.titleBar.MinimizeBut.SetParent(self.titleBar)
        
self.titleBar.MinimizeBut.SetUpVisual("d:/ymir work/ui/public/minimize_button_01.sub")
        
self.titleBar.MinimizeBut.SetOverVisual("d:/ymir work/ui/public/minimize_button_02.sub")
        
self.titleBar.MinimizeBut.SetDownVisual("d:/ymir work/ui/public/minimize_button_03.sub")
        
self.titleBar.MinimizeBut.SetToolTipText("Minimieren"0, -23)
        
self.titleBar.MinimizeBut.SetPosition(520 self.titleBar.btnClose.GetWidth()-332 33)
        
self.titleBar.MinimizeBut.SetEvent(lambdaself.PinShow(1))
        
self.titleBar.MinimizeBut.Show()
        
        
self.titleBar.HelpBut ui.ToggleButton()
        
self.titleBar.HelpBut.SetParent(self.titleBar)
        
self.titleBar.HelpBut.SetUpVisual("d:/ymir work/ui/public/small_button_01.sub")
        
self.titleBar.HelpBut.SetOverVisual("d:/ymir work/ui/public/small_button_02.sub")
        
self.titleBar.HelpBut.SetDownVisual("d:/ymir work/ui/public/small_button_03.sub")
        
self.titleBar.HelpBut.SetToolTipText("Ausfuehrliche Hilfe"0, -23)
        
self.titleBar.HelpBut.SetText("Hilfe")
        
self.titleBar.HelpBut.SetPosition(30)
        
self.titleBar.HelpBut.SetToggleDownEvent(lambdaself.ToggleHelp(1))
        
self.titleBar.HelpBut.SetToggleUpEvent(lambdaself.ToggleHelp(0))
        
self.titleBar.HelpBut.Show()
        
        
        
self.but_deactivate_all ui.Button()
        
# self.but_deactivate_all.SetParent(self)
        
self.but_deactivate_all.SetParent(self.titleBar)
        
# self.but_deactivate_all.SetPosition(415,350)
        
self.but_deactivate_all.SetPosition(3+5+self.titleBar.HelpBut.GetWidth(), 0)
        
self.but_deactivate_all.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
        
self.but_deactivate_all.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
        
self.but_deactivate_all.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
        
self.but_deactivate_all.SetText("Alle anhalten")
        
self.but_deactivate_all.SetEvent(self.deactivate_all)
        
self.but_deactivate_all.Show()
        
        
self.titleBar.but_deactivate_all ui.Button()
        
self.titleBar.but_deactivate_all.SetParent(self.titleBar)
        
self.titleBar.but_deactivate_all.SetPosition(3+5+self.titleBar.HelpBut.GetWidth()+5+self.but_deactivate_all.GetWidth(), 0)
        
self.titleBar.but_deactivate_all.SetUpVisual("d:/ymir work/ui/public/small_button_01.sub")
        
self.titleBar.but_deactivate_all.SetOverVisual("d:/ymir work/ui/public/small_button_02.sub")
        
self.titleBar.but_deactivate_all.SetDownVisual("d:/ymir work/ui/public/small_button_03.sub")
        
self.titleBar.but_deactivate_all.SetText("Info")
        
self.titleBar.but_deactivate_all.SetEvent(self.about)
        
self.titleBar.but_deactivate_all.Show()
        
self.titleName.SetPosition(604)
        
        
self.enable_rebuy CheckBox("Nachkaufen aktivieren")
        
self.enable_rebuy.Toggle()
        
self.enable_rebuy.Hide()
        
        
self.but_speed ui.SliderBar()
        
self.but_speed.SetParent(self)
        
self.but_speed.SetWindowHorizontalAlignCenter()
        
self.but_speed.SetPosition(0,360)
        
self.but_speed.SetSliderPos(0.0)
        
# self.but_speed.SetToolTipText("Switch-Geschwindigkeit", 0, -23)
        # self.but_speed.Show()
        
self.but_speed.Hide()
        
        
self.itemTabBar ItemTabBar(self)
        
self.itemTabBar.SetPosition(10,35)
        
self.itemTabBar.Show()
        
        
        
self.buyed 0
        self
.buyed_rare 0
        
        self
.SetCloseEvent(self._Hide)
        
        
self.Hide self._Hide
        
        
        
### NOW initialize the HELP stuff!
        
        
self.help_add_item HelpBar(0.8,'Ziehe ein Item hierher, um es hinzuzufuegen.')
        
self.help_add_item.SetParent(self)
        
self.help_add_item.SetPosition(60,50)
        
        
self.help_minimize HelpBar(0.8,'Ziehe den Bot an den Rand, um ihn zu verkleinern!',1)
        
self.help_minimize.SetParent(self.titleBar)
        
self.help_minimize.SetWindowHorizontalAlignCenter()
        
self.help_minimize.SetPosition(100,-30)
        
        
self.help_show_rare HelpBar(0.85,'Hiermit kannst du die Anzeige von 6/7 Boni umschalten.')
        
self.help_show_rare.SetParent(self)
        
# self.help_show_rare.SetPosition(35,312)
        
        
self.help_rebuy HelpBar(0.5,'Soll der Bot nachkaufen?')
        
self.help_rebuy.SetParent(self)
        
# self.help_rebuy.SetPosition(25,297)
        
        
self.help_stop_all HelpBar(0.8,'Stop ALLE Vorgaenge!',1)
        
self.help_stop_all.SetParent(self.titleBar)
        
self.help_stop_all.SetPosition(3+5+self.titleBar.HelpBut.GetWidth()*1.2,-30)
        
        
self.help_duration HelpBar(0.8,'Verlangsamt den Bot.',1)
        
self.help_duration.SetParent(self)
        
        
    
def ToggleHelp(self,val):
        
self.help_on val
    
    def Show
(self):
        
ui.BoardWithTitleBar.Show(self)
        
self.bot_shown 1
        
    def _Hide
(self):
        
## ONLY FOR TESTING
        # for a in range(0,self.itemTabBar.tabCount):
            # self.itemTabBar.DeleteTab(0)
        
        
ui.BoardWithTitleBar.Hide(self)
        
self.bot_shown 0
        
        
    def deactivate_all
(self):
        for 
a in self.itemTabBar.tabList:
            
self.itemTabBar.tabList[a].bonusSelector.Starter.SetUp()
            
self.itemTabBar.tabList[a].bonusSelector.Starter.OnToggleUp()
            
self.itemTabBar.tabList[a].bonusSelector.Starter_rare_boni.SetUp()
            
self.itemTabBar.tabList[a].bonusSelector.Starter_rare_boni.OnToggleUp()
        
pass
        
    drag 
0
    def drag_start
(self):
        
self.drag 1
        
    def drag_end
(self):
        
self.drag 0
        
if self.pinhint 0:
            
self.PinShow(self.pinhint)
            
# self.PinGroupBox = self.PinGroup()
            
pass
        self
.ShowPinHint(0)
        
    
def PinShow(self,dir):
        
self.PinGroupBox self.PinGroup(self,dir)
        
self.Hide()
        
self.PinGroupBox.Show()
        
    
def EnableInventoryTweak(self,gameWindow):
        
self.gameWindow=gameWindow
        self
.gameWindow.interface.wndInventory.inventoryTab[0].SetEvent(lambda arg=0self.__SetInventoryPage(arg))
        
self.gameWindow.interface.wndInventory.inventoryTab[1].SetEvent(lambda arg=1self.__SetInventoryPage(arg))
    
def __SetInventoryPage(self,arg):
        
self.gameWindow.interface.wndInventory.SetInventoryPage(arg)
        for 
a in self.itemTabBar.tabList:
            
itm self.itemTabBar.tabList[a]
            if 
itm.index >= arg*45 and itm.index < (arg+1)*45:
                
itm.blockBar.Show()
            else:
                
itm.blockBar.Hide()
    
help_on 0
    counter 
0
    AboutWindow 
None
    def OnUpdate
(self):
        if 
self.AboutWindow:
            if 
self.AboutWindow.x_counter 1:
                
self.AboutWindow.x_counter -=1
                self
.AboutWindow.text6.SetText("Zeit: %0.1f" % (self.AboutWindow.x_counter/45.0))
            
elif self.AboutWindow.x_counter == 1:
                
self.AboutWindow.Hide()
                
# self.AboutWindow.Delete()
                
        
if self.help_on == 1:
            (
x,y) = self.itemTabBar.plusBar.GetLocalPosition()
            
self.help_add_item.SetPosition(x+20,50)
            
self.help_add_item.Show()
            
self.help_stop_all.Show()
            
            
self.help_minimize.Show()
            if 
self.itemTabBar.tabCount 0:
                
self.help_show_rare.SetPosition(25,164)
                
self.help_show_rare.Show()
                
self.help_rebuy.SetPosition(15,147)
                
self.help_rebuy.Show()
                
                
# self.help_duration.SetPosition(300,180)
                
self.help_duration.SetPosition(190-5.5+self.but_speed.GetSliderPos()*int(35.5+self.but_speed.GetWidth()/2),180)
                
self.help_duration.Show()
                
            else:
                
self.help_show_rare.Hide()
                
self.help_rebuy.Hide()
                
self.help_duration.Hide()
            
        else:
            
self.help_add_item.Hide()
            
self.help_minimize.Hide()
            
self.help_show_rare.Hide()
            
self.help_rebuy.Hide()
            
self.help_stop_all.Hide()
            
self.help_duration.Hide()
            
        if 
self.drag == 1:
            (
x1y1) = self.GetGlobalPosition()
            
# if x1 < 0:
                # x1 = 0
            # elif x1 > wndMgr.GetScreenWidth()-520:
                # x1 = wndMgr.GetScreenWidth()-520
            # if y1 < 0:
                # y1 = 0
            # elif y1 > wndMgr.GetScreenHeight()-36-self.GetHeight():
                # y1 = wndMgr.GetScreenHeight()-36-self.GetHeight()
            
x1 max(min(wndMgr.GetScreenWidth()-520,x1),0)
            
y1 max(min(wndMgr.GetScreenHeight()-36-self.GetHeight(),y1),0)
            
self.SetPosition(x1,y1)
            if 
x1 30:
                
self.ShowPinHint(1)
            
elif wndMgr.GetScreenWidth()-x1-520 30:
                
self.ShowPinHint(2)
            
elif y1 30:
                
self.ShowPinHint(3)
            
elif wndMgr.GetScreenHeight()-y1-self.GetHeight() < 60:
                
self.ShowPinHint(4)
            else:
                
self.ShowPinHint(0)
            
# self.SetPosition(x1+(x-self.drag_pos[0]),y1)
            
pass
        
        
if self.gameWindow != None:
            for 
a in self.itemTabBar.tabList:
                
itm self.itemTabBar.tabList[a]
            
            
            
        
self.counter+=1
        
if self.counter >= int(self.but_speed.GetSliderPos()*MAX_SWITCH_DELAY_APPEND+MIN_SWITCH_DELAY):
            
self.buyed 0
            self
.buyed_rare 0
            self
.counter 0
            
for a in self.itemTabBar.tabList:
                
itm self.itemTabBar.tabList[a]
                
itm.UpdateItem()
                
# if itm.
                

    
def about(self):
        
self.AboutWindow ui.ThinBoard()
        
self.AboutWindow.SetParent(self)
        
self.AboutWindow.SetSize(250,100)
        
self.AboutWindow.SetWindowHorizontalAlignCenter()
        
self.AboutWindow.SetWindowVerticalAlignCenter()
        
self.AboutWindow.SetPosition(0,0)
        
self.AboutWindow.Show()
        
self.AboutWindow.x_counter 450
        
        self
.AboutWindow.text1 ui.TextLine()
        
self.AboutWindow.text1.SetParent(self.AboutWindow)
        
self.AboutWindow.text1.SetWindowHorizontalAlignCenter()
        
self.AboutWindow.text1.SetHorizontalAlignCenter()
        
self.AboutWindow.text1.SetPosition(0,5)
        
self.AboutWindow.text1.SetText("Switchbot V2.2 by Mijago")
        
self.AboutWindow.text1.SetPackedFontColor(ui.GenerateColor(58141221))
        
self.AboutWindow.text1.Show()
        
        
self.AboutWindow.text2 ui.TextLine()
        
self.AboutWindow.text2.SetParent(self.AboutWindow)
        
self.AboutWindow.text2.SetPosition(8,18)
        
self.AboutWindow.text2.SetText("Dieser Switchbot wurde von Mijago entwickelt.")
        
self.AboutWindow.text2.Show()
        
        
self.AboutWindow.text3 ui.TextLine()
        
self.AboutWindow.text3.SetParent(self.AboutWindow)
        
self.AboutWindow.text3.SetPosition(8,18+13)
        
self.AboutWindow.text3.SetText("Neue Ideen werden immer gerne gesehen!")
        
self.AboutWindow.text3.Show()
        
        
self.AboutWindow.text4 ui.TextLine()
        
self.AboutWindow.text4.SetParent(self.AboutWindow)
        
self.AboutWindow.text4.SetPosition(8,18+13*3)
        
self.AboutWindow.text4.SetText("Ich bitte euch, diesen Bot nicht ohne meine")
        
self.AboutWindow.text4.Show()
        
        
self.AboutWindow.text5 ui.TextLine()
        
self.AboutWindow.text5.SetParent(self.AboutWindow)
        
self.AboutWindow.text5.SetPosition(8,18+13*4)
        
self.AboutWindow.text5.SetText("Genehmigung zu nutzen.")
        
self.AboutWindow.text5.Show()
        
        
self.AboutWindow.text6 ui.TextLine()
        
self.AboutWindow.text6.SetParent(self.AboutWindow)
        
self.AboutWindow.text6.SetPosition(200,18+13*5)
        
self.AboutWindow.text6.SetText("Zeit: %d" self.AboutWindow.x_counter)
        
self.AboutWindow.text6.Show()
        
        
        
class 
HelpBar(ui.Window):
    
def __init__(self,width,text,centered 0):
        
ui.Window.__init__(self)
        
self.AddFlag("not_pick")
        
self.AddFlag("attach")
        
        
img ui.ExpandedImageBox()
        
        
img.SetParent(self)
        
img.LoadImage("d:/ymir work/ui/pattern/help_stick.tga")
        
img.SetRenderingRect(0.0, -width0.00.0)
        
img.Show()
        
        
self.img img
        
        txt 
ui.TextLine()
        
        
txt=ui.TextLine()
        
txt.SetParent(self)
        
txt.SetText(text)
        
txt.Show()
        
        
img.SetPosition(0,18-width*img.GetHeight())
        
txt.SetPosition(0,0)
        
txt.SetWindowHorizontalAlignCenter()
        if 
centered != 0:
            
txt.SetHorizontalAlignCenter()
        
# txt.SetPosition(0,0)
        
        
self.txt txt
    
class DropDown(ui.Window):
    
dropped  0
    dropstat 
0
    last 
0
    lastS 
0
    maxh 
95
    OnChange 
None
    
class Item(ui.ListBoxEx.Item):
        
def __init__(self,parenttext,value=0):
            
ui.ListBoxEx.Item.__init__(self)

            
self.textBox=ui.TextLine()
            
self.textBox.SetParent(self)
            
self.textBox.SetText(text)
            
# self.textBox.SetLimitWidth(parent.GetWidth()-132)
            
self.textBox.Show()
            
self.value value
        def GetValue
(self):
            return 
self.value
        def __del__
(self):
            
ui.ListBoxEx.Item.__del__(self)
            
    
def __init__(self,parent,tt "",down=1):
        
ui.Window.__init__(self,"TOP_MOST")
        
self.down down
        self
.SetParentProxy(parent)
        
self.bg ui.Bar("TOP_MOST")
        
self.bg.SetParent(self)
        
self.bg.SetPosition(0,0)
        
self.bg.SetColor(0xc0000000)
        
self.bg.OnMouseOverIn self.bgMouseIn
        self
.bg.OnMouseOverOut self.bgMouseOut
        self
.bg.OnMouseLeftButtonDown self.ExpandMe
        self
.bg.Show()
        
self.act ui.TextLine()
        
self.act.SetParent(self.bg)
        
self.act.SetPosition(4,2)
        
self.act.SetText(tt)
        
self.act.Show()
        
self.GetText self.act.GetText
        
        self
.Drop ui.Bar("TOP_MOST")
        
self.Drop.SetParent(self.GetParentProxy())
        
self.Drop.SetPosition(0,21)
        
# self.Drop.SetSize(150,95)
        
self.Drop.SetSize(150,0)
        
# self.Drop.SetColor(0xc00a0a0a)
        
self.Drop.SetColor(0xff0a0a0a)
        
        
        
self.ScrollBar ui.ThinScrollBar()
        
self.ScrollBar.SetParent(self.Drop)
        
self.ScrollBar.SetPosition(132,0)
        
# self.ScrollBar.SetScrollBarSize(95)
        
self.ScrollBar.SetScrollBarSize(0)
        
# self.ScrollBar.Show()
        
        
self.DropList ui.ListBoxEx()
        
self.DropList.SetParent(self.Drop)
        
self.DropList.itemHeight 12
        self
.DropList.itemStep 13
        self
.DropList.SetPosition(0,0)
        
# self.DropList.SetSize(132,self.maxh)
        
self.DropList.SetSize(132,13
        
self.DropList.SetScrollBar(self.ScrollBar)
        
self.DropList.SetSelectEvent(self.SetTitle)
        
self.DropList.SetViewItemCount(0)
        
self.DropList.Show()
        if 
tt != "":
            
self.AppendItemAndSelect(tt)
        
self.selected self.DropList.GetSelectedItem()
        
            
        
self.SetSize(120,20)
    
def __del__(self): 
        
ui.Window.__del__(self)
    
1
    def AppendItem
(self,text,value=0):
        
self.c+=1   
        self
.DropList.AppendItem(self.Item(self,text,value))
        
self.maxh min(95,13*self.c)
        if 
self.7:
            
self.ScrollBar.Show()
            
        
    
def AppendItemAndSelect(self,text,value=0):
        
self.DropList.AppendItem(self.Item(self,text,value))
        
self.DropList.SelectIndex(len(self.DropList.itemList)-1)
        
    
def SelectByAffectId(self,id):
        for 
x in self.DropList.itemList:
            if 
x.value == id:
                
self.DropList.SelectItem(x)
                break
                
    
def SetTitle(self,item):
        
self.act.SetText(str(item.textBox.GetText()))
        
self.last self.DropList.basePos
        self
.lastS self.ScrollBar.GetPos()
        
self.dropped 0
        self
.selected item
        
if self.OnChange:
            
self.OnChange()
        
# self.Drop.Hide()
        
    
def SetPosition(self,w,h):
        
ui.Window.SetPosition(self,w,h)
        if 
self.down == 1:
            
self.Drop.SetPosition(w,h+21)
        else:
            
self.Drop.SetPosition(w,h-self.Drop.GetHeight())
        
    
def SetSize(self,w,h):
        
ui.Window.SetSize(self,w,h)
        
self.bg.SetSize(w,h)
        
self.Drop.SetSize(w,0)
        
self.DropList.SetSize(w-18,self.maxh)
        for 
x in self.DropList.itemList:
            
x.SetSize(w-18,12)
        
self.ScrollBar.SetPosition(w-18,0)
        
        
    
def ExpandMe(self):
        if 
self.dropped == 1:
            
# self.Drop.Hide()
            
self.dropped 0
        
else:
            
# self.Drop.Show()
            
self.dropped 1
            
    def OnUpdate
(self):
        
iter 6
        
if self.Drop.GetHeight() < 50:
            
self.ScrollBar.Hide()
        else:
            
self.ScrollBar.Show()
            
        if 
self.dropped == and self.dropstat == 1:
            if 
self.Drop.GetHeight() <=0:
                
self.dropstat 0
                self
.Drop.SetSize(self.Drop.GetWidth(),0)
                
self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight())
                
self.Drop.Hide()
            else:
                if 
self.Drop.GetHeight()-iter 0:
                    
self.Drop.SetSize(self.Drop.GetWidth(),0)
                else:
                    
self.Drop.SetSize(self.Drop.GetWidth(),self.Drop.GetHeight()-iter)
                    (
w,h) = self.GetLocalPosition()
                    
self.SetPosition(w,h)
                        
                    
                
self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight())
            
self.DropList.SetViewItemCount(int(self.Drop.GetHeight()/13))
            
self.DropList.SetBasePos(self.last+1)
            
self.DropList.SetBasePos(self.last)
        
elif self.dropped == and self.dropstat == 0:
            
self.Drop.Show()
            
self.SetTop()
            if 
self.Drop.GetHeight() >=self.maxh:
                
self.Drop.SetSize(self.Drop.GetWidth(),self.maxh)
                
self.ScrollBar.SetScrollBarSize(self.maxh)
                
self.dropstat 1
                self
.DropList.SetViewItemCount(7)
                
self.ScrollBar.SetPos(self.lastS)
            else:
                
self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight()+iter)
                
self.Drop.SetSize(self.Drop.GetWidth(),self.Drop.GetHeight()+iter)
                (
w,h) = self.GetLocalPosition()
                
self.SetPosition(w,h)
            
self.DropList.SetViewItemCount(int(self.Drop.GetHeight()/13))
            
self.DropList.SetBasePos(self.last+1)
            
self.DropList.SetBasePos(self.last)
        
    
## BG Hover
    
def bgMouseIn(self):
        
self.bg.SetColor(0xc00a0a0a)
    
def bgMouseOut(self):
        
self.bg.SetColor(0xc0000000)
        

class 
Edit2(ui.EditLine):
    
def __init__(self,main "",ml 99):
        
ui.EditLine.__init__(self)
        
self.SetText(main)
        
self.main main
        self
.SetMax(ml)
        
self.SetUserMax(ml)
    
def GetText(self):
        
res ui.EditLine.GetText(self)
        if 
res == "":
            return 
"0"
        
else:
            return 
res
            
    def __del__
(self):
        
ui.EditLine.__del__(self)
    
def OnSetFocus(self):
        
ui.EditLine.OnSetFocus(self)
        if 
ui.EditLine.GetText(self) == self.main:
            
self.SetText("")
    
def OnKillFocus(self):
        
ui.EditLine.OnKillFocus(self)
        if 
ui.EditLine.GetText(self) == "":
            
self.SetText(self.main)
            

class 
CheckBox(ui.Window):
    
checked 0
    eventUp  
=None
    eventDown
=None
    def __init__
(self,cont ""):
        
ui.Window.__init__(self)
        
self.BG ui.Bar("UI")
        
self.BG.SetParent(self)
        
self.BG.SetPosition(0,0)
        
self.BG.SetSize(20,20)
        
# self.BG.SetColor(0xc00b0b0b)
        
self.BG.SetColor(COLOR_CHECKBOX_NOT_SELECTED)
        
self.BG.OnMouseLeftButtonUp self.Toggle
        self
.OnMouseLeftButtonUp self.Toggle
        self
.BG.Show()
        
self.Title ui.TextLine()
        
self.Title.SetParent(self)
        
self.Title.SetPosition(25,2)
        
self.Title.SetText(cont)
        
self.Title.Show()
        
self.stat ui.TextLine()
        
self.stat.SetParent(self.BG)
        
self.stat.SetPosition(0,0)
        
self.stat.SetWindowHorizontalAlignCenter()
        
self.stat.SetWindowVerticalAlignCenter()
        
self.stat.SetHorizontalAlignCenter()
        
self.stat.SetVerticalAlignCenter()
        
self.stat.SetSize(0,0)
        
self.stat.SetText("")
        
self.SetSize(25+self.Title.GetTextSize()[0]+5,20)
        
self.stat.Show()
    
def __del__(self):
        
ui.ToggleButton.__del__(self)
    
def Toggle(self):
        if 
self.checked == 1:
            
self.OnToggleUp()
        else:
            
self.OnToggleDown()
    
def OnToggleUp(self):
        
self.stat.SetText("")
        
# self.BG.SetColor(0xc00b0b0b)
        
self.BG.SetColor(COLOR_CHECKBOX_NOT_SELECTED)
        
self.checked 0
        
if self.eventUp:
            
self.eventUp()
    
def OnToggleDown(self):
        
# self.BG.SetColor(0xf00b0b0b)
        
self.BG.SetColor(COLOR_CHECKBOX_SELECTED
        
self.stat.SetText("X")
        
self.checked 1
        
if self.eventDown:
            
self.eventDown()

            
# Zum Testen
# a = Bot()
# a.Show()

# oder;
# Bot().Show() 
Mfg.Mindfreak
05/01/2015 15:57 123snake123#2
Verändere doch mal nach und nach die werte bei allem wo size davor steht.
Da wird die größe geregelt.

Bergiss das BackUp nicht^^
05/01/2015 16:15 Prof.MindFreak#3
Ich habe es schon versucht.
05/01/2015 16:19 123snake123#4
Es gibt mehrere Blöcke in denen Size vorkommt
05/08/2015 23:08 Prof.MindFreak#5
push