Chris90909090909090 50 Posted September 22, 2016 Share Posted September 22, 2016 can me help anyone with sash in introlselect Link to comment Share on other sites More sharing options...
Legend 186 Posted September 22, 2016 Share Posted September 22, 2016 Can you explain to us about your problem? Link to comment Share on other sites More sharing options...
Chris90909090909090 50 Posted September 22, 2016 Author Share Posted September 22, 2016 i see sash not in introselect Link to comment Share on other sites More sharing options...
Retail 2 Posted September 25, 2016 Share Posted September 25, 2016 Post your File or explain what you addet?! Link to comment Share on other sites More sharing options...
AlexxD 123 Posted September 25, 2016 Share Posted September 25, 2016 (edited) On 9/22/2016 at 4:43 PM, Legend said: Can you explain to us about your problem? He's meaning he can't see sash on the character when he select it (root/introselect.py) On 9/22/2016 at 5:32 PM, Chris90909090909090 said: i see sash not in introselect 1) Search in introselect: Spoiler def Refresh(self): 1.1) After: Spoiler hair = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_HAIR) 1.2) Add: Spoiler acce = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_ACCE) 2) Search: Spoiler self.MakeCharacter(i, id, name, race, form, hair) 2.1) Replace with: Spoiler self.MakeCharacter(i, id, name, race, form, hair, acce) 3) Search: Spoiler def MakeCharacter 3.1) Replace definition with this: Spoiler def MakeCharacter(self, index, id, name, race, form, hair, acce): 4) After this: Spoiler chr.SetHair(hair) *in def MakeCharacter definition* 4.1) Add: Spoiler chr.SetAcce(acce) 5) In def SelectSlot definition, after: Spoiler hair = net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_HAIR) 5.1) add: Spoiler acce = net.GetAccountCharacterSlotDataInteger(index, net.ACCOUNT_CHARACTER_SLOT_ACCE) 6) Also there, replace this: Spoiler self.MakeCharacter(index, id, name, race, form, hair) 6.1) with this: Spoiler self.MakeCharacter(index, id, name, race, form, hair, acce) Enjoy. Edited September 25, 2016 by AlexxD Complete functions. 1 "Don't be a scammer. Don't be a hacker. Don't be a motherfucker. Karma is a bitch" Link to comment Share on other sites More sharing options...
Chris90909090909090 50 Posted September 25, 2016 Author Share Posted September 25, 2016 (edited) hmm not work https://metin2.download/picture/TUbA8R4FfBjUaLmh70MdlA914dKnmyG0/.png Edited September 3, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
AlexxD 123 Posted September 25, 2016 Share Posted September 25, 2016 (edited) 16 minutes ago, Chris90909090909090 said: hmm not work https://metin2.download/picture/7Zo08JNKrMKagv759GrQ761AJXzmok6O/.png Post your introselect.py Edited September 3, 2022 by Metin2 Dev Core X - External 2 Internal "Don't be a scammer. Don't be a hacker. Don't be a motherfucker. Karma is a bitch" Link to comment Share on other sites More sharing options...
Chris90909090909090 50 Posted September 25, 2016 Author Share Posted September 25, 2016 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 playerSettingModule #################################### # ºü¸¥ ½ÇÇàÀ» À§ÇÑ ¸ðµâ ·Îµù ºÐ´ã #################################### import uiCommon import uiMapNameShower import uiAffectShower import uiPlayerGauge import uiCharacter import uiTarget import consoleModule import interfaceModule import uiTaskBar import uiInventory ################################### 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 = [144.0,216.0,288.0, 0.0, 72.0, 0,0,0] SLOT_COUNT = 8 CHARACTER_TYPE_COUNT = 5 EMPIRE_NAME = { net.EMPIRE_A : localeInfo.EMPIRE_A, net.EMPIRE_B : localeInfo.EMPIRE_B, net.EMPIRE_C : localeInfo.EMPIRE_C } class CharacterRenderer(ui.Window): def OnRender(self): grp.ClearDepthBuffer() grp.SetGameRenderState() grp.PushState() grp.SetOmniLight() screenWidth = wndMgr.GetScreenWidth() screenHeight = wndMgr.GetScreenHeight() newScreenWidth = float(screenWidth - 70) newScreenHeight = float(screenHeight) grp.SetViewport(70.0/screenWidth, 0.0, newScreenWidth/screenWidth, newScreenHeight/screenHeight) app.SetCenterPosition(-15.0, -170.0, -35.0) app.SetCamera(1550.0+(2.2*(float(newScreenHeight-600))), 15.0, 180.0, 95.0) grp.SetPerspective(11.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): 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.curGauge = [0.0, 0.0, 0.0, 0.0] self.destGauge = [0.0, 0.0, 0.0, 0.0] self.dlgBoard = 0 self.changeNameFlag = FALSE self.nameInputBoard = None self.sendedChangeNamePacket = FALSE self.startIndex = -1 self.isLoad = 0 import constInfo constInfo.BANK_PIN = 0 def __del__(self): ui.Window.__del__(self) net.SetPhaseWindow(net.PHASE_WINDOW_SELECT, 0) def Open(self): 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 self.Rotation = 0 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(self.slot) app.SetCenterPosition(0.0, 0.0, 0.0) app.SetCamera(1550.0, 15.0, 180.0, 95.0) self.isLoad=1 self.Refresh() if self.stream.isAutoSelect: chrSlot=self.stream.GetCharacterSlot() self.SelectSlot(chrSlot) self.StartGame() self.HideAllFlag() self.SetEmpire(net.GetEmpireID()) app.ShowCursor() def Close(self): self.stream.popupWindow.Close() if self.dlgBoard: self.dlgBoard.ClearDictionary() self.empireName = None 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.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) chr.DeleteInstance(4) self.Hide() self.KillFocus() app.HideCursor() def SetEmpire(self, id): #self.empireName.SetText(self.EMPIRE_NAME.get(id, "")) if self.flagDict.has_key(id): self.flagDict[id].Show() def HideAllFlag(self): for flag in self.flagDict.values(): flag.Hide() def Refresh(self): if not self.isLoad: return # SLOT4 indexArray = (4, 3, 2, 1, 0) id=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) race=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_RACE) form=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_FORM) name=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_NAME) hair=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_HAIR) acce = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_ACCE) if id: self.MakeCharacter(i, id, name, race, form, hair, acce) self.SelectSlot(self.slot) def Refresh2(self): if not self.isLoad: return indexArray = (4, 3, 2, 1, 0) for i in xrange(8): if chr.HasInstance(i): chr.DeleteInstance(i) # SLOT4 id=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) race=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_RACE) form=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_FORM) name=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_NAME) hair=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_HAIR) acce = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_ACCE) if id: self.MakeCharacter(i, id, name, race, form, hair, acce) 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.charvon = GetObject("character_txt2") self.btnStart = GetObject("start_button") self.btnCreate = GetObject("create_button") self.btnDelete = GetObject("delete_button") #self.btnExit = GetObject("exit_button") self.CharacterName = GetObject("character_name_value") self.CharacterLevel = GetObject("character_level_value") #self.PlayTime = GetObject("character_play_time_value") self.CharacterHTH = GetObject("character_hth") self.CharacterINT = GetObject("character_int") self.CharacterSTR = GetObject("character_str") self.CharacterDEX = GetObject("character_dex") self.GuildName = GetObject("GuildName") self.NameList = [] #self.NameList.append(GetObject("name_warrior")) #self.NameList.append(GetObject("name_assassin")) #self.NameList.append(GetObject("name_sura")) #self.NameList.append(GetObject("name_shaman")) #self.NameList.append(GetObject("name_shaman")) self.GaugeList = [] self.GaugeList.append(GetObject("gauge_hth")) self.GaugeList.append(GetObject("gauge_int")) self.GaugeList.append(GetObject("gauge_str")) self.GaugeList.append(GetObject("gauge_dex")) self.btnLeft = GetObject("left_button") self.btnRight = GetObject("right_button") #self.empireName = GetObject("EmpireName") #self.flagDict[net.EMPIRE_A] = GetObject("EmpireFlag_A") #self.flagDict[net.EMPIRE_B] = GetObject("EmpireFlag_B") #self.flagDict[net.EMPIRE_C] = GetObject("EmpireFlag_C") self.backGround = GetObject("BackGround") self.charrend = GetObject("charrend") except: import exception exception.Abort("SelectCharacterWindow.LoadBoardDialog.BindObject") for name in self.NameList: name.SetAlpha(0.0) self.btnStart.SetEvent(ui.__mem_func__(self.StartGame)) self.btnCreate.SetEvent(ui.__mem_func__(self.CreateCharacter)) #self.btnExit.SetEvent(ui.__mem_func__(self.ExitSelect)) 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.chrRenderer = self.CharacterRenderer() self.chrRenderer.SetParent(self.backGround) self.chrRenderer.Show() return 1 def MakeCharacter(self, index, id, name, race, form, hair, acce): 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.SetAcce(acce) 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 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 GetSlotIndex(self): return self.slot def DecreaseSlotIndex(self): slotIndex = (self.GetSlotIndex() - 1 + self.SLOT_COUNT) % self.SLOT_COUNT self.SelectSlot(slotIndex) def IncreaseSlotIndex(self): slotIndex = (self.GetSlotIndex() + 1) % self.SLOT_COUNT self.SelectSlot(slotIndex) def SelectSlot(self, index): if index < 0: return if index >= self.SLOT_COUNT: return self.slot = index self.Refresh2() self.charvon.SetText(str(self.slot+1) + " 8") 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 self.destGauge = [0.0, 0.0, 0.0, 0.0, 0.0] id=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) if 0 != id: self.btnStart.Enable() self.btnDelete.Enable() self.btnCreate.Disable() playTime=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) level=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_LEVEL) race=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_RACE) valueHTH=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_HTH) valueINT=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_INT) valueSTR=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_STR) valueDEX=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_DEX) name=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_NAME) guildID=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_GUILD_ID) guildName=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_GUILD_NAME) self.changeNameFlag=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_CHANGE_NAME_FLAG) job = chr.RaceToJob(race) if job >= 0 and job < self.CHARACTER_TYPE_COUNT: self.destNameAlpha[job] = 1.0 self.CharacterName.SetText(name) self.CharacterLevel.SetText(str(level)) #self.PlayTime.SetText(str(playTime)) self.CharacterHTH.SetText("Vitalitat(" + str(valueHTH) + "):") self.CharacterINT.SetText("Intelligenz(" + str(valueINT) + "):") self.CharacterSTR.SetText("Starke(" + str(valueSTR) + "):") self.CharacterDEX.SetText("Beweglichkeit(" + str(valueDEX) + "):") if guildName: self.GuildName.SetText(guildName) else: self.GuildName.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) statesSummary = float(valueHTH + valueINT + valueSTR + valueDEX) if statesSummary > 0.0: self.destGauge = [ float(valueHTH) / statesSummary, float(valueINT) / statesSummary, float(valueSTR) / statesSummary, float(valueDEX) / statesSummary ] else: self.InitCharacterBoard() def InitCharacterBoard(self): self.btnStart.Disable() self.btnDelete.Disable() self.btnCreate.Enable() self.CharacterName.SetText("") self.CharacterLevel.SetText("") #self.PlayTime.SetText("") self.CharacterHTH.SetText("") self.CharacterINT.SetText("") self.CharacterSTR.SetText("") self.CharacterDEX.SetText("") self.GuildName.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) ## Event def OnKeyDown(self, key): 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) if 205 == key: self.slot = (self.GetSlotIndex() + 1) % self.SLOT_COUNT self.SelectSlot(self.slot) return TRUE def OnUpdate(self): chr.Update() self.Rotation = self.Rotation - 0.5 chr.SetRotation(self.Rotation) for i in xrange(4): self.curGauge += (self.destGauge - self.curGauge) / 10.0 if abs(self.curGauge - self.destGauge) < 0.005: self.curGauge = self.destGauge self.GaugeList.SetPercentage(self.curGauge, 1.0) for i in xrange(self.CHARACTER_TYPE_COUNT): self.curNameAlpha += (self.destNameAlpha - self.curNameAlpha) / 10.0 if len(self.NameList) > i: self.NameList.SetAlpha(self.curNameAlpha) #for i in xrange(self.SLOT_COUNT): # # if FALSE == chr.HasInstance(i): # continue # # chr.SelectInstance(i) # # distance = 50.0 # rotRadian = self.destRotation * (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 ####################################################### 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 Link to comment Share on other sites More sharing options...
AlexxD 123 Posted September 25, 2016 Share Posted September 25, 2016 1 minute ago, Chris90909090909090 said: Spoiler 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 playerSettingModule #################################### # ºü¸¥ ½ÇÇàÀ» À§ÇÑ ¸ðµâ ·Îµù ºÐ´ã #################################### import uiCommon import uiMapNameShower import uiAffectShower import uiPlayerGauge import uiCharacter import uiTarget import consoleModule import interfaceModule import uiTaskBar import uiInventory ################################### 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 = [144.0,216.0,288.0, 0.0, 72.0, 0,0,0] SLOT_COUNT = 8 CHARACTER_TYPE_COUNT = 5 EMPIRE_NAME = { net.EMPIRE_A : localeInfo.EMPIRE_A, net.EMPIRE_B : localeInfo.EMPIRE_B, net.EMPIRE_C : localeInfo.EMPIRE_C } class CharacterRenderer(ui.Window): def OnRender(self): grp.ClearDepthBuffer() grp.SetGameRenderState() grp.PushState() grp.SetOmniLight() screenWidth = wndMgr.GetScreenWidth() screenHeight = wndMgr.GetScreenHeight() newScreenWidth = float(screenWidth - 70) newScreenHeight = float(screenHeight) grp.SetViewport(70.0/screenWidth, 0.0, newScreenWidth/screenWidth, newScreenHeight/screenHeight) app.SetCenterPosition(-15.0, -170.0, -35.0) app.SetCamera(1550.0+(2.2*(float(newScreenHeight-600))), 15.0, 180.0, 95.0) grp.SetPerspective(11.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): 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.curGauge = [0.0, 0.0, 0.0, 0.0] self.destGauge = [0.0, 0.0, 0.0, 0.0] self.dlgBoard = 0 self.changeNameFlag = FALSE self.nameInputBoard = None self.sendedChangeNamePacket = FALSE self.startIndex = -1 self.isLoad = 0 import constInfo constInfo.BANK_PIN = 0 def __del__(self): ui.Window.__del__(self) net.SetPhaseWindow(net.PHASE_WINDOW_SELECT, 0) def Open(self): 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 self.Rotation = 0 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(self.slot) app.SetCenterPosition(0.0, 0.0, 0.0) app.SetCamera(1550.0, 15.0, 180.0, 95.0) self.isLoad=1 self.Refresh() if self.stream.isAutoSelect: chrSlot=self.stream.GetCharacterSlot() self.SelectSlot(chrSlot) self.StartGame() self.HideAllFlag() self.SetEmpire(net.GetEmpireID()) app.ShowCursor() def Close(self): self.stream.popupWindow.Close() if self.dlgBoard: self.dlgBoard.ClearDictionary() self.empireName = None 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.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) chr.DeleteInstance(4) self.Hide() self.KillFocus() app.HideCursor() def SetEmpire(self, id): #self.empireName.SetText(self.EMPIRE_NAME.get(id, "")) if self.flagDict.has_key(id): self.flagDict[id].Show() def HideAllFlag(self): for flag in self.flagDict.values(): flag.Hide() def Refresh(self): if not self.isLoad: return # SLOT4 indexArray = (4, 3, 2, 1, 0) id=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) race=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_RACE) form=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_FORM) name=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_NAME) hair=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_HAIR) acce = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_ACCE) if id: self.MakeCharacter(i, id, name, race, form, hair, acce) self.SelectSlot(self.slot) def Refresh2(self): if not self.isLoad: return indexArray = (4, 3, 2, 1, 0) for i in xrange(8): if chr.HasInstance(i): chr.DeleteInstance(i) # SLOT4 id=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) race=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_RACE) form=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_FORM) name=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_NAME) hair=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_HAIR) acce = net.GetAccountCharacterSlotDataInteger(i, net.ACCOUNT_CHARACTER_SLOT_ACCE) if id: self.MakeCharacter(i, id, name, race, form, hair, acce) 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.charvon = GetObject("character_txt2") self.btnStart = GetObject("start_button") self.btnCreate = GetObject("create_button") self.btnDelete = GetObject("delete_button") #self.btnExit = GetObject("exit_button") self.CharacterName = GetObject("character_name_value") self.CharacterLevel = GetObject("character_level_value") #self.PlayTime = GetObject("character_play_time_value") self.CharacterHTH = GetObject("character_hth") self.CharacterINT = GetObject("character_int") self.CharacterSTR = GetObject("character_str") self.CharacterDEX = GetObject("character_dex") self.GuildName = GetObject("GuildName") self.NameList = [] #self.NameList.append(GetObject("name_warrior")) #self.NameList.append(GetObject("name_assassin")) #self.NameList.append(GetObject("name_sura")) #self.NameList.append(GetObject("name_shaman")) #self.NameList.append(GetObject("name_shaman")) self.GaugeList = [] self.GaugeList.append(GetObject("gauge_hth")) self.GaugeList.append(GetObject("gauge_int")) self.GaugeList.append(GetObject("gauge_str")) self.GaugeList.append(GetObject("gauge_dex")) self.btnLeft = GetObject("left_button") self.btnRight = GetObject("right_button") #self.empireName = GetObject("EmpireName") #self.flagDict[net.EMPIRE_A] = GetObject("EmpireFlag_A") #self.flagDict[net.EMPIRE_B] = GetObject("EmpireFlag_B") #self.flagDict[net.EMPIRE_C] = GetObject("EmpireFlag_C") self.backGround = GetObject("BackGround") self.charrend = GetObject("charrend") except: import exception exception.Abort("SelectCharacterWindow.LoadBoardDialog.BindObject") for name in self.NameList: name.SetAlpha(0.0) self.btnStart.SetEvent(ui.__mem_func__(self.StartGame)) self.btnCreate.SetEvent(ui.__mem_func__(self.CreateCharacter)) #self.btnExit.SetEvent(ui.__mem_func__(self.ExitSelect)) 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.chrRenderer = self.CharacterRenderer() self.chrRenderer.SetParent(self.backGround) self.chrRenderer.Show() return 1 def MakeCharacter(self, index, id, name, race, form, hair, acce): 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.SetAcce(acce) 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 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 GetSlotIndex(self): return self.slot def DecreaseSlotIndex(self): slotIndex = (self.GetSlotIndex() - 1 + self.SLOT_COUNT) % self.SLOT_COUNT self.SelectSlot(slotIndex) def IncreaseSlotIndex(self): slotIndex = (self.GetSlotIndex() + 1) % self.SLOT_COUNT self.SelectSlot(slotIndex) def SelectSlot(self, index): if index < 0: return if index >= self.SLOT_COUNT: return self.slot = index self.Refresh2() self.charvon.SetText(str(self.slot+1) + " 8") 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 self.destGauge = [0.0, 0.0, 0.0, 0.0, 0.0] id=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_ID) if 0 != id: self.btnStart.Enable() self.btnDelete.Enable() self.btnCreate.Disable() playTime=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_PLAYTIME) level=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_LEVEL) race=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_RACE) valueHTH=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_HTH) valueINT=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_INT) valueSTR=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_STR) valueDEX=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_DEX) name=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_NAME) guildID=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_GUILD_ID) guildName=net.GetAccountCharacterSlotDataString(self.slot, net.ACCOUNT_CHARACTER_SLOT_GUILD_NAME) self.changeNameFlag=net.GetAccountCharacterSlotDataInteger(self.slot, net.ACCOUNT_CHARACTER_SLOT_CHANGE_NAME_FLAG) job = chr.RaceToJob(race) if job >= 0 and job < self.CHARACTER_TYPE_COUNT: self.destNameAlpha[job] = 1.0 self.CharacterName.SetText(name) self.CharacterLevel.SetText(str(level)) #self.PlayTime.SetText(str(playTime)) self.CharacterHTH.SetText("Vitalitat(" + str(valueHTH) + "):") self.CharacterINT.SetText("Intelligenz(" + str(valueINT) + "):") self.CharacterSTR.SetText("Starke(" + str(valueSTR) + "):") self.CharacterDEX.SetText("Beweglichkeit(" + str(valueDEX) + "):") if guildName: self.GuildName.SetText(guildName) else: self.GuildName.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) statesSummary = float(valueHTH + valueINT + valueSTR + valueDEX) if statesSummary > 0.0: self.destGauge = [ float(valueHTH) / statesSummary, float(valueINT) / statesSummary, float(valueSTR) / statesSummary, float(valueDEX) / statesSummary ] else: self.InitCharacterBoard() def InitCharacterBoard(self): self.btnStart.Disable() self.btnDelete.Disable() self.btnCreate.Enable() self.CharacterName.SetText("") self.CharacterLevel.SetText("") #self.PlayTime.SetText("") self.CharacterHTH.SetText("") self.CharacterINT.SetText("") self.CharacterSTR.SetText("") self.CharacterDEX.SetText("") self.GuildName.SetText(localeInfo.SELECT_NOT_JOIN_GUILD) ## Event def OnKeyDown(self, key): 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) if 205 == key: self.slot = (self.GetSlotIndex() + 1) % self.SLOT_COUNT self.SelectSlot(self.slot) return TRUE def OnUpdate(self): chr.Update() self.Rotation = self.Rotation - 0.5 chr.SetRotation(self.Rotation) for i in xrange(4): self.curGauge += (self.destGauge - self.curGauge) / 10.0 if abs(self.curGauge - self.destGauge) < 0.005: self.curGauge = self.destGauge self.GaugeList.SetPercentage(self.curGauge, 1.0) for i in xrange(self.CHARACTER_TYPE_COUNT): self.curNameAlpha += (self.destNameAlpha - self.curNameAlpha) / 10.0 if len(self.NameList) > i: self.NameList.SetAlpha(self.curNameAlpha) #for i in xrange(self.SLOT_COUNT): # # if FALSE == chr.HasInstance(i): # continue # # chr.SelectInstance(i) # # distance = 50.0 # rotRadian = self.destRotation * (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 ####################################################### 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 Don't copy.. upload it somewhere or give me it full, .py file "Don't be a scammer. Don't be a hacker. Don't be a motherfucker. Karma is a bitch" Link to comment Share on other sites More sharing options...
Chris90909090909090 50 Posted September 25, 2016 Author Share Posted September 25, 2016 This is the hidden content, please Sign In or Sign Up 9 2 1 Link to comment Share on other sites More sharing options...
AlexxD 123 Posted September 25, 2016 Share Posted September 25, 2016 5 minutes ago, Chris90909090909090 said: This is the hidden content, please Sign In or Sign Up done. This is the hidden content, please Sign In or Sign Up 11 5 3 "Don't be a scammer. Don't be a hacker. Don't be a motherfucker. Karma is a bitch" Link to comment Share on other sites More sharing options...
Chris90909090909090 50 Posted September 25, 2016 Author Share Posted September 25, 2016 i can nmot open this Link to comment Share on other sites More sharing options...
AlexxD 123 Posted September 25, 2016 Share Posted September 25, 2016 2 minutes ago, Chris90909090909090 said: i can nmot open this This is the hidden content, please Sign In or Sign Up 4 4 1 "Don't be a scammer. Don't be a hacker. Don't be a motherfucker. Karma is a bitch" Link to comment Share on other sites More sharing options...
Active Member Mind Rapist 187 Posted November 17, 2016 Active Member Share Posted November 17, 2016 Hey guys I have the same problem with my acce system when I first enter the introselect mode the sash is not on the character but after a relog the sash is visible so the problem is only on first time. I compared the py given but the acce records are the same... Could be something else? 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