HomeDownloadsForumGalerieLinks

 

ForenübersichtMUL-ForumUO-Patcher

UO-Patcher

Mitglied-132802.05.2014, 11:49 Uhr
Wie schauts denn soweit aus? Hast du schon einen Plan wie du ihn machen wirst Nicklas?
Mitglied-266021.05.2014, 09:12 Uhr
Hey!
Ja ich bin dabei. Derzeit spannt mich Eri noch ein um nen Tool zu schreiben - aber das hilft mir letztendlich für die Dateiformate von UO. Ich könnte mal eine frühe Alpha rausgeben zum probieren, ob die generelle Richtung handelbar ist.
Eine 64bit Version sollte erst mal reichen oder?!
Mitglied-266013.06.2014, 13:50 Uhr
Hallo zusammen,
Ich bin soweit eine frühe Version des Patchers raus zu geben um euch anzufüttern und natürlich auch um Feedback zu bekommen. Bitte beachtet, dass es sich dabei um eine Arbeitsversion handelt, die verschiedene Annehmlichkeiten wie „Wahl des UO-Ordners“ oder eine enthaltene „Installationsroutine“ noch nicht besitzt. Damit ihr versteht, wie das Patcher funktioniert (das ist zugegebener maßen etwas kryptisch – ich bin da eher pragmatisch und ein Fan von Definitionszeilen im Textformat) versuche ich die Systematik nach der er vorgeht hier kurz zu erläutern:

Client
Dateien
.\Patcher.exe – Der Patcher an sich.
.\SharpCompress.dll – Bibliothek zum Packen und Entpachen von Archiven.
.\data\config.fe – Die Config des Patchers. Muss für jeden Shard entsprechend angepasst werden (s.u.).
.\data\*.gif/*.png – Bildresourcen für das Programm, damit ihr das Design anpassen könnt.

Bearbeiten der .\data\config.fe
Ich habe eine Vorkonfiguration vorgenommen, an der man sich orientieren kann. Alle Konfigurationen sind in verschiedene ‚Gebiete‘ unterteilt. Kommentare sind mit „--„ kenntlich gemacht.

-- Serverdata: Grunddaten eures Servers (Adresse / login-Notwendigkeit)
SERVER=/<UpdateOrdner> - Pfad zum HauptUpdate Ordner auf eurem Server (s.u.)
LOGIN=FALSE/TRUE – Schützt ihr euren Server mit einer Login-Abfrage?
-- Login: Hier wird es schon etwas Benutzerspezifischer. Lasst für eine Vorkonfiguration die Felder am besten leer.
USERname=test – Der Benutzername wird hier hinterlegt.
PASSWORD=test – Das Passwort des Benutzers wird hier hinterlegt.
HOLDLOGIN=FALSE/TRUE – Gibt an, ob die Daten überhaupt hier gespeichert werden sollen.
-- Visuals: Passt in dieser Region das Aussehen eures Clienten an. Die Bilddateien müssen im Ordner „data“ liegen.
-- Strings: Gedacht für verschiedene Sprachvarianten. Hier können die Strings, also Nachrichten, die der Client rausgibt, verändert werden. Gut zu wissen: Diese Strings können zur Laufzeit Serverseitig aktualisiert werden.
-- Positioning: Zum Anpassen des Designs habt ihr hier die Möglichkeit verschiedene Elemente anzuordnen.
-- Dimensions: gehört mit zum Design. Hier sollen Dimensionsangaben einzelner Elemente bestimmt werden können. Momentan hat das lediglich beim Webbrowser Fenster Sinn gemacht.

Einrichtung
Bevor ihr den Patcher später an eure Spieler verteilt, solltet ihr die .\data\config.fe angepasst haben. Danach entpackt ihr die Dateien und Ordner einfach in einen UO-Ordner, den ihr eigens zum Testen angelegt haben solltet. Der Patcher ist fertig „eingerichtet“. Zur Laufzeit legt der Patcher einen Ordner „updates“ an, in dem er auch den Fortschritt vermerkt (lokale Version beispielsweise). Sollte etwas schief gehen (Internetabriss, Programmabsturz,…) kann man den Patcher durch löschen des „updates“ Ordner zurücksetzen.

Server
Ihr benötigt einen Webserver. Allerdings habe ich auf die Zusammenarbeit mit einer MYSQL-Datenbank verzichtet, damit möglichst viele Webanbieter kompatibel bleiben. Für verschiedene Routinen könnt ihr natürlich eine Mysql-Datenbank benutzen (Benutzer/Passwort-Abfrage, Dynamische Generierung der Update-Liste je nach Benutzer, etc.). Wer seine Dateien mit HTACCESS sichert: Ihr müsst in eurer .htaccess Datei im Ordner „updates“ dann natürlich auch den richtigen Pfad zu eurer Benutzer-Passwort datei angeben. Nicht vergessen – der Patcher wird sonst nichts herunterladen können.

.\access.php
Diese Datei wird vom Client aufgerufen. Es hat verschiedene Anfragen und der Client erwartet eine Rückantwort (keine Antwort ist in dem Fall auch eine Antwort). Wie ihr die Datei im Endeffekt gestaltet, ist eure Sache. Die Antwort wird als String zurück erwartet, in dem Fall ein Webstring, wie ihr ihn mit dem php Kommando „echo“ erzeugen könnt.

Anfrage:
valid -> Client Fragt Server: Ist Benutzername und Kenntwort-Kombination gültig?
Erwartete Rückantwort:
VALID=1/0 -> 1=Gültig, 0=Ungültig

Anfrage:
htaccess -> Client Fragt Server: Wie ist der Benutzername und das Passwort für den Ordner, in dem die Updates liegen?
Erwartete Rückantwort:
HTACCESSUSER=<Benutzername>,HTACCESSPASS=<Passwort> -> Ihr könnt euren Update Ordner mittels .htaccess schützen um nur Downloads von zugriffsberechtigten Personen zu erlauben. In diesem Fall müsst ihr diese Kombination über diesen Eintrag dem Client mitteilen, weil dieser sonst keine Chance hat, die Dateien herunter zu laden.

Anfrage:
info -> Client Fragt Server: Wie ist der Inhalt für meinen Webbrowser?
Erwartete Rückantwort:
<Eine HTML-Seite mit Inhalt>

Anfrage:
updates -> Client Fragt Server: Welche Updates sind Verfügbar?
Erwartete Rückantwort:
Text in Form der .\def\updates.fe (s.u.)


Diese Anfragen stellt der Client automatisch. Die Abfolge in kürze:
- Übermitteln von Benutzername und Passwort, wenn Login benötigt, mit Frage an den Webserver: Gültig?
- Übermitteln von Benutzername und Passwort, mit Frage an den Webserver: Inhalt Webbrowser?
- Ermitteln der Lokalen Version
- Übermitteln von Benutzername und Passwort zur ermittelung des HTACCESS- Zugangs mit Frage an den Webserver: Htaccess Benutzername / Passwort-Kombination bitte übermitteln.
- Übermitteln von Benutzername und Passwort, mit Frage an den Webserver: Welche Patches gibt es, die neuer sind als meine lokale Version?
- Durchgehen der Patchroutine
- Schreiben der Patchversion in die lokale Datei, nach erfolgreichem Beenden.

.\updates
Wie ihr euch denken könnt, kommen hier eure Updates rein. Alle Dateien die ihr irgendwie zur Verfügung stellen wollt einfach hier rein schieben. Solltet ihr das Verzeichnis mit einer .htaccess schützen, müsst ihr Benutzername und Passwort per access.php an den Clienten weitergeben. Der Client kann .rar, und .zip Dateien entpacken. Ihr könnt also viele Dateien zu einer einzelnen zusammenfassen und als kompakten Patch rausbringen oder sie einzeln zum Download stellen, wie ihr wollt.

.\def\info.fe
Diese Datei habe ich als Beispiel eingefügt. Sie benutzt das Benutzername-Spezifische realisieren von News, Erfolgen oder ähnliches, die im Webbrowser angezeigt werden sollen. Beispielsweise könntet ihr Ingame Geschriebene Nachrichten und deren Antworten aus eurer Datenbank auslesen und dem Spieler darstellen lassen oder, oder, oder…

.\def\updates.fe
Die Definitionsdatei und Steuerungsdatei für Updates. Um diese im Detail genauer zu erklären habe ich in der Datei die Arten von Patches genauer erklärt. Bitte überseht den *not implemented yet* - Hinweis nicht. Das heißt in der Regel, dass das noch nicht funktioniert.

.\img\*.*
Ich habe da Bilder gespeichert die ich zum erzeugen der Website brauche, die im Webbrowser des Clienten dargestellt werden soll. Nicht unbedingt nötig.

So, das soll erst mal genug der Verwirrung sein,

Den Patcher gibt es hier: http://uo-illusien.de/patcher/patcher_v140612.rar

Viel spaß beim experimentieren,
- SN
UO World – Archiv-Neuauflage 2026 · Impressum · Datenschutz