Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 04:23

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

Advertisement



Dynamische Serverinfo.py

Discussion on Dynamische Serverinfo.py within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
Sogma's Avatar
 
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
Sogma is offline  
Thanks
1 User
Old 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?
rollback is offline  
Thanks
1 User
Old 03/21/2015, 23:45   #3
 
Sogma's Avatar
 
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.

Sogma is offline  
Old 03/22/2015, 01:50   #4
 
Fydes's Avatar
 
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'	}
Fydes is offline  
Old 03/22/2015, 03:44   #5
 
SolWayne's Avatar
 
elite*gold: 30
Join Date: Feb 2015
Posts: 362
Received Thanks: 58
PHP Code:
STATE_NONE 'das was bei offline stehen soll'
        
STATE_DICT = {
    
'...',
    
'NORM',
    
'BUSY',
    
'FULL' 
SolWayne is offline  
Old 03/22/2015, 12:45   #6
 
Sogma's Avatar
 
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.
Sogma is offline  
Old 03/22/2015, 16:46   #7
 
Poccix's Avatar
 
elite*gold: 44
Join Date: Dec 2009
Posts: 1,696
Received Thanks: 3,833
Quote:
Originally Posted by Sogma View Post
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)
Poccix is offline  
Thanks
1 User
Old 03/22/2015, 19:16   #8
 
Sogma's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 670
Received Thanks: 137
Quote:
Originally Posted by definitely not Poccix View Post
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.
Sogma is offline  
Old 03/22/2015, 19:38   #9
 
Minato's Avatar
 
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
Minato is offline  
Old 03/27/2015, 19:53   #10
 
Sogma's Avatar
 
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 = {
        
'....',
        
'NORM',
        
'BUSY',
        
'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 = {
        
'GERMANY',        
    }

    
REGION_AUTH_SERVER_DICT = {
        
: {
            
: { 'ip':'212.114.51.212''port':11002, },
    
        }        
    }

    
REGION_DICT = {
        
: {
            
: { '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, } 
Sogma is offline  
Old 03/27/2015, 21:08   #11
 
SolWayne's Avatar
 
elite*gold: 30
Join Date: Feb 2015
Posts: 362
Received Thanks: 58
Quote:
Originally Posted by Sogma View Post
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 = {
        
'....',
        
'NORM',
        
'BUSY',
        
'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 = {
        
'GERMANY',        
    }

    
REGION_AUTH_SERVER_DICT = {
        
: {
            
: { 'ip':'212.114.51.212''port':11002, },
    
        }        
    }

    
REGION_DICT = {
        
: {
            
: { '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 = {
        
"....",
        
"Normal",
        
"Belebt",
        
"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 = {
        
"GERMANY",        
    }

    
REGION_AUTH_SERVER_DICT = {
        
: {
            
: { "ip":"ServerIP""port":11002, },
            
: { "ip":"ServerIP2""port":11002, },
    
        }        
    }

    
REGION_DICT = {
        
: {
            
: { "name" :"SERVERNAME""channel" Zeros_serverinfo, },                        
            
: { "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, } 
SolWayne is offline  
Old 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
Lefloyd is offline  
Thanks
1 User
Old 03/28/2015, 19:49   #13
 
Sogma's Avatar
 
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_FAILUREself.__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() 
Sogma is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.