|
You last visited: Today at 04:23
Advertisement
Dynamische Serverinfo.py
Discussion on Dynamische Serverinfo.py within the Metin2 Private Server forum part of the Metin2 category.
03/21/2015, 15:42
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
|
Dynamische Serverinfo.py
Hallo,
ich wollte meine Serverinfo.py dynamisch machen, heißt, dass der Status des Channels immer angepasst werden soll. Was muss ich dafür in den State-Parameter eintragen?
Viele Grüße, Sogma
|
|
|
03/21/2015, 17:52
|
#2
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Was meinst du mit angepasst werden soll? Dass sich das alle paar Sekunden aktualisiert also den Status neu abfragt?
|
|
|
03/21/2015, 23:45
|
#3
|
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
|
Naja, im Moment wird im String der Status "STATE_NONE" mit gegeben, das ist ja aber ein fixer Parameter. Heißt im Umkehrschluss, dass der Status auch auf online steht, wenn der Server eigentlich offline ist.
Da soll halt online stehen wenn der Server online ist und offline wenn er offline ist.
|
|
|
03/22/2015, 01:50
|
#4
|
elite*gold: 0
Join Date: Mar 2014
Posts: 1,619
Received Thanks: 984
|
Bei mir ist es so:
Code:
STATE_NONE = '...'
STATE_DICT = {
0 : '....',
1 : 'NORM',
2 : 'BUSY',
3 : 'FULL' }
Mach es so, dass dort Offline steht:
Code:
STATE_NONE = 'Offline'
STATE_DICT = {
0 : '....',
1 : 'NORM',
2 : 'BUSY',
3 : 'FULL' }
|
|
|
03/22/2015, 03:44
|
#5
|
elite*gold: 30
Join Date: Feb 2015
Posts: 362
Received Thanks: 58
|
PHP Code:
STATE_NONE = 'das was bei offline stehen soll' STATE_DICT = { 0 : '...', 1 : 'NORM', 2 : 'BUSY', 3 : 'FULL'
|
|
|
03/22/2015, 12:45
|
#6
|
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
|
Das ist ja alles schön und gut, wenn ihr euch aber mal den String anguckt
Code:
1:{"key":11,"name":"Channel 1","ip":"XXXXXXXXX","tcp_port":XXXXX,"udp_port":XXXXX,"state":STATE_NONE,},
Dann wird als State doch der, in eurem Falle, offline-Status mitgegeben.
|
|
|
03/22/2015, 16:46
|
#7
|
elite*gold: 44
Join Date: Dec 2009
Posts: 1,696
Received Thanks: 3,833
|
Quote:
Originally Posted by Sogma
Das ist ja alles schön und gut, wenn ihr euch aber mal den String anguckt
Code:
1:{"key":11,"name":"Channel 1","ip":"XXXXXXXXX","tcp_port":XXXXX,"udp_port":XXXXX,"state":STATE_NONE,},
Dann wird als State doch der, in eurem Falle, offline-Status mitgegeben.
|
In der IntroLogin.py ändert diese Funktion den Serverstatus.
Code:
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)
|
|
|
03/22/2015, 19:16
|
#8
|
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
|
Quote:
Originally Posted by definitely not Poccix
In der IntroLogin.py ändert diese Funktion den Serverstatus.
Code:
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)
|
Mh, bei meinem Client steht nach wie vor "Offline", kann mich dennoch einloggen.
|
|
|
03/22/2015, 19:38
|
#9
|
elite*gold: 34
Join Date: Jul 2011
Posts: 811
Received Thanks: 273
|
Schau dir mal den "Multiclient von Marco_a v2" an.
Ich meine dort war es richtig eingestellt.
Code:
STATE_NONE = 'Wartung'
STATE_DICT = {
0 : '...',
1 : 'NORM',
2 : 'BUSY',
3 : 'FULL'
Wenn ich es so eingetragen habe stand wenn der Server offline war: Wartung
Musst du mal in dem Clienten nachschauen 
Wie gesagt bin mir aber nicht zu 100% sicher.
Best regards.
Minato_* Namikaze
|
|
|
03/27/2015, 19:53
|
#10
|
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
|
Problem ist leider noch nicht behoben! Mag jemand da mal mit TV rüber schauen?
Hier meine ganze Serverinfo.py .. IP's und Ports sind natürlich random
PHP Code:
import os import app import locale import debugInfo
CHINA_PORT = 50000
if locale.IsEUROPE(): STATE_NONE = 'Offline' STATE_DICT = { 0 : '....', 1 : 'NORM', 2 : 'BUSY', 3 : 'FULL' }
Zeros_serverinfo = { 1:{'key':11,'name':'Channel 1','ip':'212.114.51.212','tcp_port':13070,'udp_port':13070,'state':STATE_NONE,}, 2:{'key':12,'name':'Channel 2','ip':'212.114.51.212','tcp_port':14070,'udp_port':14070,'state':STATE_NONE,}, 3:{'key':13,'name':'Channel 3','ip':'212.114.51.212','tcp_port':15070,'udp_port':15070,'state':STATE_NONE,}, 4:{'key':14,'name':'Channel 4','ip':'212.114.51.212','tcp_port':16070,'udp_port':16070,'state':STATE_NONE,}, } REGION_NAME_DICT = { 0 : 'GERMANY', }
REGION_AUTH_SERVER_DICT = { 0 : { 1 : { 'ip':'212.114.51.212', 'port':11002, }, } }
REGION_DICT = { 0 : { 1 : { 'name' :'Northern Lights', 'channel' : Zeros_serverinfo, }, }, }
MARKADDR_DICT = { 10 : { 'ip' : '212.114.51.212', 'tcp_port' : 13070, 'mark' : '10.tga', 'symbol_path' : '10', }, }
TESTADDR = { 'ip' : '212.114.51.212', 'tcp_port' : 50000, 'udp_port' : 50000, }
|
|
|
03/27/2015, 21:08
|
#11
|
elite*gold: 30
Join Date: Feb 2015
Posts: 362
Received Thanks: 58
|
Quote:
Originally Posted by Sogma
Problem ist leider noch nicht behoben! Mag jemand da mal mit TV rüber schauen?
Hier meine ganze Serverinfo.py .. IP's und Ports sind natürlich random
PHP Code:
import os
import app
import locale
import debugInfo
CHINA_PORT = 50000
if locale.IsEUROPE():
STATE_NONE = 'Offline'
STATE_DICT = {
0 : '....',
1 : 'NORM',
2 : 'BUSY',
3 : 'FULL'
}
Zeros_serverinfo = {
1:{'key':11,'name':'Channel 1','ip':'212.114.51.212','tcp_port':13070,'udp_port':13070,'state':STATE_NONE,},
2:{'key':12,'name':'Channel 2','ip':'212.114.51.212','tcp_port':14070,'udp_port':14070,'state':STATE_NONE,},
3:{'key':13,'name':'Channel 3','ip':'212.114.51.212','tcp_port':15070,'udp_port':15070,'state':STATE_NONE,},
4:{'key':14,'name':'Channel 4','ip':'212.114.51.212','tcp_port':16070,'udp_port':16070,'state':STATE_NONE,},
}
REGION_NAME_DICT = {
0 : 'GERMANY',
}
REGION_AUTH_SERVER_DICT = {
0 : {
1 : { 'ip':'212.114.51.212', 'port':11002, },
}
}
REGION_DICT = {
0 : {
1 : { 'name' :'Northern Lights', 'channel' : Zeros_serverinfo, },
},
}
MARKADDR_DICT = {
10 : { 'ip' : '212.114.51.212', 'tcp_port' : 13070, 'mark' : '10.tga', 'symbol_path' : '10', },
}
TESTADDR = { 'ip' : '212.114.51.212', 'tcp_port' : 50000, 'udp_port' : 50000, }
|
add mich skype ich schau eben^^
Da die ist doch perfect nutze ich bei meinem server auch und klappt wunderbar!
PHP Code:
import os import app import locale import debugInfo
CHINA_PORT = 50000
if locale.IsEUROPE(): STATE_NONE = "Offline" STATE_DICT = { 0 : "....", 1 : "Normal", 2 : "Belebt", 3 : "Voll" }
Zeros_serverinfo = { 1:{"key":11,"name":"Channel 1","ip":"ServerIP","tcp_port":13070,"udp_port":13070,"state":STATE_NONE,}, 2:{"key":12,"name":"Channel 2","ip":"ServerIP","tcp_port":14070,"udp_port":14070,"state":STATE_NONE,}, 3:{"key":13,"name":"Channel 3","ip":"ServerIP","tcp_port":15070,"udp_port":15070,"state":STATE_NONE,}, 4:{"key":14,"name":"Channel 4","ip":"ServerIP","tcp_port":16070,"udp_port":16070,"state":STATE_NONE,}, }
Zeros_serverinfo2 = { 1:{"key":21,"name":"Channel 1","ip":"ServerIP2","tcp_port":13070,"udp_port":13070,"state":STATE_NONE,}, 2:{"key":22,"name":"Channel 2","ip":"ServerIP2","tcp_port":14070,"udp_port":14070,"state":STATE_NONE,}, 3:{"key":23,"name":"Channel 3","ip":"ServerIP2","tcp_port":15070,"udp_port":15070,"state":STATE_NONE,}, 4:{"key":24,"name":"Channel 4","ip":"ServerIP2","tcp_port":16070,"udp_port":16070,"state":STATE_NONE,}, } REGION_NAME_DICT = { 0 : "GERMANY", }
REGION_AUTH_SERVER_DICT = { 0 : { 1 : { "ip":"ServerIP", "port":11002, }, 2 : { "ip":"ServerIP2", "port":11002, }, } }
REGION_DICT = { 0 : { 1 : { "name" :"SERVERNAME", "channel" : Zeros_serverinfo, }, 2 : { "name" :"S3RVERNAME", "channel" : Zeros_serverinfo2, }, }, }
MARKADDR_DICT = { 10 : { "ip" : "ServerIP", "tcp_port" : 13070, "mark" : "10.tga", "symbol_path" : "10", }, 20 : { "ip" : "ServerIP2", "tcp_port" : 13070, "mark" : "10.tga", "symbol_path" : "20"} }
TESTADDR = { "ip" : "ServerIP", "tcp_port" : 50000, "udp_port" : 50000, }
|
|
|
03/27/2015, 23:52
|
#12
|
elite*gold: 0
Join Date: Jan 2014
Posts: 268
Received Thanks: 373
|
Das Problem liegt auch nicht in der serverinfo.py...
In der intrologin.py (root) muss in der Open-Funktion stehen:
Code:
ServerStateChecker.Create(self)
ServerStateChecker.Initialize()
-> Dadurch wird der "ServerStateChecker" initialisiert.
Jetzt müssen weiter unten in der Open-Funktion die Channel übergeben werden (oder in der OnUpdate mit nem Timer, der das alle X Sekunden tut):
Code:
ServerStateChecker.AddChannel(<channel_index>, <hostname/ip>, <port>)
-> Dadurch werden die Channel, die überprüft werden sollen, an den ServerStateChecker übergeben.
Unter allen "AddChannel" muss nun geadded werden:
Code:
ServerStateChecker.Request()
-> Startet den Request auf die Channel.
Finally, in der OnUpdate-Funktion:
Code:
ServerStateChecker.Update()
Sow, nun natürlich noch den NotifyChannelState(self, channel, state)-Part und dann sollte alles funzen..
Kind Regards
|
|
|
03/28/2015, 19:49
|
#13
|
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
|
Magst du mir helfen das zu komplettieren? Den .Initialize habe ich gesetzt, bin mir aber unschlüssig wo der Rest hin soll.
Hier mal die komplette Function
PHP Code:
def Open(self):
ServerStateChecker.Create(self)
ServerStateChecker.Initialize()
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,
}
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:
if app.USE_OPENID and not app.OPENID_TEST :
self.__RefreshServerList()
self.__OpenServerBoard()
else:
self.__OpenLoginBoard()
if IsFullBackImage():
self.GetChild("bg1").Hide()
self.GetChild("bg2").Show()
else:
self.__RefreshServerList()
self.__OpenServerBoard()
app.ShowCursor()
|
|
|
 |
Similar Threads
|
Dynamische Signatur
10/27/2014 - elite*gold Trading - 4 Replies
-
|
dynamische serverinfo by xGr33n
03/19/2014 - Metin2 Private Server - 7 Replies
Hier bei den Links steht, was ich suche, nämlich die dynamische serverinfo by xGr33n
http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/1823490-sammelthread-kleinere-rel eases-39.html
http://www.elitepvpers.com/forum/metin2-pserver-d iscussions-questions/2807764-2013er-files-hamachi. html#post24597649
Problem ist, dass der DL down ist und ich einen anderen DL der dynamischen Serverinfo auch über die Sufu nicht finden konnte.
|
[S]Dynamische Serverinfo.py für 2013 files
12/22/2013 - Metin2 Private Server - 0 Replies
Hi ich habe eben diesen artikel gefunden:
http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/1823490-sammelthread-kleinere-rel eases-39.html
indem steht das man damit die surakopf.exe für den neuen clienten benutzen kann nur ist der download link für die dynamische serverinfo.py down und ich finde die nirgens und frage deshalb ob die vlt jemand hochladen könnten.
ich hoffe ich bin hier richtig und darf auch danach fragen
danke schon einmal
|
Web - Dynamische Map
02/03/2008 - General Coding - 5 Replies
Ich wollte mal wissen wie man in einem Web Browser Dynamische (Scrollbare) Maps anzeigt?
|
All times are GMT +1. The time now is 04:24.
|
|