.ZeNu 3105 Posted July 26, 2019 Share Posted July 26, 2019 (edited) M2 Download Center This is the hidden content, please Sign In or Sign Up ( Internal ) Spoiler https://metin2.download/picture/597snbfAqPbTezW391bL9LTxFlr15Bd3/.gif ### 0.1 Root / uiMessenger.py: # 1. Search: def OnLogin(self, groupIndex ... # 1. After: member.Online() self.OnRefreshList() # 1. Add: if not name in constInfo.ALREADY_NOTIFY_LIST: self.onlinePopup = uiCommon.OnlinePopup() self.onlinePopup.SetUserName(name) self.onlinePopup.SetEvent(ui.__mem_func__(self.OpenWhisper), "MOUSE_LEFT_BUTTON_UP", name) self.onlinePopup.SlideIn() constInfo.ALREADY_NOTIFY_LIST.append(name) # 1.1 After: def OnLogin(... Add: def OpenWhisper(self, eventType, userName): self.whisperButtonEvent(userName) ### 0.2 Root / constInfo.py: # 2. Add: ALREADY_NOTIFY_LIST = [] ### 0.3 Root / ui.py # 3 Search: class Board(Window): (....) # 3 REPLACE this class with: class Board(Window): CORNER_WIDTH = 32 CORNER_HEIGHT = 32 LINE_WIDTH = 128 LINE_HEIGHT = 128 LT = 0 LB = 1 RT = 2 RB = 3 L = 0 R = 1 T = 2 B = 3 BASE_PATH = "d:/ymir work/ui/pattern" IMAGES = { 'CORNER' : { 0 : "Board_Corner_LeftTop", 1 : "Board_Corner_LeftBottom", 2 : "Board_Corner_RightTop", 3 : "Board_Corner_RightBottom" }, 'BAR' : { 0 : "Board_Line_Left", 1 : "Board_Line_Right", 2 : "Board_Line_Top", 3 : "Board_Line_Bottom" }, 'FILL' : "Board_Base" } def __init__(self, layer = "UI"): Window.__init__(self, layer) self.skipMaxCheck = False self.MakeBoard() def MakeBoard(self): CornerFileNames = [ ] LineFileNames = [ ] for imageDictKey in (['CORNER', 'BAR']): for x in xrange(len(self.IMAGES[imageDictKey])): if imageDictKey == "CORNER": CornerFileNames.append("%s/%s.tga" % (self.BASE_PATH, self.IMAGES[imageDictKey][x])) elif imageDictKey == "BAR": LineFileNames.append("%s/%s.tga" % (self.BASE_PATH, self.IMAGES[imageDictKey][x])) self.Corners = [] for fileName in CornerFileNames: Corner = ExpandedImageBox() Corner.AddFlag("not_pick") Corner.LoadImage(fileName) Corner.SetParent(self) Corner.SetPosition(0, 0) Corner.Show() self.Corners.append(Corner) self.Lines = [] for fileName in LineFileNames: Line = ExpandedImageBox() Line.AddFlag("not_pick") Line.LoadImage(fileName) Line.SetParent(self) Line.SetPosition(0, 0) Line.Show() self.Lines.append(Line) self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT) self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0) self.Base = ExpandedImageBox() self.Base.AddFlag("not_pick") self.Base.LoadImage("%s/%s.tga" % (self.BASE_PATH, self.IMAGES['FILL'])) self.Base.SetParent(self) self.Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT) self.Base.Show() def __del__(self): Window.__del__(self) def SetSize(self, width, height): if not self.skipMaxCheck: width = max(self.CORNER_WIDTH*2, width) height = max(self.CORNER_HEIGHT*2, height) Window.SetSize(self, width, height) self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT) self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0) self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT) self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT) self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT) verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage) self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage) self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0) self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0) if self.Base: self.Base.SetRenderingRect(0, 0, horizontalShowingPercentage, verticalShowingPercentage) # 3 AFTER CLASS BOARD ADD THIS CLASS: class BorderB(Board): CORNER_WIDTH = 16 CORNER_HEIGHT = 16 LINE_WIDTH = 16 LINE_HEIGHT = 16 BASE_PATH = "d:/ymir work/ui/pattern" IMAGES = { 'CORNER' : { 0 : "border_b_left_top", 1 : "border_b_left_bottom", 2 : "border_b_right_top", 3 : "border_b_right_bottom" }, 'BAR' : { 0 : "border_b_left", 1 : "border_b_right", 2 : "border_b_top", 3 : "border_b_bottom" }, 'FILL' : "border_b_center" } def __init__(self): Board.__init__(self) self.eventFunc = { "MOUSE_LEFT_BUTTON_UP" : None, } self.eventArgs = { "MOUSE_LEFT_BUTTON_UP" : None, } def __del__(self): Board.__del__(self) self.eventFunc = None self.eventArgs = None def SetSize(self, width, height): Board.SetSize(self, width, height) def SetEvent(self, func, *args) : result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = func self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0] def OnMouseLeftButtonUp(self): if self.eventFunc["MOUSE_LEFT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_UP"], self.eventArgs["MOUSE_LEFT_BUTTON_UP"]) ### 0.4 Root / uiCommon.py # 4 Add this to the end of file: ### (Check if you have in this file import app ) class OnlinePopup(ui.BorderB): def __init__(self): ui.BorderB.__init__(self) self.isActiveSlide = False self.isActiveSlideOut = False self.endTime = 0 self.wndWidth = 0 self.textLine = ui.TextLine() self.textLine.SetParent(self) self.textLine.SetWindowHorizontalAlignCenter() self.textLine.SetWindowVerticalAlignCenter() self.textLine.SetHorizontalAlignCenter() self.textLine.SetVerticalAlignCenter() self.textLine.SetPosition(13, 0) self.textLine.Show() self.onlineImage = ui.ImageBox() self.onlineImage.SetParent(self) self.onlineImage.SetPosition(8, 8) self.onlineImage.LoadImage("d:/ymir work/ui/game/windows/messenger_list_online.sub") self.onlineImage.Show() def __del__(self): ui.BorderB.__del__(self) def SlideIn(self): self.SetTop() self.Show() self.isActiveSlide = True self.endTime = app.GetGlobalTimeStamp() + 5 def Close(self): self.Hide() def Destroy(self): self.Close() def SetUserName(self, name): self.textLine.SetText("Player %s is online." % str(name)) self.wndWidth = self.textLine.GetTextSize()[0] + 40 self.SetSize(self.wndWidth, 25) self.SetPosition(-self.wndWidth, wndMgr.GetScreenHeight() - 200) def OnUpdate(self): if self.isActiveSlide and self.isActiveSlide == True: x, y = self.GetLocalPosition() if x < 0: self.SetPosition(x + 4, y) if self.endTime - app.GetGlobalTimeStamp() <= 0 and self.isActiveSlideOut == False and self.isActiveSlide == True: self.isActiveSlide = False self.isActiveSlideOut = True if self.isActiveSlideOut and self.isActiveSlideOut == True: x, y = self.GetLocalPosition() if x > -(self.wndWidth): self.SetPosition(x - 4, y) if x <= -(self.wndWidth): self.isActiveSlideOut = False self.Close() ######## Please write in topic If i forgot something. ######## Images for board: This is the hidden content, please Sign In or Sign Up Edited August 27, 2022 by Metin2 Dev Core X - External 2 Internal 84 1 1 1 2 1 1 3 29 1 5 73 Link to comment Share on other sites More sharing options...
iMeleys 327 Posted July 26, 2019 Share Posted July 26, 2019 Thats realy cool ! Sincerly Meley Sama Link to comment Share on other sites More sharing options...
ALmutiri 5 Posted July 26, 2019 Share Posted July 26, 2019 Thank you for your outstanding work Link to comment Share on other sites More sharing options...
iamgroot 3 Posted July 26, 2019 Share Posted July 26, 2019 Nice. Idea for an update: maybe add the notification for when someone goes offline? Link to comment Share on other sites More sharing options...
adv1453 59 Posted July 26, 2019 Share Posted July 26, 2019 (edited) How to fix? https://metin2.download/picture/61SkaLl6FQmmo324E3r223XJ8M07MEgE/.png @.ZeNu Edited September 3, 2022 by Metin2 Dev Core X - External 2 Internal 1 1 4 Link to comment Share on other sites More sharing options...
ALmutiri 5 Posted July 27, 2019 Share Posted July 27, 2019 0727 15:46:02092 :: Traceback (most recent call last): 0727 15:46:02093 :: File "introLogo.py", line 60, in OnUpdate 0727 15:46:02094 :: File "networkModule.py", line 177, in SetLoginPhase 0727 15:46:02094 :: File "system.py", line 188, in __hybrid_import 0727 15:46:02094 :: File "system.py", line 153, in _process_result 0727 15:46:02095 :: File "introLogin.py", line 14, in <module> 0727 15:46:02095 :: File "system.py", line 188, in __hybrid_import 0727 15:46:02095 :: File " 0727 15:46:02095 :: uiCommon.py 0727 15:46:02095 :: ", line 0727 15:46:02095 :: 677 0727 15:46:02095 :: 0727 15:46:02095 :: 0727 15:46:02095 :: self.endTime = 0 0727 15:46:02095 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: 0727 15:46:02096 :: ^ 0727 15:46:02096 :: SyntaxError 0727 15:46:02096 :: : 0727 15:46:02096 :: invalid syntax 0727 15:46:02096 :: Link to comment Share on other sites More sharing options...
.ZeNu 3105 Posted July 27, 2019 Author Share Posted July 27, 2019 Attention on tabs or and space. Link to comment Share on other sites More sharing options...
BKernighan 4 Posted July 27, 2019 Share Posted July 27, 2019 Thanks! Nice release work fine, just miss a import in root/uicommon.py Quote import wndMgr Link to comment Share on other sites More sharing options...
adv1453 59 Posted July 27, 2019 Share Posted July 27, 2019 (edited) 2 hours ago, .ZeNu said: Attention on tabs or and space. I wrote as you typed. Error line this https://metin2.download/picture/1qm8lH9uEG7um74S6kgPF2X8ragvuIO8/.png Edited September 3, 2022 by Metin2 Dev Core X - External 2 Internal 2 Link to comment Share on other sites More sharing options...
ALmutiri 5 Posted July 27, 2019 Share Posted July 27, 2019 1 hour ago, BKernighan said: Nice release work fine just import wndMgr in uicommon Thank you Link to comment Share on other sites More sharing options...
Premium filipw1 1926 Posted July 28, 2019 Premium Share Posted July 28, 2019 Why wouldn't you use ui.Bar instead of creating a new window? The idea is nice, but I must say that it used to be this kind of window on Polish servers and people complained about it. You should make option to disable this, because it can be annoying when you have a lot of friends 1 Link to comment Share on other sites More sharing options...
.ZeNu 3105 Posted July 28, 2019 Author Share Posted July 28, 2019 Acum 3 ore, filipw1 a spus: Why wouldn't you use ui.Bar instead of creating a new window? The idea is nice, but I must say that it used to be this kind of window on Polish servers and people complained about it. You should make option to disable this, because it can be annoying when you have a lot of friends Anyone can make a Config Option for this feature, there is many examples in binary .. about that ... This notification can be improved a lot, first thing is to delete OnUpdate .. from code. Link to comment Share on other sites More sharing options...
Forum Moderator Raylee 656 Posted July 28, 2019 Forum Moderator Share Posted July 28, 2019 Nice release. Is your notification also shown when players move/teleport to other maps? Because this is really annoying. Best regards Raylee Link to comment Share on other sites More sharing options...
.ZeNu 3105 Posted July 28, 2019 Author Share Posted July 28, 2019 Acum 20 minute, Raylee a spus: Nice release. Is your notification also shown when players move/teleport to other maps? Because this is really annoying. Best regards Raylee No, just once per session. 2 Link to comment Share on other sites More sharing options...
Active Member Helia01 2125 Posted July 30, 2019 Active Member Share Posted July 30, 2019 thx Link to comment Share on other sites More sharing options...
Resist0 36 Posted November 3, 2019 Share Posted November 3, 2019 Nice thanks. There is one bug. When player goes online first time it works, but when relog or teleport the message dont show up again. You have to restart client after that it works again. How to fix that? Kind regards Link to comment Share on other sites More sharing options...
Heathcliff 183 Posted November 18, 2019 Share Posted November 18, 2019 Spoiler Quote There is one bug. When player goes online first time it works, but when relog or teleport the message dont show up again. You have to restart client after that it works again. How to fix that? Remove these lines: Spoiler if not name in constInfo.ALREADY_NOTIFY_LIST: constInfo.ALREADY_NOTIFY_LIST.append(name) ALREADY_NOTIFY_LIST = [] It's not a bug btw Regards Link to comment Share on other sites More sharing options...
Cunoo 210 Posted November 18, 2019 Share Posted November 18, 2019 19 minutes ago, Heathcliff™ said: Hide contents Remove these parts: Hide contents if not name in constInfo.ALREADY_NOTIFY_LIST: constInfo.ALREADY_NOTIFY_LIST.append(name) ALREADY_NOTIFY_LIST = [] It's not a bug btw Regards dont work 1 Link to comment Share on other sites More sharing options...
Heathcliff 183 Posted November 18, 2019 Share Posted November 18, 2019 Then check what you did wrong Link to comment Share on other sites More sharing options...
Cunoo 210 Posted November 18, 2019 Share Posted November 18, 2019 14 minutes ago, Heathcliff™ said: Then check what you did wrong # Online member ALREADY_NOTIFY_LIST = [] if not name in constInfo.ALREADY_NOTIFY_LIST: self.onlinePopup = uiCommon.OnlinePopup() self.onlinePopup.SetUserName(name) self.onlinePopup.SetEvent(ui.__mem_func__(self.OpenWhisper), "MOUSE_LEFT_BUTTON_UP", name) self.onlinePopup.SlideIn() constInfo.ALREADY_NOTIFY_LIST.append(name) i remove these parts Link to comment Share on other sites More sharing options...
Heathcliff 183 Posted November 18, 2019 Share Posted November 18, 2019 Don't remove the whole condition Just this line: if not name in constInfo.ALREADY_NOTIFY_LIST: and this line: constInfo.ALREADY_NOTIFY_LIST.append(name) Link to comment Share on other sites More sharing options...
sepheri0n 0 Posted March 27, 2020 Share Posted March 27, 2020 'OnlinePopup' object has no attribute 'SetEvent' ?? Can someone help me with this? Link to comment Share on other sites More sharing options...
.ZeNu 3105 Posted March 27, 2020 Author Share Posted March 27, 2020 26 minutes ago, sepheri0n said: 'OnlinePopup' object has no attribute 'SetEvent' ?? Can someone help me with this? class ImageBox(Window): def __init__(self, layer = "UI"): Window.__init__(self, layer) self.eventDict={} self.eventFunc = { "MOUSE_LEFT_BUTTON_UP" : None, "MOUSE_LEFT_BUTTON_DOWN" : None, "MOUSE_RIGHT_BUTTON_UP" : None, "MOUSE_RIGHT_BUTTON_DOWN" : None, "MOUSE_OVER_IN" : None, "MOUSE_OVER_OUT" : None } self.eventArgs = { "MOUSE_LEFT_BUTTON_UP" : None, "MOUSE_LEFT_BUTTON_DOWN" : None, "MOUSE_RIGHT_BUTTON_UP" : None, "MOUSE_RIGHT_BUTTON_DOWN" : None, "MOUSE_OVER_IN" : None, "MOUSE_OVER_OUT" : None } def __del__(self): Window.__del__(self) self.eventFunc = None self.eventArgs = None def RegisterWindow(self, layer): self.hWnd = wndMgr.RegisterImageBox(self, layer) def LoadImage(self, imageName): self.name=imageName wndMgr.LoadImage(self.hWnd, imageName) def GetImageName(self): return self.name def SetAlpha(self, alpha): wndMgr.SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha) def SetColor(self, r, g, b, a): wndMgr.SetDiffuseColor(self.hWnd, r, g, b, a) def GetWidth(self): return wndMgr.GetWidth(self.hWnd) def GetHeight(self): return wndMgr.GetHeight(self.hWnd) def SetEvent(self, func, *args) : result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = func self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0] def SAFE_SetEvent(self, func, *args): result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = __mem_func__(func) self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SAFE_SetEvent, Can`t Find has_key : %s" % args[0] def OnMouseLeftButtonUp(self): if self.eventFunc["MOUSE_LEFT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_UP"], self.eventArgs["MOUSE_LEFT_BUTTON_UP"]) def OnMouseLeftButtonDown(self): if self.eventFunc["MOUSE_LEFT_BUTTON_DOWN"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_DOWN"], self.eventArgs["MOUSE_LEFT_BUTTON_DOWN"]) def OnMouseRightButtonUp(self): if self.eventFunc["MOUSE_RIGHT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_RIGHT_BUTTON_UP"], self.eventArgs["MOUSE_RIGHT_BUTTON_UP"]) def OnMouseRightButtonDown(self): if self.eventFunc["MOUSE_RIGHT_BUTTON_DOWN"] : apply(self.eventFunc["MOUSE_RIGHT_BUTTON_DOWN"], self.eventArgs["MOUSE_RIGHT_BUTTON_DOWN"]) def OnMouseOverIn(self) : if self.eventFunc["MOUSE_OVER_IN"] : apply(self.eventFunc["MOUSE_OVER_IN"], self.eventArgs["MOUSE_OVER_IN"]) def OnMouseOverOut(self) : if self.eventFunc["MOUSE_OVER_OUT"] : apply(self.eventFunc["MOUSE_OVER_OUT"], self.eventArgs["MOUSE_OVER_OUT"]) def SAFE_SetStringEvent(self, event, func,isa=False): if not isa: self.eventDict[event]=__mem_func__(func) else: self.eventDict[event]=func def LeftRightReverse(self): wndMgr.LeftRightReverseImageBox(self.hWnd) def SetCoolTime(self, time): wndMgr.SetCoolTimeImageBox(self.hWnd, time) def SetStartCoolTime(self, time): wndMgr.SetStartCoolTimeImageBox(self.hWnd, time) Link to comment Share on other sites More sharing options...
sepheri0n 0 Posted March 27, 2020 Share Posted March 27, 2020 1 hour ago, .ZeNu said: class ImageBox(Window): def __init__(self, layer = "UI"): Window.__init__(self, layer) self.eventDict={} self.eventFunc = { "MOUSE_LEFT_BUTTON_UP" : None, "MOUSE_LEFT_BUTTON_DOWN" : None, "MOUSE_RIGHT_BUTTON_UP" : None, "MOUSE_RIGHT_BUTTON_DOWN" : None, "MOUSE_OVER_IN" : None, "MOUSE_OVER_OUT" : None } self.eventArgs = { "MOUSE_LEFT_BUTTON_UP" : None, "MOUSE_LEFT_BUTTON_DOWN" : None, "MOUSE_RIGHT_BUTTON_UP" : None, "MOUSE_RIGHT_BUTTON_DOWN" : None, "MOUSE_OVER_IN" : None, "MOUSE_OVER_OUT" : None } def __del__(self): Window.__del__(self) self.eventFunc = None self.eventArgs = None def RegisterWindow(self, layer): self.hWnd = wndMgr.RegisterImageBox(self, layer) def LoadImage(self, imageName): self.name=imageName wndMgr.LoadImage(self.hWnd, imageName) def GetImageName(self): return self.name def SetAlpha(self, alpha): wndMgr.SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha) def SetColor(self, r, g, b, a): wndMgr.SetDiffuseColor(self.hWnd, r, g, b, a) def GetWidth(self): return wndMgr.GetWidth(self.hWnd) def GetHeight(self): return wndMgr.GetHeight(self.hWnd) def SetEvent(self, func, *args) : result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = func self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0] def SAFE_SetEvent(self, func, *args): result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = __mem_func__(func) self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SAFE_SetEvent, Can`t Find has_key : %s" % args[0] def OnMouseLeftButtonUp(self): if self.eventFunc["MOUSE_LEFT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_UP"], self.eventArgs["MOUSE_LEFT_BUTTON_UP"]) def OnMouseLeftButtonDown(self): if self.eventFunc["MOUSE_LEFT_BUTTON_DOWN"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_DOWN"], self.eventArgs["MOUSE_LEFT_BUTTON_DOWN"]) def OnMouseRightButtonUp(self): if self.eventFunc["MOUSE_RIGHT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_RIGHT_BUTTON_UP"], self.eventArgs["MOUSE_RIGHT_BUTTON_UP"]) def OnMouseRightButtonDown(self): if self.eventFunc["MOUSE_RIGHT_BUTTON_DOWN"] : apply(self.eventFunc["MOUSE_RIGHT_BUTTON_DOWN"], self.eventArgs["MOUSE_RIGHT_BUTTON_DOWN"]) def OnMouseOverIn(self) : if self.eventFunc["MOUSE_OVER_IN"] : apply(self.eventFunc["MOUSE_OVER_IN"], self.eventArgs["MOUSE_OVER_IN"]) def OnMouseOverOut(self) : if self.eventFunc["MOUSE_OVER_OUT"] : apply(self.eventFunc["MOUSE_OVER_OUT"], self.eventArgs["MOUSE_OVER_OUT"]) def SAFE_SetStringEvent(self, event, func,isa=False): if not isa: self.eventDict[event]=__mem_func__(func) else: self.eventDict[event]=func def LeftRightReverse(self): wndMgr.LeftRightReverseImageBox(self.hWnd) def SetCoolTime(self, time): wndMgr.SetCoolTimeImageBox(self.hWnd, time) def SetStartCoolTime(self, time): wndMgr.SetStartCoolTimeImageBox(self.hWnd, time) same error line 822 in uimessenger.py attribute error 'OnlinePopup' object has no attribute 'SetEvent' Link to comment Share on other sites More sharing options...
birender 2 Posted April 9, 2020 Share Posted April 9, 2020 I get error.What is needed to add 0409 16:20:12620 :: networkModule.py(line:200) SetSelectCharacterPhase system.py(line:178) __hybrid_import system.py(line:143) _process_result introSelect.py(line:30) <module> system.py(line:178) __hybrid_import system.py(line:143) _process_result interfaceModule.py(line:15) <module> system.py(line:178) __hybrid_import system.py(line:143) _process_result uiMessenger.py(line:11) <module> system.py(line:185) __hybrid_import networkModule.SetSelectCharacterPhase - <type 'exceptions.ImportError'>:No module named name 0409 16:20:12620 :: ============================================================================================================ 0409 16:20:12620 :: Abort!!!! Link to comment Share on other sites More sharing options...
Recommended Posts