Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 16:26

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

Advertisement



[Frage]Mapzugriff ändern je nach Uhrzeit des LocalPc

Discussion on [Frage]Mapzugriff ändern je nach Uhrzeit des LocalPc within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
[Frage]Mapzugriff ändern je nach Uhrzeit des LocalPc

Hallöchen Comunity,

hier mal wieder was anspruchsvolles an die Comunity und wie man es
lösen kann,kann man es Umsetzen das man zb ab 18Uhr ein und die Selbe Map ladenlässt jedoch aus einen anderen Archiv sprich zb Map1 bis 18Uhr die normale und ab 18uhr bis 16Uhr morgens dann zb aus OutdoorA1night so das man da die gleich Map nur zb mit anderen textusetz laden lässt.

Wenn ja wie setzt man das am besten um?
lfcmaus is offline  
Old 07/22/2015, 02:41   #2
 
dstyl's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 428
Received Thanks: 192
2te Map erstellen und per Quest regeln, dass die User ab gewisser Uhrzeit (Quest geregelt) nurnoch auf die andere Map teleportiert werden.
Müsste man den Teleporter ein wenig umschreiben etc., sollte aber leicht machbar sein.
Um den ganzen nen Feinschliff zu geben, musst du Serverside den Source noch anpassen, dass ab bestimmter Zeit der Mapindex auf die neue Map wechselt, damit neue Spieler nicht auf der anderen Map sind.

Zudem musst du noch einstellen, dass User die auf der anderen Map sind ab bestimmten Zeiten jeweils automatisch rüber teleportiert werden, was dann übrigens sich sehr schlecht auf Shops auswirkt, außer es gibt nur eine Map wo man Shops aufmachen kann.
dstyl is offline  
Old 07/22/2015, 02:42   #3
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
wäre eine lösung ja aber ziemlich nervige lösung,
gerade für neu anfänger wenn es sich hierbei um eine Map1 handelt ^^
lfcmaus is offline  
Old 07/22/2015, 04:00   #4
 
elite*gold: 0
Join Date: Mar 2015
Posts: 49
Received Thanks: 40
Ohne die Source zu verwenden wird es schwierig
Norri is offline  
Old 07/22/2015, 04:17   #5
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Ihr immer mit eurer Source jetzt kommt mal weg von der Kacke und denkt mal nach wie das ohne geht,oder köännt ihr alle nurnoch mit dem Surce eure Ziele erreichen?

Fassen wir mal zusammen was wir wissen.

Map 1 gibt es dreimal A1 B1 C1
jede dieser Maps wird mehrmals als Standardmap in unseren Rootverzeichnis verlinkt und deklariert mit Pfaden erklärt und Variablen gesetzt wie zb metin2_map_A1 = map_a1

also wird es doch möglich sein dank Python zu sagen
Nimm bitte metin_map_a1 als map_a1 wenn uhrzeit 06.00 - 18.00 true
sonst nimm metin_map_a1night

Dennoch danke für deinen Versuch zu helfen aber hier wird der Weg gesucht es nicht über den Source zumachen!
lfcmaus is offline  
Old 07/22/2015, 06:12   #6

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by lfcmaus View Post
Ihr immer mit eurer Source jetzt kommt mal weg von der Kacke und denkt mal nach wie das ohne geht,oder köännt ihr alle nurnoch mit dem Surce eure Ziele erreichen?

Fassen wir mal zusammen was wir wissen.

Map 1 gibt es dreimal A1 B1 C1
jede dieser Maps wird mehrmals als Standardmap in unseren Rootverzeichnis verlinkt und deklariert mit Pfaden erklärt und Variablen gesetzt wie zb metin2_map_A1 = map_a1

also wird es doch möglich sein dank Python zu sagen
Nimm bitte metin_map_a1 als map_a1 wenn uhrzeit 06.00 - 18.00 true
sonst nimm metin_map_a1night

Dennoch danke für deinen Versuch zu helfen aber hier wird der Weg gesucht es nicht über den Source zumachen!
Die Maps werden beim Start der game in den RAM geladen, also ohne Änderungen am Source wirst du nicht während der Laufzeit die map wechseln können.

Wie die anderen schon gesagt haben kann man es per quest machen.
rollback is offline  
Old 07/22/2015, 06:35   #7
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Was möchtest du denn jetzt mit der Game!?
Leute versteht ihr eigtl worum es geht was hier gefragt wurde oO?

Also nochmal es handelt sich um ein und die selbe Map alles ist identisch,
nur das man den Zugriff auf die jeweilige Outdoor.epk ab einer gewissen Uhrzeit ändern möchte,dass ab 18Uhr zb nicht auf OutdoorA1 sondern OutdoorA2 zugegriffen wird in dieser Outdoor befindet sich 1:1 die gleiche map der gleiche Mapname des Ordners gleiche Koords.Alles ist gleich!


Mit den Himmeln funktioniert das doch auch super das man zu jeder Uhrzeit die man möchte einen anderen Himmel für einzelnbe Maps oder die gesamte Welt zuweisen kann.
lfcmaus is offline  
Old 07/22/2015, 06:50   #8

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Achso Ja könnte sein, dass das geht. Ich dachte du willst auf eine komplett andere Map (also auch Serverside).
Die Frage ist eben, ob es dafür in Python eine Schnittstelle gibt.
rollback is offline  
Thanks
1 User
Old 07/22/2015, 07:29   #9
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Maps werden anhand der atlasinfo.txt (soweit ich weiss) geladen. Die Binary durchsucht hierfür schlicht und einfach die Archive und lädt den ersten Map-Ordner, der auf die Suchanfrage passt, weshalb, wenn mehrere Maps mit dem gleichen Namen existieren, lediglich immer die erste geladen wird, die die Binary findet.
Man müsste bspw. einfach ein 2. Texturen-Set erstellen, an dessen Dateinamen man bspw. _night hängt (oder gleiches für den gesamten Map-Ordner) und dann per Source die entsprechenden Ordner/Dateien laden.
Ohne den Source ist das lediglich per Quest lösbar, aber auch da treten Probleme auf, denn offene Shops werden denke ich nach einem Teleport geschlossen (was wiederrum eine Source-Modifikation, diesmal seitens der Game, voraussetzen würde).

Andere Lösungswege wären extremst umständlich bzw. nicht existent.

Des Weiteren stellt sich mir die Frage, warum du dich gegen den Source wehrst/was gegen den Source hast, dieser eröffnet viel mehr Möglichkeiten der Modifikation des Spiels und auch Laien, die keine Ahnung von C++ haben ziehen ihre Vorteile daraus, da es viele Tutorials zum erfolgreichen Compilen gibt (zumal die Binary zu compilen noch viel einfacher ist) und ein cleaner Source läuft genauso stabil wie die cleanen 40k game und Binary.

MfG
Yiv is offline  
Old 07/22/2015, 07:40   #10
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Ich muss echt sagen alle die mit Source anfangen haben echt nichts mehr drauf oder hatten nie etwas drauf.Der einzige der es bisher echt Verstanden hat ist Sensi.

Ablauf.:

Charsendet Logindaten> Server sucht Char,Waffen,Items etc & momentane Position via Mapindex (daten hiervon stehen alle in der DB
Server schaut in der Index(mapfolder) nach dem Foldernamen der Map welche zu dem ausgelesenen Index gehört > Server teilt nun dem clienten mit Foldername der Map und Position (+ Waffen Items etc)
Client schaut nun in der Atlasinfo.txt nach ob die Map mit dem mitgeteilten Foldernamen vorhanden ist und vergleicht Rangebereichd er Position mit dem Range der Map
Client öffnen nun seine Packindex und schaut nach dem Foldernamen ob in einer Outdoor /Indoor/Season die Map liegt > danach wird die Map geladen

das ist der Routineablauf.


Und jetzt muss man mal schauen wie man zb der dem Clienten sagt hier Lade mal bitte jetzt nicht den Mapordner sondern den oder Lade mal das und das so wie er es ja mit dem Himmel macht etc.


Um euch aufzuklären es geht darum zu versuchen Laternen zu verwenden die ab 18Uhr halt leuchten und ab um 06 nicht mehr
client sucht jetzt mitgeteilten mapfoldernamen
lfcmaus is offline  
Old 07/22/2015, 08:19   #11
 
Fydes's Avatar
 
elite*gold: 534
Join Date: Mar 2014
Posts: 1,614
Received Thanks: 983
Moin,
vielleicht ist ja via Python möglich. Dazu einfach einen Timer einbauen der Serverübergreifend ist und das ganze dann per Quest.. Einfach wird das ganze sicherlich nicht, aber möglich ist es dennoch.

Mfg
Fydes is offline  
Thanks
1 User
Old 07/22/2015, 10:11   #12
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Wieso hatten die nie etwas drauf, die mit dem Source arbeiten? Erkläre das bitte.

Der Client guckt nicht in der Index-Datei des pack-Ordners.

Beim Start des Clients wird die Index-Datei geladen und alle Archive registriert. Hierbei wird die obere Zeile (Ein Eintrag in der Index Datei besteht immer aus einem emthaltenen Ordner und dem Archivnamen) als Key in eine Map (quasi ein Array mit einem individuellem Key und einem Value) mit dem Value des Archivs gepackt. Somit dienen die Map-Einträge quasi lediglich dazu, die Maps schneller zu finden.
Der Client erhält vom Server die Positionsinformationen des Spielers, sucht sozusagen in der atlasinfo.txt anhand dieser nach der Map, erhält von dort ebenfalls den Ordnernamen der Map. Sucht nun in den Archiven nach der Map (falls der Key nicht gefunden wurde, werden alle registrierten Archive durchsucht) und lädt die, die als erstes gefunden wurde.
Damit entstehen Möglichkeiten, diesen Ladevorgang zu individualisieren, indem man bspw. eine Uhrzeitüberprüfung einbaut und bei Bedarf ein "_night" an den Ordnernamen hängt, eine andere Positionsinformation übermittelt oder diese Clientside manipuliert.

In deinem Fall könnte man bspw. die Effekte aber auch einfach nur bei Bedarf an den Lampen attachen, wobei dies dann halt so sein muss, dass man einfach standardmäßig einen leeren Effekt per Python registriert und diesen eben bei entsprechender Uhrzeit verändert. Dafür müsste jedoch der Client neu gestartet werden oder im Source eine Refresh-Funktion eingebaut werden.

Quote:
Originally Posted by Fydes View Post
Moin,
vielleicht ist ja via Python möglich. Dazu einfach einen Timer einbauen der Serverübergreifend ist und das ganze dann per Quest.. Einfach wird das ganze sicherlich nicht, aber möglich ist es dennoch.

Mfg
Was genau möchtest du mit dem Link bezwecken? Dateien und Ordner können nur über das pack-Modul des Clients verwaltet werden, da die Dateien, zmd. wenn sie in ein Archiv gepackt sind, nur virtuell existieren!

MfG
Yiv is offline  
Old 07/22/2015, 10:24   #13
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
er wollte entweder die datein löschen und austauschen beim clientstart oder man packt es nicht als archiv sondern als ordner
und schriebt dort die aktuellen dateien halt rein ;D
lfcmaus is offline  
Old 07/22/2015, 13:09   #14
 
Poccix's Avatar
 
elite*gold: 44
Join Date: Dec 2009
Posts: 1,696
Received Thanks: 3,835
So, schön ist was anderes, sollte jedoch funktionieren.
---

system.py (direkt nach "import dbg" einfügen):
Code:
"""
An diesem Teil bitte nichts anpassen !
"""

import math
from time import time as current
file = open('laststart.cfg','r')
last = file.readline()
file.close()
currentTime = int(math.floor(current()))
if (currentTime - int(last)) < 300:
	pass
else:
	file = open('laststart.cfg','w')
	file.write(str(int(math.floor(current()))))
	file.close()
	execfile('atlasinfo_check.py')
	
"""
"""
atlasinfo_check.py (Aus dem Anhang):
Code:
from time import localtime
import os, app

"""
Bitte nach folgendem Schema die Listen anpassen
------------------------------------------------
Schema =>
	atlasinfo.txt:
		map_a2	256000	665600	6	6
	
	hier:
		['map_a2','256000','665600','6','6'],
------------------------------------------------
Bei "day = []" die Tages-Maps eintragen, bei
"night = []" die Nacht-Maps eintragen. 
"""

day = [
            ['map_a2','256000','665600','6','6'],
            ['map_b2','102400','51200','6','6'],
            ['map_c2','665600','281600','6','6']
	]

night = [
            ['map_a2','256000','665600','6','6'],
            ['map_b2','102400','51200','6','6'],
            ['map_c2','665600','281600','6','6']
    ]
	
if localtime()[3] >= 21 or localtime()[3] < 8:
    atlasCur = night
else:
    atlasCur = day
    
file = open('atlasinfo.txt','w')
for i in range(len(atlasCur)):
    for j in range(len(atlasCur[i])):
        file.write(atlasCur[i][j]+'\t')
    file.write('\n')
file.close()

"""
Bitte hier die Metin2-Client.exe eintragen !
"""

os.startfile('Metin2Distribute.exe')
app.Exit()
laststart.cfg (Aus dem Anhang):
Code:
1437562938
---

Zu beachten ist, dass die "atlasinfo.txt" aus dem Root Verzeichnis ins Hauptverzeichnis gelegt werden muss.
Anschließend muss aus der Root und der Locale_DE die atlasinfo.txt gelöscht werden.

Es ist alles andere als schön, es auf diese Art und Weise zu lösen, jedoch ist dies eine Lösung ohne Source-Modifikation.
Ich bin überhaupt nicht glücklich damit es ohne Source zu machen.


Liebe Grüße,
Poccix
Attached Files
File Type: zip files.zip (757 Bytes, 1 views)
Poccix is offline  
Thanks
2 Users
Old 07/22/2015, 13:16   #15
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Dennoch muss hier der Client immernoch neu gestartet werden!

Quote:
Originally Posted by Poccix View Post
Es ist alles andere als schön, es auf diese Art und Weise zu lösen, jedoch ist dies eine Lösung ohne Source-Modifikation.
Ich bin überhaupt nicht glücklich damit es ohne Source zu machen.
Verständlich

MfG
Yiv is offline  
Reply


Similar Threads Similar Threads
[Release/HowTo] Automatischer Tag/Nacht MOD(richtet sich nach Uhrzeit)
03/16/2013 - Metin2 PServer Guides & Strategies - 6 Replies
Sry bin dumm :DD #closerequest
[Frage] Problem nach Quest ändern!
07/13/2012 - Metin2 Private Server - 3 Replies
Hab meine big lua da geändert, auch neue mobs eingefügt die was sagen. hab sufu und google schon benutzt aber hat nix gebracht. Mobs sagen (abartige) Sachen auf deutsch...hääte ich gerne. iwas musste man doch noch da machen oder? woltle sever starten aber nach 10min is immer noch nich gegangen. was musste man da nochmal genau machen?
Dumme frage :D Uhrzeit
03/25/2012 - Off Topic - 5 Replies
Ist heute nicht 1 stunde uhr vorstellen ? also ist es doch grad 16:35 ? oder ?
[FRAGE]Musik in metin geht nach ändern nicht mehr liegts an der Kb rate?
01/17/2011 - Metin2 Private Server - 2 Replies
hai ich hab das gemahct wie andere es sagen einfahc den titel um benennen und erstezen hab cih gemacht nur spielt er die musik nun nicht ab gibt den nen spezielles format dafür? wenn ja welches und wie mach ichs am besten
Frage zu AUtoIT Uhrzeit
04/30/2010 - General Coding - 1 Replies
Hi und zwar will ich nen Code, der bis zu einer bestimmtn Uhrzeit mein Script ausführt! Geht das? also z.B ich kann in ein Input Feld eingeben 18:30 und dann läuft immer das selbe Script bis um 18:30 Uhr MFG



All times are GMT +2. The time now is 16:26.


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

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