Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Jak zrobić serwer na Plikach Waternox


TMK.off

Rekomendowane odpowiedzi

Opublikowano

Witajcie , pokaże wam jak zrobić serwer na plikach waternox


1. Od strony clienta

po pierwsze to nie zmieniamy IP z serverinfo.py tylko z IntroLogin.py


więc tak wygląda intrologin.py

 

 

import os
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 urllib
#import urllib
import string
#from urllib import FancyURLopener

sklad_url = "http://strona.pl/clients/sklad.txt"
event_url = "http://strona.pl/clients/eventy.txt"
news_url = "http://strona.pl/clients/news.txt"
reje_url = "http://strona.pl/index.php?t=rejestracja"
newsy_url = "http://strona.pl/index.php?t=aktualnosci"
glowna_url = "http://strona.pl/index.php"
forum_url = "http://strona.pl/forum/"
youtube_url = "http://youtube.com/Nazwa Serawerapl"
facebook_url = "http://facebook.com/Nazwa Serawerapl"

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

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.comp = Component()
			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):
		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"		: "Twoje konto zostało zablokowane za korzystanie z nielegalnego oprogramowania.",
			"BOT"		: "Twoje konto zostało zablokowane za korzystanie z nielegalnego oprogramowania.",
			"SCAM"		: "Twoje konto zostało zablokowane.",
			"INSULT"	: "Twoje konto zostało zablokowane.",
			"FAKE"		: "Twoje konto zostało zablokowane za podanie fałszywych danych.",
			"NAME"		: "Twoje konto zostało zablokowane za podanie fałszywych danych.",
			"BUG"		: "Twoje konto zostało zablokowane za bugsing.",
			"DK"		: "Twoje konto zostało zablokowane za nielegalne zabijanie.",
			"OTHER"		: "Twoje konto zostało zablokowane.",
		}

		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("bg1").Show()
					self.GetChild("bg2").Hide()

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

		app.ShowCursor()
		self.RunCheckUp()
		self.registerBoard.Hide()
		self.questionBoard.Hide()
	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.pwd2EditLine.SetReturnEvent(0)
		self.pwd2EditLine.SetTabEvent(0)

		self.connectBoard = None
		self.loginBoard = None
		self.registerBoard = None
		self.questionBoard = None
		self.idEditLine = None
		self.pwdEditLine = None
		self.pwd2EditLine = 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.GetChild("key_space").SetEvent(None)
			self.GetChild("key_backspace").SetEvent(None)
			self.GetChild("key_enter").SetEvent(None)
			self.GetChild("key_shift").SetToggleDownEvent(None)
			self.GetChild("key_shift").SetToggleUpEvent(None)
			self.GetChild("key_at").SetToggleDownEvent(None)
			self.GetChild("key_at").SetToggleUpEvent(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("")
				self.pwd2EditLine.SetText("")

			if self.pwd2EditLine != None: #0000862: [M2EU] ·Î±×ŔÎâ ĆËľ÷ żˇ·Ż: Áľ·á˝Ă ¸ŐŔú None ĽłÁ¤µĘ
				self.pwdEditLine.SetText("")
				self.pwd2EditLine.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):
		self.login_UP() 

	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.registerBoard			= GetObject("RegisterBoard")
			self.questionBoard			= GetObject("QuestionBoard")
			self.quesButton		    	= GetObject("QuestionButton")
			self.ques1Button		    = GetObject("Question1Button")
			self.ques2Button		    = GetObject("Question2Button")
			self.ques3Button		    = GetObject("Question3Button")
			self.ques4Button		    = GetObject("Question4Button")
			self.ques5Button		    = GetObject("Question5Button")
			self.ques6Button		    = GetObject("Question6Button")
			self.ques7Button		    = GetObject("Question7Button")
			self.ques8Button		    = GetObject("Question8Button")
			self.ques9Button		    = GetObject("Question9Button")
			self.id1EditLine			= GetObject("ID1_EditLine")
			self.pwd1EditLine			= GetObject("Password1_EditLine")
			self.mailEditLine			= GetObject("E_Mail_EditLine")
			self.delEditLine			= GetObject("Delete_EditLine")
			self.answEditLine			= GetObject("Answer_EditLine")
			self.regiButton				= GetObject("RegiButton")
			self.voteButton				= GetObject("VoteButton")
			self.youtubeButton			= GetObject("AboButton")
			self.HomepageButton			= GetObject("HomepageButton")
			self.ForumButton			= GetObject("ForumButton")
			self.facebookButton			= GetObject("AboButton1")
			self.registerButton			= GetObject("RegisterButton")
			self.registerExitButton		= GetObject("RegisterExitButton")
			self.serverList				= GetObject("ServerList")
			self.channelList			= GetObject("ChannelList")
			self.serverSelectButton		= GetObject("ServerSelectButton")			
			self.serverExitButton		= GetObject("ServerExitButton")
			self.connectBoard			= GetObject("ConnectBoard")
			self.loginBoard				= GetObject("LoginBoard")
			self.idEditLine				= GetObject("ID_EditLine")
			self.pwdEditLine			= GetObject("Password_EditLine")
			self.pwd2EditLine			= GetObject("Password2_EditLine")
			self.serverInfo				= GetObject("ConnectName")
			#self.Channel1Button	= GetObject("Channel1Button")
			self.Channel1Button	= GetObject("Channel1Button")
			self.Channel2Button	= GetObject("Channel2Button")
			self.Channel3Button	= GetObject("Channel3Button")
			self.Channel4Button = GetObject("Channel4Button")
			self.loginButton			= GetObject("LoginButton")
			self.loginExitButton		= GetObject("LoginExitButton")
			
			## ACCMANAGER
			
			self.acc1loginButton		= GetObject("Acc1Login")
			self.acc2loginButton		= GetObject("Acc2Login")
			self.acc3loginButton		= GetObject("Acc3Login")
			self.acc4loginButton		= GetObject("Acc4Login")
			self.LoginSaveButton		= GetObject("LoginSaveButton")
			self.ACC1_LABEL		= GetObject("ACC1_LABEL")
			self.ACC2_LABEL		= GetObject("ACC2_LABEL")
			self.ACC3_LABEL		= GetObject("ACC3_LABEL")
			self.ACC4_LABEL		= GetObject("ACC4_LABEL")
			self.ACC1__LABEL		= GetObject("ACC1__LABEL")
			self.ACC2__LABEL		= GetObject("ACC2__LABEL")
			self.ACC3__LABEL		= GetObject("ACC3__LABEL")
			self.ACC4__LABEL		= GetObject("ACC4__LABEL")
			
			self.Acc1Del		= GetObject("Acc1Del")
			self.Acc2Del		= GetObject("Acc2Del")
			self.Acc3Del		= GetObject("Acc3Del")
			self.Acc4Del		= GetObject("Acc4Del")
			
			self.AccEditButton		= GetObject("AccEditButton")
			self.AccFEditButton		= GetObject("AccFEditButton")
	
			self.regiButton				= GetObject("RegiButton")
			self.registerButton			= GetObject("RegisterButton")
			self.registerExitButton		= GetObject("RegisterExitButton")
			# 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")
			self.AccountBoard		= self.GetChild2("AccountBoard")
			self.AccEditBoard		= self.GetChild2("AccEditBoard")

			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()
			
				self.GetChild("key_space").SetEvent(lambda : self.__VirtualKeyboard_PressKey(' '))
				self.GetChild("key_backspace").SetEvent(lambda : self.__VirtualKeyboard_PressBackspace())
				self.GetChild("key_enter").SetEvent(lambda : self.__VirtualKeyboard_PressReturn())
				self.GetChild("key_shift").SetToggleDownEvent(lambda : self.__VirtualKeyboard_SetUpperMode())
				self.GetChild("key_shift").SetToggleUpEvent(lambda : self.__VirtualKeyboard_SetLowerMode())
				self.GetChild("key_at").SetToggleDownEvent(lambda : self.__VirtualKeyboard_SetSymbolMode())
				self.GetChild("key_at").SetToggleUpEvent(lambda : self.__VirtualKeyboard_SetAlphabetMode())

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

		if self.IS_TEST:
			self.Channel1Button.Hide()
		else:
			self.Channel1Button.SetEvent(ui.__mem_func__(self.__OnClickChannel1Button))

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

		self.serverSelectButton.SetEvent(ui.__mem_func__(self.__OnClickSelectServerButton))
		self.serverExitButton.SetEvent(ui.__mem_func__(self.__OnClickExitButton))

		self.loginButton.SetEvent(ui.__mem_func__(self.__OnClickLoginButton))
		self.loginExitButton.SetEvent(ui.__mem_func__(self.__OnClickExitButton))
		
		## ACCMANAGER
		
		self.acc1loginButton.SetEvent(ui.__mem_func__(self.__OnClickACC1LoginButton))
		self.acc2loginButton.SetEvent(ui.__mem_func__(self.__OnClickACC2LoginButton))
		self.acc3loginButton.SetEvent(ui.__mem_func__(self.__OnClickACC3LoginButton))
		self.acc4loginButton.SetEvent(ui.__mem_func__(self.__OnClickACC4LoginButton))
		self.LoginSaveButton.SetEvent(ui.__mem_func__(self.__OnClickLoginSaveButton))
		
		self.Acc1Del.SetEvent(ui.__mem_func__(self.__OnClickAcc1DelButton))
		self.Acc2Del.SetEvent(ui.__mem_func__(self.__OnClickAcc2DelButton))
		self.Acc3Del.SetEvent(ui.__mem_func__(self.__OnClickAcc3DelButton))
		self.Acc4Del.SetEvent(ui.__mem_func__(self.__OnClickAcc4DelButton))
		
		self.AccEditButton.SetEvent(ui.__mem_func__(self.__OnClickAccEditButton))
		self.AccFEditButton.SetEvent(ui.__mem_func__(self.__OnClickAccFEditButton))
		self.regiButton.SetEvent(ui.__mem_func__(self.__OnClickRegiButton))
		self.voteButton.SetEvent(ui.__mem_func__(self.__OnClickVoteButton))
		self.youtubeButton.SetEvent(ui.__mem_func__(self.__OnClickYouTubeButton))
		self.HomepageButton.SetEvent(ui.__mem_func__(self.__OnClickHomepageButton))
		self.ForumButton.SetEvent(ui.__mem_func__(self.__OnClickForumButton))
		self.facebookButton.SetEvent(ui.__mem_func__(self.__OnClickFacebookButton))
		self.registerButton.SetEvent(ui.__mem_func__(self.__OnClickRegisterButton))
		self.registerExitButton.SetEvent(ui.__mem_func__(self.__OnClickRegisterExitButton))
		
		self.quesButton.SetEvent(ui.__mem_func__(self.__OnClickQuestionButton))
		self.ques1Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion1Button))
		self.ques2Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion2Button))
		self.ques3Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion3Button))
		self.ques4Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion4Button))
		self.ques5Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion5Button))
		self.ques6Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion6Button))
		self.ques7Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion7Button))
		self.ques8Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion8Button))
		self.ques9Button.SetEvent(ui.__mem_func__(self.__OnClickQuestion9Button))

		## 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.pwd2EditLine.SetFocus))
		self.pwdEditLine.SetTabEvent(ui.__mem_func__(self.pwd2EditLine.SetFocus))

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

		self.id1EditLine.SetReturnEvent(ui.__mem_func__(self.pwd1EditLine.SetFocus))
		self.id1EditLine.SetTabEvent(ui.__mem_func__(self.pwd1EditLine.SetFocus))

		

		self.mailEditLine.SetReturnEvent(ui.__mem_func__(self.delEditLine.SetFocus))
		self.mailEditLine.SetTabEvent(ui.__mem_func__(self.delEditLine.SetFocus))
		
		self.delEditLine.SetReturnEvent(ui.__mem_func__(self.__OnClickQuestionButton))
		self.delEditLine.SetTabEvent(ui.__mem_func__(self.__OnClickQuestionButton))
		
		self.answEditLine.SetReturnEvent(ui.__mem_func__(self.__OnClickRegisterButton))
		self.answEditLine.SetTabEvent(ui.__mem_func__(self.__OnClickRegisterButton))
		try:
			a = urllib.urlopen(sklad_url)
			c = urllib.urlopen(event_url)
			e = urllib.urlopen(news_url)
			b = a.readlines()
			d = c.readlines()
			f = e.readlines()

		####Team###
			self.Team1 = ui.TextLine()
			self.Team1.SetParent(self)
			self.Team1.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+20)
			self.Team1.SetFeather()
			self.Team1.SetDefaultFontName()
			self.Team1.SetText(b[0])
			self.Team1.SetFontColor(1.0, 1.0, 1.0)
			self.Team1.SetOutline()
			self.Team1.Show()

			self.Team2 = ui.TextLine()
			self.Team2.SetParent(self)
			self.Team2.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+50)
			self.Team2.SetFeather()
			self.Team2.SetDefaultFontName()
			self.Team2.SetText(b[1])
			self.Team2.SetFontColor(1.0, 1.0, 1.0)
			self.Team2.SetOutline()
			self.Team2.Show()

			self.Team3 = ui.TextLine()
			self.Team3.SetParent(self)
			self.Team3.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+65)
			self.Team3.SetFeather()
			self.Team3.SetDefaultFontName()
			self.Team3.SetText(b[2])
			self.Team3.SetFontColor(1.0, 1.0, 1.0)
			self.Team3.SetOutline()
			self.Team3.Show()

			self.Team4 = ui.TextLine()
			self.Team4.SetParent(self)
			self.Team4.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+95)
			self.Team4.SetFeather()
			self.Team4.SetDefaultFontName()
			self.Team4.SetText(b[3])
			self.Team4.SetFontColor(1.0, 1.0, 1.0)
			self.Team4.SetOutline()
			self.Team4.Show()

			self.Team5 = ui.TextLine()
			self.Team5.SetParent(self)
			self.Team5.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+110)
			self.Team5.SetFeather()
			self.Team5.SetDefaultFontName()
			self.Team5.SetText(b[4])
			self.Team5.SetFontColor(1.0, 1.0, 1.0)
			self.Team5.SetOutline()
			self.Team5.Show()

			self.Team6 = ui.TextLine()
			self.Team6.SetParent(self)
			self.Team6.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+125)
			self.Team6.SetFeather()
			self.Team6.SetDefaultFontName()
			self.Team6.SetText(b[5])
			self.Team6.SetFontColor(1.0, 1.0, 1.0)
			self.Team6.SetOutline()
			self.Team6.Show()

			self.Team7 = ui.TextLine()
			self.Team7.SetParent(self)
			self.Team7.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+140)
			self.Team7.SetFeather()
			self.Team7.SetDefaultFontName()
			self.Team7.SetText(b[6])
			self.Team7.SetFontColor(1.0, 1.0, 1.0)
			self.Team7.SetOutline()
			self.Team7.Show()

		###Eventkalender###
			self.Event1 = ui.TextLine()
			self.Event1.SetParent(self)
			self.Event1.SetPosition((wndMgr.GetScreenWidth()/2)-130,(wndMgr.GetScreenHeight()/2)+110)
			self.Event1.SetFeather()
			self.Event1.SetDefaultFontName()
			self.Event1.SetText(d[0])
			self.Event1.SetFontColor(1.0, 1.0, 1.0)
			self.Event1.SetOutline()
			self.Event1.Show()

			self.Event2 = ui.TextLine()
			self.Event2.SetParent(self)
			self.Event2.SetPosition((wndMgr.GetScreenWidth()/2)-130,(wndMgr.GetScreenHeight()/2)+125)
			self.Event2.SetFeather()
			self.Event2.SetDefaultFontName()
			self.Event2.SetText(d[1])
			self.Event2.SetFontColor(1.0, 1.0, 1.0)
			self.Event2.SetOutline()
			self.Event2.Show()

			self.Event3 = ui.TextLine()
			self.Event3.SetParent(self)
			self.Event3.SetPosition((wndMgr.GetScreenWidth()/2)-130,(wndMgr.GetScreenHeight()/2)+140)
			self.Event3.SetFeather()
			self.Event3.SetDefaultFontName()
			self.Event3.SetText(d[2])
			self.Event3.SetFontColor(1.0, 1.0, 1.0)
			self.Event3.SetOutline()
			self.Event3.Show()

			self.Event4 = ui.TextLine()
			self.Event4.SetParent(self)
			self.Event4.SetPosition((wndMgr.GetScreenWidth()/2)-130,(wndMgr.GetScreenHeight()/2)+155)
			self.Event4.SetFeather()
			self.Event4.SetDefaultFontName()
			self.Event4.SetText(d[3])
			self.Event4.SetFontColor(1.0, 1.0, 1.0)
			self.Event4.SetOutline()
			self.Event4.Show()

			self.Event5 = ui.TextLine()
			self.Event5.SetParent(self)
			self.Event5.SetPosition((wndMgr.GetScreenWidth()/2)-130,(wndMgr.GetScreenHeight()/2)+170)
			self.Event5.SetFeather()
			self.Event5.SetDefaultFontName()
			self.Event5.SetText(d[4])
			self.Event5.SetFontColor(1.0, 1.0, 1.0)
			self.Event5.SetOutline()
			self.Event5.Show()

		###Regeln###
			self.Rules1 = ui.TextLine()
			self.Rules1.SetParent(self)
			self.Rules1.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-155)
			self.Rules1.SetFeather()
			self.Rules1.SetDefaultFontName()
			self.Rules1.SetText(f[0])
			self.Rules1.SetFontColor(1.0, 1.0, 1.0)
			self.Rules1.SetOutline()
			self.Rules1.Show()

			self.Rules2 = ui.TextLine()
			self.Rules2.SetParent(self)
			self.Rules2.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-140)
			self.Rules2.SetFeather()
			self.Rules2.SetDefaultFontName()
			self.Rules2.SetText(f[1])
			self.Rules2.SetFontColor(1.0, 1.0, 1.0)
			self.Rules2.SetOutline()
			self.Rules2.Show()

			self.Rules3 = ui.TextLine()
			self.Rules3.SetParent(self)
			self.Rules3.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-125)
			self.Rules3.SetFeather()
			self.Rules3.SetDefaultFontName()
			self.Rules3.SetText(f[2])
			self.Rules3.SetFontColor(1.0, 1.0, 1.0)
			self.Rules3.SetOutline()
			self.Rules3.Show()

			self.Rules4 = ui.TextLine()
			self.Rules4.SetParent(self)
			self.Rules4.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-110)
			self.Rules4.SetFeather()
			self.Rules4.SetDefaultFontName()
			self.Rules4.SetText(f[3])
			self.Rules4.SetFontColor(1.0, 1.0, 1.0)
			self.Rules4.SetOutline()
			self.Rules4.Show()

			self.Rules5 = ui.TextLine()
			self.Rules5.SetParent(self)
			self.Rules5.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-95)
			self.Rules5.SetFeather()
			self.Rules5.SetDefaultFontName()
			self.Rules5.SetText(f[4])
			self.Rules5.SetFontColor(1.0, 1.0, 1.0)
			self.Rules5.SetOutline()
			self.Rules5.Show()

			self.Rules6 = ui.TextLine()
			self.Rules6.SetParent(self)
			self.Rules6.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-80)
			self.Rules6.SetFeather()
			self.Rules6.SetDefaultFontName()
			self.Rules6.SetText(f[5])
			self.Rules6.SetFontColor(1.0, 1.0, 1.0)
			self.Rules6.SetOutline()
			self.Rules6.Show()

			self.Rules7 = ui.TextLine()
			self.Rules7.SetParent(self)
			self.Rules7.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-65)
			self.Rules7.SetFeather()
			self.Rules7.SetDefaultFontName()
			self.Rules7.SetText(f[6])
			self.Rules7.SetFontColor(1.0, 1.0, 1.0)
			self.Rules7.SetOutline()
			self.Rules7.Show()
		except:
		####Team###
			self.Team1 = ui.TextLine()
			self.Team1.SetParent(self)
			self.Team1.SetPosition((wndMgr.GetScreenWidth()/2)-360,(wndMgr.GetScreenHeight()/2)+20)
			self.Team1.SetFeather()
			self.Team1.SetDefaultFontName()
			self.Team1.SetText("[SA]TEJLI")
			self.Team1.SetFontColor(1.0, 1.0, 1.0)
			self.Team1.SetOutline()
			self.Team1.Show()

		###Eventkalender###
			self.Event1 = ui.TextLine()
			self.Event1.SetParent(self)
			self.Event1.SetPosition((wndMgr.GetScreenWidth()/2)-130,(wndMgr.GetScreenHeight()/2)+110)
			self.Event1.SetFeather()
			self.Event1.SetDefaultFontName()
			self.Event1.SetText("Niepowodzenie podczas ładowania informacji.")
			self.Event1.SetFontColor(1.0, 1.0, 1.0)
			self.Event1.SetOutline()
			self.Event1.Show()

		###Regeln###
			self.Rules1 = ui.TextLine()
			self.Rules1.SetParent(self)
			self.Rules1.SetPosition((wndMgr.GetScreenWidth()/2)-170,(wndMgr.GetScreenHeight()/2)-155)
			self.Rules1.SetFeather()
			self.Rules1.SetDefaultFontName()
			self.Rules1.SetText("Niepowodzenie podczas ładowania informacji.")
			self.Rules1.SetFontColor(1.0, 1.0, 1.0)
			self.Rules1.SetOutline()
			self.Rules1.Show()

		# 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("bg1").Show()
			self.GetChild("bg2").Hide()
		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 RunCheckUp(self):
		if constInfo.SEQUENCE_PAKET_ENABLE:
			Whitelist = ['BGM', 'lib', 'locale', 'mark', 'miles', 'pack', 'screenshot', 'upload', 'artpclnt.dll', 'config.exe', 'devil.dll', 'DSETUP.dll', 'Nazwa Serawera.exe', 'fcbin.bin', 'granny2.dll', 'ijl15.dll', 'ilu.dll', 'locale.cfg', 'metin2.cfg', 'Microsoft.WindowsAPICodePack.dll', 'Microsoft.WindowsAPICodePack.Shell.dll', 'mouse.cfg', 'mscoree.dll', 'MSS32.DLL', 'msvcp60.dll', 'MSVCRTD.DLL', 'python22.dll', 'SpeedTreeRT.dll', 'syserr.txt', 'unicows.dll']
			
			path = os.getcwd()
			k = os.listdir(path)
			if k != Whitelist:
				####Starting_Phase01#####
				for item in k:
					if not item in Whitelist:
						dbg.LogBox("Usuwanie: " + str(item))
						try:
							os.remove(item)
						except:
							dbg.LogBox("Client Nazwa Serawera zostanie zamknięty!")
							dbg.LogBox("Proszę usuń plik: " + str(item))
							app.Abort()
					else:
						pass
			if Whitelist != k:
				#####-Starting_Phase02#######
				for missing in Whitelist:
					if not missing in k:
						dbg.LogBox("Brak pliku: " + str(missing))
						app.Exit()
					else:
						pass
			
	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, pwd2):

		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, "f" + pwd2 + "*" + pwd)
		self.stream.Connect()

	## ACCMANAGER
	
	def __OnClickAccEditButton(self):
		self.AccEditBoard.Show()
		self.AccountBoard.Hide()
		self.__LoadACCNames()
		
	def __OnClickAccFEditButton(self):
		self.AccEditBoard.Hide()
		self.AccountBoard.Show()
		self.__LoadACCNames()
	
	def __LoadACCNames(self):

		fd = open( "lib/zapisane_hasla/konto1.cfg" )
		login1 = fd.readline()
		login1.replace( "\n", "" )
		fd.close()

		fd = open( "lib/zapisane_hasla/konto2.cfg" )
		login2 = fd.readline()
		login2.replace( "\n", "" )
		fd.close()

		fd = open( "lib/zapisane_hasla/konto3.cfg" )
		login3 = fd.readline()
		login3.replace( "\n", "" )
		fd.close()

		fd = open( "lib/zapisane_hasla/konto4.cfg" )
		login4 = fd.readline()
		login4.replace( "\n", "" )
		fd.close()
	
		if login1 != "":
			self.ACC1__LABEL.SetText(login1)
			self.ACC1_LABEL.SetText(login1)
		if login2 != "":
			self.ACC2__LABEL.SetText(login2)
			self.ACC2_LABEL.SetText(login2)
		if login3 != "":
			self.ACC3__LABEL.SetText(login3)
			self.ACC3_LABEL.SetText(login3)
		if login4 != "":
			self.ACC4__LABEL.SetText(login4)
			self.ACC4_LABEL.SetText(login4)
	
	def __LoadACCInfos(self, accid):
		import linecache
		login = linecache.getline("lib/zapisane_hasla/konto" + str(accid) + ".cfg", 1)
		password = linecache.getline("lib/zapisane_hasla/konto" + str(accid) + ".cfg", 2)
		password2 = linecache.getline("lib/zapisane_hasla/konto" + str(accid) + ".cfg", 3)
		login = login.replace('\n', '')
		password = password.replace('\n', '')
		self.Connect(login, password, password2)
	
	def __OnClickACC1LoginButton(self):
		self.__LoadACCInfos(1)
	
	def __OnClickACC2LoginButton(self):
		self.__LoadACCInfos(2)
	
	def __OnClickACC3LoginButton(self):
		self.__LoadACCInfos(3)
	
	def __OnClickACC4LoginButton(self):
		self.__LoadACCInfos(4)
	
	def __OnClickLoginSaveButton(self):
		id = self.idEditLine.GetText()
		pwd = self.pwdEditLine.GetText()
		pwd2 = self.pwd2EditLine.GetText()
		
		fd = open( "lib/zapisane_hasla/konto1.cfg" )
		login1 = fd.readline()
		login1.replace( "\n", "" )
		fd.close()

		fd = open( "lib/zapisane_hasla/konto2.cfg" )
		login2 = fd.readline()
		login2.replace( "\n", "" )
		fd.close()

		fd = open( "lib/zapisane_hasla/konto3.cfg" )
		login3 = fd.readline()
		login3.replace( "\n", "" )
		fd.close()

		fd = open( "lib/zapisane_hasla/konto4.cfg" )
		login4 = fd.readline()
		login4.replace( "\n", "" )
		fd.close()
		
		if login1 == "":
			slot = 1
		elif login2 == "":
			slot = 2
		elif login3 == "":
			slot = 3
		elif login4 == "":
			slot = 4
		else:
			self.PopupNotifyMessage("Nie masz już wolnych miejsc na zapis!")
			return
		
		
		f = open("lib/zapisane_hasla/konto" + str(slot) + ".cfg", "w")
		f.write (id +"\n")
		f.write (pwd +"\n")
		f.write (pwd2)
		f.close()
		
		self.PopupNotifyMessage("Twoje dane logowania zostały zapisane!")
		self.__LoadACCNames()
	
	def __OnClickAcc1DelButton(self):
		f = open("lib/zapisane_hasla/konto1.cfg", "w")
		f.write ("")
		f.close()
		self.ACC1__LABEL.SetText("Konto1 - Wolne")
		self.ACC1_LABEL.SetText("Konto1 - Wolne")
		self.__LoadACCNames()
		
	def __OnClickAcc2DelButton(self):
		f = open("lib/zapisane_hasla/konto2.cfg", "w")
		f.write ("")
		f.close()
		self.ACC2__LABEL.SetText("Konto2 - Wolne")
		self.ACC2_LABEL.SetText("Konto2 - Wolne")
		self.__LoadACCNames()
	def __OnClickAcc3DelButton(self):
		f = open("lib/zapisane_hasla/konto3.cfg", "w")
		f.write ("")
		f.close()
		self.ACC3__LABEL.SetText("Konto3 - Wolne")
		self.ACC3_LABEL.SetText("Konto3 - Wolne")
		self.__LoadACCNames()
	def __OnClickAcc4DelButton(self):
		f = open("lib/zapisane_hasla/konto4.cfg", "w")
		f.write ("")
		f.close()
		self.ACC4__LABEL.SetText("Konto4 - Wolne")
		self.ACC4_LABEL.SetText("Konto4 - Wolne")
		self.__LoadACCNames()
	
	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=Äł¸ŻĹÍ Ľ±ĹĂ Ŕε¦˝ş (ľř°ĹłŞ -1Ŕ̸é ŔÚµż Ľ±ĹĂ ľČÇÔ)\n"\
				"autoLogin=ŔÚµż Á˘ĽÓ ż©şÎ\n"
				"autoSelect=ŔÚµż Á˘ĽÓ ż©şÎ\n"
				"locale=(ymir) LC_Ymir Ŕϰćżě ymir·Î Ŕ۵ż. ÁöÁ¤ÇĎÁö ľĘŔ¸¸é korea·Î Ŕ۵ż\n"
			);

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

		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.pwd2 = None		
		self.loginnedServer = None
		self.loginnedChannel = None			
		app.loggined = FALSE

		self.loginInfo = loginInfo

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

		if isAutoLogin:
			self.Connect(id, pwd, pwd2)
			
			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.Channel1Button.SetEvent(ui.__mem_func__(self.__OnClickChannel1Button))
		self.Channel2Button.SetEvent(ui.__mem_func__(self.__OnClickChannel2Button))
		self.Channel3Button.SetEvent(ui.__mem_func__(self.__OnClickChannel3Button))
		self.Channel4Button.SetEvent(ui.__mem_func__(self.__OnClickChannel4Button))
			
		self.serverExitButton.SetEvent(ui.__mem_func__(self.__OnClickExitServerButton))
		self.serverExitButton.SetText(locale.UI_CLOSE)

		# 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.Hide()
			self.AccountBoard.Show()
			self.AccEditBoard.Hide()
			
			self.__LoadACCNames()

		if app.loggined:
			self.Connect(self.id, self.pwd, self.pwd2)
			self.connectBoard.Hide()
			self.loginBoard.Hide()
			self.RunCheckUp()
		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("")
		if self.pwd2EditLine == None:
			self.pwd2EditLine.SetText("")

		self.idEditLine.SetFocus()

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

	def __OpenLoginBoard(self):
		self.BGBoard.Hide()
		print "XMAS_SNOW ON"
		background.EnableSnow(1)
			
		self.serverExitButton.SetEvent(ui.__mem_func__(self.__OnClickExitServerButton))
		self.serverExitButton.SetText(locale.UI_CLOSE)

		# 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.AccountBoard.Show()
			self.AccEditBoard.Hide()
			
			self.__LoadACCNames()

		if app.loggined:
			self.Connect(self.id, self.pwd, self.pwd2)
			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("")
		if self.pwd2EditLine == None:
			self.pwd2EditLine.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("bg1").Hide()
			self.GetChild("bg2").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.serverExitButton.SetEvent(ui.__mem_func__(self.__OnClickExitServerButton))
		self.serverExitButton.SetText(locale.UI_CLOSE)

		self.__RefreshServerList()
		self.__OpenServerBoard()

	def __OnClickSelectServerButton(self):
		if IsFullBackImage():
			self.GetChild("bg1").Show()
			self.GetChild("bg2").Hide()

		regionID = self.__GetRegionID()
		serverID = self.__GetServerID()
		channelID = self.__GetChannelID()

		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

		try:
			channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
		except KeyError:
			return

		try:
			state = channelDict[channelID]["state"]
		except KeyError:
			self.PopupNotifyMessage(locale.CHANNEL_SELECT_CHANNEL)
			return

		# »óۡ FULL °ú °°Ŕ¸¸é ÁřŔÔ ±ÝÁö
		if state == serverInfo.STATE_DICT[3]: 
			self.PopupNotifyMessage(locale.CHANNEL_NOTIFY_FULL)
			return

		self.__SaveChannelInfo()

		try:
			serverName = serverInfo.REGION_DICT[regionID][serverID]["name"]
			channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["name"]
			addrKey = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["key"]
		except:
			print " ERROR __OnClickSelectServerButton(%d, %d, %d)" % (regionID, serverID, channelID)
			serverName = locale.CHANNEL_EMPTY_SERVER
			channelName = locale.CHANNEL_NORMAL % channelID

		self.__SetServerInfo("%s, %s " % (serverName, channelName))

		try:
			ip = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["ip"]
			tcp_port = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["tcp_port"]
		except:
			import exception
			exception.Abort("LoginWindow.__OnClickSelectServerButton - Ľ­ąö Ľ±ĹĂ ˝ÇĆĐ")

		try:
			account_ip = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["ip"]
			account_port = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["port"]
		except:
			account_ip = 0
			account_port = 0

		try:
			markKey = regionID*1000 + serverID*10
			markAddrValue=serverInfo.MARKADDR_DICT[markKey]
			net.SetMarkServer(markAddrValue["ip"], markAddrValue["tcp_port"])
			app.SetGuildMarkPath(markAddrValue["mark"])
			# GUILD_SYMBOL
			app.SetGuildSymbolPath(markAddrValue["symbol_path"])
			# END_OF_GUILD_SYMBOL

		except:
			import exception
			exception.Abort("LoginWindow.__OnClickSelectServerButton - ¸¶Ĺ© Á¤ş¸ ľřŔ˝")

		self.stream.SetConnectInfo(ip, tcp_port, account_ip, account_port)

		self.__OpenLoginBoard() 
		
	def __OnClickChannel1Button(self):
		self.stream.SetConnectInfo("IP Serwera", 13001, "IP Serwera", 11669)
		net.SetServerInfo("Nazwa Serawera - Ch1")
		net.SetMarkServer("IP Serwera", 11669)
		self.serverInfo.SetText("Nazwa Serawera - Ch1")
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")  
	def __OnClickChannel2Button(self):
		self.stream.SetConnectInfo("IP Serwera", 13001, "IP Serwera", 11669)
		net.SetServerInfo("Nazwa Serawera - Ch 2")
		net.SetMarkServer("IP Serwera", 11669)
		self.serverInfo.SetText("Nazwa Serawera - Ch2")
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10") 
	def __OnClickChannel3Button(self):
		self.stream.SetConnectInfo("IP Serwera", 13001, "IP Serwera", 11669)
		net.SetServerInfo("Nazwa Serawera - Ch 3")
		net.SetMarkServer("IP Serwera", 11669)
		self.serverInfo.SetText("Nazwa Serawera - Ch3")
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10")
	def __OnClickChannel4Button(self):
		self.stream.SetConnectInfo("IP Serwera", 13001, "IP Serwera", 11669)
		net.SetServerInfo("Nazwa Serawera - Ch 4")
		net.SetMarkServer("IP Serwera", 11669)
		self.serverInfo.SetText("Nazwa Serawera - Ch4")
		app.SetGuildMarkPath("10.tga")
		app.SetGuildSymbolPath("10") 

	def __OnClickLoginButton(self):
		id = self.idEditLine.GetText()
		pwd = self.pwdEditLine.GetText()		
		pwd2 = self.pwd2EditLine.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 len(pwd2)==0:
			self.PopupNotifyMessage(locale.LOGIN_INPUT_PASSWORD, self.SetPassword2EditLineFocus)
			return

		self.Connect(id, pwd, pwd2)

	def __OnClickFacebookButton(self):
		import os

		os.startfile(facebook_url)

	def __OnClickYouTubeButton(self):
		import os

		os.startfile(youtube_url)

	def __OnClickHomepageButton(self):
		import os

		os.startfile(glowna_url)

	def __OnClickForumButton(self):
		import os

		os.startfile(forum_url)

	def __OnClickRegiButton(self):
		import os

		os.startfile(reje_url)

	def __OnClickVoteButton(self):
		import os

		os.startfile(newsy_url)
		
	def __OnClickQuestionButton(self):
		self.registerBoard.Hide()
		self.serverBoard.Hide()
		self.connectBoard.Hide()
		self.loginBoard.Hide()
		self.virtualKeyboard.Hide()
		self.questionBoard.Show()
		
	def __OnClickQuestion1Button(self):
		constInfo.QUESTION = 1
		self.registerBoard.Show()
		self.questionBoard.Hide()

	def __OnClickQuestion2Button(self):
		constInfo.QUESTION = 2
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickQuestion3Button(self):
		constInfo.QUESTION = 3
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickQuestion4Button(self):
		constInfo.QUESTION = 4
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickQuestion5Button(self):
		constInfo.QUESTION = 5
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickQuestion6Button(self):
		constInfo.QUESTION = 6
		self.registerBoard.Show()
		self.questionBoard.Hide()

	def __OnClickQuestion7Button(self):
		constInfo.QUESTION = 7
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickQuestion8Button(self):
		constInfo.QUESTION = 8
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickQuestion9Button(self):
		constInfo.QUESTION = 9
		self.registerBoard.Show()
		self.questionBoard.Hide()
		
	def __OnClickRegisterExitButton(self):
		self.connectBoard.Show()
		self.loginBoard.Show()
		self.AccountBoard.Show()
		self.virtualKeyboard.Show()
		
		self.registerBoard.Hide()
		self.serverBoard.Hide()
		self.AccEditBoard.Hide()
		self.idEditLine.SetText(self.id1EditLine.GetText())
		self.pwdEditLine.SetText(self.pwd1EditLine.GetText())
		
	def __OnClickRegisterButton(self):
		self.Close()
		
	def login_UP(self): 
		if 1 == 1:
			pass


 

 

 

a więc przechodzimy do lini: 1885 (notepadem)

i zmieniamy:

Jezeli chcesz zmienic nazwe serwera to :

CTRL+H

i Zaznaczamy Nazwa Serwera na swoja nazwe serwera.

teraz IP: zaznaczamy IP Serwera
i podobnie jak w górze. zmieniamy na swoje IP.



teraz pasowalo by jeszcze zmienić w lini: 28

sklad_url = "http://strona.pl/clients/sklad.txt"event_url = "http://strona.pl/clients/eventy.txt"news_url = "http://strona.pl/clients/news.txt"reje_url = "http://strona.pl/index.php?t=rejestracja"newsy_url = "http://strona.pl/index.php?t=aktualnosci"glowna_url = "http://strona.pl/index.php"forum_url = "http://strona.pl/forum/"youtube_url = "http://youtube.com/Nazwa Serawerapl"facebook_url = "http://facebook.com/Nazwa Serawerapl" 

oke wiec teraz zapisujemy.


teraz od strony FreeBSD:

Ci co mają Hamaka :

Niech wpisuja te komendy:

cd /usr/home/rm -rf tejtar -zxvf game_paczka.tar.gzchmod -R 777 /usr/home/tej/teraz właczamy serwer: cd /usr/home/tej/ && sh start.sh

UWAGA !

w intrologin.py dalem tylko jedno CH1 na wszystkie kanały.


Od Strony Dedyka są tak dobrzy technicy na MPC ze sobie poradzą :)

Trzeba zrobić: skroty do game,data,locale , chmody ,

  • Odpowiedzi 71
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Błąd podczas łączenia się z serwerem. Wybrałeś kanał ?

 

Pozdrawiam . :)

//50+//100+//200+//500+//1000+//1200+//1500+//2000+//2500+


 


xD ProUser xD


 


48% / 100% <Od Enix'a 40%> <5% od Istnego to wyróżnienie> 

Opublikowano

Wszystko niby działa ale jak tworze postać i klikam enter wywala:

 

fu59.jpg

 

tak wygląda intrologin:

 

def __OnClickChannel1Button(self):
self.stream.SetConnectInfo("25.111.61.100", 13001, "25.111.61.100", 11669)
net.SetServerInfo("Asylion - Ch1")
net.SetMarkServer("25.111.61.100", 11669)
self.serverInfo.SetText("Asylion - Ch1")
app.SetGuildMarkPath("10.tga")
app.SetGuildSymbolPath("10")  
def __OnClickChannel2Button(self):
self.stream.SetConnectInfo("25.111.61.100", 32000, "25.111.61.100", 11669)
net.SetServerInfo("Asylion - Ch 2")
net.SetMarkServer("25.111.61.100", 11669)
self.serverInfo.SetText("Asylion - Ch2")
app.SetGuildMarkPath("10.tga")
app.SetGuildSymbolPath("10") 
def __OnClickChannel3Button(self):
self.stream.SetConnectInfo("25.111.61.100", 34000, "25.111.61.100", 11669)
net.SetServerInfo("Asylion - Ch 3")
net.SetMarkServer("25.111.61.100", 11669)
self.serverInfo.SetText("Asylion - Ch3")
app.SetGuildMarkPath("10.tga")
app.SetGuildSymbolPath("10")
def __OnClickChannel4Button(self):
self.stream.SetConnectInfo("25.111.61.100", 36000, "25.111.61.100", 11669)
net.SetServerInfo("Asylion - Ch 4")
net.SetMarkServer("25.111.61.100", 11669)
self.serverInfo.SetText("Asylion - Ch4")
app.SetGuildMarkPath("10.tga")
app.SetGuildSymbolPath("10") 

syser:

0118 14:50:15852 :: invalid idx 0
Opublikowano

Nie działa. Wszystko zrobione, i bład :-)

//50+//100+//200+//500+//1000+//1200+//1500+//2000+//2500+


 


xD ProUser xD


 


48% / 100% <Od Enix'a 40%> <5% od Istnego to wyróżnienie> 

Opublikowano

Ja nie zmieniałem portu :D Zaraz sprawdzę : -)

//50+//100+//200+//500+//1000+//1200+//1500+//2000+//2500+


 


xD ProUser xD


 


48% / 100% <Od Enix'a 40%> <5% od Istnego to wyróżnienie> 

Opublikowano

 

Na pewno masz te symlinki i zmieniłeś na dobry port logowania w intrologin.py?

 

sxyjr8.jpg

 

@edit - moje rooty

http://www.speedyshare.com/G6sgH/pack.rar

ja mam tak dla przykładu :

 self.stream.SetConnectInfo("25.111.61.100", 13001, "25.111.61.100", 11669)

Mam tak samo jak Ty ;d

 

@Edit, z Twoimi rootami wszystko śmiga xD

 

Dlaczego żadne konto z bazy nie działa?..

Opublikowano

Passy to: x3 admin :D

//50+//100+//200+//500+//1000+//1200+//1500+//2000+//2500+


 


xD ProUser xD


 


48% / 100% <Od Enix'a 40%> <5% od Istnego to wyróżnienie> 

Opublikowano

A mógłbys mi wytłumaczyć jak zrobić żeby działała?

l0go1u.jpg

 

ustawienia i tam masz główne zmieniasz na swoje ip z końcówka .100 przed tym uruchamiasz xampp panel control i pierwsze 3 uruchamiasz.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...