Schami Löschen

04/12/2014 22:35 flampy1#1
hallo liebe Com,

ich habe mal eine frage wie kann man eine klasse aus den client löschen, das diese klasse gar nicht mehr sehen kann.

Lg. Flampy
04/12/2014 23:16 Philoy#2
Ich glaube sowas kann man nur in der Source einstellen.
So ist es glaube ich nicht möglich.
04/12/2014 23:24 .Shōgun#3
just remove it from IntroCreate.py
04/13/2014 00:01 flampy1#4
GENAUER was muss ich machen
04/13/2014 00:02 AtzerOne#5
Könnt mir jemand das Bearbeiten damit Schami aus Client Entfernt is ? ohne das charauswahl rum Bug ?! Pls give Thanks...



PHP Code:
import chr
import grp
import app
import net
import snd
import wndMgr
import event
import systemSetting
import locale

import ui
import networkModule
import math
import snd
import musicInfo
import playerSettingModule
import uiScriptLocale
import uiToolTip

LOCALE_PATH 
= "uiscript/"+uiScriptLocale.CODEPAGE+"_"

MAN            = 0
WOMAN        
= 1
SHAPE0        
= 0
SHAPE1        
= 1
PAGE_COUNT    
= 2
SLOT_COUNT    
= 4
BASE_CHR_ID    
= 3

class CreateCharacterWindow(ui.Window):

    
SLOT_ROTATION = [135.0, 225.0, 315.0, 45.0]
    

    
CREATE_STAT_POINT = 0

    STAT_CON 
= 0
    STAT_INT 
= 1
    STAT_STR 
= 2
    STAT_DEX 
= 3

    STAT_DESCRIPTION 
=    {
                            
STAT_CON : locale.STAT_TOOLTIP_CON,
                            
STAT_INT : locale.STAT_TOOLTIP_INT,
                            
STAT_STR : locale.STAT_TOOLTIP_STR,
                            
STAT_DEX : locale.STAT_TOOLTIP_DEX,
                        }

    
START_STAT =    (  ## CON INT STR DEX
                        
[ 4, 3, 6, 3, ], ## Warrior
                        
[ 3, 3, 4, 6, ], ## Assassin
                        
[ 3, 5, 5, 3, ], ## Sura
                        
[ 4, 6, 3, 3, ], ## Shaman
                        
[ 4, 3, 6, 3, ], ## Warrior
                        
[ 3, 3, 4, 6, ], ## Assassin
                        
[ 3, 5, 5, 3, ], ## Sura
                        
[ 4, 6, 3, 3, ], ## Shaman
                    
)

    
DESCRIPTION_FILE_NAME =    (
        
uiScriptLocale.JOBDESC_WARRIOR_PATH,
        
uiScriptLocale.JOBDESC_ASSASSIN_PATH,
        
uiScriptLocale.JOBDESC_SURA_PATH,
        
uiScriptLocale.JOBDESC_SHAMAN_PATH,
    )

    class 
DescriptionBox(ui.Window):
        
def __init__(self):
            
ui.Window.__init__(self)
            
self.descIndex = 0
        def __del__
(self):
            
ui.Window.__del__(self)
        
def SetIndex(self, index):
            
self.descIndex = index
        def OnRender
(self):
            
event.RenderEventSet(self.descIndex)

    class 
CharacterRenderer(ui.Window):
        
def OnRender(self):
            
grp.ClearDepthBuffer()
            
grp.SetGameRenderState()
            
grp.PushState()
            
grp.SetOmniLight()

            
screenWidth = wndMgr.GetScreenWidth()
            
screenHeight = wndMgr.GetScreenHeight()
            
newScreenWidth = float(screenWidth - 270)
            
newScreenHeight = float(screenHeight)

            
grp.SetViewport(270.0/screenWidth, 0.0, newScreenWidth/screenWidth, newScreenHeight/screenHeight)

            
app.SetCenterPosition(0.0, 0.0, 0.0)
            
app.SetCamera(1550.0, 15.0, 180.0, 95.0)
            
grp.SetPerspective(10.0, newScreenWidth/newScreenHeight, 1000.0, 3000.0)

            (
x, y) = app.GetCursorPosition()
            
grp.SetCursorPosition(x, y)

            
chr.Deform()
            
chr.Render()

            
grp.RestoreViewport()
            
grp.PopState()
            
grp.SetInterfaceRenderState()

    
def __init__(self, stream):
        print 
"NEW CREATE WINDOW ----------------------------------------------------------------------------"
        
ui.Window.__init__(self)
        
net.SetPhaseWindow(net.PHASE_WINDOW_CREATE, self)

        
self.stream=stream

    def __del__
(self):
        print 
"---------------------------------------------------------------------------- DELETE CREATE WINDOW"

        
net.SetPhaseWindow(net.PHASE_WINDOW_CREATE, 0)
        
ui.Window.__del__(self)

    
def Open(self):
        print 
"OPEN CREATE WINDOW ----------------------------------------------------------------------------"

        
playerSettingModule.LoadGameData("INIT")

        
self.reservingRaceIndex = -1
        self
.reservingShapeIndex = -1
        self
.reservingStartTime = 0
        self
.stat = [0, 0, 0, 0]
    
        
self.gender = 0
        self
.slot = -1
        self
.shapeList = [
            [
0, 0, 0, 0],
            [
0, 0, 0, 0]]

        
self.descIndex = 0

        
try:
            
dlgBoard = ui.ScriptWindow()
            
pythonScriptLoader = ui.PythonScriptLoader()
            
pythonScriptLoader.LoadScriptFile(dlgBoard, uiScriptLocale.LOCALE_UISCRIPT_PATH + "createcharacterwindow.py")

        
except:
            
import exception
            exception
.Abort("CreateCharacterWindow.Open.LoadObject")

        try:
            
getChild = dlgBoard.GetChild

            self
.NameList = []
            
self.NameList.append(getChild("name_warrior"))
            
self.NameList.append(getChild("name_assassin"))
            
self.NameList.append(getChild("name_sura"))
            
self.NameList.append(getChild("name_shaman"))

            
self.GaugeList = []
            
self.GaugeList.append(getChild("hth_gauge"))
            
self.GaugeList.append(getChild("int_gauge"))
            
self.GaugeList.append(getChild("str_gauge"))
            
self.GaugeList.append(getChild("dex_gauge"))

            
self.btnCreate = getChild("create_button")
            
self.btnCancel = getChild("cancel_button")
            
self.btnPrev = getChild("prev_button")
            
self.btnNext = getChild("next_button")
            
self.btnLeft = getChild("left_button")
            
self.btnRight = getChild("right_button")
            
self.textBoard = getChild("text_board")

            
self.genderButtonList = []
            
self.genderButtonList.append(getChild("gender_button_01"))
            
self.genderButtonList.append(getChild("gender_button_02"))

            
self.shapeButtonList = []
            
self.shapeButtonList.append(getChild("shape_button_01"))
            
self.shapeButtonList.append(getChild("shape_button_02"))

            
self.editCharacterName = getChild("character_name_value")

            
self.statValue = []
            
self.statValue.append(getChild("hth_value"))
            
self.statValue.append(getChild("int_value"))
            
self.statValue.append(getChild("str_value"))
            
self.statValue.append(getChild("dex_value"))

            
getChild("hth_button").ShowToolTip = lambda arg=self.STAT_CON: self.OverInStatButton(arg)
            
getChild("hth_button").HideToolTip = lambda arg=self.STAT_CON: self.OverOutStatButton()
            
getChild("int_button").ShowToolTip = lambda arg=self.STAT_INT: self.OverInStatButton(arg)
            
getChild("int_button").HideToolTip = lambda arg=self.STAT_INT: self.OverOutStatButton()
            
getChild("str_button").ShowToolTip = lambda arg=self.STAT_STR: self.OverInStatButton(arg)
            
getChild("str_button").HideToolTip = lambda arg=self.STAT_STR: self.OverOutStatButton()
            
getChild("dex_button").ShowToolTip = lambda arg=self.STAT_DEX: self.OverInStatButton(arg)
            
getChild("dex_button").HideToolTip = lambda arg=self.STAT_DEX: self.OverOutStatButton()

            
getChild("hth_button").Hide()
            
getChild("int_button").Hide()
            
getChild("str_button").Hide()
            
getChild("dex_button").Hide()

            
self.backGround = getChild("BackGround")

        
except:
            
import exception
            exception
.Abort("CreateCharacterWindow.Open.BindObject")

        
self.btnCreate.SetEvent(ui.__mem_func__(self.CreateCharacter))
        
self.btnCancel.SetEvent(ui.__mem_func__(self.CancelCreate))
        
self.btnPrev.SetEvent(ui.__mem_func__(self.PrevDescriptionPage))
        
self.btnNext.SetEvent(ui.__mem_func__(self.NextDescriptionPage))
        
self.btnLeft.SetEvent(ui.__mem_func__(self.__DecreaseSlotIndex))
        
self.btnRight.SetEvent(ui.__mem_func__(self.__IncreaseSlotIndex))

        
self.genderButtonList[0].SetEvent(ui.__mem_func__(self.__SelectGender), MAN)
        
self.genderButtonList[1].SetEvent(ui.__mem_func__(self.__SelectGender), WOMAN)

        
self.shapeButtonList[0].SetEvent(ui.__mem_func__(self.__SelectShape), SHAPE0)
        
self.shapeButtonList[1].SetEvent(ui.__mem_func__(self.__SelectShape), SHAPE1)
        
self.editCharacterName.SetReturnEvent(ui.__mem_func__(self.CreateCharacter))
        
self.editCharacterName.SetEscapeEvent(ui.__mem_func__(self.CancelCreate))
        
self.dlgBoard = dlgBoard

        self
.curRotation    = [] + self.SLOT_ROTATION
        self
.destRotation    = [] + self.SLOT_ROTATION
        self
.curNameAlpha    = [0.0, 0.0, 0.0, 0.0, 0.0]
        
self.destNameAlpha    = [0.0, 0.0, 0.0, 0.0, 0.0]
        
self.curGauge        = [0.0, 0.0, 0.0, 0.0]
        
self.destGauge        = [0.0, 0.0, 0.0, 0.0]

        
self.descriptionBox = self.DescriptionBox()
        
self.descriptionBox.Show()

        
self.chrRenderer = self.CharacterRenderer()
        
self.chrRenderer.SetParent(self.backGround)
        
self.chrRenderer.Show()

        
self.toolTip = uiToolTip.ToolTip()
        
self.toolTip.ClearToolTip()

        
self.editCharacterName.SetText("")

        
self.EnableWindow()
        
self.__SelectSlot(0)

        
app.SetCamera(500.0, 10.0, 180.0, 95.0)

        
self.__MakeCharacter(0, 0, playerSettingModule.RACE_WARRIOR_M)
        
self.__MakeCharacter(0, 1, playerSettingModule.RACE_ASSASSIN_M)
        
self.__MakeCharacter(0, 2, playerSettingModule.RACE_SURA_M)
        
self.__MakeCharacter(0, 3, playerSettingModule.RACE_SHAMAN_M)

        
self.__MakeCharacter(1, 0, playerSettingModule.RACE_WARRIOR_W)
        
self.__MakeCharacter(1, 1, playerSettingModule.RACE_ASSASSIN_W)
        
self.__MakeCharacter(1, 2, playerSettingModule.RACE_SURA_W)
        
self.__MakeCharacter(1, 3, playerSettingModule.RACE_SHAMAN_W)

        
self.__SelectGender(app.GetRandom(MAN, WOMAN))
        
self.__SelectShape(0)
        
self.__SelectSlot(app.GetRandom(0, 3))

        
self.dlgBoard.Show()
        
self.Show()

        if 
musicInfo.createMusic != "":
            
snd.SetMusicVolume(systemSetting.GetMusicVolume())
            
snd.FadeInMusic("BGM/"+musicInfo.createMusic)

        
app.ShowCursor()

    
def Close(self):
        print 
"---------------------------------------------------------------------------- CLOSE CREATE WINDOW"

        
self.editCharacterName.Enable()
        
self.dlgBoard.ClearDictionary()
        
self.stream=0
        self
.shapeButtonList = []
        
self.genderButtonList = []
        
self.btnCreate = 0
        self
.btnCancel = 0
        self
.btnPrev = 0
        self
.btnNext = 0
        self
.btnLeft = 0
        self
.btnRight = 0
        self
.textBoard = 0
        self
.editCharacterName = 0
        self
.backGround = None

        
if musicInfo.createMusic != "":
            
snd.FadeOutMusic("BGM/"+musicInfo.createMusic)

        for 
id in xrange(BASE_CHR_ID + SLOT_COUNT * PAGE_COUNT):
            
chr.DeleteInstance(id)

        
self.dlgBoard.Hide()
        
self.Hide()

        
app.HideCursor()
        
event.Destroy()

    
def EnableWindow(self):
        
self.reservingRaceIndex = -1
        self
.reservingShapeIndex = -1
         self
.btnCreate.Enable()
        
self.btnCancel.Enable()
        
self.btnPrev.Enable()
        
self.btnNext.Enable()
        
self.btnLeft.Enable()
        
self.btnRight.Enable()

        
self.editCharacterName.SetFocus()
        
self.editCharacterName.Enable()

        for 
page in xrange(PAGE_COUNT):
            for 
slot in xrange(SLOT_COUNT):
                
chr_id = self.__GetSlotChrID(page, slot)
                
chr.SelectInstance(chr_id)
                
chr.BlendLoopMotion(chr.MOTION_INTRO_WAIT, 0.1)

    
def DisableWindow(self):
        
self.btnCreate.Disable()
        
self.btnCancel.Disable()
        
self.btnPrev.Disable()
        
self.btnNext.Disable()
        
self.btnLeft.Disable()
        
self.btnRight.Disable()
        
self.editCharacterName.Disable()

        
self.btnCreate.SetUp()

    
## Manage Character
    
def __GetSlotChrID(self, page, slot):
        return 
BASE_CHR_ID + page * SLOT_COUNT + slot

    def __MakeCharacter
(self, page, slot, race):

        
chr_id = self.__GetSlotChrID(page, slot)

        
chr.CreateInstance(chr_id)
        
chr.SelectInstance(chr_id)
        
chr.SetVirtualID(chr_id)

        
chr.SetRace(race)
        
chr.SetArmor(0)
        
chr.SetHair(0)

        
chr.Refresh()
        
chr.SetMotionMode(chr.MOTION_MODE_GENERAL)
        
chr.SetLoopMotion(chr.MOTION_INTRO_WAIT)

        
chr.SetRotation(0.0)
        
chr.Hide()

    
def __SelectGender(self, gender):        
        for 
button in self.genderButtonList:
            
button.SetUp()

        
self.genderButtonList[gender].Down()

        
self.gender = gender

        
if gender == MAN:
            for 
i in xrange(SLOT_COUNT):
                
chr.SelectInstance(self.__GetSlotChrID(0, i))
                
chr.Show()
            for 
i in xrange(SLOT_COUNT):
                
chr.SelectInstance(self.__GetSlotChrID(1, i))
                
chr.Hide()
        else:
            for 
i in xrange(SLOT_COUNT):
                
chr.SelectInstance(self.__GetSlotChrID(0, i))
                
chr.Hide()
            for 
i in xrange(SLOT_COUNT):
                
chr.SelectInstance(self.__GetSlotChrID(1, i))
                
chr.Show()            

    
def __SelectShape(self, shape):
        
self.shapeList[self.gender][self.slot] = shape

        
for button in self.shapeButtonList:
            
button.SetUp()

        
self.shapeButtonList[shape].Down()

        
chr_id = self.__GetSlotChrID(self.gender, self.slot)        
        
chr.SelectInstance(chr_id)        
        
chr.ChangeShape(shape)        
        
chr.SetMotionMode(chr.MOTION_MODE_GENERAL)
        
chr.SetLoopMotion(chr.MOTION_INTRO_WAIT)

    
def GetSlotIndex(self):
        return 
self.slot

    def RefreshStat
(self):
        
statSummary = self.stat[0] + self.stat[1] + self.stat[2] + self.stat[3]
        
self.destGauge =    (
                                
float(self.stat[0])/float(statSummary),
                                
float(self.stat[1])/float(statSummary),
                                
float(self.stat[2])/float(statSummary),
                                
float(self.stat[3])/float(statSummary),
                            )

        for 
i in xrange(4):
            
self.statValue[i].SetText(str(self.stat[i]))

    
def __SelectSlot(self, slot):

        if 
slot < 0:
            return

        if 
slot >= SLOT_COUNT:
            return        

        if 
self.slot == slot:
            return

        
self.slot = slot
        self
.ResetStat()

        for 
i in xrange(SLOT_COUNT):
            
self.destNameAlpha[i] = 0.0

        self
.destNameAlpha[slot] = 1.0

        
for i in xrange(SLOT_COUNT):
            
self.destRotation[(i+self.slot)%SLOT_COUNT] = self.SLOT_ROTATION[i]

        if 
self.IsShow():
            
snd.PlaySound("sound/ui/click.wav")

        
event.ClearEventSet(self.descIndex)
        
self.descIndex = event.RegisterEventSet(self.DESCRIPTION_FILE_NAME[self.slot])
        
        if 
locale.IsARABIC(): 
            
event.SetEventSetWidth(self.descIndex, 170)

        
chr_id = self.__GetSlotChrID(self.gender, slot)
        if 
chr.HasInstance(chr_id):
            
chr.SelectInstance(chr_id)
            
self.__SelectShape(self.shapeList[self.gender][slot])

    
def CreateCharacter(self):

        if -
1 != self.reservingRaceIndex:
            return

        
textName = self.editCharacterName.GetText()
        if 
FALSE == self.__CheckCreateCharacter(textName):
            return

        if 
musicInfo.selectMusic != "":
            
snd.FadeLimitOutMusic("BGM/"+musicInfo.selectMusic, systemSetting.GetMusicVolume()*0.05)

        
self.DisableWindow()

        
        
chr_id = self.__GetSlotChrID(self.gender, self.slot)

        
chr.SelectInstance(chr_id)

        
self.reservingRaceIndex = chr.GetRace()

        
self.reservingShapeIndex = self.shapeList[self.gender][self.slot]
        
self.reservingStartTime = app.GetTime()

        for 
eachSlot in xrange(SLOT_COUNT):

            
sel_id = self.__GetSlotChrID(self.gender, eachSlot)

            
chr.SelectInstance(sel_id)

            if 
eachSlot == self.slot:
                
chr.PushOnceMotion(chr.MOTION_INTRO_SELECTED)
            else:
                
chr.PushOnceMotion(chr.MOTION_INTRO_NOT_SELECTED)

    
def CancelCreate(self):
        
self.stream.SetSelectCharacterPhase()

    
def __DecreaseSlotIndex(self):
        
slotIndex = (self.GetSlotIndex() - 1 + SLOT_COUNT) % SLOT_COUNT
        self
.__SelectSlot(slotIndex)

    
def __IncreaseSlotIndex(self):
        
slotIndex = (self.GetSlotIndex() + 1) % SLOT_COUNT
        self
.__SelectSlot(slotIndex)

    
def PrevDescriptionPage(self):
        if 
TRUE == event.IsWait(self.descIndex):
            if 
event.GetVisibleStartLine(self.descIndex)-5 >= 0:
                
event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)-5)
                
event.Skip(self.descIndex)
        else:
            
event.Skip(self.descIndex)

    
def NextDescriptionPage(self):
        if 
TRUE == event.IsWait(self.descIndex):
            
event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)+5)
            
event.Skip(self.descIndex)
        else:
            
event.Skip(self.descIndex)

    
def __CheckCreateCharacter(self, name):
        if 
len(name) == 0:
            
self.PopupMessage(locale.CREATE_INPUT_NAME, self.EnableWindow)
            return 
FALSE

        
if name.find(locale.CREATE_GM_NAME)!=-1:
            
self.PopupMessage(locale.CREATE_ERROR_GM_NAME, self.EnableWindow)
            return 
FALSE

        
if net.IsInsultIn(name):
            
self.PopupMessage(locale.CREATE_ERROR_INSULT_NAME, self.EnableWindow)
            return 
FALSE

        
return TRUE        

    def ResetStat
(self):
        for 
i in xrange(4):
            
self.stat[i] = self.START_STAT[self.slot][i]
        
self.lastStatPoint = self.CREATE_STAT_POINT
        self
.RefreshStat()

    
## Event
    
def OnCreateSuccess(self):
        
self.stream.SetSelectCharacterPhase()

    
def OnCreateFailure(self, type):
        if 
1 == type:
            
self.PopupMessage(locale.CREATE_EXIST_SAME_NAME, self.EnableWindow)
        else:
            
self.PopupMessage(locale.CREATE_FAILURE, self.EnableWindow)

    
def OnKeyDown(self, key):

        if 
key == 2:
            
self.__SelectSlot(0)
        if 
key == 3:
            
self.__SelectSlot(1)
        if 
key == 4:
            
self.__SelectSlot(2)
        if 
key == 5:
            
self.__SelectSlot(3)

        if 
203 == key:
            
self.__DecreaseSlotIndex()
        if 
205 == key:
            
self.__IncreaseSlotIndex()

        if 
59 == key:
            
self.__SelectGender(MAN_PAGE)
        if 
60 == key:
            
self.__SelectGender(WOMAN_PAGE)

        return 
TRUE

    def OnUpdate
(self):
        
chr.Update()

        (
xposEventSet, yposEventSet) = self.textBoard.GetGlobalPosition()
        
event.UpdateEventSet(self.descIndex, xposEventSet+7, -(yposEventSet+7))
        
self.descriptionBox.SetIndex(self.descIndex)

        for 
i in xrange(4):
            
self.curNameAlpha[i] += (self.destNameAlpha[i] - self.curNameAlpha[i]) / 10.0
            self
.NameList[i].SetAlpha(self.curNameAlpha[i])

        for 
i in xrange(4):
            
self.curGauge[i] += (self.destGauge[i] - self.curGauge[i]) / 10.0
            
if abs(self.curGauge[i] - self.destGauge[i]) < 0.005:
                
self.curGauge[i] = self.destGauge[i]
            
self.GaugeList[i].SetPercentage(self.curGauge[i], 1.0)

        for 
page in xrange(PAGE_COUNT):
            for 
i in xrange(SLOT_COUNT):
                
chr.SelectInstance(self.__GetSlotChrID(page, i))

                
distance = 50.0
                rotRadian 
= self.curRotation[i] * (math.pi*2) / 360.0
                x 
= distance*math.sin(rotRadian) + distance*math.cos(rotRadian)
                
y = distance*math.cos(rotRadian) - distance*math.sin(rotRadian)
                
chr.SetPixelPosition(int(x), int(y), 30)

                if 
abs(self.destRotation[i] - self.curRotation[i]) < 1.0:
                    
self.curRotation[i] = self.destRotation[i]

                
dir = app.GetRotatingDirection(self.destRotation[i], self.curRotation[i])
                
rot = app.GetDegreeDifference(self.destRotation[i], self.curRotation[i])

                if 
app.DEGREE_DIRECTION_RIGHT == dir:
                    
self.curRotation[i] += rot / 10.0
                elif app
.DEGREE_DIRECTION_LEFT == dir:
                    
self.curRotation[i] -= rot / 10.0

                self
.curRotation[i] = (self.curRotation[i] + 360.0) % 360.0

        
###########################################################
        
if -1 != self.reservingRaceIndex:
            if 
app.GetTime() - self.reservingStartTime >= 1.5:

                
chrSlot=self.stream.GetCharacterSlot()
                
textName = self.editCharacterName.GetText()
                
raceIndex = self.reservingRaceIndex
                shapeIndex 
= self.reservingShapeIndex

                startStat 
= self.START_STAT[self.reservingRaceIndex]
                
statCon = self.stat[0] - startStat[0]
                
statInt = self.stat[1] - startStat[1]
                
statStr = self.stat[2] - startStat[2]
                
statDex = self.stat[3] - startStat[3]

                
net.SendCreateCharacterPacket(chrSlot, textName, raceIndex, shapeIndex, statCon, statInt, statStr, statDex)

                
self.reservingRaceIndex = -1

        
###########################################################    

    
def EmptyFunc(self):
        
pass

    def PopupMessage
(self, msg, func=0):
        if 
not func:
            
func=self.EmptyFunc

        self
.stream.popupWindow.Close()
        
self.stream.popupWindow.Open(msg, func, locale.UI_OK)

    
def OnPressExitKey(self):
        
self.CancelCreate()
        return 
TRUE

    def OverInStatButton
(self, stat):
        if 
not self.STAT_DESCRIPTION.has_key(stat):
            return

        
self.toolTip.ClearToolTip()
        
self.toolTip.AppendTextLine(self.STAT_DESCRIPTION[stat])
        
self.toolTip.Show()

    
def OverOutStatButton(self):
        
self.toolTip.Hide()

if 
__name__ == "__main__":

    
import app
    import wndMgr
    import systemSetting
    import mouseModule
    import networkModule

    app
.SetMouseHandler(mouseModule.mouseController)
    
app.SetHairColorEnable(TRUE)
    
wndMgr.SetMouseHandler(mouseModule.mouseController)
    
wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
    
app.Create(locale.APP_TITLE, systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
    
mouseModule.mouseController.Create()

    
mainStream = networkModule.MainStream()
    
mainStream.Create()    

    
test = CreateCharacterWindow(mainStream)
    
test.Open()

    
app.Loop()