Register for your free account! | Forgot your password?

You last visited: Today at 11:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



logininterface fail

Discussion on logininterface fail within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
Zero.™'s Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 591
Received Thanks: 37
logininterface fail

ich hab diesen interface benutzt:


und hab die locale detein & root eingefügt etc. und dann komm das hier: siehe screen



was hab ich falsch gemacht?
Attached Images
File Type: jpg 22222.jpg (14.1 KB, 89 views)
Zero.™ is offline  
Old 09/05/2013, 16:08   #2
 
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
man erkennt nix aber ich könnte wetten du hast die socket datein nicht in den lib ordner getan
xGr33n is offline  
Old 09/05/2013, 16:13   #3
 
Zero.™'s Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 591
Received Thanks: 37
Quote:
Originally Posted by xGr33n View Post
man erkennt nix aber ich könnte wetten du hast die socket datein nicht in den lib ordner getan
... hier sieht man besser


und was für socket ? hab die datein eingefpgt die in dem ordner waren .. also dem gedownlaodeten ordner
Zero.™ is offline  
Old 09/05/2013, 16:22   #4
 
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
iwas haste kaputt gemacht... zeig mal bitte die Config von dir also in der intrologin.py
xGr33n is offline  
Old 09/05/2013, 18:19   #5
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,830
Received Thanks: 3,369
Bestenfalls lädst du die Dateien hoch, die du soeben bearbeitet hast.
Zur genaueren Diagnose würden wir ebenso ein Screen mit höhere Auflösung benötigen - so ist der Fehler nicht überschaubar.
__

Gruß.
Nick is offline  
Old 09/05/2013, 21:03   #6
 
Zero.™'s Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 591
Received Thanks: 37
Quote:
Originally Posted by .JαyZoN View Post
Bestenfalls lädst du die Dateien hoch, die du soeben bearbeitet hast.
Zur genaueren Diagnose würden wir ebenso ein Screen mit höhere Auflösung benötigen - so ist der Fehler nicht überschaubar.
__

Gruß.





die datei von dort. aber nur in intrologin meinen ip und meine ports eingegeben (bei AUTHPORT hab ich nix eingegeben) & die datei "socket" hab ich nicht benutzt, weil ich nicht weiss was ich damit machen muss, kann das das problem sein ?`


EDIT: hab die sockets in meinen LIB ordner eingefügt, geht trotzdem nicht
Zero.™ is offline  
Thanks
1 User
Old 09/05/2013, 21:05   #7
 
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
Quote:
Originally Posted by xGr33n View Post
iwas haste kaputt gemacht... zeig mal bitte die Config von dir also in der intrologin.py
.... das script geht ja wenn man nix kaputt macht
xGr33n is offline  
Old 09/05/2013, 21:15   #8
 
Zero.™'s Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 591
Received Thanks: 37
Quote:
Originally Posted by xGr33n View Post
.... das script geht ja wenn man nix kaputt macht
warum dauert das laden so lange? wenn ich client öffne ?
Zero.™ is offline  
Old 09/05/2013, 21:16   #9
 
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
Quote:
Originally Posted by Zero.™ View Post
warum dauert das laden so lange? wenn ich client öffne ?
Oh gott, poste jetzt den scheiß oder dir kann niemand helfen
xGr33n is offline  
Old 09/05/2013, 21:21   #10
 
Zero.™'s Avatar
 
elite*gold: 0
Join Date: Sep 2012
Posts: 591
Received Thanks: 37
Quote:
Originally Posted by xGr33n View Post
Oh gott, poste jetzt den scheiß oder dir kann niemand helfen
Code:
import dbg
import app
import net
import ui
import ime
import snd
import wndMgr
import musicInfo
import serverInfo
import systemSetting
import ServerStateChecker
import locale
import constInfo
import uiCommon
import time
import ServerCommandParser
import ime
import uiScriptLocale
import chat
import sys
import md5
import background
import os
import string
import constinfo
import linecache

########Config########
DEINEIP = "25.155.131.100"
CH1PORT = 13070
CH2PORT = 14070
CH3PORT = 15070
CH4PORT = 16070
AUTHPORT = 13363
SERVERNAME = "NewMt2-Project"
LOGINDATENSPEICHERN = 0 #0 = aus / 1 = an
FORUMLINK = "http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/"
YOUTUBELINK = "http://www.youtube.com"
FACEBOOKLINK = "http://www.facebook.com"
####################

#####Ab hier nichts mehr ändern!######

RUNUP_MATRIX_AUTH = FALSE
NEWCIBN_PASSPOD_AUTH = FALSE

LOGIN_DELAY_SEC = 0.0
SKIP_LOGIN_PHASE = FALSE
SKIP_LOGIN_PHASE_SUPPORT_CHANNEL = FALSE
FULL_BACK_IMAGE = TRUE

PASSPOD_MSG_DICT = {}

VIRTUAL_KEYBOARD_NUM_KEYS = 46
VIRTUAL_KEYBOARD_RAND_KEY = FALSE

CH1STATE = 0
CH2STATE = 0
CH3STATE = 0
CH4STATE = 0

def Suffle(src):
	if VIRTUAL_KEYBOARD_RAND_KEY:
		items = [item for item in src]

		itemCount = len(items)
		for oldPos in xrange(itemCount):
			newPos = app.GetRandom(0, itemCount-1)
			items[newPos], items[oldPos] = items[oldPos], items[newPos]

		return "".join(items)
	else:
		return src

if locale.IsNEWCIBN() or locale.IsCIBN10():
	LOGIN_DELAY_SEC = 20.0
	FULL_BACK_IMAGE = TRUE
	NEWCIBN_PASSPOD_AUTH = TRUE
	PASSPOD_MSG_DICT = {
		"PASERR1"	: locale.LOGIN_FAILURE_PASERR1,
		"PASERR2"	: locale.LOGIN_FAILURE_PASERR2,
		"PASERR3"	: locale.LOGIN_FAILURE_PASERR3,
		"PASERR4"	: locale.LOGIN_FAILURE_PASERR4,
		"PASERR5"	: locale.LOGIN_FAILURE_PASERR5,
	}

elif locale.IsYMIR() or locale.IsCHEONMA():
	FULL_BACK_IMAGE = TRUE

elif locale.IsHONGKONG():
	FULL_BACK_IMAGE = TRUE
	RUNUP_MATRIX_AUTH = TRUE 
	PASSPOD_MSG_DICT = {
		"NOTELE"	: locale.LOGIN_FAILURE_NOTELEBLOCK,
	}

elif locale.IsJAPAN():
	FULL_BACK_IMAGE = TRUE

def IsFullBackImage():
	global FULL_BACK_IMAGE
	return FULL_BACK_IMAGE

def IsLoginDelay():
	global LOGIN_DELAY_SEC
	if LOGIN_DELAY_SEC > 0.0:
		return TRUE
	else:
		return FALSE

def IsRunupMatrixAuth():
	global RUNUP_MATRIX_AUTH
	return RUNUP_MATRIX_AUTH	

def IsNEWCIBNPassPodAuth():
	global NEWCIBN_PASSPOD_AUTH
	return NEWCIBN_PASSPOD_AUTH

def GetLoginDelay():
	global LOGIN_DELAY_SEC
	return LOGIN_DELAY_SEC
	
app.SetGuildMarkPath("test")

class ConnectingDialog(ui.ScriptWindow):

	def __init__(self):
		ui.ScriptWindow.__init__(self)
		self.__LoadDialog()
		self.eventTimeOver = lambda *arg: None
		self.eventExit = lambda *arg: None
		
	def __del__(self):
		ui.ScriptWindow.__del__(self)
		
	def __LoadDialog(self):
		try:
			PythonScriptLoader = ui.PythonScriptLoader()
			PythonScriptLoader.LoadScriptFile(self, "UIScript/ConnectingDialog.py")

			self.board = self.GetChild("board")
			self.message = self.GetChild("message")
			self.countdownMessage = self.GetChild("countdown_message")

		except:
			import exception
			exception.Abort("ConnectingDialog.LoadDialog.BindObject")

	def Open(self, waitTime):
		curTime = time.clock()
		self.endTime = curTime + waitTime

		self.Lock()
		self.SetCenterPosition()
		self.SetTop()
		self.Show()		

	def Close(self):
		self.Unlock()
		self.Hide()

	def Destroy(self):
		self.Hide()
		self.ClearDictionary()

	def SetText(self, text):
		self.message.SetText(text)

	def SetCountDownMessage(self, waitTime):
		self.countdownMessage.SetText("%.0f%s" % (waitTime, locale.SECOND))

	def SAFE_SetTimeOverEvent(self, event):
		self.eventTimeOver = ui.__mem_func__(event)

	def SAFE_SetExitEvent(self, event):
		self.eventExit = ui.__mem_func__(event)

	def OnUpdate(self, state):
		lastTime = max(0, self.endTime - time.clock())
		if 0 == lastTime:
			self.Close()
			self.eventTimeOver()
		else:
			self.SetCountDownMessage(self.endTime - time.clock())

	def OnPressExitKey(self):
		#self.eventExit()
		return TRUE

class LoginWindow(ui.ScriptWindow):

	IS_TEST = net.IsTest()

	def __init__(self, stream):
		print "NEW LOGIN WINDOW  ----------------------------------------------------------------------------"
		ui.ScriptWindow.__init__(self)
		net.SetPhaseWindow(net.PHASE_WINDOW_LOGIN, self)
		net.SetAccountConnectorHandler(self)

		self.matrixInputChanceCount = 0
		self.lastLoginTime = 0
		self.inputDialog = None
		self.connectingDialog = None
		self.stream=stream
		self.isNowCountDown=FALSE
		self.isStartError=FALSE

		self.xServerBoard = 0
		self.yServerBoard = 0
		
		self.loadingImage = None

		self.virtualKeyboard = None
		self.virtualKeyboardMode = "ALPHABET"
		self.virtualKeyboardIsUpper = FALSE
		
		
	def __del__(self):
		net.ClearPhaseWindow(net.PHASE_WINDOW_LOGIN, self)
		net.SetAccountConnectorHandler(0)
		ui.ScriptWindow.__del__(self)
		print "---------------------------------------------------------------------------- DELETE LOGIN WINDOW"

	def Open(self):
		ServerStateChecker.Create(self)

		print "LOGIN WINDOW OPEN ----------------------------------------------------------------------------"
		
		self.loginFailureMsgDict={
			#"DEFAULT" : locale.LOGIN_FAILURE_UNKNOWN,

			"ALREADY"	: locale.LOGIN_FAILURE_ALREAY,
			"NOID"		: locale.LOGIN_FAILURE_NOT_EXIST_ID,
			"WRONGPWD"	: locale.LOGIN_FAILURE_WRONG_PASSWORD,
			"FULL"		: locale.LOGIN_FAILURE_TOO_MANY_USER,
			"SHUTDOWN"	: locale.LOGIN_FAILURE_SHUTDOWN,
			"REPAIR"	: locale.LOGIN_FAILURE_REPAIR_ID,
			"BLOCK"		: locale.LOGIN_FAILURE_BLOCK_ID,
			"WRONGMAT"	: locale.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER,
			"QUIT"		: locale.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE,
			"BESAMEKEY"	: locale.LOGIN_FAILURE_BE_SAME_KEY,
			"NOTAVAIL"	: locale.LOGIN_FAILURE_NOT_AVAIL,
			"NOBILL"	: locale.LOGIN_FAILURE_NOBILL,
			"BLKLOGIN"	: locale.LOGIN_FAILURE_BLOCK_LOGIN,
			"WEBBLK"	: locale.LOGIN_FAILURE_WEB_BLOCK,
			
			"HACK"		: "Du wurdest wegen hacken gesperrt.",
			"BOT"		: "Du wurdest wegen benutzung von Bots gesperrt.",
			"SCAM"		: "Du wurdest wegen Betrug gesperrt.",
			"INSULT"	: "Du wurdest wegen Beleidigung gesperrt.",
			"FAKE"		: "Du wurdest aufgrund deiner Namensgebung gesperrt.",
			"NAME"		: "Du wurdest aufgrund deiner Namensgebung gesperrt.",
			"BUG"		: "Du wurdest wegen Bugusing gesperrt.",
			"DK"		: "Du wurdest wegen Dauerkill gesperrt.",
			"OTHER"		: "Du wurdest von der Serverleitung gesperrt.",
		}

		self.loginFailureFuncDict = {
			"WRONGPWD"	: self.__DisconnectAndInputPassword,
			"WRONGMAT"	: self.__DisconnectAndInputMatrix,
			"QUIT"		: app.Exit,
		}

		self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
		self.SetWindowName("LoginWindow")

		if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "LoginWindow.py"):
			dbg.TraceError("LoginWindow.Open - __LoadScript Error")
			return
		
		self.__LoadLoginInfo("loginInfo.py")
		
		if app.loggined:
			self.loginFailureFuncDict = {
			"WRONGPWD"	: app.Exit,
			"WRONGMAT"	: app.Exit,
			"QUIT"		: app.Exit,
			}

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

		snd.SetSoundVolume(systemSetting.GetSoundVolume())

		# pevent key "[" "]"
		ime.AddExceptKey(91)
		ime.AddExceptKey(93)
			
		self.Show()

		global SKIP_LOGIN_PHASE
		if SKIP_LOGIN_PHASE:
			if self.isStartError:
				self.connectBoard.Hide()
				self.loginBoard.Hide()
				self.serverBoard.Hide()
				self.PopupNotifyMessage(locale.LOGIN_CONNECT_FAILURE, self.__ExitGame)
				return

			if self.loginInfo:
				self.serverBoard.Hide()
			else:
				self.__RefreshServerList()
				self.__OpenServerBoard()
		else:
			connectingIP = self.stream.GetConnectAddr()
			if connectingIP:
				self.__OpenLoginBoard()
				if IsFullBackImage():
					self.GetChild("demonking").Show()

			else:
				self.__RefreshServerList()
				self.__OpenServerBoard()

		app.ShowCursor()
		
	def Close(self):

		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		ServerStateChecker.Destroy(self)

		print "---------------------------------------------------------------------------- CLOSE LOGIN WINDOW "
		#
		# selectMusicÀÌ ¾øÀ¸¸é BGMÀÌ ²÷±â¹Ç·Î µÎ°³ ´Ù üũÇÑ´Ù. 
		#
		if musicInfo.loginMusic != "" and musicInfo.selectMusic != "":
			snd.FadeOutMusic("BGM/"+musicInfo.loginMusic)

		## NOTE : idEditLine¿Í pwdEditLineÀº À̺¥Æ®°¡ ¼*·Î ¿¬°á µÇ¾îÀÖ¾î¼*
		##        Event¸¦ °*Á¦·Î ÃʱâÈ* ÇØÁÖ¾î¾ß¸¸ ÇÕ´Ï´Ù - [levites]
		self.idEditLine.SetTabEvent(0)
		self.idEditLine.SetReturnEvent(0)
		self.pwdEditLine.SetReturnEvent(0)
		self.pwdEditLine.SetTabEvent(0)

		self.connectBoard = None
		self.loginBoard = None
		self.idEditLine = None
		self.pwdEditLine = None
		self.inputDialog = None
		self.connectingDialog = None
		self.loadingImage = None

		self.serverBoard				= None
		self.serverList					= None
		self.channelList				= None

		# RUNUP_MATRIX_AUTH
		self.matrixQuizBoard	= None
		self.matrixAnswerInput	= None
		self.matrixAnswerOK	= None
		self.matrixAnswerCancel	= None
		# RUNUP_MATRIX_AUTH_END

		# NEWCIBN_PASSPOD_AUTH
		self.passpodBoard	= None
		self.passpodAnswerInput	= None
		self.passpodAnswerOK	= None
		self.passpodAnswerCancel = None
		# NEWCIBN_PASSPOD_AUTH_END

		self.VIRTUAL_KEY_ALPHABET_LOWERS = None
		self.VIRTUAL_KEY_ALPHABET_UPPERS = None
		self.VIRTUAL_KEY_SYMBOLS = None
		self.VIRTUAL_KEY_NUMBERS = None

		# VIRTUAL_KEYBOARD_BUG_FIX
		if self.virtualKeyboard:
			for keyIndex in xrange(0, VIRTUAL_KEYBOARD_NUM_KEYS+1):
				key = self.GetChild2("key_%d" % keyIndex)
				if key:
					key.SetEvent(None)

			self.virtualKeyboard = None

		self.KillFocus()
		self.Hide()

		self.stream.popupWindow.Close()
		self.loginFailureFuncDict=None

		ime.ClearExceptKey()

		app.HideCursor()

	def __SaveChannelInfo(self):
		try:
			file=open("channel.inf", "w")
			file.write("%d %d %d" % (self.__GetServerID(), self.__GetChannelID(), self.__GetRegionID()))
		except:
			print "LoginWindow.__SaveChannelInfo - SaveError"

	def __LoadChannelInfo(self):
		try:
			file=open("channel.inf")
			lines=file.readlines()
			
			if len(lines)>0:
				tokens=lines[0].split()

				selServerID=int(tokens[0])
				selChannelID=int(tokens[1])
				
				if len(tokens) == 3:
					regionID = int(tokens[2])

				return regionID, selServerID, selChannelID

		except:
			print "LoginWindow.__LoadChannelInfo - OpenError"
			return -1, -1, -1

	def __ExitGame(self):
		app.Exit()

	def SetIDEditLineFocus(self):
		if self.idEditLine != None:
			self.idEditLine.SetFocus()

	def SetPasswordEditLineFocus(self):
		if locale.IsEUROPE():
			if self.idEditLine != None: #0000862: [M2EU] ·Î±×ÀÎâ Æ˾÷ ¿¡·¯: Á¾·á½Ã ¸ÕÀú None ¼³Á¤µÊ
				self.idEditLine.SetText("")
				self.idEditLine.SetFocus() #0000685: [M2EU] ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£ À¯Ãß °¡´É ¹ö±× ¼öÁ¤: ¹«Á¶°Ç ¾ÆÀ̵ð·Î Æ÷Ä¿½º°¡ °¡°Ô ¸¸µç´Ù

			if self.pwdEditLine != None: #0000862: [M2EU] ·Î±×ÀÎâ Æ˾÷ ¿¡·¯: Á¾·á½Ã ¸ÕÀú None ¼³Á¤µÊ
				self.pwdEditLine.SetText("")
		else:
			if self.pwdEditLine != None:
				self.pwdEditLine.SetFocus()								

	def OnEndCountDown(self):
		self.isNowCountDown = FALSE
		self.OnConnectFailure()

	def OnConnectFailure(self):

		if self.isNowCountDown:
			return

		snd.PlaySound("sound/ui/loginfail.wav")

		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		if app.loggined:
			self.PopupNotifyMessage(locale.LOGIN_CONNECT_FAILURE, self.__ExitGame)
		else:
			self.PopupNotifyMessage(locale.LOGIN_CONNECT_FAILURE, self.SetPasswordEditLineFocus)

	def OnHandShake(self):
		if not IsLoginDelay():
			snd.PlaySound("sound/ui/loginok.wav")
			self.PopupDisplayMessage(locale.LOGIN_CONNECT_SUCCESS)

	def OnLoginStart(self):
		if not IsLoginDelay():
			self.PopupDisplayMessage(locale.LOGIN_PROCESSING)

	def OnLoginFailure(self, error):
		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		try:
			loginFailureMsg = self.loginFailureMsgDict[error]
		except KeyError:
			if PASSPOD_MSG_DICT:
				try:
					loginFailureMsg = PASSPOD_MSG_DICT[error]
				except KeyError:
					loginFailureMsg = locale.LOGIN_FAILURE_UNKNOWN + error
			else:
				loginFailureMsg = locale.LOGIN_FAILURE_UNKNOWN  + error


		#0000685: [M2EU] ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£ À¯Ãß °¡´É ¹ö±× ¼öÁ¤: ¹«Á¶°Ç Æнº¿öµå·Î Æ÷Ä¿½º°¡ °¡°Ô ¸¸µç´Ù
		loginFailureFunc=self.loginFailureFuncDict.get(error, self.SetPasswordEditLineFocus)

		if app.loggined:
			self.PopupNotifyMessage(loginFailureMsg, self.__ExitGame)
		else:
			self.PopupNotifyMessage(loginFailureMsg, loginFailureFunc)

		snd.PlaySound("sound/ui/loginfail.wav")

	def __DisconnectAndInputID(self):
		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		self.SetIDEditLineFocus()
		net.Disconnect()

	def __DisconnectAndInputPassword(self):
		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		self.SetPasswordEditLineFocus()
		net.Disconnect()

	def __DisconnectAndInputMatrix(self):
		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		self.stream.popupWindow.Close()
		self.matrixInputChanceCount -= 1

		if self.matrixInputChanceCount <= 0:
			self.__OnCloseInputDialog()

		elif self.inputDialog:
			self.inputDialog.Show()

	def __LoadScript(self, fileName):
		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, fileName)
		except:
			import exception
			exception.Abort("LoginWindow.__LoadScript.LoadObject")

		try:
			GetObject=self.GetChild
			self.serverBoard			= GetObject("ServerBoard")
			self.serverList				= GetObject("ServerList")
			self.channelList			= GetObject("ChannelList")		
			self.connectBoard			= GetObject("ConnectBoard")
			self.loginBoard				= GetObject("LoginBoard")
			self.idEditLine				= GetObject("ID_EditLine")
			self.pwdEditLine			= GetObject("Password_EditLine")
			self.ch1_offline_demon				= GetObject("Channel1_offline_demon")
			self.ch2_offline_demon				= GetObject("Channel2_offline_demon")
			self.ch3_offline_demon				= GetObject("Channel3_offline_demon")
			self.ch4_offline_demon				= GetObject("Channel4_offline_demon")
			self.ch1_online_demon				= GetObject("Channel1_online_demon")
			self.ch2_online_demon				= GetObject("Channel2_online_demon")
			self.ch3_online_demon				= GetObject("Channel3_online_demon")
			self.ch4_online_demon				= GetObject("Channel4_online_demon")
			self.ch1_online_markiert_demon				= GetObject("Channel1_online_markiert_demon")
			self.ch2_online_markiert_demon				= GetObject("Channel2_online_markiert_demon")
			self.ch3_online_markiert_demon				= GetObject("Channel3_online_markiert_demon")
			self.ch4_online_markiert_demon				= GetObject("Channel4_online_markiert_demon")
			self.ch1_offline_markiert_demon				= GetObject("Channel1_offline_markiert_demon")
			self.ch2_offline_markiert_demon				= GetObject("Channel2_offline_markiert_demon")
			self.ch3_offline_markiert_demon				= GetObject("Channel3_offline_markiert_demon")
			self.ch4_offline_markiert_demon				= GetObject("Channel4_offline_markiert_demon")
			self.loginButton			= GetObject("LoginButton")
			self.forum					= GetObject("forum")
			self.youtube					= GetObject("youtube")
			self.facebook					= GetObject("facebook")
			self.oben_links					= GetObject("oben_links")
			
			self.idEditLine.SetFontColor(71, 96, 144)
			self.pwdEditLine.SetFontColor(71, 96, 144)
			
			## ACCMANAGER
			
			self.endles		= GetObject("endles")

			# RUNUP_MATRIX_AUTH
			if IsRunupMatrixAuth():
				self.matrixQuizBoard	= GetObject("RunupMatrixQuizBoard")
				self.matrixAnswerInput	= GetObject("RunupMatrixAnswerInput")
				self.matrixAnswerOK	= GetObject("RunupMatrixAnswerOK")
				self.matrixAnswerCancel	= GetObject("RunupMatrixAnswerCancel")
			# RUNUP_MATRIX_AUTH_END

			# NEWCIBN_PASSPOD_AUTH
			if IsNEWCIBNPassPodAuth():
				self.passpodBoard	= GetObject("NEWCIBN_PASSPOD_BOARD")
				self.passpodAnswerInput	= GetObject("NEWCIBN_PASSPOD_INPUT")
				self.passpodAnswerOK	= GetObject("NEWCIBN_PASSPOD_OK")
				self.passpodAnswerCancel= GetObject("NEWCIBN_PASSPOD_CANCEL")
			# NEWCIBN_PASSPOD_AUTH_END

			self.virtualKeyboard		= self.GetChild2("VirtualKeyboard")

			if self.virtualKeyboard:
				self.VIRTUAL_KEY_ALPHABET_UPPERS = Suffle(locale.VIRTUAL_KEY_ALPHABET_UPPERS)
				self.VIRTUAL_KEY_ALPHABET_LOWERS = "".join([locale.VIRTUAL_KEY_ALPHABET_LOWERS[locale.VIRTUAL_KEY_ALPHABET_UPPERS.index(e)] for e in self.VIRTUAL_KEY_ALPHABET_UPPERS])
				self.VIRTUAL_KEY_SYMBOLS = Suffle(locale.VIRTUAL_KEY_SYMBOLS)
				self.VIRTUAL_KEY_NUMBERS = Suffle(locale.VIRTUAL_KEY_NUMBERS)
				self.__VirtualKeyboard_SetAlphabetMode()

		except:
			import exception
			exception.Abort("LoginWindow.__LoadScript.BindObject")

		self.serverBoard.OnKeyUp = ui.__mem_func__(self.__ServerBoard_OnKeyUp)
		self.xServerBoard, self.yServerBoard = self.serverBoard.GetLocalPosition()

		self.loginButton.SetEvent(ui.__mem_func__(self.__OnClickLoginButton))
		self.forum.SetEvent(ui.__mem_func__(self.__forum))
		self.youtube.SetEvent(ui.__mem_func__(self.__youtube))
		self.facebook.SetEvent(ui.__mem_func__(self.__facebook))
		
		## ACCMANAGER

		self.endles.SetEvent(self.__OnClickExitButton)

		## END ACCMANAGER
		
		self.serverList.SetEvent(ui.__mem_func__(self.__OnSelectServer))
		
		self.idEditLine.SetReturnEvent(ui.__mem_func__(self.pwdEditLine.SetFocus))
		self.idEditLine.SetTabEvent(ui.__mem_func__(self.pwdEditLine.SetFocus))

		self.pwdEditLine.SetReturnEvent(ui.__mem_func__(self.__OnClickLoginButton))
		self.pwdEditLine.SetTabEvent(ui.__mem_func__(self.idEditLine.SetFocus))

		# RUNUP_MATRIX_AUTH
		if IsRunupMatrixAuth():			
			self.matrixAnswerOK.SAFE_SetEvent(self.__OnClickMatrixAnswerOK)
			self.matrixAnswerCancel.SAFE_SetEvent(self.__OnClickMatrixAnswerCancel)
			self.matrixAnswerInput.SAFE_SetReturnEvent(self.__OnClickMatrixAnswerOK)
		# RUNUP_MATRIX_AUTH_END

		# NEWCIBN_PASSPOD_AUTH
		if IsNEWCIBNPassPodAuth():
			self.passpodAnswerOK.SAFE_SetEvent(self.__OnClickNEWCIBNPasspodAnswerOK)
			self.passpodAnswerCancel.SAFE_SetEvent(self.__OnClickNEWCIBNPasspodAnswerCancel)
			self.passpodAnswerInput.SAFE_SetReturnEvent(self.__OnClickNEWCIBNPasspodAnswerOK)

		# NEWCIBN_PASSPOD_AUTH_END


		if IsFullBackImage():
			self.GetChild("demonking").Show()
		return 1

	def __VirtualKeyboard_SetKeys(self, keyCodes):
		uiDefFontBackup = locale.UI_DEF_FONT
		locale.UI_DEF_FONT = locale.UI_DEF_FONT_LARGE

		keyIndex = 1
		for keyCode in keyCodes:					
			key = self.GetChild2("key_%d" % keyIndex)
			if key:
				key.SetEvent(lambda x=keyCode: self.__VirtualKeyboard_PressKey(x))
				key.SetText(keyCode)
				key.ButtonText.SetFontColor(1, 1, 1)
				keyIndex += 1
			
		for keyIndex in xrange(keyIndex, VIRTUAL_KEYBOARD_NUM_KEYS+1):
			key = self.GetChild2("key_%d" % keyIndex)
			if key:
				key.SetEvent(lambda x=' ': self.__VirtualKeyboard_PressKey(x))
				key.SetText(' ')
		
		locale.UI_DEF_FONT = uiDefFontBackup

	def __VirtualKeyboard_PressKey(self, code):
		ime.PasteString(code)
		
		#if self.virtualKeyboardMode == "ALPHABET" and self.virtualKeyboardIsUpper:
		#	self.__VirtualKeyboard_SetLowerMode()
			
	def __VirtualKeyboard_PressBackspace(self):
		ime.PasteBackspace()
		
	def __VirtualKeyboard_PressReturn(self):
		ime.PasteReturn()		

	def __VirtualKeyboard_SetUpperMode(self):
		self.virtualKeyboardIsUpper = TRUE
		
		if self.virtualKeyboardMode == "ALPHABET":
			self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_ALPHABET_UPPERS)
		elif self.virtualKeyboardMode == "NUMBER":
			self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_SYMBOLS)
		else:
			self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_NUMBERS)
			
	def __VirtualKeyboard_SetLowerMode(self):
		self.virtualKeyboardIsUpper = FALSE
		
		if self.virtualKeyboardMode == "ALPHABET":
			self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_ALPHABET_LOWERS)
		elif self.virtualKeyboardMode == "NUMBER":
			self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_NUMBERS)			
		else:
			self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_SYMBOLS)
			
	def __VirtualKeyboard_SetAlphabetMode(self):
		self.virtualKeyboardIsUpper = FALSE
		self.virtualKeyboardMode = "ALPHABET"		
		self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_ALPHABET_LOWERS)	

	def __VirtualKeyboard_SetNumberMode(self):			
		self.virtualKeyboardIsUpper = FALSE
		self.virtualKeyboardMode = "NUMBER"
		self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_NUMBERS)
					
	def __VirtualKeyboard_SetSymbolMode(self):		
		self.virtualKeyboardIsUpper = FALSE
		self.virtualKeyboardMode = "SYMBOL"
		self.__VirtualKeyboard_SetKeys(self.VIRTUAL_KEY_SYMBOLS)
				
	def Connect(self, id, pwd):

		if constInfo.SEQUENCE_PACKET_ENABLE:
			net.SetPacketSequenceMode()

		if IsLoginDelay():
			loginDelay = GetLoginDelay()
			self.connectingDialog = ConnectingDialog()
			self.connectingDialog.Open(loginDelay)
			self.connectingDialog.SAFE_SetTimeOverEvent(self.OnEndCountDown)
			self.connectingDialog.SAFE_SetExitEvent(self.OnPressExitKey)
			self.isNowCountDown = TRUE

		else:
			self.stream.popupWindow.Close()
			self.stream.popupWindow.Open(locale.LOGIN_CONNETING, self.SetPasswordEditLineFocus, locale.UI_CANCEL)

		self.stream.SetLoginInfo(id, pwd)
		self.stream.Connect()

	def __OnClickExitButton(self):
		self.stream.SetPhaseWindow(0)

	def __SetServerInfo(self, name):
		net.SetServerInfo(name.strip())
		self.serverInfo.SetText(name)

	def __LoadLoginInfo(self, loginInfoFileName):

		try:
			loginInfo={}
			execfile(loginInfoFileName, loginInfo)
		except IOError:
			print(\
				"ÀÚµ¿ ·Î±×ÀÎÀ» ÇϽ÷Á¸é" + loginInfoFileName + "ÆÄÀÏÀ» ÀÛ¼ºÇØÁÖ¼¼¿ä\n"\
				"\n"\
				"³»¿ë:\n"\
				"================================================================\n"\
				"addr=ÁÖ¼Ò\n"\
				"port=Æ÷Æ®\n"\
				"id=¾ÆÀ̵ð\n"\
				"pwd=ºñ¹Ð¹øÈ£\n"\
				"slot=ij¸¯ÅÍ ¼±Åà À妽º (¾ø°Å³ª -1À̸é ÀÚµ¿ ¼±Åà ¾ÈÇÔ)\n"\
				"autoLogin=ÀÚµ¿ Á¢¼Ó ¿©ºÎ\n"
				"autoSelect=ÀÚµ¿ Á¢¼Ó ¿©ºÎ\n"
				"locale=(ymir) LC_Ymir ÀÏ°æ¿ì ymir·Î ÀÛµ¿. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é korea·Î ÀÛµ¿\n"
			);

		id=loginInfo.get("id", "")
		pwd=loginInfo.get("pwd", "")

		if self.IS_TEST:
			try:
				addr=loginInfo["addr"]
				port=loginInfo["port"]
				account_addr=addr
				account_port=port

				net.SetMarkServer(addr, port)
				self.__SetServerInfo(locale.CHANNEL_TEST_SERVER_ADDR % (addr, port))
			except:
				try:
					addr=serverInfo.TESTADDR["ip"]
					port=serverInfo.TESTADDR["tcp_port"]

					net.SetMarkServer(addr, port)
					self.__SetServerInfo(locale.CHANNEL_TEST_SERVER)
				except:
					import exception
					exception.Abort("LoginWindow.__LoadLoginInfo - Å×½ºÆ®¼*¹ö ÁÖ¼Ò°¡ ¾ø½À´Ï´Ù")

		else:
			addr=loginInfo.get("addr", "")
			port=loginInfo.get("port", 0)
			account_addr=loginInfo.get("account_addr", addr)
			account_port=loginInfo.get("account_port", port)

			locale = loginInfo.get("locale", "")

			if addr and port:
				net.SetMarkServer(addr, port)

				if locale == "ymir" :
					net.SetServerInfo("õ¸¶ ¼*¹ö")
					self.serverInfo.SetText("Y:"+addr+":"+str(port))
				else:
					net.SetServerInfo(addr+":"+str(port))
					self.serverInfo.SetText("K:"+addr+":"+str(port))

		slot=loginInfo.get("slot", 0)
		isAutoLogin=loginInfo.get("auto", 0)
		isAutoLogin=loginInfo.get("autoLogin", 0)
		isAutoSelect=loginInfo.get("autoSelect", 0)

		self.stream.SetCharacterSlot(slot)
		self.stream.SetConnectInfo(addr, port, account_addr, account_port)
		self.stream.isAutoLogin=isAutoLogin
		self.stream.isAutoSelect=isAutoSelect

		self.id = None
		self.pwd = None		
		self.loginnedServer = None
		self.loginnedChannel = None			
		app.loggined = FALSE

		self.loginInfo = loginInfo

		if self.id and self.pwd:
			app.loggined = TRUE

		if isAutoLogin:
			self.Connect(id, pwd)
			
			print "=================================================================================="
			print "ÀÚµ¿ ·Î±×ÀÎ: %s - %s:%d %s" % (loginInfoFileName, addr, port, id)
			print "=================================================================================="

		
	def PopupDisplayMessage(self, msg):
		self.stream.popupWindow.Close()
		self.stream.popupWindow.Open(msg)

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

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

	# RUNUP_MATRIX_AUTH
	def BINARY_OnRunupMatrixQuiz(self, quiz):
		if not IsRunupMatrixAuth():
			return

		id		= self.GetChild("RunupMatrixID")
		id.SetText(self.idEditLine.GetText())
		
		code	= self.GetChild("RunupMatrixCode")
		
		code.SetText("".join(["[%c,%c]" % (quiz[i], quiz[i+1]) for i in xrange(0, len(quiz), 2)]))

		self.stream.popupWindow.Close()
		self.serverBoard.Hide()
		self.connectBoard.Hide()
		self.loginBoard.Hide()
		self.matrixQuizBoard.Show()
		self.matrixAnswerInput.SetFocus()

	def __OnClickMatrixAnswerOK(self):
		answer = self.matrixAnswerInput.GetText()

		print "matrix_quiz.ok"
		net.SendRunupMatrixCardPacket(answer)
		self.matrixQuizBoard.Hide()	

		self.stream.popupWindow.Close()
		self.stream.popupWindow.Open("WAITING FOR MATRIX AUTHENTICATION", 
			self.__OnClickMatrixAnswerCancel, 
			locale.UI_CANCEL)

	def __OnClickMatrixAnswerCancel(self):
		print "matrix_quiz.cancel"

		if self.matrixQuizBoard:
			self.matrixQuizBoard.Hide()	

		if self.connectBoard:
			self.connectBoard.Show()	

		if self.loginBoard:
			self.loginBoard.Show()

	# RUNUP_MATRIX_AUTH_END

	# NEWCIBN_PASSPOD_AUTH
	def BINARY_OnNEWCIBNPasspodRequest(self):
		if not IsNEWCIBNPassPodAuth():
			return

		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		self.stream.popupWindow.Close()
		self.serverBoard.Hide()
		self.connectBoard.Hide()
		self.loginBoard.Hide()
		self.passpodBoard.Show()
		self.passpodAnswerInput.SetFocus()

	def BINARY_OnNEWCIBNPasspodFailure(self):
		if not IsNEWCIBNPassPodAuth():
			return

	def __OnClickNEWCIBNPasspodAnswerOK(self):
		answer = self.passpodAnswerInput.GetText()

		print "passpod.ok"
		net.SendNEWCIBNPasspodAnswerPacket(answer)
		self.passpodAnswerInput.SetText("")
		self.passpodBoard.Hide()	

		self.stream.popupWindow.Close()
		self.stream.popupWindow.Open(locale.WAIT_FOR_PASSPOD, 
			self.__OnClickNEWCIBNPasspodAnswerCancel, 
			locale.UI_CANCEL)

	def __OnClickNEWCIBNPasspodAnswerCancel(self):
		print "passpod.cancel"

		if self.passpodBoard:
			self.passpodBoard.Hide()	

		if self.connectBoard:
			self.connectBoard.Show()	

		if self.loginBoard:
			self.loginBoard.Show()

	# NEWCIBN_PASSPOD_AUTH_END


	def OnMatrixCard(self, row1, row2, row3, row4, col1, col2, col3, col4):

		if self.connectingDialog:
			self.connectingDialog.Close()
		self.connectingDialog = None

		self.matrixInputChanceCount = 3

		self.stream.popupWindow.Close()

		# CHINA_MATRIX_CARD_BUG_FIX
		## A~Z ±îÁö 26 À̳»ÀÇ °ªÀÌ µé¾îÀÖ¾î¾ß¸¸ ÇÑ´Ù.
		## Python Exception Log ¿¡¼* ±× ÀÌ»óÀÇ °ªÀÌ µé¾îÀÖ¾î¼* ¿¡·¯ ¹æÁö
		## Çåµ¥ ¿Ö Çѱ¹ÂÊ ·Î±×¿¡¼* ÀÌ°Ô È°¿ëµÇ´ÂÁö´Â ¸ð¸£°ÚÀ½
		row1 = min(30, row1)
		row2 = min(30, row2)
		row3 = min(30, row3)
		row4 = min(30, row4)
		# END_OF_CHINA_MATRIX_CARD_BUG_FIX

		row1 = chr(row1 + ord('A'))
		row2 = chr(row2 + ord('A'))
		row3 = chr(row3 + ord('A'))
		row4 = chr(row4 + ord('A'))
		col1 = col1 + 1
		col2 = col2 + 1
		col3 = col3 + 1
		col4 = col4 + 1

		inputDialog = uiCommon.InputDialogWithDescription2()
		inputDialog.SetMaxLength(8)
		inputDialog.SetAcceptEvent(ui.__mem_func__(self.__OnAcceptMatrixCardData))
		inputDialog.SetCancelEvent(ui.__mem_func__(self.__OnCancelMatrixCardData))
		inputDialog.SetTitle(locale.INPUT_MATRIX_CARD_TITLE)
		inputDialog.SetDescription1(locale.INPUT_MATRIX_CARD_NUMBER)
		inputDialog.SetDescription2("%c%d %c%d %c%d %c%d" % (row1, col1,
															row2, col2,
															row3, col3,
															row4, col4))

		inputDialog.Open()
		self.inputDialog = inputDialog

	def __OnAcceptMatrixCardData(self):
		text = self.inputDialog.GetText()
		net.SendChinaMatrixCardPacket(text)
		if self.inputDialog:
			self.inputDialog.Hide()
		self.PopupNotifyMessage(locale.LOGIN_PROCESSING)
		return TRUE

	def __OnCancelMatrixCardData(self):
		self.SetPasswordEditLineFocus()
		self.__OnCloseInputDialog()
		self.__DisconnectAndInputPassword()
		return TRUE

	def __OnCloseInputDialog(self):
		if self.inputDialog:
			self.inputDialog.Close()
		self.inputDialog = None
		return TRUE

	def OnPressExitKey(self):
		self.stream.popupWindow.Close()
		self.stream.SetPhaseWindow(0)
		return TRUE

	def OnExit(self):
		self.stream.popupWindow.Close()
		self.stream.popupWindow.Open(locale.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE, app.Exit, locale.UI_OK)

	def OnUpdate(self):
		ServerStateChecker.Update()

	def EmptyFunc(self):
		pass

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

	def __ServerBoard_OnKeyUp(self, key):
		if self.serverBoard.IsShow():
			if app.DIK_RETURN==key:
				self.__OnClickSelectServerButton()
		return TRUE

	def __GetRegionID(self):
		return 0

	def __GetServerID(self):
		return self.serverList.GetSelectedItem()

	def __GetChannelID(self):
		return self.channelList.GetSelectedItem()

	# SEVER_LIST_BUG_FIX
	def __ServerIDToServerIndex(self, regionID, targetServerID):
		try:
			regionDict = serverInfo.REGION_DICT[regionID]
		except KeyError:
			return -1

		retServerIndex = 0
		for eachServerID, regionDataDict in regionDict.items():
			if eachServerID == targetServerID:
				return retServerIndex

			retServerIndex += 1		
		
		return -1

	def __ChannelIDToChannelIndex(self, channelID):
		return channelID - 1
	# END_OF_SEVER_LIST_BUG_FIX
	

	def __OpenServerBoard(self):
		self.ch1_offline_markiert_demon.Hide()
		self.ch2_offline_markiert_demon.Hide()
		self.ch3_offline_markiert_demon.Hide()
		self.ch4_offline_markiert_demon.Hide()
		self.ch1_online_markiert_demon.Hide()
		self.ch2_online_markiert_demon.Hide()
		self.ch3_online_markiert_demon.Hide()
		self.ch4_online_markiert_demon.Hide()
		self.ch3_online_demon.Hide() #Auskommentieren wenn ihr CH3+4 habt
		self.ch4_online_demon.Hide() #Auskommentieren wenn ihr CH3+4 habt
		global DEINEIP
		global CH1PORT
		global AUTHPORT
		global CH2PORT
		global SERVERNAME
		global CH3PORT
		global CH4PORT
		global CH1STATE
		global CH2STATE
		global CH3STATE
		global CH4STATE
		global LOGINDATENSPEICHERN
		if LOGINDATENSPEICHERN==1:
			login = linecache.getline("pack/loginsetting", 1)
			password = linecache.getline("pack/loginsetting", 2)
			self.idEditLine.SetText(login)
			self.pwdEditLine.SetText(password)
			id = self.idEditLine.GetText()
			id = id.replace('\n', '')
			self.idEditLine.SetText(id)
		
		self.ch1_offline_demon.SetEvent(ui.__mem_func__(self.__OnClickch1_demon))
		self.ch2_offline_demon.SetEvent(ui.__mem_func__(self.__OnClickch2_demon))
		self.ch3_offline_demon.SetEvent(ui.__mem_func__(self.__OnClickch3_demon))
		self.ch4_offline_demon.SetEvent(ui.__mem_func__(self.__OnClickch4_demon))
		self.ch1_online_demon.SetEvent(ui.__mem_func__(self.__OnClickch1_demon))
		self.ch2_online_demon.SetEvent(ui.__mem_func__(self.__OnClickch2_demon))
		self.ch3_online_demon.SetEvent(ui.__mem_func__(self.__OnClickch3_demon))
		self.ch4_online_demon.SetEvent(ui.__mem_func__(self.__OnClickch4_demon))
		self.ch1_online_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch1_demon))
		self.ch2_online_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch2_demon))
		self.ch3_online_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch3_demon))
		self.ch4_online_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch4_demon))
		self.ch1_offline_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch1_demon))
		self.ch2_offline_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch2_demon))
		self.ch3_offline_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch3_demon))
		self.ch4_offline_markiert_demon.SetEvent(ui.__mem_func__(self.__OnClickch4_demon))
		print "XMAS_SNOW ON"
		background.EnableSnow(1)


		# RUNUP_MATRIX_AUTH
		if IsRunupMatrixAuth():
			self.matrixQuizBoard.Hide()
		# RUNUP_MATRIX_AUTH_END

		# NEWCIBN_PASSPOD_AUTH
		if IsNEWCIBNPassPodAuth():
			self.passpodBoard.Hide()
		# NEWCIBN_PASSPOD_AUTH_END

		self.serverBoard.SetPosition(self.xServerBoard, wndMgr.GetScreenHeight())
		self.serverBoard.Hide()

		if self.virtualKeyboard:
			self.virtualKeyboard.Show()
			
			self.__LoadACCNames()

		if app.loggined:
			self.Connect(self.id, self.pwd)
			self.connectBoard.Hide()
			self.loginBoard.Hide()
		elif not self.stream.isAutoLogin:
			self.connectBoard.Show()
			self.loginBoard.Show()

		## if users have the login infomation, then don't initialize.2005.9 haho
		if self.idEditLine == None:
			self.idEditLine.SetText("")
		if self.pwdEditLine == None:
			self.pwdEditLine.SetText("")

		self.idEditLine.SetFocus()
		
		##Statecheck
		import socket, os
		ip = DEINEIP
		s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		#s3 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Einkommentieren wenn CH 3 + 4 
		#s4 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Einkommentieren wenn CH 3 + 4 
		#Channel1
		try:
			s.connect((ip,CH1PORT))
			s.close()
			self.ch1_offline_demon.Hide()
			self.ch1_online_demon.Show()
			CH1STATE = 1
		except:
			self.ch1_online_demon.Hide()
			CH1STATE = 0
			s.close()
		
		#Channel2	
		try:
			s2.connect((ip,CH2PORT))
			s2.close()
			CH2STATE = 1
			self.ch2_offline_demon.Hide()
			self.ch2_online_demon.Show()
		except:
			self.ch2_online_demon.Hide()
			CH2STATE = 0
			s2.close()
		
		####Channel3 Einkommentieren wenn CH 3 + 4 
		#try:
		#	s3.connect((ip,CH3PORT))
		#	s3.close()
		#	CH3STATE = 1
		#	self.ch3_offline_demon.Hide()
		#	self.ch3_online_demon.Show()
		#except:
		#	self.ch3_online_demon.Hide()
		#	CH3STATE = 0
		#
		###Channel4
		#try:
		#	s4.connect((ip,CH4PORT))
		#	s4.close()
		#	CH4STATE = 1
		#	self.ch4_offline_demon.Hide()
		#	self.ch4_online_demon.Show()
		#except:
		#	self.ch4_online_demon.Hide()
		#	CH4STATE = 0
		
		self.stream.SetConnectInfo(DEINEIP, CH1PORT, DEINEIP, AUTHPORT)
		net.SetServerInfo(SERVERNAME + " - Ch 1")
		net.SetMarkServer(DEINEIP, CH1PORT)
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")  
		if CH1STATE:
			self.ch1_online_demon.Hide()
			self.ch1_online_markiert_demon.Show()
		else:
			self.ch1_offline_demon.Hide()
			self.ch1_offline_markiert_demon.Show()
		
		if CH2STATE:
			self.ch2_online_demon.Show()
			self.ch2_online_markiert_demon.Hide()
		else:
			self.ch2_offline_demon.Show()
			self.ch2_offline_markiert_demon.Hide()
			
		if CH3STATE:
			self.ch3_online_demon.Show()
			self.ch3_online_markiert_demon.Hide()
		else:
			self.ch3_offline_demon.Show()
			self.ch3_offline_markiert_demon.Hide()
			
		if CH4STATE:
			self.ch4_online_demon.Show()
			self.ch4_online_markiert_demon.Hide()
		else:
			self.ch4_offline_demon.Show()
			self.ch4_offline_markiert_demon.Hide()

		global SKIP_LOGIN_PHASE
		if SKIP_LOGIN_PHASE:
			if not self.loginInfo:
				self.connectBoard.Hide()
				
	def __OpenLoginBoard(self):
		print "XMAS_SNOW ON"
		background.EnableSnow(1)

		# RUNUP_MATRIX_AUTH
		if IsRunupMatrixAuth():
			self.matrixQuizBoard.Hide()
		# RUNUP_MATRIX_AUTH_END

		# NEWCIBN_PASSPOD_AUTH
		if IsNEWCIBNPassPodAuth():
			self.passpodBoard.Hide()
		# NEWCIBN_PASSPOD_AUTH_END

		self.serverBoard.SetPosition(self.xServerBoard, wndMgr.GetScreenHeight())
		self.serverBoard.Hide()

		if self.virtualKeyboard:
			self.virtualKeyboard.Show()
			
			self.__LoadACCNames()

		if app.loggined:
			self.Connect(self.id, self.pwd)
			self.connectBoard.Hide()
			self.loginBoard.Hide()
		elif not self.stream.isAutoLogin:
			self.connectBoard.Show()
			self.loginBoard.Show()

		## if users have the login infomation, then don't initialize.2005.9 haho
		if self.idEditLine == None:
			self.idEditLine.SetText("")
		if self.pwdEditLine == None:
			self.pwdEditLine.SetText("")

		self.idEditLine.SetFocus()

		global SKIP_LOGIN_PHASE
		if SKIP_LOGIN_PHASE:
			if not self.loginInfo:
				self.connectBoard.Hide()

	def __OnSelectRegionGroup(self):
		self.__RefreshServerList()

	def __OnSelectSettlementArea(self):
		# SEVER_LIST_BUG_FIX
		regionID = self.__GetRegionID()
		serverID = self.serverListOnRegionBoard.GetSelectedItem()

		serverIndex = self.__ServerIDToServerIndex(regionID, serverID)
		self.serverList.SelectItem(serverIndex)
		# END_OF_SEVER_LIST_BUG_FIX
		
		self.__OnSelectServer()

	def __RefreshServerList(self):
		regionID = self.__GetRegionID()
		
		if not serverInfo.REGION_DICT.has_key(regionID):
			return

		self.serverList.ClearItem()

		regionDict = serverInfo.REGION_DICT[regionID]

		# SEVER_LIST_BUG_FIX
		visible_index = 1
		for id, regionDataDict in regionDict.items():
			name = regionDataDict.get("name", "noname")
			if locale.IsBRAZIL() or locale.IsCANADA():
				self.serverList.InsertItem(id, "%s" % (name))
			else:
				if locale.IsCIBN10():			
					if name[0] == "#":
						self.serverList.InsertItem(-1, "  %s" % (name[1:]))
					else:
						self.serverList.InsertItem(id, "  %s" % (name))
						visible_index += 1
				else:
					self.serverList.InsertItem(id, "  %02d. %s" % (visible_index, name))
					
					visible_index += 1
		
		# END_OF_SEVER_LIST_BUG_FIX

	def __OnSelectServer(self):
		self.__OnCloseInputDialog()
		self.__RequestServerStateList()
		self.__RefreshServerStateList()

	def __RequestServerStateList(self):
		regionID = self.__GetRegionID()
		serverID = self.__GetServerID()

		try:
			channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
		except:
			print " __RequestServerStateList - serverInfo.REGION_DICT(%d, %d)" % (regionID, serverID)
			return

		for id, channelDataDict in channelDict.items():
			key=channelDataDict["key"]
			ip=channelDataDict["ip"]
			udp_port=channelDataDict["udp_port"]
			ServerStateChecker.Request(key, ip, udp_port)

	def __RefreshServerStateList(self):

		regionID = self.__GetRegionID()
		serverID = self.__GetServerID()
		bakChannelID = self.channelList.GetSelectedItem()

		self.channelList.ClearItem()

		try:
			channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
		except:
			print " __RequestServerStateList - serverInfo.REGION_DICT(%d, %d)" % (regionID, serverID)
			return

		for channelID, channelDataDict in channelDict.items():
			channelName = channelDataDict["name"]
			channelState = channelDataDict["state"]
			self.channelList.InsertItem(channelID, " %s %s" % (channelName, channelState))

		self.channelList.SelectItem(bakChannelID-1)

	def __GetChannelName(self, regionID, selServerID, selChannelID):
		try:
			return serverInfo.REGION_DICT[regionID][selServerID]["channel"][selChannelID]["name"]
		except KeyError:
			if 9==selChannelID:
				return locale.CHANNEL_PVP
			else:
				return locale.CHANNEL_NORMAL % (selChannelID)

	def NotifyChannelState(self, addrKey, state):
		try:
			stateName=serverInfo.STATE_DICT[state]
		except:
			stateName=serverInfo.STATE_NONE

		regionID=int(addrKey/1000)
		serverID=int(addrKey/10) % 100
		channelID=addrKey%10

		try:
			serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] = stateName
			self.__RefreshServerStateList()

		except:
			import exception
			exception.Abort(locale.CHANNEL_NOT_FIND_INFO)

	def __OnClickExitServerButton(self):
		print "exit server"
		self.__OpenLoginBoard()			

		if IsFullBackImage():
			self.GetChild("demonking").Show()
			

	def __OnClickSelectRegionButton(self):
		regionID = self.__GetRegionID()
		serverID = self.__GetServerID()

		if (not serverInfo.REGION_DICT.has_key(regionID)):
			self.PopupNotifyMessage(locale.CHANNEL_SELECT_REGION)
			return

		if (not serverInfo.REGION_DICT[regionID].has_key(serverID)):
			self.PopupNotifyMessage(locale.CHANNEL_SELECT_SERVER)
			return		

		self.__SaveChannelInfo()

		self.__RefreshServerList()
		self.__OpenServerBoard()

	def __OnClickch1_demon(self):
		global DEINEIP
		global CH1PORT
		global AUTHPORT
		global SERVERNAME
		self.stream.SetConnectInfo(DEINEIP, CH1PORT, DEINEIP, AUTHPORT)
		net.SetServerInfo(SERVERNAME + " - Ch 1")
		net.SetMarkServer(DEINEIP, CH1PORT)
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")  
		if CH1STATE:
			self.ch1_online_demon.Hide()
			self.ch1_online_markiert_demon.Show()
		else:
			self.ch1_offline_demon.Hide()
			self.ch1_offline_markiert_demon.Show()
		
		if CH2STATE:
			self.ch2_online_demon.Show()
			self.ch2_online_markiert_demon.Hide()
		else:
			self.ch2_offline_demon.Show()
			self.ch2_offline_markiert_demon.Hide()
			
		if CH3STATE:
			self.ch3_online_demon.Show()
			self.ch3_online_markiert_demon.Hide()
		else:
			self.ch3_offline_demon.Show()
			self.ch3_offline_markiert_demon.Hide()
			
		if CH4STATE:
			self.ch4_online_demon.Show()
			self.ch4_online_markiert_demon.Hide()
		else:
			self.ch4_offline_demon.Show()
			self.ch4_offline_markiert_demon.Hide()

	def __OnClickch2_demon(self):
		global DEINEIP
		global CH2PORT
		global AUTHPORT
		global SERVERNAME
		self.stream.SetConnectInfo(DEINEIP, CH2PORT, DEINEIP, AUTHPORT)
		net.SetServerInfo(SERVERNAME + " - Ch 2")
		net.SetMarkServer(DEINEIP, CH2PORT)
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")  
		if CH2STATE:
			self.ch2_online_demon.Hide()
			self.ch2_online_markiert_demon.Show()
		else:
			self.ch2_offline_demon.Hide()
			self.ch2_offline_markiert_demon.Show()
		
		if CH1STATE:
			self.ch1_online_demon.Show()
			self.ch1_online_markiert_demon.Hide()
		else:
			self.ch1_offline_demon.Show()
			self.ch1_offline_markiert_demon.Hide()
			
		if CH3STATE:
			self.ch3_online_demon.Show()
			self.ch3_online_markiert_demon.Hide()
		else:
			self.ch3_offline_demon.Show()
			self.ch3_offline_markiert_demon.Hide()
			
		if CH4STATE:
			self.ch4_online_demon.Show()
			self.ch4_online_markiert_demon.Hide()
		else:
			self.ch4_offline_demon.Show()
			self.ch4_offline_markiert_demon.Hide()

	def __OnClickch3_demon(self):
		global DEINEIP
		global CH3PORT
		global AUTHPORT
		global SERVERNAME
		self.stream.SetConnectInfo(DEINEIP, CH3PORT, DEINEIP, AUTHPORT)
		net.SetServerInfo(SERVERNAME + " - Ch 3")
		net.SetMarkServer(DEINEIP, CH3PORT)
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")  
		if CH3STATE:
			self.ch3_online_demon.Hide()
			self.ch3_online_markiert_demon.Show()
		else:
			self.ch3_offline_demon.Hide()
			self.ch3_offline_markiert_demon.Show()
		
		if CH2STATE:
			self.ch2_online_demon.Show()
			self.ch2_online_markiert_demon.Hide()
		else:
			self.ch2_offline_demon.Show()
			self.ch2_offline_markiert_demon.Hide()
			
		if CH1STATE:
			self.ch1_online_demon.Show()
			self.ch1_online_markiert_demon.Hide()
		else:
			self.ch1_offline_demon.Show()
			self.ch1_offline_markiert_demon.Hide()
			
		if CH4STATE:
			self.ch4_online_demon.Show()
			self.ch4_online_markiert_demon.Hide()
		else:
			self.ch4_offline_demon.Show()
			self.ch4_offline_markiert_demon.Hide()
		
	def __OnClickch4_demon(self):
		global DEINEIP
		global CH4PORT
		global AUTHPORT
		global SERVERNAME
		self.stream.SetConnectInfo(DEINEIP, CH4PORT, DEINEIP, AUTHPORT)
		net.SetServerInfo(SERVERNAME + " - Ch 4")
		net.SetMarkServer(DEINEIP, CH4PORT)
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")  
		if CH4STATE:
			self.ch4_online_demon.Hide()
			self.ch4_online_markiert_demon.Show()
		else:
			self.ch4_offline_demon.Hide()
			self.ch4_offline_markiert_demon.Show()
		
		if CH2STATE:
			self.ch2_online_demon.Show()
			self.ch2_online_markiert_demon.Hide()
		else:
			self.ch2_offline_demon.Show()
			self.ch2_offline_markiert_demon.Hide()
			
		if CH3STATE:
			self.ch3_online_demon.Show()
			self.ch3_online_markiert_demon.Hide()
		else:
			self.ch3_offline_demon.Show()
			self.ch3_offline_markiert_demon.Hide()
			
		if CH1STATE:
			self.ch1_online_demon.Show()
			self.ch1_online_markiert_demon.Hide()
		else:
			self.ch1_offline_demon.Show()
			self.ch1_offline_markiert_demon.Hide()
		
	def __forum(self):
		global FORUMLINK
		os.system("start " + FORUMLINK)
		
	def __youtube(self):
		global YOUTUBELINK
		os.system("start " + YOUTUBELINK)
		
	def __facebook(self):
		global FACEBOOKLINK
		os.system("start " + FACEBOOKLINK)
		
	def __OnClickLoginButton(self):
		id = self.idEditLine.GetText()
		pwd = self.pwdEditLine.GetText()		

		if len(id)==0:
			self.PopupNotifyMessage(locale.LOGIN_INPUT_ID, self.SetIDEditLineFocus)
			return

		if len(pwd)==0:
			self.PopupNotifyMessage(locale.LOGIN_INPUT_PASSWORD, self.SetPasswordEditLineFocus)
			return
		if LOGINDATENSPEICHERN==1:
			id = self.idEditLine.GetText()
			pwd = self.pwdEditLine.GetText()
			f = open("pack\loginsetting", "w")
			f.write (id + "\n" + pwd)
			f.close()

		self.Connect(id, pwd)

ab dem kommentar "ab hier nix mehr ändern hab ich nix geändert


edit: danke für deine hilfe habs auch so geschafft ..
Zero.™ is offline  
Old 09/05/2013, 21:59   #11

 
elite*gold: 1143
Join Date: Jun 2012
Posts: 800
Received Thanks: 399
haste die 2 modules in client gepackt? hab ich beim ersten mal auch vergessen

->
runterladen und die 2 dateien daraus im client in den "lib" ordner tun. Dann sollte es klappen oO

€: Grad erst gelesen das dus schon geschafft hast ._.
x'Kyubi is offline  
Thanks
1 User
Old 09/27/2013, 21:59   #12
 
elite*gold: 0
Join Date: Feb 2011
Posts: 139
Received Thanks: 124
Selber Fehler :'(
dragoniraqer is offline  
Old 09/27/2013, 22:09   #13
 
elite*gold: 0
Join Date: Sep 2013
Posts: 329
Received Thanks: 78
@TE

Die Lösung für andere zu posten wäre sinnvoll.
blaubarschbubeasfasd is offline  
Thanks
1 User
Old 02/04/2016, 23:15   #14
 
laiton's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 12
Received Thanks: 1
sorry for necroposting, but i have similar problems.
i put the 2 socket in the client/lib folder, but the client say:


syserr:
Quote:
0204 23:11:36486 :: ================================================== ================================================== ========
0204 23:11:36487 :: Abort!!!!
can someone help me?
thx
laiton is offline  
Old 02/06/2016, 12:59   #15
 
laiton's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 12
Received Thanks: 1
up
laiton is offline  
Reply


Similar Threads Similar Threads
logininterface fail
08/29/2013 - Metin2 Private Server - 0 Replies
ich hab neuen logininterface eingefügt, und hab in der intrologin.py die IP's umgeändert (xx.xxx.xxx.100) und habe root gepackt und in pack eingefügt .. aber es kommt immer "verbinden mit dem server fehlgeschlagen" .. hab die files von xGr33n & Client auch (Invoice files & client) bitte hilfe
Metin2 Logininterface
08/29/2013 - Metin2 Private Server - 1 Replies
Hey, habe ein kleines Problem mit diesem Interface ; http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/2738324-release-login-interface-d esign-aza-code-avenue.html Wenn ich den Server auswähle und den Channel, dann auf "OK" klicke, passiert nichts weiter. An welcher Datei kann es liegen ? http://i.epvpimg.com/tVeIh.jpg
[Selling] First Hot Logininterface
07/26/2013 - Metin2 Trading - 3 Replies
Hallo liebe Community, Heute verkauf ich mein erstes Logininterface ## Info ## Das Channelauswahl-Feld (oben in der Mitte) ist ein- & ausfahrbar! (wenn man den Channelauswahl-Button tätigt) Alles Funktioniert ### thanks to Avenue mein brooo
[NEW]Loginboard/Logininterface
01/27/2013 - Metin2 Private Server - 32 Replies
Huhu, mir war wieder langweilig und habe bisschen rumgebastelt. Meine Frage ist; Wie findet ihr das? Wenn es euch nicht gefällt, dann sagt mir bitte was ich verbessern kann. Bitte nicht beleidigen.. 800x600 failt es leider. :D Die Texte wurden mit "URLLib" erstellt, falls es jemand wissen möchte. (Wurde ohne Tool erstellt...)



All times are GMT +2. The time now is 11:31.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.