Tasho 243 Posted March 2, 2014 Share Posted March 2, 2014 Hi, I tryed to adapt that caracter select from yayaprod to 40k but out of luck I tryed like 5 times but the same errors : 0302 15:56:11396 :: introSelect.py(line:287) __LoadBoardDialog ui.py(line:2715) GetChild SelectCharacterWindow.LoadBoardDialog.BindObject - <type 'exceptions.KeyError'>:'LoginExitButton' 0302 15:56:11396 :: ============================================================================================================ 0302 15:56:11396 :: Abort!!!! 0302 15:56:11396 :: filename=exception.py, name=Abort 0302 15:56:11396 :: filename=introSelect.py, name=__LoadBoardDialog 0302 15:56:11396 :: filename=introSelect.py, name=Open 0302 15:56:11396 :: filename=networkModule.py, name=__ChangePhaseWindow 0302 15:56:11396 :: filename=uiPhaseCurtain.py, name=OnUpdate 0302 15:56:11396 :: filename=prototype.py, name=RunApp 0302 15:56:11396 :: filename=prototype.py, name=<module> 0302 15:56:11396 :: filename=system.py, name=Run 0302 15:56:11396 :: filename=system.py, name=execfile 0302 15:56:11396 :: filename=system.py, name=RunMainScript 0302 15:56:11396 :: filename=system.py, name=<module> 0302 15:56:11396 :: filename=<string>, name=<module> And now I ask for your help, what I should do? Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 What client do you use? Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 40k arkosia2 files. Link to comment Share on other sites More sharing options...
ѕeмa™ 308 Posted March 2, 2014 Share Posted March 2, 2014 Hi, I tryed to adapt that caracter select from yayaprod to 40k but out of luck I tryed like 5 times but the same errors : 0302 15:56:11396 :: introSelect.py(line:287) __LoadBoardDialog ui.py(line:2715) GetChild SelectCharacterWindow.LoadBoardDialog.BindObject - <type 'exceptions.KeyError'>:'LoginExitButton' 0302 15:56:11396 :: ============================================================================================================ 0302 15:56:11396 :: Abort!!!! 0302 15:56:11396 :: filename=exception.py, name=Abort 0302 15:56:11396 :: filename=introSelect.py, name=__LoadBoardDialog 0302 15:56:11396 :: filename=introSelect.py, name=Open 0302 15:56:11396 :: filename=networkModule.py, name=__ChangePhaseWindow 0302 15:56:11396 :: filename=uiPhaseCurtain.py, name=OnUpdate 0302 15:56:11396 :: filename=prototype.py, name=RunApp 0302 15:56:11396 :: filename=prototype.py, name=<module> 0302 15:56:11396 :: filename=system.py, name=Run 0302 15:56:11396 :: filename=system.py, name=execfile 0302 15:56:11396 :: filename=system.py, name=RunMainScript 0302 15:56:11396 :: filename=system.py, name=<module> 0302 15:56:11396 :: filename=<string>, name=<module> And now I ask for your help, what I should do? search locale/xx/it/ui/ selectcharacterwindow.py 'LoginExitButton' https://m2admin.net/ Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 0302 17:21:10241 :: introSelect.py(line:283) __LoadBoardDialog ui.py(line:2715) GetChild SelectCharacterWindow.LoadBoardDialog.BindObject - <type 'exceptions.KeyError'>:'start_button' 0302 17:21:10241 :: ============================================================================================================ 0302 17:21:10242 :: Abort!!!! 0302 17:21:10242 :: filename=exception.py, name=Abort 0302 17:21:10242 :: filename=introSelect.py, name=__LoadBoardDialog 0302 17:21:10242 :: filename=introSelect.py, name=Open 0302 17:21:10242 :: filename=networkModule.py, name=__ChangePhaseWindow 0302 17:21:10242 :: filename=uiPhaseCurtain.py, name=OnUpdate 0302 17:21:10242 :: filename=prototype.py, name=RunApp 0302 17:21:10242 :: filename=prototype.py, name=<module> 0302 17:21:10242 :: filename=system.py, name=Run 0302 17:21:10242 :: filename=system.py, name=execfile 0302 17:21:10242 :: filename=system.py, name=RunMainScript 0302 17:21:10242 :: filename=system.py, name=<module> 0302 17:21:10242 :: filename=<string>, name=<module> now this error ... I have it in my locale but I don;t know whi it still gives me error ## Empire Flag { "name" : "start_button", "type" : "button", "x" : (SCREEN_WIDTH - 550) / 2, "y" : (SCREEN_HEIGHT - 40), "text" : uiScriptLocale.SELECT_SELECT, "text_height" : 6, "default_image" : "d:/ymir work/ui/public/btnsimple1.sub", "over_image" : "d:/ymir work/ui/public/btnsimple2.sub", "down_image" : "d:/ymir work/ui/public/btnsimple3.sub", }, Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 40k arkosia2 files. Try to use the 40250 client,because I had the same error with arkosia 2 client and when I change the client it worked perfect. 1 Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 Try to use the 40250 client,because I had the same error with arkosia 2 client and when I change the client it worked perfect. the test one? Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 the test one? Yeap 1 Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 same error 0302 19:01:26415 :: introSelect.py(line:282) __LoadBoardDialog ui.py(line:2715) GetChild SelectCharacterWindow.LoadBoardDialog.BindObject - <type 'exceptions.KeyError'>:'start_button' 0302 19:01:26415 :: ============================================================================================================ 0302 19:01:26415 :: Abort!!!! 0302 19:01:26415 :: filename=exception.py, name=Abort 0302 19:01:26415 :: filename=introSelect.py, name=__LoadBoardDialog 0302 19:01:26415 :: filename=introSelect.py, name=Open 0302 19:01:26415 :: filename=networkModule.py, name=__ChangePhaseWindow 0302 19:01:26415 :: filename=uiPhaseCurtain.py, name=OnUpdate 0302 19:01:26415 :: filename=prototype.py, name=RunApp 0302 19:01:26416 :: filename=prototype.py, name=<module> 0302 19:01:26416 :: filename=system.py, name=Run 0302 19:01:26416 :: filename=system.py, name=execfile 0302 19:01:26416 :: filename=system.py, name=RunMainScript 0302 19:01:26416 :: filename=system.py, name=<module> 0302 19:01:26416 :: filename=<string>, name=<module> selectcharacterwindow.py ## Empire Flag { "name" : "start_button", "type" : "button", "x" : (SCREEN_WIDTH - 550) / 2, "y" : (SCREEN_HEIGHT - 40), "text" : uiScriptLocale.SELECT_SELECT, "text_height" : 6, "default_image" : "d:/ymir work/ui/public/btnsimple1.sub", "over_image" : "d:/ymir work/ui/public/btnsimple2.sub", "down_image" : "d:/ymir work/ui/public/btnsimple3.sub", }, Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 What binary are you using? 1 Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 from cBaraN. Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 Use the 28k binary thich is in the 40250 client 1 Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 i`ve use this : http://metin2dev.org/board/topic/244-release-binary-r28249-fixed/?p=2019 and now : 0302 20:58:11789 :: introSelect.py(line:283) __LoadBoardDialog ui.py(line:2715) GetChild SelectCharacterWindow.LoadBoardDialog.BindObject - exceptions.KeyError:start_button 0302 20:58:11791 :: ============================================================================================================ 0302 20:58:11791 :: Abort!!!! Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 Try to change introselect.py 1 Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 if I change it then the new character select will not work ... that is the main thing I whnat the most ... anything else I don't care ... import chr import grp import app import math import wndMgr import snd import net import systemSetting import localeInfo import chr import ui import uiScriptLocale import networkModule import musicInfo import playerSettingModule #################################### # ºü¸¥ ½ÇÇàÀ» À§ÇÑ ¸ðµâ ·Îµù ºÐ´ã #################################### import uiCommon import uiMapNameShower import uiAffectShower import uiCharacter import uiTarget import consoleModule import interfaceModule import uiTaskBar import uiInventory import constInfo import os import linecache import introLogin import localeInfo ################################### LEAVE_BUTTON_FOR_POTAL = FALSE NOT_NEED_DELETE_CODE = FALSE ENABLE_ENGNUM_DELETE_CODE = FALSE if localeInfo.IsJAPAN(): NOT_NEED_DELETE_CODE = TRUE elif localeInfo.IsHONGKONG(): ENABLE_ENGNUM_DELETE_CODE = TRUE elif localeInfo.IsNEWCIBN() or localeInfo.IsCIBN10(): ENABLE_ENGNUM_DELETE_CODE = TRUE elif localeInfo.IsEUROPE(): ENABLE_ENGNUM_DELETE_CODE = TRUE ################################### class SelectCharacterWindow(ui.Window): # SLOT4 #SLOT_ROTATION = ( 140.0, 260.0, 20.0 ) #SLOT_COUNT = 3 SLOT_ROTATION = [135.0, 225.0, 315.0, 45.0] SLOT_COUNT = 4 CHARACTER_TYPE_COUNT = 4 class CharacterRenderer(ui.Window): def OnRender(self): grp.ClearDepthBuffer() grp.SetGameRenderState() grp.PushState() grp.SetOmniLight() screenWidth = wndMgr.GetScreenWidth() screenHeight = wndMgr.GetScreenHeight() newScreenWidth = float(screenWidth - 100) newScreenHeight = float(screenHeight) grp.SetViewport(270.0/screenWidth, 0.0, newScreenWidth/screenWidth, newScreenHeight/screenHeight) app.SetCenterPosition(0.0, 0.0, 0.0) app.SetCamera(2300.0, 15.0, 180.0, 200.0) grp.SetPerspective(10.0, newScreenWidth/newScreenHeight, 1000.0, 4000.0) (x, y) = app.GetCursorPosition() grp.SetCursorPosition(x, y) chr.Deform() chr.Render() grp.RestoreViewport() grp.PopState() grp.SetInterfaceRenderState() def __init__(self, stream): ui.Window.__init__(self) net.SetPhaseWindow(net.PHASE_WINDOW_SELECT, self) self.stream=stream self.slot = self.stream.GetCharacterSlot() self.openLoadingFlag = FALSE self.startIndex = -1 self.startReservingTime = 0 self.flagDict = {} self.curRotation = [] self.destRotation = [] for rot in self.SLOT_ROTATION: self.curRotation.append(rot) self.destRotation.append(rot) self.curNameAlpha = [] self.destNameAlpha = [] for i in xrange(self.CHARACTER_TYPE_COUNT): self.curNameAlpha.append(0.0) self.destNameAlpha.append(0.0) self.dlgBoard = 0 self.changeNameFlag = FALSE self.nameInputBoard = None self.sendedChangeNamePacket = FALSE self.startIndex = -1 self.isLoad = 0 def __del__(self): ui.Window.__del__(self) net.SetPhaseWindow(net.PHASE_WINDOW_SELECT, 0) def Open(self): import constInfo if not self.__LoadBoardDialog(uiScriptLocale.LOCALE_UISCRIPT_PATH + "selectcharacterwindow.py"): dbg.TraceError("SelectCharacterWindow.Open - __LoadScript Error") return if not self.__LoadQuestionDialog("uiscript/questiondialog.py"): return playerSettingModule.LoadGameData("INIT") self.InitCharacterBoard() self.btnStart.Enable() self.btnCreate.Enable() self.btnDelete.Enable() self.btnExit.Enable() self.btnLeft.Enable() self.btnRight.Enable() self.dlgBoard.Show() self.SetWindowName("SelectCharacterWindow") self.Show() if self.slot>=0: self.SelectSlot(0) if musicInfo.selectMusic != "": snd.SetMusicVolume(systemSetting.GetMusicVolume()) snd.FadeInMusic("BGM/"+musicInfo.selectMusic) app.SetCenterPosition(0.0, 0.0, 0.0) #app.SetCamera(1550.0, 15.0, 180.0, 95.0) self.isLoad=1 self.Refresh() if os.path.exists("data/standard.cfg"): s = linecache.getline("data/standard.cfg", 1) else: s = 0 if self.stream.isAutoSelect: #chrSlot=self.stream.GetCharacterSlot() chrSlot=s self.SelectSlot(chrSlot) self.StartGame() self.HideAllFlag() app.ShowCursor() self.SelectSlot(int(s)) def Close(self): if musicInfo.selectMusic != "": snd.FadeOutMusic("BGM/"+musicInfo.selectMusic) self.stream.popupWindow.Close() if self.dlgBoard: self.dlgBoard.ClearDictionary() self.flagDict = {} self.dlgBoard = None self.btnStart = None self.btnCreate = None self.btnDelete = None self.btnExit = None self.btnLeft = None self.btnRight = None self.backGround = None self.backGround2 = None self.dlgQuestion.ClearDictionary() self.dlgQuestion = None self.dlgQuestionText = None self.dlgQuestionAcceptButton = None self.dlgQuestionCancelButton = None self.privateInputBoard = None self.nameInputBoard = None chr.DeleteInstance(0) chr.DeleteInstance(1) chr.DeleteInstance(2) chr.DeleteInstance(3) self.Hide() self.KillFocus() app.HideCursor() def HideAllFlag(self): for flag in self.flagDict.values(): flag.Hide() def Refresh(self): if not self.isLoad: return # SLOT4 indexArray = (3, 2, 1, 0) for index in indexArray: id=net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_ID) race=net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_RACE) form=net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_FORM) name=net.GetAccountCharacterSlotDataString(index, net.ACCOUNT_CHARACTER_SLOT_NAME) hair=net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_HAIR) if id: self.MakeCharacter(index, id, name, race, form, hair) self.SelectSlot(index) self.SelectSlot(self.slot) def GetCharacterSlotID(self, slotIndex): return net.GetAccountCharacterSlotDataInteger(slotIndex, net.ACCOUNT_CHARACTER_SLOT_ID) def __LoadQuestionDialog(self, fileName): self.dlgQuestion = ui.ScriptWindow() try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self.dlgQuestion, fileName) except: import exception exception.Abort("SelectCharacterWindow.LoadQuestionDialog.LoadScript") try: GetObject=self.dlgQuestion.GetChild self.dlgQuestionText=GetObject("message") self.dlgQuestionAcceptButton=GetObject("accept") self.dlgQuestionCancelButton=GetObject("cancel") except: import exception exception.Abort("SelectCharacterWindow.LoadQuestionDialog.BindObject") self.dlgQuestionText.SetText(localeInfo.SELECT_DO_YOU_DELETE_REALLY) self.dlgQuestionAcceptButton.SetEvent(ui.__mem_func__(self.RequestDeleteCharacter)) self.dlgQuestionCancelButton.SetEvent(ui.__mem_func__(self.dlgQuestion.Hide)) return 1 def __LoadBoardDialog(self, fileName): self.dlgBoard = ui.ScriptWindow() try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self.dlgBoard, fileName) except: import exception exception.Abort("SelectCharacterWindow.LoadBoardDialog.LoadScript") try: GetObject=self.dlgBoard.GetChild self.btnStart = GetObject("start_button") self.btnCreate = GetObject("create_button") self.btnDelete = GetObject("delete_button") self.btnExit = GetObject("exit_button") self.loginExitButton = GetObject("LoginExitButton") self.CharacterName = GetObject("character_name_value") self.CharacterButton = GetObject("character_button") self.CharacterLevel = GetObject("character_level_value") self.PlayTime = GetObject("character_play_time_value") self.GuildName = GetObject("GuildName") self.btnLeft = GetObject("left_button") self.btnRight = GetObject("right_button") ##Character2## self.CharacterName1 = GetObject("character1_name_value") self.CharacterButton1 = GetObject("character1_button") self.CharacterLevel1 = GetObject("character1_level_value") self.PlayTime1 = GetObject("character1_play_time_value") self.GuildName1 = GetObject("GuildName1") ##Character3## self.CharacterName2 = GetObject("character2_name_value") self.CharacterButton2 = GetObject("character2_button") self.CharacterLevel2 = GetObject("character2_level_value") self.PlayTime2 = GetObject("character2_play_time_value") self.GuildName2 = GetObject("GuildName2") ##Character4## self.CharacterName3 = GetObject("character3_name_value") self.CharacterButton3 = GetObject("character3_button") self.CharacterLevel3 = GetObject("character3_level_value") self.PlayTime3 = GetObject("character3_play_time_value") self.GuildName3 = GetObject("GuildName3") self.backGround = GetObject("BackGround") self.backGround2 = GetObject("BackGround2") except: import exception exception.Abort("SelectCharacterWindow.LoadBoardDialog.BindObject") self.btnStart.SetEvent(ui.__mem_func__(self.StartGame)) self.btnCreate.SetEvent(ui.__mem_func__(self.CreateCharacter)) self.btnExit.SetEvent(ui.__mem_func__(self.ExitSelect)) self.CharacterButton.SetEvent(ui.__mem_func__(self.OnClickCharacter)) self.CharacterButton1.SetEvent(ui.__mem_func__(self.OnClickCharacter1)) self.CharacterButton2.SetEvent(ui.__mem_func__(self.OnClickCharacter2)) self.CharacterButton3.SetEvent(ui.__mem_func__(self.OnClickCharacter3)) self.loginExitButton.SetEvent(ui.__mem_func__(self.__OnClickExitButton)) if NOT_NEED_DELETE_CODE: self.btnDelete.SetEvent(ui.__mem_func__(self.PopupDeleteQuestion)) else: self.btnDelete.SetEvent(ui.__mem_func__(self.InputPrivateCode)) self.btnLeft.SetEvent(ui.__mem_func__(self.DecreaseSlotIndex)) self.btnRight.SetEvent(ui.__mem_func__(self.IncreaseSlotIndex)) self.btnLeft.Hide() self.btnRight.Hide() self.chrRenderer = self.CharacterRenderer() self.chrRenderer.SetParent(self.backGround) self.chrRenderer.SetParent(self.backGround2) self.chrRenderer.Show() return 1 def MakeCharacter(self, index, id, name, race, form, hair): if 0 == id: return chr.CreateInstance(index) chr.SelectInstance(index) chr.SetVirtualID(index) chr.SetNameString(name) chr.SetRace(race) chr.SetArmor(form) chr.SetHair(hair) chr.Refresh() chr.SetMotionMode(chr.MOTION_MODE_GENERAL) chr.SetLoopMotion(chr.MOTION_INTRO_WAIT) chr.SetRotation(0.0) ## Manage Character def StartGame(self): if self.sendedChangeNamePacket: return if self.changeNameFlag: self.OpenChangeNameDialog() return if -1 != self.startIndex: return if musicInfo.selectMusic != "": snd.FadeLimitOutMusic("BGM/"+musicInfo.selectMusic, systemSetting.GetMusicVolume()*0.05) self.btnStart.SetUp() self.btnCreate.SetUp() self.btnDelete.SetUp() self.btnExit.SetUp() self.btnLeft.SetUp() self.btnRight.SetUp() self.btnStart.Disable() self.btnCreate.Disable() self.btnDelete.Disable() self.btnExit.Disable() self.btnLeft.Disable() self.btnRight.Disable() self.dlgQuestion.Hide() self.stream.SetCharacterSlot(self.slot) self.startIndex = self.slot self.startReservingTime = app.GetTime() for i in xrange(self.SLOT_COUNT): if FALSE == chr.HasInstance(i): continue chr.SelectInstance(i) if i == self.slot: self.slot=self.slot chr.PushOnceMotion(chr.MOTION_INTRO_SELECTED, 0.1) continue chr.PushOnceMotion(chr.MOTION_INTRO_NOT_SELECTED, 0.1) def OpenChangeNameDialog(self): import uiCommon nameInputBoard = uiCommon.InputDialogWithDescription() nameInputBoard.SetTitle(localeInfo.SELECT_CHANGE_NAME_TITLE) nameInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputName)) nameInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputName)) nameInputBoard.SetMaxLength(chr.PLAYER_NAME_MAX_LEN) nameInputBoard.SetBoardWidth(200) nameInputBoard.SetDescription(localeInfo.SELECT_INPUT_CHANGING_NAME) nameInputBoard.Open() nameInputBoard.slot = self.slot self.nameInputBoard = nameInputBoard def OnChangeName(self, id, name): self.SelectSlot(id) self.sendedChangeNamePacket = FALSE self.PopupMessage(localeInfo.SELECT_CHANGED_NAME) def AcceptInputName(self): changeName = self.nameInputBoard.GetText() if not changeName: return self.sendedChangeNamePacket = TRUE net.SendChangeNamePacket(self.nameInputBoard.slot, changeName) return self.CancelInputName() def CancelInputName(self): self.nameInputBoard.Close() self.nameInputBoard = None return TRUE def OnCreateFailure(self, type): self.sendedChangeNamePacket = FALSE if 0 == type: self.PopupMessage(localeInfo.SELECT_CHANGE_FAILURE_STRANGE_NAME) elif 1 == type: self.PopupMessage(localeInfo.SELECT_CHANGE_FAILURE_ALREADY_EXIST_NAME) elif 100 == type: self.PopupMessage(localeInfo.SELECT_CHANGE_FAILURE_STRANGE_INDEX) def CreateCharacter(self): id = self.GetCharacterSlotID(self.slot) if 0==id: self.stream.SetCharacterSlot(self.slot) EMPIRE_MODE = 1 if EMPIRE_MODE: if self.__AreAllSlotEmpty(): self.stream.SetReselectEmpirePhase() else: self.stream.SetCreateCharacterPhase() else: self.stream.SetCreateCharacterPhase() def __AreAllSlotEmpty(self): for iSlot in xrange(self.SLOT_COUNT): if 0!=net.GetAccountCharacterSlotDataInteger(iSlot, net.ACCOUNT_CHARACTER_SLOT_ID): return 0 return 1 def PopupDeleteQuestion(self): id = self.GetCharacterSlotID(self.slot) if 0 == id: return self.dlgQuestion.Show() self.dlgQuestion.SetTop() def RequestDeleteCharacter(self): self.dlgQuestion.Hide() id = self.GetCharacterSlotID(self.slot) if 0 == id: self.PopupMessage(localeInfo.SELECT_EMPTY_SLOT) return net.SendDestroyCharacterPacket(self.slot, "1234567") self.PopupMessage(localeInfo.SELECT_DELEING) def InputPrivateCode(self): import uiCommon privateInputBoard = uiCommon.InputDialogWithDescription() privateInputBoard.SetTitle(localeInfo.INPUT_PRIVATE_CODE_DIALOG_TITLE) privateInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrivateCode)) privateInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrivateCode)) if ENABLE_ENGNUM_DELETE_CODE: pass else: privateInputBoard.SetNumberMode() privateInputBoard.SetSecretMode() privateInputBoard.SetMaxLength(7) privateInputBoard.SetBoardWidth(250) privateInputBoard.SetDescription(localeInfo.INPUT_PRIVATE_CODE_DIALOG_DESCRIPTION) privateInputBoard.Open() self.privateInputBoard = privateInputBoard def AcceptInputPrivateCode(self): privateCode = self.privateInputBoard.GetText() if not privateCode: return id = self.GetCharacterSlotID(self.slot) if 0 == id: self.PopupMessage(localeInfo.SELECT_EMPTY_SLOT) return net.SendDestroyCharacterPacket(self.slot, privateCode) self.PopupMessage(localeInfo.SELECT_DELEING) self.CancelInputPrivateCode() return TRUE def CancelInputPrivateCode(self): self.privateInputBoard = None return TRUE def OnDeleteSuccess(self, slot): self.PopupMessage(localeInfo.SELECT_DELETED) self.DeleteCharacter(slot) def OnDeleteFailure(self): self.PopupMessage(localeInfo.SELECT_CAN_NOT_DELETE) def DeleteCharacter(self, index): chr.DeleteInstance(index) self.SelectSlot(self.slot) def ExitSelect(self): self.dlgQuestion.Hide() if LEAVE_BUTTON_FOR_POTAL: if app.loggined: self.stream.SetPhaseWindow(0) else: self.stream.setloginphase() else: self.stream.SetLoginPhase() self.Hide() def PopupNotifyMessage(self, msg, func=0): if not func: func=self.EmptyFunc self.stream.popupWindow.Close() self.stream.popupWindow.Open(msg, func, localeInfo.UI_OK) return def SetStandard(self): slot = str(self.GetSlotIndex()) f = open("data/standard.cfg","w") f.write(slot) f.close() r = open("data/standard.cfg","r") re = r.read() if re.find(slot)!=-1: self.PopupNotifyMessage("Charackter " + slot + " wurde erfolgreich als Standard gesetzt") else: self.PopupNotifyMessage("Es ist ein Fehler aufgetretetn. Bitte versuche es nochmals.") def CharacterButtonRestore(self): self.CharacterButton.SetUpVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton.SetDownVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton1.SetUpVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton1.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton1.SetDownVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton2.SetUpVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton2.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton2.SetDownVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton3.SetUpVisual("locale/de/ui/selectplayer/selectpalyer.tga") self.CharacterButton3.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton3.SetDownVisual("locale/de/ui/selectplayer/selectpalyer.tga") def OnClickCharacter(self): import constInfo self.CharacterButtonRestore() self.CharacterButton.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") introLogin.SLOT = 0 self.SelectSlot(0) def OnClickCharacter1(self): import constInfo self.CharacterButtonRestore() self.CharacterButton1.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton1.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton1.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") introLogin.SLOT = 1 self.SelectSlot(1) def OnClickCharacter2(self): import constInfo self.CharacterButtonRestore() self.CharacterButton2.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton2.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton2.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") introLogin.SLOT = 2 self.SelectSlot(2) def OnClickCharacter3(self): import constInfo self.CharacterButtonRestore() self.CharacterButton3.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton3.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton3.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") introLogin.SLOT = 3 self.SelectSlot(3) def GetSlotIndex(self): return self.slot def __OnClickExitButton(self): self.stream.SetPhaseWindow(0) def DecreaseSlotIndex(self): #slotIndex = (self.GetSlotIndex() - 1 + self.SLOT_COUNT) % self.SLOT_COUNT #self.SelectSlot(slotIndex) app.MovieRotateCamera(app.CAMERA_TO_NEGATIVE) def IncreaseSlotIndex(self): #slotIndex = (self.GetSlotIndex() + 1) % self.SLOT_COUNT #self.SelectSlot(slotIndex) app.MovieRotateCamera(app.CAMERA_TO_POSITIVE) def SelectSlot(self, index): import constInfo if index < 0: return if index >= self.SLOT_COUNT: return self.slot = index id1 = introLogin.SLOT chr.SelectInstance(self.slot) for i in xrange(self.CHARACTER_TYPE_COUNT): self.destNameAlpha = 0.0 for i in xrange(self.SLOT_COUNT): self.destRotation[(i+self.slot)%self.SLOT_COUNT] = self.SLOT_ROTATION id=net.GetAccountCharacterSlotDataInteger(id1, net.ACCOUNT_CHARACTER_SLOT_ID) if 0 != id: self.btnStart.Show() self.btnDelete.Show() self.btnCreate.Hide() ##Char1## playTime=net.GetAccountCharacterSlotDataInteger(0, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) level=net.GetAccountCharacterSlotDataInteger(0, net.ACCOUNT_CHARACTER_SLOT_LEVEL) race=net.GetAccountCharacterSlotDataInteger(0, net.ACCOUNT_CHARACTER_SLOT_RACE) name=net.GetAccountCharacterSlotDataString(0, net.ACCOUNT_CHARACTER_SLOT_NAME) GuildName=net.GetAccountCharacterSlotDataString(0, net.ACCOUNT_CHARACTER_SLOT_GUILD_NAME) ##Char2## playTime1=net.GetAccountCharacterSlotDataInteger(1, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) level1=net.GetAccountCharacterSlotDataInteger(1, net.ACCOUNT_CHARACTER_SLOT_LEVEL) race1=net.GetAccountCharacterSlotDataInteger(1, net.ACCOUNT_CHARACTER_SLOT_RACE) name1=net.GetAccountCharacterSlotDataString(1, net.ACCOUNT_CHARACTER_SLOT_NAME) GuildName1=net.GetAccountCharacterSlotDataString(1, net.ACCOUNT_CHARACTER_SLOT_GUILD_NAME) ##Char3## playTime2=net.GetAccountCharacterSlotDataInteger(2, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) level2=net.GetAccountCharacterSlotDataInteger(2, net.ACCOUNT_CHARACTER_SLOT_LEVEL) race2=net.GetAccountCharacterSlotDataInteger(2, net.ACCOUNT_CHARACTER_SLOT_RACE) name2=net.GetAccountCharacterSlotDataString(2, net.ACCOUNT_CHARACTER_SLOT_NAME) GuildName2=net.GetAccountCharacterSlotDataString(2, net.ACCOUNT_CHARACTER_SLOT_GUILD_NAME) ##Char4## playTime3=net.GetAccountCharacterSlotDataInteger(3, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) level3=net.GetAccountCharacterSlotDataInteger(3, net.ACCOUNT_CHARACTER_SLOT_LEVEL) race3=net.GetAccountCharacterSlotDataInteger(3, net.ACCOUNT_CHARACTER_SLOT_RACE) name3=net.GetAccountCharacterSlotDataString(3, net.ACCOUNT_CHARACTER_SLOT_NAME) GuildName3=net.GetAccountCharacterSlotDataString(3, net.ACCOUNT_CHARACTER_SLOT_GUILD_NAME) job = chr.RaceToJob(race) if job >= 0 and job < self.CHARACTER_TYPE_COUNT: self.destNameAlpha[job] = 1.0 job1 = chr.RaceToJob(race1) if job1 >= 0 and job1 < self.CHARACTER_TYPE_COUNT: self.destNameAlpha[job1] = 1.0 job2 = chr.RaceToJob(race2) if job2 >= 0 and job2 < self.CHARACTER_TYPE_COUNT: self.destNameAlpha[job2] = 1.0 job3 = chr.RaceToJob(race3) if job3 >= 0 and job3 < self.CHARACTER_TYPE_COUNT: self.destNameAlpha[job3] = 1.0 ##Character1## self.CharacterName.SetText(name) self.CharacterLevel.SetText(str(level)) self.PlayTime.SetText(str(playTime)) self.GuildName.SetText(GuildName) ##Character2## self.CharacterName1.SetText(name1) self.CharacterLevel1.SetText(str(level1)) self.PlayTime1.SetText(str(playTime1)) self.GuildName1.SetText(GuildName1) ##Character3## self.CharacterName2.SetText(name2) self.CharacterLevel2.SetText(str(level2)) self.PlayTime2.SetText(str(playTime2)) self.GuildName2.SetText(GuildName2) ##Character4## self.CharacterName3.SetText(name3) self.CharacterLevel3.SetText(str(level3)) self.PlayTime3.SetText(str(playTime3)) self.GuildName3.SetText(GuildName3) if GuildName: self.GuildName.SetText(GuildName) else: self.GuildName.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) if GuildName1: self.GuildName1.SetText(GuildName1) else: self.GuildName1.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) if GuildName2: self.GuildName2.SetText(GuildName2) else: self.GuildName2.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) if GuildName3: self.GuildName3.SetText(GuildName3) else: self.GuildName3.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) else: self.InitCharacterBoard() def InitCharacterBoard(self): self.btnStart.Hide() self.btnDelete.Hide() self.btnCreate.Show() ## Event def OnKeyDown(self, key): import constInfo if 1 == key: self.ExitSelect() if 2 == key: self.SelectSlot(0) if 3 == key: self.SelectSlot(1) if 4 == key: self.SelectSlot(2) if 28 == key: id = net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) if 0 == id: self.CreateCharacter() else: self.StartGame() if 203 == key: self.slot = (self.GetSlotIndex() - 1 + self.SLOT_COUNT) % self.SLOT_COUNT self.SelectSlot(self.slot) introLogin.SLOT = self.slot if 205 == key: self.slot = (self.GetSlotIndex() + 1) % self.SLOT_COUNT self.SelectSlot(self.slot) introLogin.SLOT = self.slot return TRUE def OnUpdate(self): import constInfo chr.Update() for i in xrange(self.SLOT_COUNT): if FALSE == chr.HasInstance(i): continue chr.SelectInstance(i) distance = 50.0 rotRadian = self.curRotation * (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) ##### dir = app.GetRotatingDirection(self.destRotation, self.curRotation) rot = app.GetDegreeDifference(self.destRotation, self.curRotation) if app.DEGREE_DIRECTION_RIGHT == dir: self.curRotation += rot / 10.0 elif app.DEGREE_DIRECTION_LEFT == dir: self.curRotation -= rot / 10.0 self.curRotation = (self.curRotation + 360.0) % 360.0 ####################################################### if -1 != self.startIndex: ## Temporary ## BackGroundLoadingÀÌ Áö¿ø µÉ¶§±îÁö Àӽ÷Î.. if app.GetTime() - self.startReservingTime > 3.0: if FALSE == self.openLoadingFlag: chrSlot=self.stream.GetCharacterSlot() net.DirectEnter(chrSlot) self.openLoadingFlag = TRUE playTime=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) import player player.SetPlayTime(playTime) import chat chat.Clear() ## µé¾î°¥¶§ Chat À» ÃʱâÈ. Àӽà Pos. ## Temporary ####################################################### slot = introLogin.SLOT if slot == 0: self.CharacterButtonRestore() self.CharacterButton.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") elif slot == 1: self.CharacterButtonRestore() self.CharacterButton1.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton1.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton1.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") elif slot == 2: self.CharacterButtonRestore() self.CharacterButton2.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton2.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton2.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") elif slot == 3: self.CharacterButtonRestore() self.CharacterButton3.SetUpVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton3.SetOverVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.CharacterButton3.SetDownVisual("locale/de/ui/selectplayer/selectpalyer2.tga") self.SelectSlot(slot) 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, localeInfo.UI_OK) def OnPressExitKey(self): self.ExitSelect() return TRUE I did everything ... I don't know why dose it give me that error.. Link to comment Share on other sites More sharing options...
Denis 1474 Posted March 2, 2014 Share Posted March 2, 2014 Check in your selectcharacterwindow.py if there is the start_button. 1 Link to comment Share on other sites More sharing options...
Tasho 243 Posted March 2, 2014 Author Share Posted March 2, 2014 import uiScriptLocale ROOT_PATH = "d:/ymir work/ui/public/" LOCALE_PATH = uiScriptLocale.SELECT_PATH BOARD_X = SCREEN_WIDTH * (65) / 800 BOARD_Y = SCREEN_HEIGHT * (220) / 1100 BOARD_ITEM_ADD_POSITION = -40 window = { "name" : "SelectCharacterWindow", "x" : 0, "y" : 0, "width" : SCREEN_WIDTH, "height" : SCREEN_HEIGHT, "children" : ( ## Board { "name" : "BackGround", "type" : "expanded_image", "x" : 0, "y" : 0, "type" : "ani_image", "x_scale" : float(SCREEN_WIDTH), "y_scale" : float(SCREEN_HEIGHT), "delay" : 6, "images" : ( "locale/de/ui/selectch/1.jpg", ) }, { "name" : "BackGround2", "type" : "image", "x" : (SCREEN_WIDTH - 1084) / 2, "y" : (SCREEN_HEIGHT - 240), "image" : "locale/de/ui/selectch/sol.tga", }, ## Character Board { "name" : "character_board", "type" : "crank™", "sytle" : ("movable",), "x" : 0, "y" : 0, "width" : SCREEN_WIDTH, "height" : SCREEN_HEIGHT, "children" : ( { "name" : "character_button", "type" : "button", "x" : 15, "y" : 10, "default_image" : "locale/de/ui/selectplayer/selectpalyer.tga", "over_image" : "locale/de/ui/selectplayer/selectpalyer2.tga", "down_image" : "locale/de/ui/selectplayer/selectpalyer2.tga", }, { "name" : "character1_button", "type" : "button", "x" : 15, "y" : 250, "over_image" : "locale/de/ui/button_over.tga", "down_image" : "locale/de/ui/button_pressed.tga", }, { "name" : "character2_button", "type" : "button", "x" : (SCREEN_WIDTH - 210), "y" : 10, "over_image" : "locale/de/ui/button_over.tga", "down_image" : "locale/de/ui/button_pressed.tga", }, { "name" : "character3_button", "type" : "button", "x" : (SCREEN_WIDTH - 210), "y" : 250, "over_image" : "locale/de/ui/button_over.tga", "down_image" : "locale/de/ui/button_pressed.tga", }, ##Character1## { "name" : "character_name_text", "type" : "text", "x" : 30, "y" : 30, }, { "name" : "character_name_value", "type" : "text", "x" : 90, "y" : 71, "text" : "", }, { "name" : "character_level_text", "type" : "text", "x" : 30, "y" : 50, }, { "name" : "character_level_value", "type" : "text", "x" : 67, "y" : 92, "text" : "", }, { "name" : "character_play_time_text", "type" : "text", "x" : 30, "y" : 70, }, { "name" : "character_play_time_value", "type" : "text", "x" : 118, "y" : 136, "text" : "", }, { "name" : "GuildName", "type" : "text", "x" : 90, "y" : 117, "text" : uiScriptLocale.SELECT_NO_GUILD, }, ## Empire Flag ##Character2## { "name" : "character1_name_text", "type" : "text", "x" : 30, "y" : 120, }, { "name" : "character1_name_value", "type" : "text", "x" : 90, "y" : 312, "text" : "", }, { "name" : "character1_level_text", "type" : "text", "x" : 31, "y" : 140, }, { "name" : "character1_level_value", "type" : "text", "x" : 67, "y" : 332, "text" : "", }, { "name" : "character1_play_time_text", "type" : "text", "x" : 30, "y" : 160, }, { "name" : "character1_play_time_value", "type" : "text", "x" : 116, "y" : 377, "text" : "", }, { "name" : "GuildName1", "type" : "text", "x" : 90, "y" : 356, "text" : uiScriptLocale.SELECT_NO_GUILD, }, ## Empire Flag ##Character3## { "name" : "character2_name_text", "type" : "text", "x" : 30, "y" : 210, }, { "name" : "character2_name_value", "type" : "text", "x" : (SCREEN_WIDTH - 132), "y" : 71, "text" : "", }, { "name" : "character2_level_text", "type" : "text", "x" : 30, "y" : 227, }, { "name" : "character2_level_value", "type" : "text", "x" : (SCREEN_WIDTH - 157), "y" : 92, "text" : "", }, { "name" : "character2_play_time_text", "type" : "text", "x" : 30, "y" : 250, }, { "name" : "character2_play_time_value", "type" : "text", "x" : (SCREEN_WIDTH - 108), "y" : 137, "text" : "", }, { "name" : "GuildName2", "type" : "text", "x" : (SCREEN_WIDTH - 136), "y" : 117, "text" : uiScriptLocale.SELECT_NO_GUILD, }, ## Empire Flag ##Character4## { "name" : "character3_name_text", "type" : "text", "x" : 30, "y" : 300, }, { "name" : "character3_name_value", "type" : "text", "x" : (SCREEN_WIDTH - 132), "y" : 312, "text" : "", }, { "name" : "character3_level_text", "type" : "text", "x" : 30, "y" : 320, }, { "name" : "character3_level_value", "type" : "text", "x" : (SCREEN_WIDTH - 157), "y" : 332, "text" : "", }, { "name" : "character3_play_time_text", "type" : "text", "x" : 30, "y" : 340, }, { "name" : "character3_play_time_value", "type" : "text", "x" : (SCREEN_WIDTH - 108), "y" : 377, "text" : "", }, { "name" : "GuildName3", "type" : "text", "x" : (SCREEN_WIDTH - 136), "y" : 358, "text" : uiScriptLocale.SELECT_NO_GUILD, }, ## Empire Flag { "name" : "start_button", "type" : "button", "x" : (SCREEN_WIDTH - 550) / 2, "y" : (SCREEN_HEIGHT - 40), "text" : uiScriptLocale.SELECT_SELECT, "text_height" : 6, "default_image" : "d:/ymir work/ui/public/btnsimple1.sub", "over_image" : "d:/ymir work/ui/public/btnsimple2.sub", "down_image" : "d:/ymir work/ui/public/btnsimple3.sub", }, { "name" : "create_button", "type" : "button", "x" : (SCREEN_WIDTH - 80) / 2, "y" : (SCREEN_HEIGHT - 40), "text" : uiScriptLocale.SELECT_CREATE, "text_height" : 6, "default_image" : "d:/ymir work/ui/public/btnsimple1.sub", "over_image" : "d:/ymir work/ui/public/btnsimple2.sub", "down_image" : "d:/ymir work/ui/public/btnsimple3.sub", }, { "name" : "exit_button", "type" : "button", "x" : 7, "y" : SCREEN_HEIGHT -50, "text" : "Retour", "default_image" : "d:/ymir work/ui/public/btnmenu1.sub", "over_image" : "d:/ymir work/ui/public/btnmenu2.sub", "down_image" : "d:/ymir work/ui/public/btnmenu3.sub", }, { "name" : "LoginExitButton", "type" : "button", "x" : (SCREEN_WIDTH - 110), "y" : (SCREEN_HEIGHT - 50), "default_image" : "d:/ymir work/ui/public/btnmenu1.sub", "over_image" : "d:/ymir work/ui/public/btnmenu2.sub", "down_image" : "d:/ymir work/ui/public/btnmenu3.sub", "text" : uiScriptLocale.LOGIN_SELECT_EXIT, }, { "name" : "delete_button", "type" : "button", "x" : (SCREEN_WIDTH + 350) / 2, "y" : (SCREEN_HEIGHT - 40), "text" : uiScriptLocale.SELECT_DELETE, "default_image" : "d:/ymir work/ui/public/btnsimple1.sub", "over_image" : "d:/ymir work/ui/public/btnsimple2.sub", "down_image" : "d:/ymir work/ui/public/btnsimple3.sub", }, ##Gauge's## ), }, ## Buttons { "name" : "left_button", "type" : "button", "x" : SCREEN_WIDTH * (450 - 22*3) / 800, "y" : SCREEN_HEIGHT * (505) / 600, "default_image" : "d:/ymir work/ui/intro/select/dragon_left_button_01.sub", "over_image" : "d:/ymir work/ui/intro/select/dragon_left_button_02.sub", "down_image" : "d:/ymir work/ui/intro/select/dragon_left_button_03.sub", }, { "name" : "right_button", "type" : "button", "x" : SCREEN_WIDTH * (580 - 22) / 800, "y" : SCREEN_HEIGHT * (505) / 600, "default_image" : "d:/ymir work/ui/intro/select/dragon_right_button_01.sub", "over_image" : "d:/ymir work/ui/intro/select/dragon_right_button_02.sub", "down_image" : "d:/ymir work/ui/intro/select/dragon_right_button_03.sub", }, ), } ies it is, this is why it surpise me Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now