Inhalt des Archivs:
Patcher.exe	=> der Patcher für die Spieler (beliebig nennbar)
autopatcher.dll	=> benötigte dll ( nicht umbenennen! )
config.xml	=> die configdatei für den Autopatcher, anpassen und
mitliefern
Patchmaker.exe => damit erstellst du die patches
version.tdv	=> so schaut die datei aus, die aufm server liegen muss,
wo die aktuelle version drinsteht
tutorial.txt	=> englisches tutorial
beschreibung.txt	=> dieses file


1. Erstellen des Patches:
Patchmaker Starten und bei auf das Feld "zu patchende Dateien"
rechtsclick ausführen. Alle Dateien die du im patch haben willst
hinzufügen.
Der Patcher kennt zwei verschiedene "patcharten". zum einen einen ein
einfaches packen der datei, zum anderen einen "intelligenten"
differenzpatch. Diesen gibts allerdings nur für die
standart-uo-muldateien (
anim/art/gumps/texturen/statics/map/radarcol/tiledata/sound).
falls die ausgewählte datei eine von diesen ist, wird sie standartmässig
auf "intelligent patchen" gesetzt, was man daran sieht, dass sie grün
angezeigt wird in der liste. alle die einfach nur gepackt werden werden
rot angezeigt.
Man kann Dateien, die man auch intelligent patchen könnte auch explizit
nur packen lassen ( also kein differenzpatch ), dafür datei auswählen in
der liste, rechtsclick und auf "Nicht Patchen" ( nicht patchen bezieht
sich hier nur auf "nicht differenz patchen" )

=>  das ist extrem zu empfehlen für den grundpatch, d.h. die erste
version, da das die einzige mir bekannte möglichkeit ist dafür zu sorgen,
dass alle die gleiche ausgangsversion haben.

hat man alle dateien die in den patch sollen hinzugefügt, dann auf den "..."
button clicken und das verzeichnis auswählen, indem die basisdateien
liegen, gegen die der differenzpatch vergleichen soll ( also praktisch
die momentan aktuelle version des patches )

dann einfach auf "Start" clicken und Namen für die patchdatei aussuchen.
Name muss die Form patch_x.tdv haben, wobei "x" für die Nummer des
Patches steht. ( der erste patch wäre danach patch_1.tdv )
danach abwarten, kann ne weile dauern, zum zeitvertreib kann man der
prozentanzeige zugucken ;-)

Hinweis:
aus technischen gründen ist es, wenn man für neue items o.ä. _nur die anim.idx_ aber _nicht_ die anim.mul geändert hat, sehr zu empfehlen die anim.idx immer "rot" zu patchen, d.h. nicht-intelligent. ( verkleinert den patch um ca. 30mb :P )
bei allen anderen dateien und varianten ist der differenzpatch wesentlich kleiner

2. einstellen der version.tdv
In die version.tdv als "Version" die aktuellste  version des patches
eintragen, für den ersten patch also "Version=1". Unter "Versionname"
das eintragen, was der Spieler angezeigt bekommen soll beim Patchen, wie
die Version heisst. ( Am einfachsten auch die gleiche Nummer wie bei
Version verwenden )
Version _muss_ durchlaufend sein, also auf Patch 1 folgt Patch 2, folgt
Patch 3, auslassen oder überspringen funzt net. Allerdings sieht der
Spieler diese "internen" Nummern nicht, sondern nur das was bei
Versionname steht.
Shardinfo: hier kann man einen text eintragen, der dem spieler angezeigt wird
(infos, news, wasweissich )
Banner: hier kann man eine datei eingeben, die im patcher als banner geladen werden soll
diese datei muss im gleichen verzeichnis wie die version.tdv liegen
(das banner wird dann einmal runtergeladen und dann erst wieder wenn sich der name geändert hat. wenn kein banner vorhanden ist, wird ein uodev-banner eingeblendet)
möglicher gesamtaufbau der version.tdv:

[TDV]					<== muss immer da sein
Version=1				<== Versionsnummer, durchlaufend
Versionname=1.0				<== Name der aktuellen version
Shardinfo=Wir haben einen neuen Patch.	<== Irgendein Text
Banner=shardbanner.jpg			<== Banner als jpg, format 468x50 pixel
Auth=0					<== Auth Level, falls > 0 dann Passwortabfrage
FileSuffix=tdv				<== Welche Endnung die patch_1.* dateien haben ( WICHTIG! nur die patches, version.tdv _muss_ weiter .tdv haben )


3. einstellen der config.xml
UOPath muss der spieler einstellen ( ist der lokale UOPfad )
am anfang einfach "" lassen, dann öffnet sich beim starten für den spieler ein fenster, wo er seinen uopfad auswählen kann.
Versionname und Version am besten auf 0 Null lassen, da steht die
version des patches drin, die jeweils lokal aktuell ist.
Servername ist die adresse zu dem Verzeichnis, in dem aufm server die
version.tdv sowie die patches ( patch_1.tdv patch_2.tdv, ... ) liegen
Client ist die Datei im uo-verzeichnis die gestartet werden soll am ende
LoginString ist das, was um auf deinem Shard spielen zu können in der login.cfg
stehen muss
ProgName ist der Name der beim Patcher in der Titelleiste angezeigt
werden soll
( Idealerweise auf "Shardname Patcher" oder ähnliches ändern ;)  )

4. raufladen der version.tdv und der patch_1.tdv ( und ev. weiteren )

5. spieler patcher.exe, autopatcher.dll und config.xml laden lassen

6. spieler autopatcher starten lassen

7. geht hoffentlich ( wenn net, fragen ;)  )
( am besten erstmal bei dir selber testen, hat ausser mir noch niemand
getestet ;) )

8. hinweis: der patcher connectet nachm starten als erstes zu uodev und guckt ob es eine neuere version ( des patchers ) dort gibt, wenn ja läd er die automatisch und updatet sich ( danach beendet er sich und des kommt ne meldung dass man ihn neu starten muss )

9. damit da keine probleme auftreten, wird der patcher _immer_ abwärtskompatibel sein

10. über einen lobenden hinweis sowie einen link in eurer linksektion auf uodev ( www.uodev.de ) sobald die hp wieder up ist würden wir uns freuen, falls ihr dieses programm nutzt.

11. 10. ist ernstgemeint ;)

12. dinge die man für das authorisierte zeugs braucht:
wichtig: die version.tdv muss ohne authorisation erreichbar sein
ist in der version.tdv Auth > 0, dann connectet der patcher als nächstes mit username
und md5-verschlüsseltem passwort ( alle buchstaben kleingeschrieben ) nach:
Servername/patcher.php?action=authenticate&user=Username&password=Password
im header der antwort erwartet er also 'patcher-auth' ein 'ok' wenn es geklappt hat, ansonsten
irgendetwas anders, ausserdem ein cookie das die PHP-sessionid übergibt.
danach versucht der patcher alle benötigten patches über
Servername/'patcher.php?sessionId=PHPSessionID&request=patch_i.tdv
zu ziehen, ausserdem muss im header der antwort zu jedem dieser files die
md5-checksumme des patches unter 'patch_verification' enthalten sein.

VD
varan@torderverlorenen.de
www.uo-mittelerde.ch
www.uodev.de