Seite 1 von 1

[Tutorial] Wie der Wein auf den Tisch der Adligen kam...

Verfasst: 17. November 2010 19:36
von Bacchus
Bitte hier nichts posten!

Im Jahre 1106 überkam Bischof Benno ein ganz merkwürdiges Gefühl. Immer dieses Wasser, was in späteren Jahrhunderten auch noch verschmutzt wird.
Wie sollen die Dichter ihre Werke schreiben? Ein Herr Heine zum Beispiel: "Sie predigten Wasser, und tranken Wein."
Ich erbarmte mich und stiftete einen Rebstock, auf das er Früchte trage und seine Anhängerschaft sich vermehre.
Schließlich ging es ja auch darum mein Überleben zu sichern. Wie sollen die Menschen einen Gott anbeten, wenn´s noch nicht mal Wein zum feiern gibt.
Von diesem Jahr an hallten auch in den Sälen Deutschlands die Becher, gefüllt mit dem edlen Tropfen. Um sich zu späterer Stunde in weinseeliger Laune über die Verdopplung der Sterne am Firnament zu freuen.
Im Jahre 1404 widmete sich, in einem abgelegenen Kloster, Bruder Hilarius der Verarbeitung der edlen Früchte. So kam es das sich mancher Stadtherr seines Kellers bediente, wenn die Vorräte zur Neige gingen....

Grundlegendes und Vorbereitung
In diesem kleinen Tutorial möchte ich euch zeigen wie man sein Anno 1404 etwas persönlicher gestalten kann. Angefangen bei ein paar grundlegenden Informationen, bis hin zu den Scripten.
Den meisten ist bestimmt schon aufgefallen das die wichtigsten Dateien in einem .rda-Format gut verpackt auf der Platte liegen.
Das bedeutet wir brauchen erstmal eine Möglichkeit um an die einzelnen Scripte zugelangen.
Hierfür geht ihr bitte auf die AnnoZone und saugt euch den 1404Explorer (v0.3): klick mich!
Jetzt könnt ihr die gesamten .rda-Dateien erstmal entpacken.
Wobei man beachten sollte welcher Patch installiert ist. Heißt, für alle diejenigen unter uns welche mit dem Patch 1.1 spielen, müssen auch diese Dateien entpacken, ergo die patch0.rda. Demzufolge bei Patch 1.2 die patch1.rda.
Einfach die gewünschten .rda-Dateien mit dem 1404Explorer auswählen und dann auf Extrahieren.
Es empfiehlt sich die Dateien erstmal irgendwo auf dem Rechner zu sichern, zum Beispiel unter Eigene Dateien einen Ordner für Anno1404 modding anlegen und die ganzen Files dahinentpacken.
Hat den Vorteil, dass falls mal was schief geht; und euer Spiel nicht mehr startet, oder mittendrin einfach mal einen astreinen CTD hinlegt; ihr immer wieder auf "saubere" Scripte zurückgreifen könnt.
Nun ist das aber so eine Sache mit den ganzen Patches. Ein Patch verändert ja nicht das ganze Spiel, sondern beschränkt sich auf ein paar ausgewählte Scripte. Das bedeutet, wenn in euren Dateien vom installierten Patch, einfach mal ein paar Scripte fehlen, und das auch noch genau die sind welche ihr bearbeiten wolltet, so müsst ihr nun noch mit dem Tool die .rda-Dateien entpacken welche nicht vom Patch überschrieben wurden. Hier klickt einfach auf extract all.

Noch ein Hinweis zum Tool: es kann vorkommen wenn ihr das Tool entpackt, euer Antivirusprogramm heftig Alarm schlägt. Jedenfalls bei McAfee ist das der Fall.
Dann geht einfach über die Navigation zum Punkt Echtzeitscan und deaktiviert dieses Feature solange ihr die Dateien entpackt.
Sobald ihr den Echtzeitscan wieder aktiviert löscht McAfee das Tool mit dem Hinweis: Trojaner entdeckt.
Es empfiehlt sich solange der Echtzeitscan deaktiviert ist, sich mal kurz vom I-Net abzuklemmen. :strategie_zone_22:

Ich denke bis hierhin dürften noch keine Probleme aufgetreten sein. Wenn doch, dann erklärt bitte so genau wie möglich was ihr gemacht habt und was letztendlich das Tool nicht gemacht hat, was es aber machen sollte.
Alle Fragen zum Thema modding Anno 1404 bitte hier rein.

Ich denke das jetzt die ersten unter Euch schon ganz eifrig waren und die ersten Änderungen vorgenommen wurden sind, ABER es hat sich nichts getan. Kein Feature im Spiel hat sich geändert, schon gar nicht ziehen mehr Leute in die Häuser... was für ein blödes Tool. Da kann ich nur sagen immer schön ruhig mit den jungen Pferden, alles braucht seine Zeit. Und ein Tutorial wird deshalb geschrieben, damit selbst der faulste unter uns es bis zum Ende liest. :strategie_zone_38:
Als erstes, jedenfalls würde ich es so machen, kommen die Dateien in den Ordner data , welche ihr bearbeiten wollt. Alles andere würde ich raus lassen, weil verwirrt nur. Im Endeffekt ist dieses system wie bei der Totalwar-Reihe aufgebaut, alle entpackten Scripte welche im Ordner data fehlen zieht sich das Spiel aus den .rda-Dateien. Und mit dem Ordner data haben wir auch so eine Art Modfolder.
Der nächste Handgriff ist, das wir die Scripte freischalten. Dafür müssen wir im Ordner config unter engine einen Eintrag ändern:
<PreferLocalFiles>0</PreferLocalFiles> auf <PreferLocalFiles>1</PreferLocalFiles>
Somit wird die .exe-Datei auf den data-Ordner "gelotst" und bindet als erstes die entpackten Dateien ins Spiel ein. Wenn ihr euer Anno dann wieder im Original zocken wollt, weil ihr mal Bock auf ein paar Erfolge habt, dann ändert die 1 einfach wieder in eine Null um und der data-Ordner ist somit "ausgeschalten".
Noch ein ganz wichtiger Hinweis bevor man mich hier anfaucht: Sobald ihr im modding-Modus spielt, werden KEINE Erfolge im Spiel gewertet. Selbiges gilt auch für installierte Mods!!!

Für alle die jetzt aufschreien, den Ordner config gibt es bereits unter data, ABER von einem Script names engine ist weit und breit nix zu sehen. Gut, dann müsst ihr diesen Ordner sichtbar machen. Bedeutet das Teil ist auf eurem Rechner versteckt. Dafür rufen wir uns die versteckten Ordner und Dateien auf. Als erstes mit der Windows-Taste + R den Dialog öffnen und das hier eingeben: %appdata%
Nun könnt ihr die aufgerufenen Ordner nach Anno1404 durchforsten und solltet dann auch fündig werden.

Kleiner Tipp noch am Rande: für alle die unter Vista und Win7 den ausführen-Befehl wieder im Startmenü haben möchten folgen bitte dieser kurzen Anweisung:
- als erstes die Taskleiste rechtsklicken
- dann auf Eigenschaften gehen
- oben habt ihr jetzt ein paar Spalten zur Auswahl, klickt auf Startmenü und danach auf Anpassen
- jetzt setzt einfach einen Hacken bei Befehl "Ausführen" und das ganze nur noch mit übernehmen bestätigen und ok, ok.

Nachdem das alles gemacht ist, haben wir auch schon den ersten Teil des Tutorials bewältigt. Und können uns ganz und ausschließlich auf die Scripte und ihre Befehle konzentrieren.

* * *
Hier gehts zum Fragen-/Kommentar-Thread

* * *

assets.xml

Verfasst: 18. November 2010 10:02
von Bacchus
Grundlegender Aufbau

Die Datei an welcher sich die meisten unter uns aufhalten werden.
Sie bindet Gebäude ins Spiel ein, legt deren "Wert" fest. Aber auch sämtliche Schiffe sind hier mit drin, mit allen Bedingungen und Werten für die Karte.
Das wichtigste an Scripten und den darin benutzten Befehlen ist wie immer das Verständnis. Bedeutet, ich muss erkennen was ich gerade mache und vorallem warum ich es genauso und nicht anders mache.
Ich denke wer sich noch nie in seinem Leben mit modding beschäftigt hat, wird bei dieser Datei erstmal drein schauen wie die Kuh wenn´s blitzt. Deshalb werden wir das Script step by step in seine Einzelteile zerlegen und schauen was dann damit anzufangen ist. Die erste Frage welche sich stellt ist: Wo finde ich diese Datei???
Ihr habt nun die .rda-Dateien auf eurem Rechner entpackt liegen, wo spielt keine Rolle. Das Programm gibt uns aber eine Ordnerstruktur vor, ergo müssen wir diese auch so umsetzen und einhalten. Bedeutet, wir müssen diese Datei in den Ordner data vom Spiel kopieren. Als Wegweiser benutzen wir den vorgegebenen Aufbau den wir in den Ordnern der entpackten Dateien haben. Ergo, unsere assets.xml liegt auf eurem Rechner unter Eigene Dateien:
...\Anno\data\config\game (ich habe meinen Ordner zum entpacken einfach nur Anno genannt)
Jetzt müssen wir den selben Pfad im Spielordner festlegen. Bedeutet unsere Datei muss nach: \Ubisoft\Related Designs\ANNO 1404\data\config\game
Wobei das Rotmarkierte beim letzten Zielpfad mit dem der entpackten Dateien übereinstimmen muss.

Bild

Uploaded with ImageShack.us

Die zweite Frage welche sich stellt ist: Wo fangen die Einträge an und wo hören sie auf???
Ein Eintrag beginnt immer mit asset und dem Gebäudetyp. Es werden also nicht die Gebäude/ Schiffe/ neutrale Kräfte gesetzt sondern deren Zugehörigkeit einer Kategorie. Dies kann zum Beispiel sein:
<Asset> -> hier beginnt immer ein neuer Eintrag
<Template>FactoryBuilding</Template> -> bedeutet in dem Fall, es ist ein Produktionsgebäude.
oder ihr findet für die "Wohnungen" der einzelnen Levels, also für Bauern, Bürger, etc. PP. diesen Eintrag:
<Asset>
<Template>ResidenceBuilding</Template> -> das wäre der Beginn eines Eintrages für die Wohnhäuser.
Selbiges gilt natürlich auch für die anderen Features im Spiel. So wird die Weizenfarm mit FarmBuilding eingeleitet, und so weiter und so fort.
Einfach mal diese Datei 5 Minuten durch scrollen und mit dem Aufbau ein bissl anfreunden. Vereinfacht später das arbeiten mit diesen Scripten.
Das Ende eines Eintrags wird immer mit assets bestätigt:
</Asset>

Das ist auch schon das Stichwort. Sobald ihr einen neuen Eintrag unter die assets setzt, sei es ein komplett neues Gebäude oder nur ein zusätzliches Features zu einem bereits bestehenden Gebäude sind diese Einträge grundsätzlich zu öffnen und auch wieder zu schließen. Bedeutet wenn wir einen Eintrag mit <asset> öffnen, so muss dieser auch abgeschlossen werden: </Asset> . Dies wird immer durch die Wiederholung des Befehls getätigt mit welcher der Eintrag eröffnet wurde, nur das zum Abschluss ein Slash (Schrägstrich) vor das Kommando gesetzt wird. Damit "weiss" das Programm hier hört ein Eintrag auf und ein neuer beginnt, oder einfach hier ist jetzt Schluss.

Einige werden sich jetzt fragen: Hmmm, alles gut und schön, aber wenn ich zusätzliche Features bei einem Schiff einbauen will... Woher weiss ich welche Befehle ich verwenden kann.
Ubisoft hat es uns hier relativ einfach gemacht. Im selben Ordner, ergo unter data\config\game findet ihr die properties.xml. Diese Datei enthält alle Befehle welche ihr verwenden könnt:
<Description>Flag ob Einwohner an diesem Gebaeude Wasser holen koennen</Description> oder
<Description>Zivilisationsstufe, zu dem dieses Haus zaehlt</Description> -> auch hier zu erkennen wie ein Befehl eröffnet wird: <Description> und auch wieder beendet: </Description>
Das soll erstmal als Beispiel reichen. Ein paar Erklärungen sind auch in Englisch, ist aber nicht schwer rauszulesen um was es sich handelt.
Natürlich haben auch diese Befehle ihre Reihenfolge im Script. Was uns an diese Struktur bindet und wir nicht wild ein paar neue Zeilen einfügen können. Ich vergleiche das gerne mit dem Rangsystem beim Militär. Der General hat da am meisten zu sagen, deswegen können wir den <asset>-Befehl mit einem General gleichsetzen. Da geht nix drüber. Dann gibt es noch ein paar übergeordnete Befehle wie zum Beispiel: <Values> , das wäre in meiner Rangfolge der Oberst. Dieses System lässt sich nun weiter nach unten brechen. Am Schluss, quasi Schütze letztes Glied, sind dann immer die Kommandos welche wir eigentlich ändern wollen. Sei es die Anzahl an Wagen welche einem Markthaus zur Verfügung stehen, oder wieviele Einwohner in ein Bürgerhaus passen.
Somit hätten wir doch ganz gut die Kurve zu den einzelnen Kommandos bekommen.


* * *
Hier gehts zum Fragen-/Kommentar-Thread

* * *

Alle Mann in die Wanten...

Verfasst: 19. November 2010 10:24
von Bacchus
Nach einer kurzen Erklärung zur assets.xml wollen wir mal ein bissl an den Schiffen rumspielen.
Wie gesagt, wenn man sich ein bissl mit diesem Script angefreundet hat, ist der Rest relativ leicht zu verstehen.
Als erstes öffnen wir die assets.xml-Datei mit unserem stinknormalen Editor, welcher bei den meisten PC´s schon vorinstalliert ist, und suchen uns den Eintrag für das große Kriegsschiff der Okzidents.
Wir wollen diesem Schiff einen 2. Itemsplatz verschaffen und dann werde ich noch ein bissl auf den Rest der Werte eingehen.
Mit ein paar Englischkenntnissen kommt man immer weiter. Insbesondere wenn man den Eintrag noch nicht kennt. Ich meine irgendwie muss Ubisoft die Dinger in die Scripts reingebaut haben, ergo kann man Suchbegriffe verwenden. Dafür gehen wir einfach auf "bearbeiten" und dann auf "suchen..." (Strg + F). Es gibt jetzt mehrere Möglichkeiten nach einem Schiff ausschau zu halten. Einmal ganz allgemein, indem man als Suchbegriff: ship eingibt. Solltet ihr auf alle Fälle fündig werden. Man kann die Suche aber auch noch weiter einschränken. Wenn man zum Beispiel das Flagschiff ändern möchte: flagship, oder wie wir das große Kriegschiff suchen, dann: large_warship.
Jetzt sollte euch der Editor über den Suchbegriff auf ein Schiff lotzen. Das hat zwar unter dem Zielpfad für die Texturen unseren Suchbegriff stehen, aber wie wir sehen wenn wir zum Anfang des Eintrags gehen, entspricht das nicht unseren gesuchten Kriegsschiff. Da es als Handelsschiff aufgeführt ist:
<Asset>
<Template>TradingShip</Template>
Auch der nächste Treffer ist noch nicht unser Schiff, da es als <Template>EnemyWarShip</Template> gelistet ist. Ergo weitersuchen...
Im dritten Anlauf werden wir fündig:
<Asset>
<Template>WarShip</Template>
Jetzt steht zwar noch nichts von large mit dabei, kann auch nicht, da die Typspezifizierung nicht zwischen groß und klein unterscheidet, sondern sich darauf beschränkt was dieses Schiff ist: ein Kriegsschiff: warship.
Womit wir bei den verschiedenen Wertigkeiten der Befehle und Kommandos angekommen sind. Nachdem nun dieser Eintrag mit dem üblichen <asset> im Script eröffnet wurde und auch der Typ des "Gebäudes" spezifiziert wurde, folgen weitere erklärende Kommandos für das Programm. Welche mit <Values> eröffnet werden.
Als erstes finden wir diesen Eintrag:
<AIInfos>
<SeaStrength>25</SeaStrength>
</AIInfos>

Wie der Name schon sagt, handelt es sich hierbei <AIInfos> nur um eine reine Informationszeile für die AI (Artificial Intelligence) oder zu deutsch: KI (künstliche Intelligenz).
Die "Stärke" des Schiffe wird für die KI-Steuerung verwendet, ist in dem Fall für uns nicht relevant. Dieser Eintrag wird von der KI benutzt um die gegnerische Kampfstärke, ergo eure, auszuloten und wird in Verbindung mit anderen Scripten dazu benutzt ob die KI euch angreift, mit was sie euch angreift und mit wieviel sie euch angreift. Ein niedriger Wert zieht folglich, natürlich in Verbindung mit den anderen Scripten welche die KI steuern, eine höhere Angriffsbereitschaft nach sich, als ein höherer Wert bei diesem Kommando. Da dieser Befehl abgeschlossen wurde: </AIInfos> kommt da auch nichts mehr und wir können zum nächsten Befehl übergehen welcher mit: <BuildCost> eröffnet wird.
Auch hier sollte die Bedeutung klar sein, build = Gebäude und cost = Kosten. Wobei es dem Programm egal ist was letztendlich im Spiel damit dargestellt wird. Vom Script ist es ein Gebäude wie jedes andere auch, sei es ein Bauernhof oder eine Schweinefarm, von der Steuerung wird es gleich behandelt.
<BuildCost> ist ein offener Befehl genau wie <Values> welcher erst geschlossen wird wenn alle Parameter/ Features für diesen Befehl bestimmt sind. Demgegenüber wird <MoneyCost>4500</MoneyCost> eröffnet und sofort wieder geschlossen, da dieses Kommando nur einen Wert besitzt, den Baupreis des Schiffes.
<BuildCost>
<MoneyCost>4500</MoneyCost>
...ersetzt die 4500 durch eine 6000 und ihr müsst im Spiel ein paar mehr Goldmünzen abdrücken wenn ihr in eurer Werft dieses Schiff baut.
Als nächster Wert folgen die benötigten Rohstoffe welche zur Fertigstellung des Kriegsschiffes benötigt werden:
<ProductCost>
<Wood>70000</Wood>
<Ropes>70000</Ropes>
<Cannons>20000</Cannons>
</ProductCost>

Da es sich um einen neuen Befehl handelt muss dieser natürlich erstmal bestimmt und eröffnet werden: <ProductCost>
Was dann als Auflistung folgt sind wie schon erwähnt die Rohstoffe, also Holz (wood), Seile (ropes) und Kanonen (cannons). Auch hier wieder ganz wichtig, jeder Befehl für jeden Rohstoff erst eröffnen <Wood> und dann wieder schließen </Wood>. So "weiss" das Programm zu was diese Zahl gehört.
Wie wir wissen ist die Maßeinheit in Anno: Tonnen, ergo 1 Tonne = 1000 Kilgramm. Jetzt sollte sich auch die 70000 erklären. Dies ist die Angabe wieviel von einem Rohstoff in Kilogramm benötigt wird, ergo im Spiel werden dann 70 Tonnen angezeigt. Nachdem alle Rohstoffe aufgelistet sind kann dieser Unterbefehl geschlossen werden. Unterbefehl deshalb, weil ja noch ein übergeordneter Befehl <BuildCost> existiert, der aber noch offen ist, da weitere Einträge folgen oder folgen könnten.
Die Bedingungen für den Bau des Kriegsschiffes können natürlich noch weiter ausgebaut oder die benötigten Rohstoffe gesenkt werden.
<ProductCost>
<Wood>70000</Wood>
<Ropes>70000</Ropes>
<Cannons>20000</Cannons>
<Hemp>10000</Hemp> ...beim einfügen von weiteren Bedingungen, darauf achten das im Endeffekt der Unterbefehl immer in dem übergeordneten Befehl integriert ist. Ich habe hier einfach mal spaßeshalber Hanf mit eingebaut, braucht ja ein Schiff um später auf hoher See die Takelage zu reparieren. Man kann auch Bier einbauen, die Seeleute haben schließlich auch mal Durst. Wie ich aber immer sage, was letztendlich jeder für sich zu Hause aus seinem Spiel bastelt ist ganz alleine seine Sache. :strategie_zone_22:
</ProductCost> ...dann kann auch der übergeordnete Befehl abgeschlossen werden
Abschließend für die "Gebäudekosten" folgt noch die Bedingung in welchem Level das Schiff gebaut werde kann:
<NeedsIntermediatelevel>IntermediateHarbourNomblemen</NeedsIntermediatelevel>
Dazu folgen aber später noch ein paar weitere Erklärungen, deshalb spare ich mir das jetzt hier.
Damit ist dieser Befehl abgearbeitet und kann geschlossen werden: </BuildCost>

Wenn ihr euch jetzt fragt warum ich das alles so idiotensicher erkläre? Ich habe ganz bewusst das Große Kriegsschiff ausgewählt. Bei den meisten Schiffen sind alle Befehle vorhanden, aber nicht bei unserem großen Kriegsschiff. Hier fehlt der Eintrag für die Anzahl der Items, ergo müssen wir diesen Eintrag selber erstellen. Ihr werdet, wenn ihr weiter runterscrollt auf diese Einträge stoßen:
...
<Hitpoints>
<MaxHitpoints>1200</MaxHitpoints>
</Hitpoints>
<InfoLayer />
<ItemContainer />
<KIModule />
<MaintenanceCost>
<ActiveCost>60</ActiveCost>
</MaintenanceCost>
...

Gleich zur kurzen Erklärung: <MaxHitpoints>1200</MaxHitpoints> ist die Anzahl der Trefferpunkt, ergo wieviel Schaden/ Treffer ein Schiff wegstecken kann. Wie die meisten von euch mitbekommen haben, besitzen die Schiffe alle unterschiedliche Werte für den Angriff. Ergo euer Flagschiff greift (mit den richtigen Items lol ) für 50 an, demgegenüber ein Schiff mit 500 Trefferpunkten = 10 Treffer für euer Flagschiff bis das gegnerische Schiff sinkt, Ergo bei 1200 Trefferpunkten, wie bei unserem Kriegsschiff = 24 Treffer. Den Rest sollte sich jeder jetzt selber ausrechnen können.
Der Befehl <ActiveCost>60</ActiveCost> ist der Unterhalt des Schiffes, welcher einem übergeordneten Befehl untersteht: <MaintenanceCost>. Das liegt daran das es im Script nicht nur Aktive Kosten gibt, sondern auch inaktive. Dazu aber später auch mehr und ausführlicher wenn wir uns mit den "richtigen" Gebäuden beschäftigen.
Beim kleinen Kriegsschiff findet sich jetzt in dieser Rubrik der Eintrag für die Anzahl der Itemslots. Ergo, unser großes Kriegsschiff besitzt diesen Eintrag nicht, das bedeutet erstmal: Wenn kein Eintrag vorhanden ist, liegt der Grundwert bei 1, welcher dann auch im Spiel so übernommen wird. Und unser Schiff hat ja nur einen Platz um ein Item zu sockeln.
Zweitens: wir müssen diesen Eintrag ergänzen. Indem wir diese Zeilen bei einem anderen Schiff suchen und von dort zu unserem Kriegsschiff an genau diese Stelle kopieren von wo wir den Eintrag haben, oder für alljene unter uns welche sich schon mit den Scripten angefreundet haben, diesen Eintrag einfach selber schreiben :
</Hitpoints>
<InfoLayer />
<ItemContainer /> -> auch wenn Befehle nicht benutzt werden, müssen sie trotzdem im Script sein. So können wir immer relativ leicht raus finden wo was hingehört. Als erstes setzen wir den Slash vom Ende des Eintrag an den Anfang, so haben wir den Befehl erstmal abgeschlossen.
<KIModule />
<MaintenanceCost>

Als nächstes müssen wir den Befehl so aufbauen dass das Programm ihn auch als solchen erkennt. Ergo eröffnen, weil Abschluss haben wir bereits. Dann einen weiteren Unterbefehl, nämlich das es sich um den Platz für ein gesockelte Items handelt: <Sockets> und das es sich um ein Schiff handelt. Letztendlich fehlt nur noch die Anzahl an Items welche mitgeführt werden können. Gleich vorweg, mehr als 2 Sockel pro Schiff und mehr als 3 Sockel pro Warenhaus geht nicht, ergo es ist ein Limit gesetzt. Unser kompletter Eintrag sollte dann so aussehen:
<ItemContainer>
<Sockets>
<Ship>2</Ship>
</Sockets>
</ItemContainer>


Was dann im Spiel so sich darstellen sollte, jedenfalls wenn alles richtig ist:

Bild

Uploaded with ImageShack.us

Auf die ganzen weiteren Befehle brauche ich glaube nicht weiter eingehen. Ich denke die Befehle sollten mit ein paar Englischkenntnissen leicht zu entziffern sein. Zur Not hilft auch ein Wörterbuch. :strategie_zone_22:
Und bei den Gebäuden gehe ich ja auch noch auf weitere Möglichkeiten ein. Einmal wie man mit den Befehlen arbeiten kann und zum anderen was diese dann bewirken. Aber ich würde vorschlagen, wir bleiben erstmal bei den Schiffen und schalten uns als nächstes das Goldene, sowie das Silberne Schiff frei. :strategie_zone_31:


* * *
Hier gehts zum Fragen-/Kommentar-Thread

* * *

Zar und Zimmermann...

Verfasst: 20. November 2010 10:43
von Bacchus
Wie schon der gute Dichter Alfred Lord Tennyson über unser Vorhaben geschrieben hätte:
...kommt meine Freunde, noch ist es nicht zu spät.
Denn ich will segeln, segeln über den Sonnenuntergang hinaus.
Obwohl wir nicht mehr die Kraft besitzen,
welche in alten Tagen, Himmel und Erde bewegte, sind wir denoch was wir sind.
Noch immer sind wir Zimmerleute die Goldene Schiffe bauen... naja oder so ähnlich gingen die Verse. :strategie_zone_29:

UPDATE: Bitte hier zuerst lesen, wer das goldene Schiff einbauen will!

Da ich beim rezitieren bereits ertappt wurde, bleiben wir gleich bei den alten Weissheiten.
Viele Wege führen nach Rom. Das trifft auch für dieses Tutorial zu. Um Features in einem Spiel freizuschalten gibt es mehrere Möglichkeiten. Welche sich in bestimmte Berufsgruppen unterteilen. Ein Weg ist für den fleißigen Handwerker unter uns, ein anderer mehr für den filigranen, aber faulen Optiker gedacht. Wenn man sich ein bissl mit modding oder vielleicht sogar schon mit Programmierung beschäftigt hat, weiss das ein Script niemals alleine im Spiel steht, ok bis auf ein paar Ausnahmen. Die Scripte sind wie ein Netzwerk aus Wegen und Straßen miteinander verbunden. Wobei es hier weniger eine Rolle spielt über welche Sprache wir uns unterhalten, ergo C# , oder Java, oder eben D. Der Unterschied liegt einzig darin, die Abfahrt von der Autobahn zu erwischen und halt am Ziel anzukommen, ohne lästige Umleitungen zu benutzen. Manchmal ist ein holpriger Feldweg besser zu befahren, als eine gut ausgebaute Fernverkehrsstraße.
Aber genug der Weissheiten, wir wollen ja die Texturen für´s Goldene Schiff ins Spiel bringen. Nun habe ich schon mehrmals in anderen Foren die Frage gehört: Was soll das denn bringen???
Eigentlich nichts, die Werte sind die gleichen... Aber, es sieht einfach goiler aus.

Wenn jetzt schon einige unter uns versucht haben nach dem Schiff zu suchen, ihr werdet sehr schnell festgestellt haben, mit Suchbegriffen wie golden, oder silver, oder goldship kommt man nicht weiter. Gibt man dann nur ship ein, sitzt man morgen früh noch da und weiss immer noch nicht welches nun das richtige unter all den ganzen Einträgen ist.
Als Erstes, die ganzen texturen, mesh-, lod- und wasweissich-Dateien sind alle unter Ubisoft\Related Designs\ANNO 1404\data\graphics\units\ships\north zufinden. Kleiner Unterschied, wer die Schiffe des Orients sucht muss natürlich unter south nachschauen. Ich denke das Silberne Schiff sollte gleich rausstechen, es war ja in der Preorder-Version des Spieles enthalten und auch nur für da gedacht, ergo sollte der Ordner: preorder_ship zu unserem gesuchten Silbernen passen.
Beim Goldenen gehen wir in etwa genauso vor, nur halt über das Ausschlussverfahren. Im Endeffekt, wenn man Anno schon eine Weile gespiel hat, sollte man die Schiffstypen aus dem Spiel kennen. Ergo bleibt für das Goldene Schiff nur der Eintrag hier übrig: achievement_ship.
Jetzt haben wir erstmal einen Anhaltspunkt nach dem wir in den assets suchen können.
Ein Weg wäre allerdings die assets rauszulassen und mit 2 Ordner zu arbeiten, ergo wäre der Weg für den fleißigen Handwerker. Indem wir jetzt unseren Ordner von Anno in den Eigenen Dateien öffnen und die Ordner preorder_ship, sowie achievement_ship erstmal nach data kopieren. Wenn die bereits vorhanden sind, muss das natürlich nicht mehr gemacht werden. Jetzt könnte man den Ordner achievement_ship in den Eigenen Dateien offen lassen und den Ordner für´s Flagschiff (flagship) unter data öffnen, und anfangen alle Dateien im Ordner achievement_ship umzubenennen. (Achtung! Sicherungskopie anlegen)
Würde bedeuten, ihr müsstet mit dem ersten Eintrag für´s Flagschiff anfangen: rechtsklicken, auf umbenennen gehen, Strg + C. Dann rüber zum Ordner achievement_ship, und dort das Pondon zu dieser Datei wählen, ebenfalls rechtsklick und auf umbenennen und weiter mit Strg + V. Da das ganze einfach zu Zeitaufwendig ist, und irgendwann auch keinen Spaß macht bis man alle .cfg, .ifo, .gr2, .cdu... ooops das gehört glaube ich zum Bundestag. Aber ihr seht schon, das wäre zwar ein Weg, aber der muss nicht unbedingt sein.
Jetzt sind wir bei den Wegenetz der Dateien angelangt und bei den Arbeitsschritten für den filigranen Optiker. Ich meine irgendwo muss doch das Programm wissen welche texturen es für die Schiffe ins Spiel zu bringen hat. Wie gesagt es gibt (kaum) eine datei welche in der Luft hängt, ergo für sich alleine steht. Und hier sind wir wieder bei der assets.xml-Datei. Aus unserem data-Ordner, welcher die Dateien enthält welche dann im Spiel verwendet werden, öffnen wir jetzt die assets.xml und suchen nach unserem Flagschiff, ergo flagship
Auch hier wieder aufpassen, der erste Treffer ist nicht das gesuchte Schiff, da als tradingship klassifiziert. Ergo weitersuchen bis wir ein Flagschiff finden was unter warship steht, oder ihr sucht nach caravel, der nächste Eintrag ist dann unser Flagschiff.
Jetzt öffnen wir die assets.xml, welche unter Eigene Dateien liegt, ergo unsere Sicherungskopie und suchen nach: achievement_ship
Da dieses Schiff nur einmal vorhanden ist, können wir gleich den ersten angezeigten Eintrag nutzen. Jetzt markieren wir diese Zeile:
<Filename>data\graphics\units\ships\north\achievement_ship\n_achievement_ship.cfg</Filename>
...dann Strg + C und gehen auf unsere assets.xml wo wir das Flagschiff aufgerufen haben und ersetzen diese Zeile:
<Filename>data\graphics\units\ships\north\flagship\n_flagship.cfg</Filename>
...indem wir sie markieren und mit Strg + V den neuen Eintrag einfügen.
Dies muss jetzt auch noch für den 2. Eintrag gemacht werden, indem wir diese Zeile:
<DestructionConfig>data\graphics\units\ships\north\flagship\n_flagship_damaged.cfg</DestructionConfig> durch diese:
<DestructionConfig>data\graphics\units\ships\north\achievement_ship\n_achievement_ship_damaged.cfg</DestructionConfig>
ersetzen/ austauschen.
Was haben wir gemacht??? Im Endeffekt sind die Einträge welche wir "getauscht" haben die Anweisung für das Programm wo die texturen für das Schiff zu finden sind, ergo ein Wegweiser, oder auch Zielpfad genannt. Wir haben nichts anderes gemacht als diesen Zielpfad auf den Ordner gelenkt wo die texturen für das Goldene Schiff drin sind. Sozusagen das Navigationssystem ein bissl modifiziert, indem wir einen Weg gesperrt haben, dafür aber einen anderen freigegeben.
Wenn ihr gespeichert habt, müsste das Goldene Schiff im Spiel sein:

Bild

Uploaded with ImageShack.us

Selbiges kann natürlich auch mit dem Silbernen Schiff gemacht werden, indem ihr den Zielpfad für das Silberne Schiff bei dem Schiff einfügt welches diese texturen bekommen soll. Ihr könnt natürlich auch ein einfaches Handelsschiff mit diesen Texturen versehen, indem ihr bei diesem Schiff den Zielpfad auf den preorder_ship-Ordner lenkt... das muss halt jeder für sich entscheiden.
Wenn ihr den Zielpfad richtig angepasst habt, sollte im Spiel auch das Silberne Schiff zu sehen sein, als was auch immer:

Bild

Uploaded with ImageShack.us

Wenn ihr zum Beispiel das kleine Handelsschiff des Okzidents mit diesen Texturen verseht, dann ist natürlich der Angriffswert = 0, auch wenn das Schiff durch die texturen bedingt Kanonen an Bord hat. Fehlt trotzdem der Eintrag für diese Kanonen im Script:
<DamageFactor>3072</DamageFactor>
Wichtig: Wer noch ohne Patch spielt bekommt hier die genauen Werte angezeigt, ergo für das Flagschiff = 6, oder das große Kriegsschiff = 14. Mit den Patches haben sich diese Werte geändert. Es gibt einen Umrechnungsfaktor von wasweissich. Bedeutet wenn ihr mit einem Patch spielt, aber die assets.xml aus der ungepatchten Version entpackt, haben alle Schiffe einen Angriffswert von 0.

Was ihr jetzt noch mit den Werten für diese Schiffe macht ist zweitrangig. Ihr könnt jetzt zum Beispiel die Trefferpunkte erhöhen, meinetwegen auf 1000:
</BuildCost>
<Hitpoints>
<MaxHitpoints>1000</MaxHitpoints> ;Original 600
</Hitpoints>
...

Oder die Sichtweite des Schiffes bei verdeckter Karte:
<Ship>
<VisionRadius>60</VisionRadius> ; Original 40

Oder ihr erhöht die Anzahl an Slots für Produkte. Hier aufpassen, wie bei den Itemslots, gibt es auch hier ein Limit: mehr als 6 Plätze geht nicht auf einem Schiff:
<Transport>
<SlotCount>6</SlotCount> ; Original 4
</Transport>

Die Geschwindigkeit der Schiffe lässt sich über diesen Befehl erhöhen oder auch senken:
<Walking>
<WalkingSpeed>14500</WalkingSpeed>
Wie sich dieser Wert zusammen setzt weiss ich nicht genau, aber ich vermute 14,5 Knoten oder halt mph. Was eigentlich auch Wurscht ist, Hauptsache das Schiffchen fährt.
Darüber müssen wir uns im nächsten Thema keinen Kopf zerbrechen, da es um immobile Dinge geht, ergo Immobilien oder schlicht die Gebäude.


* * *
Hier gehts zum Fragen-/Kommentar-Thread

* * *

n = j+s-3k... da fehlt noch ein Ziegel / Teil 1

Verfasst: 7. Januar 2011 08:36
von Bacchus
...nach einer mehr oder minder kurzen, bzw. langen Zeit für manch einen unter uns geht es jetzt weiter in diesem Tutorial.
Wie ich ja schon angekündigt habe möchten wir uns noch ein bissl mit den Gebäuden beschäftigen, bevor wir dann auf die Items zu sprechen kommen.
Das meiste was uns interessiert an einem Gebäude findet ihr in der assets.xml. Wie auch schon bei unseren Schiffen werden die meisten Parameter in dieser Datei festgelegt. Hierbei ist es wichtig die Werte richtig zu interpretieren, nicht das mal jemand ´ne Stunde auf eine Tasse Kaffee warten muss.
Kommen wir also gleich zur Erläuterung von den Werten, wie ich weiter oben schon geschrieben habe ist 1000 gleich 1 Tonne, da diese Angaben in Kilogramm sind. Dies könnt ihr euch als Faustregel merken. Ausnahmen gibt es natürlich auch, so sind zum Beispiel die Einflussbereiche der Gebäude wie auch einige Werte welche die Kapazität betreffen mit realen Werten versehen, ergo entfällt die Rechnung x : 1.000.
Ich denke soweit sollte alles klar sein. Der ein oder andere unter euch wird jetzt bestimmt schon über die Zeitwerte gestolpert sein. Ich kann euch aber beruhigen, ein Wert von 60.000 sind nicht etwa 60.000 Sekunden, sondern der Wert ist in Millisekunden angegeben, was dann bei unserem Beispiel summa sumarum 60 Sekunden ergibt, oder halt eine Minute. Ein Wert von 90.000 wäre dann im Spiel 90 Sekunden oder 1,5 Minuten.
Diese Werte sind dann interessant wenn wir über die Produktion sprechen. Also schon mal im Hinterkopf behalten.
Nachdem ich in den vorangegangen Posts mich schon zur Genüge über den Aufbau der xml-Scripte ausgelassen habe, denke ich, den ganzen Schmus über öffnen und schließen und wo beginnt ein Eintrag, können wir uns schenken. Hoffe sollte bis hier her jeder verstanden haben.
Da ich nun schonmal über die Einheit Zeit gesprochen habe, bleiben wir gleich dabei und unterhalten uns ein wenig über die Produktion in Anno 1404.
Als erstes benötigen wir die assets.xml-Datei und geben mal als Suchbegriff Pearl ein. Das erste was euch angezeigt wird ist der Betrieb der Perlentaucher, ergo die Jungs welche den Grundstoff für unsere Perlenketten im Meer bergen. Wem die Produktion zu langsam vorangeht, kann einmal hier die Produktionszeit senken:

<WareProduction>
<ProductionTime>60000</ProductionTime>
<Product>Pearls</Product>
</WareProduction>

Meinetwegen in 30000, was bedeuten würde das die Produktion einer Perle statt 1 Minute jetzt nur noch 30 Sekunden dauert. Hätte zur Auswirkung, das mit einer Perlenknüpferei nicht mehr 750 Gesandte versorgt werden sondern 1.500, und das der Folgebetrieb, die Perlenknüpferei, die bereitgstellten Perlen nicht mehr abarbeiten kann, ergo könntet ihr jetzt 2 Folgebetriebe an das Gebäude Perlentaucherhütte hängen. Das Problem bei diesem vorgehen ist aber euer Kontor. Da dieses nur eine beschränkte Anzahl an Marktkarren zur Verfügung hat. Nun könnte man bei dem Markthaus die Anzahl der Karren von 3 auf 5 erhöhen, aber irgendwann ist auch hier Schluss. Die Produktion erhöhen in allen Ehren, nur sollte es keine Formel-1 Strecke werden. Ergo müssen wir versuchen nicht die Produktion von Perlen ins unermessliche zu treiben, auch ist es nicht sinnvoll die Produktion der Perlenketten zu erhöhen, weil dann benötigen wir wieder bedeutend mehr Perlentaucherhütten.
Was bei einer Produktionszeit von 20000 für die Perlenketten bedeuten würde, dass wir 3 Zulieferbetriebe brauchen. Und da wären wir auch schon an einem weiteren Punkt. Die Produktionszeiten stehen proportional zueinander, bedeutet, wenn ein Grundstoff in 60000 Millisekunden gefertigt wird und der Nachfolgebetrieb ebenfalls 60000 Millisekunden für seine Produktion benötigt, ist das Verhältnis der Betriebe 1:1. Benötigt der Zulieferbetrieb 90000 Millisekunden, der in der Kette folgende produziert aber mit 45000 Millisekunden, dann beträgt das Verhältnis 2:1, ergo müssen wir 2 Zulieferbetriebe für einen Verarbeitenden Betrieb bauen.
Aber machen wir weiter mit den Zahlenspielchen. Unseren Suchbegriff müsstet ihr ja noch im Speicher haben, ergo klicken wir mal weitersuchen und sollten zu der Perlenknüpferei kommen. Produktionszeit kann man senken, muss man aber nicht. Wenn ihr jetzt ein bissl durch das Script scrollt solltet ihr folgenden Eintrag finden:

<Factory>
<RawMaterial1>Pearls</RawMaterial1>
<WorkerGUID>12620</WorkerGUID>
<TransporterGUID>10020</TransporterGUID>
</Factory>

Wir produzieren also Perlenketten im Minutentakt. Nun habe ich gesagt das die Angaben alle in Kilogramm sind, ergo uns verbietet ja keiner nur ein paar Kilo einzusetzen. Man muss ja keine gesamte Tonne für eine Produzierte rausschmeißen, oder wir erhöhen einfach den Ausstoß an Perlenketten, ohne den Bedarf an Rohmterial, in dem Fall Perlen, zu erhöhen. Aber nun mal der Reihe nach.
Den Eintrag für die Produktion könnt ihr noch um einige nette Kleinigkeiten erweitern. Ob das jetzt Sinn macht oder nicht, steht außer Frage, da ich einfach hier nur versuche das Script und den Aufbau zu erklären.
Dieser Eintrag sagt nichts weiter aus, als das wir Perlen zur Produktion benötigen. Der Rest sind Fixwerte, ergo die Produktion benötigt 1000 Kilogramm und die Kapazität liegt bei 5000 Kilogramm. Wenn keine Einträge für diese Werte vorhanden sind, greift das Spiel immer auf die Grundwerte zurück:

<Factory>
<RawMaterial1>Pearls</RawMaterial1>
<RawCapacity1>10000</RawCapacity1>
<RawNeeded1>200</RawNeeded1>

<WorkerGUID>12620</WorkerGUID>
<TransporterGUID>10020</TransporterGUID>
</Factory>

Durch das Einfügen dieser beiden Zeilen, kann man nun die benötigte Menge ( RawNeeded1 ) verändern, sowie die Kapazität ( RawCapacity1 ) im Rohstofflager erhöhen.
In unserem Fall habe ich das Lager für die Perlen auf 10 Tonnen erweitert, da der Grundwert ja bei 5 liegt muss das dem Programm explizit erklärt werden. Und die Menge an benötigten Rohstoffen habe ich auf 200 Kilogramm gesenkt, ergo 0,2 Tonnen, was dann wiederum im Spiel bedeutet das unsere Perlenknüpferei mit jeder gelieferten Tonne 5 Perlenketten herstellen kann. Wenn wir jetzt die Produktionszeit bei 60000 belassen, benötigen wir also nur noch eine Perlentaucherhütte für 5 Perlenknüpfereien. Oder wir senke jetzt noch die Produktionszeit auf 30.000, dann müssten wir mit halben Gebäuden ( 2,5) arbeiten, ähnlich wie bei den Kerzenleuchtern wo die Produktion ebenfalls nicht aufgeht. Also passt immer auf wenn ihr an den Zeiten rumbastelt, das da nix ganz so schiefes bei rauskommt.
Falls ihr ein Gebäude bearbeiten wollt welches 2 Rohstoffe benötigt um zu produzieren, dann müsst ihr für den 2. Rohstoff ebenfalls dies noch festlegen, indem ihr die Einträge erweitert:

<RawCapacity1>10000</RawCapacity1>
<RawNeeded1>200</RawNeeded1>
<RawCapacity2>10000</RawCapacity2>
<RawNeeded2>200</RawNeeded2>

Einfache Erklärung, 1 bedeutet erster benötigter Rohstoff. Die 2, logischerweise, zweiter benötigter Rohstoff. Die Kommandos bleiben in dem Fall die selben, nur das wir beim nächsten Eintrag einfach weiterzählen müssen.

Eine weiter Möglichkeit der Produktionssteigerung ist die Erhöhung des Austoßes eines Produktes ohne die Zeit zu verändern. Hierfür benötigen wir wieder den Eintrag für die Produktionzeit:

<WareProduction>
<ProductionTime>60000</ProductionTime>
<ProductionCount>2000</ProductionCount>
<ProductionCapacity>10000</ProductionCapacity>
<Product>Pearls</Product>
</WareProduction>

Mit den eingefügten Zeilen beeinflussen wir als erstes die produzierte Menge an Waren, in unserem Beispiel produziert die Perlenknüpferei jetzt 2 Tonnen Perlenketten anstatt nur einer, ohne das die benötigte Menge an Rohmaterial sich verändert. Mit dem zweiten Kommando haben wir den Speicher im Produktionslager von 5 Tonnen auf 10 Tonnen erweitert. Wobei ich hier sagen muss, das es nicht allzuviel für den Spieler bringt. Das Markthaus schickt dadurch den Marktkarren später raus, dafür transportiert dieser aber 5 Tonnen am Stück. Müsst ihr für euch selber entscheiden ob ihr das nutzen wollte oder nicht.
Wenn ihr euch ein bissl mit diesen Zahlen beschäftigt, ist es möglich einen sehr realistischen Produktionsablauf zu erstellen. Zum Beispiel könnt ihr die Produktionskette für das Brot so modifizieren das ihr im Endeffekt 5 Farmen für eine Mühle benötigt, diese dann 4 Bäckereien versorgt.
Natürlich kann man jetzt noch die laufenden Kosten für ein Gebäude anpassen, es sei denn ihr wollt mit 100 Bürgern an die 1000 Goldstücke verdienen. Das ist aber jedem selber überlassen...
Die Kosten für ein Gebäude findet ihr ebenfalls unter dem betreffenden Gebäude:

<MaintenanceCost>
<ActiveCost>40</ActiveCost>
<InactiveCost>20</InactiveCost>
</MaintenanceCost>

So und hier kommen wir nun auf den Eintrag der inaktiven Kosten, welchen ich schon bei den Schiffen angesprochen hatte, zu sprechen. Das ist der Wert welcher euch im Spiel angezeigt wird, wenn ihr den Betrieb stilllegt, ergo die Kosten welche anfallen wenn nichts produziert wird.
Die aktiven Kosten sind die Kosten welche immer anfallen wenn ihr eure Produktion am laufen habt.
Denke das reicht erstmal was die Produktion betrifft. Auf die anderen Werte kommen wir noch bei den Residenzen, ergo den Wohnhäusern, zu sprechen.

Fast noch die Hälfte vergessen was die Produktion betrifft. Ihr kennt das doch sicher auch, diese nervige Meldung das Wasser sei alle... und dann ab auf die Südinsel und der Wiederauffüllbutton der Noria gedrückt. Hier könnt ihr euch natürlich einige Luft verschaffen, indem ihr einfach diesen Wert ändert:

<WareProduction>
<ProductionCapacity>5000</ProductionCapacity> --> einfach noch ein Null an die 5.000 dran hängen und schon könnt ihr einige Stunden spielen ohne genervt zu werden.
<ProductionSound>2605</ProductionSound>
</WareProduction>

Und wem das Auffüllen immer noch zu teuer ist, der kann gerne diesen Wert noch abändern:

</NoriaConfig>
<NoriaRefillCost>2500</NoriaRefillCost> --> sollte glaube selbstredend sein.
</Noria>

Natürlich kann man auch noch den Radius des Gebietes erweitern den eine Noria bewässert, dazu aber mehr im nächsten Post. Da es dem Programm egal ist, ob wir vom Einflussbereich eines Betriebes, oder einer Kirche, oder was weiss ich reden...

* * *
Hier gehts zum Fragen-/Kommentar-Thread

* * *

n = j+s-3k... da fehlt noch ein Ziegel / Teil 2

Verfasst: 7. Januar 2011 19:11
von Bacchus
...so großen Bottisch Kaffee neben den Rechner gestellt, nein Rotwein gibt es erst nach Sonnenuntergang. Moment mal, es ist dunkel draußen. *Kaffee ganz schnell in den Ausguss*
Und es kann weiter gehen. :strategie_zone_96:
Nachdem wir nun schon ein bissl in den Scripten rumgewerkelt haben, sollten sich die mehr oder minder kleinen Problemchen verflüchtigen. Wir ihr bereits mitbekommen habt ist das ganze ein relativ einfaches Zahlenspiel, letztendlich durch Logik aber lösbar. Auch wurden die "Kommandos" von Ubisoft so gewählt das man nicht unbedingt vorher Englisch studieren muss um das rauszulesen was wir brauchen. Mir sind da auch schon Spiele untergekommen, wo alle Einträge auf 4 Buchstaben abgekürzt waren, das las sich dann in etwa so wie in einem drittklassigen US-Action Film der über die Delta Force handelt. :strategie_zone_8:
Aber genug des Small Talks, wir waren und sind noch bei den Gebäuden. Und auch noch in unserer assets.xml-Datei.
Eine allseits beliebte Frage, wie bekomme ich mehr Leute in die Häuser. Geht mir genauso, Städte sind was schickes, aber bitte keine Flächenstaaten welche die gesamte Insel bedecken und dann kein Platz mehr ist für Grünanlagen.
Um die Wohnhäuser zu finden muss man schon ein bissl mit den Suchbegriffen experimentieren. Man kann ganz allgemein nach residence suchen, kommt mn auf alle Fälle ans Ziel, nur ist das mit sehr viel scrollen verbunden bis man sicher ist den richtigen Eintrag gefunden zu haben. Wenn ich zu den Bauernhäusern will, sollte ich auch den direkten Weg benutzen, ergo suche ich nach peasant (Bauer).
Rauskommen müsstet ihr bei den Zielpfaden für die texturen, dann noch ein bissl runterscrollen und ihr solltet den gesuchten Eintrag unter dem Bauernhaus finden:

<ResidenceBuilding>
<MinResidentCount>1</MinResidentCount>
<MaxResidentCount>8</MaxResidentCount>
<DowngradeGUID>33000</DowngradeGUID>
</ResidenceBuilding>

Die beiden Werte sollten selbstredend sein. <MinResidentCount>1</MinResidentCount>, einmal die geringste Auslastung des Hauses, ergo dann wenn es gebaut wurde oder für die darauffolgenden Levels wenn diese aufgestiegen sind.
Was dann bedeutet, wie der Name auch schon sagt, das <MaxResidentCount>8</MaxResidentCount> die maximale Anzahl an Bewohnern für dieses Level bedeutet. Da wir beim Bauernhaus sind ist hier bei 8 Hanseln finito. Wer jetzt mehr Bewohner für das Bauernlevel möchte, ändert einfach diese 8 in meinetwegen 15 um. Somit beherbergen unsere Bauernhäuser im Spiel 15 Jungs und/ oder Mädels.
Damit ihr nicht im Bürgerlevel zurückfllt müsst ihr jetzt ebenfalls noch die Bewohnerzahl der Bürgerhäuser anpassen. Suchen müssen wir diesmal nicht, einfach nur ein bissl weiter runter scrollen, weil der nächste Eintrag ist schon unser:

<ResidenceBuilding>
<MinResidentCount>9</MinResidentCount>
<MaxResidentCount>15</MaxResidentCount>
<DowngradeGUID>33010</DowngradeGUID>
</ResidenceBuilding>
<Selection />
<Standard>
<Name>CitizenHouse</Name>

Wenn ihr diesen Eintrag so lassen würdet, hätte ihr im Fall eines upgrades vom Bauernhaus zum Bürgerhaus einen ganz schönen Schwund bei der Bevölkerung zu verzeichnen. Also passen wir das Ganze mal lieber an. Da unsere Bauern nun mit 15 zu Buche stehen sollten wir diesen Eintrag: <MinResidentCount>9</MinResidentCount> auf 16 setzen. Somit haben wir wieder einen nahtlosen Übergang. Nun habe ich ein Minimum von 16, ber der Maximlwert liegt noch bei 15. Ergo muss der auch noch rauf: <MaxResidentCount>15</MaxResidentCount> und wir schreiben das mal um mit einem Wert von 20, ergo liegen wir noch unter dem Wert der Patrizier, bedeutet ber wir müssen wenigstens den Minimumwert dieser Stufe erhöhen, da unsere Häuser der Patrizier im Spiel mit 16 starten. Dieser Wert muss auf 21 erhöht werden. Was ihr jetzt mit dem Max.-Wert nstellt überlasse ich euch. Kann so bleiben, da dieser bei 25 liegt und 20 Bürger in diesem Haus vorhanden sind. Oder ihr erhöht diesen Wert weiter, was dann aber wiederum bedeutet das die Werte für die Adligen ebenfalls noch angeglichen werden müssen. Hier könnt ihr dann meinetwegen als Max.-Wert 80 einsetzen, somit habt ihr 80 Adlige pro Haus, was sich dann im Spiel so auswirkt das ihr nur noch die Hälfte an Häusern benötigt um die Monumente zu errichten. Die Anzahl an Adligen bleibt gleich.
Vielleicht noch ein paar Worte zu der Bevölkerung. Passt auf das ihr es nicht übertreibt, durch die Erhöhung der möglichen Bewohner bleibt die benötigte Menge an Waren bestehen um die Bedürfnisse zu befriedigen. Nicht das sich jetzt jemnd voller Euphorie in eine Kampagne stürzt mit 500 Einwohner pro Haus und sich wundert warum er trotzdem noch 10 Fischereien bauen muss. Die Menge an Waren ist nicht an die Häuser gebunden, sondern an die Zahl der Bewohner einer Stadt. Bedeutet, bei einer Belegung der Bauernhäuser mit 16 Hanseln reicht eine Fischerei nicht mehr für 25 Häuser, sondern nur noch für 12, oder in unserem Fall mit 15 Bauern Belegung können wir ca. 13 Häuser versorgen. Ihr erhaltet aber trotzdem noch die gleiche Höhe an Steuern, da dieser Wert ebenfalls an die Einwohner gekoppelt ist und nicht an die Anzahl der Häuser. Der wirklich positive Effekt der Erhöhung ist der, dass ihr bedeutend weniger Fläche für eure Stadt braucht und somit mehr Platz habt ein paar Grünanlagen mit einzubauen, ohne gleich in der Bilanz abzurutschen.
Ihr könnt natürlich auch die Produktion verdoppeln, somit bliebe alles beim Alten. Entweder über die benötigte Zeit der Produktion oder halt über die Menge was an Waren produziert wird. Zu dem Punkt habe ich aber schon sehr ausführlich geschrieben so das ich mir hier weitere Bemerkungen erspare. Jetzt hatte ich aber geschrieben, das die Markthäuser/ Kontore damit ihre Problemchen bekommen können das alles abzuholen. Ein Punkt wäre hier der Sinn macht, die Anzahl an Marktkarren zu erhöhen. Dafür suchen wir uns einfach ein Markthaus (Warehouse) und dann diesen Eintrag:

<Building>
<BuildingLevel>Peasant</BuildingLevel>
</Building>

Das wäre unser gesuchter Eintrag. Nur steht da nix von Marktkarren oder ähnlichen. Hier wären wir wieder bei den Grundwerten, da die niedrigste Stufe des Markthauses nur einen Marktkarren zur Verfügung hat ist dies auch der Grundwert für diesen Eintrag, ergo muss dieser Eintrag nicht unter den assets erscheinen. Es wird nur das Level angegeben ab wann dieses Markthaus baubar ist, in dem Fall sind das unsere Bauern.
Bedeutet wir müssen hier noch ein paar Kleinigkeiten ergänzen. Und fügen diese Zeile zu unserem Eintrag hinzu:

<Building>
<BuildingLevel>Peasant</BuildingLevel>
<WorkerCount>3</WorkerCount>
</Building>

Ihr könnt da jetzt auch eine 4 oder 5 oder 6 reinschreiben, dann kommt es garantiert zu keinem Stau in euren Betrieben. Das ganz jetzt noch für die anderen Zivilisationsstufen und den Orient nicht vergessen, weil der ist bei den Häusern seperat aufgelistet. Ergo müsst ihr aufpassen welches Martkthaus ihr bearbeitet, nicht das ihr eines vom Orient erwischt und euch dann wundert warum sich bei eurem Markthaus auf der Nordinseln nix ändert. Also immer schön die Einträge anschauen und nach Nord (Okzident) und Süd (Orient) unterscheiden. Ist aber ganz gut ausgeschildert. :strategie_zone_5:
Ein Hinweis noch, es gibt auch einen Unterschied zwischen dem Kontor und dem Markthaus. Alles was ihr am Meer bauen könnt hat noch eine weitere Zeile in diesem Eintrag:
<Template>Warehouse</Template>
<Values>
<Blocking>
<HarborType>10</HarborType>
Somit erkennt ihr das es sich um ein Gebäude für den Hafen handelt. Eine Kleinigkeit noch, welche wir aber schon von den Schiffen her kennen, die Markthäuser können natürlich auch Items sockeln. Wie und wo der Eintrag hingehört habe ich ja schon bei den Schiffen beschrieben. Nur handelt es sich hier nicht um Schiffe, ergo müssen wir den Eintrag für die freien Sockel etwas umgestalten:

<ItemContainer>
<Sockets>
<Warehouse>2</Warehouse>
</Sockets>
</ItemContainer>

Ergo dem Programm beschreiben, das wir in dem Fall keine schwimmenden Fahrzeuge (ship) meinen, sondern immobile Dinge (warehouse). Im Gegensatz zum Schiff ist das Limit an freien Sockel 3.
Bei eurem Kontor werdet ihr jetzt noch diese Eintäge finden:

<Warehouse>
<Capacity>30</Capacity> --> gibt an wieviel Tonnen in einem Kontor gelagert werden können. Ihr könnt jetzt diesen Wert weiter hochsetzen. Doch das Limit im Spiel bleibt 999t Kapazität pro Insel, egal wieviele Gebäude ihr dafür benötigt. Die ganze Geschichte ist einfach hard-coded wie die Modder sagen, oder fachmännisch ausgedrückt 4 Byte integer abgespeichert.
<PassiveTradeSlots>6</PassiveTradeSlots>
<CanTradeWithShip>1</CanTradeWithShip>
</Warehouse>

Die anderen Werte werde ich mal anhand der Kirche kurz erleutern:

<Asset> --> schon bekannt, hier geht´s los mit dem Eintrag
<Template>PublicBuilding</Template>
<Values>
<Blocking />
<BuildCost>
<MoneyCost>5000</MoneyCost> --> 5.000 Goldstücke kostet euch der Bau
<ProductCost>
<Wood>30000</Wood>
<Tools>10000</Tools> --> Materialkosten für den Bau, ergo Holz = 30t / Werkzeuge = 10t / Steine = 40t / Glas = 25t
<Stone>40000</Stone>
<Glass>25000</Glass>
</ProductCost>
<NeedsIntermediatelevel>IntermediateChurch</NeedsIntermediatelevel>
</BuildCost>
<Building>
<BuildingLevel>Patrician</BuildingLevel> --> ab Patrizier baubar
<BuildSound>2241</BuildSound>
</Building>
<Danger />
<FeedbackEventEmitter>
<FeedbackList>
<Item>
<AutoEmit>1</AutoEmit>
<EventModule>Event_Church</EventModule>
</Item>
<Item>
<Feedback>ImperialCathedralMass</Feedback>
<AutoEmit>1</AutoEmit>
<EmitterModule>Event_Cathedral_Mass</EmitterModule>
<EventModule>Resident_Cathedral_Mass</EventModule>
</Item>
<Item>
<Feedback>BeggarAlms</Feedback>
<AutoEmit>1</AutoEmit>
<EmitterModule>Event_Alms</EmitterModule>
<EventModule>none</EventModule>
</Item>
</FeedbackList>
</FeedbackEventEmitter>
<Hitpoints>
<MaxHitpoints>2000</MaxHitpoints> --> wieviel Treffer das Gebäude einstecken kann
</Hitpoints>
<Influence>
<InfluenceRadius>26</InfluenceRadius> --> das hier ist der Einflussbereich den diese Kirche ausübt. Wenn ihr jetzt diesen Wert erhöht, erhöht sich auch der Einflussbereich im Spiel und die Kirche wird bedeutend mehr Häuser mit Glauben befriedigen. Wenn ihr hier eine 50 reinschreibt bekommt ihr locker 120 Häuser in den Einflussbereich der Kirche. Das ganze gilt natürlich auch für den Marktplatz oder den Schuldturm, eben für alle Gebäude die einen begrenzten Bereich haben, auch für die Farmen, in welchem Bereich die Felder angelegt werden können.
<InfluenceRadiusTypeNeeded>Production;Residence;OrientResidence</InfluenceRadiusTypeNeeded> --> die Kirche kann nicht überall gebaut werden. Diese Vorgaben müssen im Einflussbereich liegen... was aber bei einem Wert von 50 wirklich kein Kunststück mehr ist. ;)
</Influence>
<InfoLayer />
<KIModule />
<MaintenanceCost>
<ActiveCost>40</ActiveCost> --> na klar, hier wieder unsere laufenden Unterhaltskosten welche vom fiktiven Konto gebucht werden.
<InactiveCost>40</InactiveCost> --> und auch hier die inaktiven Kosten, welche keine Rolle spielen, somit gleich sind, da unsere Kirche nicht abgeschalten werden kann. Die Jungs und Mädels der Stadt wollen halt einen 24 Stunden Service beim Gebet.
</MaintenanceCost>
<Mesh>
<Ambient>4054</Ambient>
<AudioFeedback>5000635</AudioFeedback>
</Mesh>
<Object>
<Variations>
<Item>
<Filename>data\graphics\buildings\public\north\church\n_church.cfg</Filename> --> der Verweis wo die Grafikdateien, ergo die texturen zu finden sind. Wer die sucht, einfach diesem Zielpafd im Ubisoft-Ordner folgen.
</Item>
</Variations>
</Object>
<PublicBuilding>
<BuildingDemandEfficiency>
<Beggar_in_hospice>100</Beggar_in_hospice>
<Peasant>100</Peasant>
<Citizen>100</Citizen> --> wieviel Prozent die Kirche das Bedürfnis nach Glauben bei den unterschiedlichen Levels befriedigt, angefangen bei Bettlern.
<Patrician>70</Patrician>
<Nobleman>100</Nobleman>
</BuildingDemandEfficiency>
<BuildingDemandCategories>Faith</BuildingDemandCategories>
<BuildingDemandColor>-9658948</BuildingDemandColor>
</PublicBuilding>
<Selection />
<Standard>
<Name>Church</Name>
<GUID>34024</GUID>
<Versions>Anno1404;Beta02;Demo01;Demo02;Addon01;Addon02;BETA_TEXTURE_NONE</Versions>
</Standard>
<TradingPrice />
<Upgradable />
<Warehouse />
</Values>
</Asset>

Der Rest der Einträge ist für den Einstieg unwichtig, und dieses Tutorial soll ja nur ein kleiner Leitfaden sein. Bedeutet wir können nun zu den Items kommen...

* * *
Hier gehts zum Fragen-/Kommentar-Thread

* * *

Wie man die Harfe eines Iren klaut... Teil 1

Verfasst: 8. Januar 2011 11:03
von Bacchus
Kommen wir nun von den etwas größeren Dingen zu den "Kleinigkeiten" im Spiel, oder besser gesagt zu den Items und dann zu guter Letzt zu den Wappen,
Aber bleiben wir erstmal bei den Items. Diese findet ihr unter folgender Anschrift: ...\Ubisoft\Related Designs\ANNO 1404\data\config\features
Bedeutet wir öffnen erstmal die features.xml und werfen einen kurzen Blick in diese Datei. Sieht der assets.xml ähnlich, mit der wir jetzt die ganze Zeit gearbeitet haben. Ergo kann ich mir hierzu längere Erklärungen sparen. Großrtige Ergänzungen zur assets.xml gibt es auch nicht, was im Klartext bedeutet, ihr könnt in der features.xml genauso vorgehen.
Wenn ich bei den assets auf die Suchbegriffe hingewiesen habe um ein Gebäude ausfindig zu machen, kann man auch bei den features mit Suchbegriffen arbeiten um sein gewünschtes Item relativ schnell zu finden. Nur leider macht es uns diese Datei nicht so einfach, zum einen findet man in dieser Datei keinen klaren Wortlaut, ergo suche ich nach Olle Claas werde ich nur höflich darauf hingewiesen das dieser Begriff nicht in der Datei enthalten ist.
Zum anderen sind die Items in Kategorien gegliedert wie Experte Nautik Stufe I bis X oder auch nach der "Qualität der Items" ( ItemQuality A, B, C ). Ein paar werdet ihr mit Suchbegriffen finden, indem ihr zum Beispiel Laderaum bei der Suche eingebt. Ergo benötigen wir erstmal ein paar Anhaltspunkte mit denen wir uns dann orientieren können. Wie gesagt möchte ich Olle Claas finden, da mich die erhöhte Sichtweite schon immer ein bissl störte. In dem Stadium des Spieles ist meine Karte sowieso schon aufgedeckt, also was will ich noch damit. Wie gesagt der Suchbegriff Claas funzt nicht, also eine neue Idee. Wir kennen die Werte, und wir kennen den Preis der bei 800 Ruhm liegt. Jetzt habe ich die Möglichkeit, meinetwegen, nach der Sichtweite zu suchen ( VisionRadius ). Leider ist dieser Befehl mehrmals untergliedert so das er für uns fast nutzlos ist. Aber wir kennen noch den Preis, ergo geben wir mal das als Suchbegriff ein: <ItemHonourPrice>800 und sollten uch gleich auf ein Item der Stufe X gelotzt werden.
Wenn wir mal nicht die genaue Schreibweise kennen, empfiehlt es sich trotzdem, um die Suche abzukürzen, mit der vorgegebenen Formatierung zu arbeiten. Ergo nicht nur nach der 800 suchen, sondern nach >800 oder 800<. Dadurch schließt ihr schon einige mögliche Treffer aus, welche uns aber nicht betreffen. Selbst wenn wir jetzt auf ein Item gelangen was unsere Bedingung erfüllt, wissen wir immer noch nicht ob es das Gesuchte ist. Hier hilft weiterhin ein kurzer Blick zum Anfang des Eintrags, ergo zu welcher Kategorie es zählt:

<Template>ShipItem</Template> --> zu den Items für die Schiffe

Da man aber nicht alle Werte von allen Items im Kopf haben kann, und ich garantiert nicht zu den Leuten zähle die jetzt eine Excel-Tabelle anlegen um nachschlagen zu können, muss ich damit leben auch mal den falschen Typen in der Mache zu haben.
Ich nehme es gleich vorweg, unser gesuchter Claas ist nicht der erste Treffer. Bleibt nur noch eines, den ersten Rückschlag wegstecken und weitersuchen. Beim zweiten Treffer für 800 sind wir aber am Ziel:

<Asset>
<Template>ShipItem</Template>
<Values>
<CostUpgrade> --> Cost = Kosten, ergo handelt es sich hier um ein feature welches unsere Kosten beeinflusst. Welche spielt erstmal keine Rolle.
<ActiveCost> --> dies wird hier definiert, und zwar die aktiven Kosten, ergo der laufende Unterhalt für das Schiff wo dieses Item gesockelt wird
<Value>-75</Value> --> jetzt benötigen wir natürlich noch einen Wert, dieser liegt bei -75. Ihr könnt natürlich auch die Kosten erhöhen, dann einfach das Minus weglassen.
<Percental>1</Percental> --> den Wert 75 müssen wir jetzt noch für´s Programm genauer definieren. Wie auch schon damals meine Mathelehrerin sagte, na was nun??? 75 Äpfel, Birnen... in dem Fall Prozent.
</ActiveCost>
Die Bonis welche das Item bringen soll sind ebenfalls nochmal nach ihren Eigenschaften unterteilt. Ergo einmal anfallende Kosten, Trefferpunkte, Angriffsstärke, Reparatur, nautische Verbesserungen, etc. PP.
</CostUpgrade>
<HitpointUpgrade />
<Item>
<ItemHonourPrice>800</ItemHonourPrice> --> wie der Name schon sagt, handelt es sich hierbei um den Preis das Item und dieser wird mit Ruhm bezahlt.
<ItemType>ExpertNautics</ItemType> --> und hier sind wir bei dem schönen Spielchen mit den Suchbegriffen angelangt. Unser Claas ist nicht Claas im Script, sondern ein Experte der Seefahrt.
</Item>
<ShipCombatUpgrade />
<ShipRepairUpgrade> --> der Oberbefehl für die Schiffsreparatur
<SelfHealingPointsPerMinute> --> was genau soll gemacht werden. Dem Schiff abhanden gekommene Trefferpunkte zurückgeben. Und das ganze wird berechnet auf eine Minute, ergo der Zeitwert beträgt 60.000.
<Value>100</Value> --> hier wird jetzt der Wert festgelegt um wieviele Punkte die Trefferpunkte pro Minute wieder aufgestockt werden. Aber irgendwie geht die Rechnung für mich nicht auf, weil im Spiel benötige ich keine 10 Minuten um 1.000 Trefferpunkte auf volle Stärke zu bringen. Wer weiss, vielleicht muss man die Hundert jetzt uch noch in irgendwas umrechnen. Was aber egal ist, je höher der Wert umso schneller geht die Reparatur voran. Kann man zum Beispiel auch beim Kran im Hafen anwenden. ;)

</SelfHealingPointsPerMinute>
</ShipRepairUpgrade>
<ShipUpgrade>
<VisionRadius>
<Value>75</Value>
<Percental>1</Percental>
</VisionRadius>
--> selbes Spiel wie bei den Unterhaltskosten, nur das hier der Sichtradius mit 75% definiert wird. Man könnte jetzt diesen Wert einfach löschen und durch den Befehl ersetzen welcher die reduzierte Geschwindigkeit durch Ladung oder Schaden regelt. Oder man belässt beide Werte im Spiel. Jeder wie er gerne möchte.
<LoadDamageCap> --> und da wären wir uch schon bei dem Wert den ich einbauen möchte. Diese Zeilen stehen nicht bei unserem Item sondern müssen ergänzt werden. Wie der Name schon sagt Fracht-Schaden-Schutz, ergo die kleine Rundumversicherung für unsere Fracht, so das sie ihr Ziel erreicht.
<Value>-100</Value> --> hier wieder der Wert, -100% dadurch behält unser Schiff seine Geschwindigkeit egal was auf hoher See passiert, oder wieviel Holz es geladen hat.
<Percental>1</Percental> --> oben genannter Wert ist in Prozent
Und wenn die Einträge alle richtige sind, sollte es dann so aussehen:

Bild

Bild

Uploaded with ImageShack.us

</LoadDamageCap>
</ShipUpgrade>
<Standard>
<Name>Experte Nautik Stufe X</Name>
<GUID>8136</GUID>
</Standard>
<TransportUpgrade> --> Erweiterung für den Transport im allgemeinen.
<SlotCapacity> --> betrifft die Kapazität der Slot, ergo wieviel ein Schiff pro Slot laden kann
<Value>30</Value> --> der Wert um welchen die vorhandene Kapazität erhöht werden soll. Wir wissen das "alle" Werte in Anno in Tonnen angegeben werden, im Script in Kilogramm, ergo muss hier nichts weiter für diesen Wert ergänzt werden.
</SlotCapacity>
</TransportUpgrade>
<UnitUpgrade>
<WalkingSpeed> --> folgender Wert bezieht sich auf die Geschwindigkeit
<Value>30</Value> --> welche um 30 erhöht wird
<Percental>1</Percental> --> und dieser Wert ist in Prozent, ergo stattet euer Flaggschiff mit diesem Item aus und es rechnen sich beim sockeln 30% auf 14.500, ergo +4.500 auf den bestehenden Wert = 19.000 Meter pro Stunde, oder was weiss ich in welcher Maßeinheit dieser Wert ist.
</WalkingSpeed>
</UnitUpgrade>
<Upgrade />
</Values>
</Asset>

Das soll´s erstmal zu unserem Claas gewesen sein. Das meiste könnt ihr aus dem script rauslesen, so schwer sind die Begriffe nicht gewählt. Und wir können uns noch ein Schatzkarte anschauen, bevor ich dann sage was es mit der Harfe auf sich hat von unserem kleinen Iren...

Wie man die Harfe eine Iren klaut... Teil 2

Verfasst: 8. Januar 2011 11:44
von Bacchus
Hier noch ein paar kurze Anmerkungen zu den Schatzkarten im Spiel und deren Werte:

<Asset>
<Template>ExpeditionItem</Template> --> um eine Schatzkarte im Script zu finden halten wir immer Ausschau nach diesem Eintrag
<Values>
<ExpeditionBalancing>
<ExitArea>ExplorationExit</ExitArea> --> kann die Karte verlassen
<ExpeditionFailureDamageRange> --> Was passiert wenn die Mission scheitert, ergo kein Erfolg beschieden ist
<MinDamagePercent>50</MinDamagePercent> --> im günstigsten Fall erleidet euer Schiff einen Schaden von 50% auf die Trefferpunkte, ergo es bleibt euch noch erhalten, kommt ber etwas angeschlagen wieder zurück und muss repariert werden.
<MaxDamagePercent>200</MaxDamagePercent> --> im ungünstigsten Fall werden bis zu 200%, ergo das doppelte von dem was ihr an Trefferpunkten besitzt, abgezogen und euer Schiff seht ihr nie wieder. Hier könnt ihr den Wert in eine 90 ändern, so ist euer Schiff zwar kurz vorm sinken, aber bleibt euch trotzdem noch erhalten. :strategie_zone_3:

</ExpeditionFailureDamageRange>
<ExpeditionDuration> --> Dauer einer Expedition
<MinDuration>540000</MinDuration> --> als erstes wieder der Minimlwert, welcher sich dann mit eurer Laufgeschwindigkeit errechnet, ergo euer Flaggschiff schippert mit 14.500 über die Meere der Welt = reichlich 5 Minuten im Spiel ( genau 5 Minuten = 52.500) Die Zeit variiert je nachdem mit welchem Schiff ihr unterwegs seid.
<MaxDuration>900000</MaxDuration> --> die maximal benötigte Zeit für die Schatzsuche
</ExpeditionDuration>
<ExpeditionReward>500733</ExpeditionReward> --> irgendeine ID welche die Belohnung bei Erfolg festlegt. Hiermit habe ich mich noch nicht beschäfftigt.
<ExpeditionProducts> --> benötigte Waren für die Suche
<Item>
<Product>Weapons</Product> --> zum einen Waffen
</Item>
<Item>
<Product>Ropes</Product> --> und zum anderen Seile
</Item>
</ExpeditionProducts>
<ExpeditionSuccessProbability>122880</ExpeditionSuccessProbability> --> die Erfolgswahrscheinlichkeit, auch mit dem Wert habe ich noch nicht experimentiert.
</ExpeditionBalancing>
<GameAction />
<Item>
<ItemHonourPrice>30</ItemHonourPrice> --> und der Preis für die Schatzkarte
<ItemQuality>C</ItemQuality>
</Item>
<Standard>
<Name>Expeditionskarte schwer III</Name>
<GUID>8344</GUID>
</Standard>
</Values>
</Asset>

Ich denk das genügt erstmal für die Items. Das Tutorial soll ja nicht jede Kleinigkeit behandeln, sondern nur als Leitfaden dienen wie ich mich in den Scripten zurechtfinden kann.

Als ich mich hier im Forum angemeldet habe, hatte ich mal eine Frage gestellt und zwar: Ist es möglich die Harfe von Leif auch für den Spieler freizuschalten. Antwort war damals, könnte klappen, aber bestimmt sehr aufwendig. Nur wer mich schon aus den Totalwar-Bereichen kennt, weiss das ich kein Freund von aufwendig bin. Dann hatte ich vor ein paar Wochen noch einen Thread entdeckt wo fast die selbe Frage gestellt wurde. Die Antwort verwies auf ein Tutorial wie man sein eigenes Wappen kreieren kann. Der darauffolgende Satz lies auch nix gutes vermuten... "ich habe fast meine gesamte Freizeit damit verbracht". Ufff, das ist nix für unseren Addi.
Es sei auch noch erwähnt, das ich zu den Menschen zähle die richtig froh sind wenn sie das Wort Photoshop CS richtig schreiben... Aber dann habe ich mich wieder an das modding der Totalwar-Reihe erinnert. Ergo habe ich die Dateien mal 10 Minuten durchsucht und wurde auch fündig unter:

...\Ubisoft\Related Designs\ANNO 1404\data\graphics\ui\symbols\maps

Da liefen mir doch glatt die Wappen über den Weg. Ich als überzeugter Minimalist sah meine Zeit gekommen. Nur noch die Harfe finden von meinem Freund Leif, dann noch ein Wappen auswählen was ich sowieso nicht benutze, ergo gleich das erste, die Blume und dann nur noch die Bezeichnungen ändern, aus npcsymbols_01_diff_0 wird playersymbols_01_diff_0, das ganze solange bis alle 3 Dateien von der Harfe mit den Namen für das Wappen 1 des Spielers versehen sind. Dann natürlich die texturen vom Wappen 1 mit den Bezeichnungen für Leifs Harfe versehen und unser tollpatschiger CG schippert ab sofort mit der Blume durch die Inselwelt. Ich aber habe meinen Willen bekommen und das ohne Aufwand:

Bild

Uploaded with ImageShack.us

Einen kleinen Wermutstropfen gibt es allerdings, wenn ihr auf euer Spielerprofil geht, werdet ihr immer noch die Blume da sehen wo ihr eigentlich die Harfe vermutet habt... aber was soll´s, verbringe ich 100 Stunden in der Inselwelt oder in meinem Profil??? ;)
Kleine Anmerkung: der Löwe ist playersymbols13 :strategie_zone_14:

So, das war´s von meiner Seite. Hoffe war alles halbwegs verständlich. Bleibt mir nur eines: Viel Spaß beim zocken und austesten...
Euer Bacchus aka Addi :strategie_zone_20:

UPDATE

Verfasst: 28. Januar 2012 08:59
von Bacchus
...ok, hier ein kleines update zum einbauen des Goldenen bzw. des Silbernen Schiffes.
Habe noch einen ganz unkomplizierten Weg gefunden, indem ihr nur noch 3 Zahlen ändern müsst.
Als erstes geht ihr bitte in die properties.xml unter data/ config/ game unbd sucht bitte nach diesem Eintrag: <StartShips>

Dann sollte sich dieses Bild ergeben:

<StartShips>
<Standard>
<ShipConfig>
<Item>
<ShipType>15912</ShipType>
<ShipLoad>
<Wood>40</Wood>
<Tools>40</Tools>
<SaltFish>10</SaltFish>
</ShipLoad>
</Item>
</ShipConfig>
</Standard>
<Support>
<ShipConfig>
<Item>
<ShipType>15912</ShipType>
<ShipLoad>
<Wood>40</Wood>
<Tools>40</Tools>
<SaltFish>20</SaltFish>
</ShipLoad>
</Item>
<Item>
<ShipType>15913</ShipType>
</Item>
</ShipConfig>
</Support>
<Armada>
<ShipConfig>
<Item>
<ShipType>15912</ShipType>
<ShipLoad>
<Wood>40</Wood>
<Tools>40</Tools>
<SaltFish>40</SaltFish>
</ShipLoad>
</Item>
<Item>
<ShipType>15913</ShipType>
</Item>
<Item>
<ShipType>15915</ShipType>
</Item>
</ShipConfig>
</Armada>
</StartShips>

Es sind 3 Einträge, weil auch 3 Startmöglichkeiten vorhanden sind. Ergo einfach mit dem Flagschiff beginnen, oder mit Begleitschiff, oder eben mit Armada als letzte Möglichkeit.
Wenn ihr jetzt die rotmarkierten Einträge ändert in 15923, dann bekommt ihr als Startschiff das Goldene.
Den rotmarkierten Wert ändern auf 15951, dann startet ihr mit dem Silbernen Schiff.
Ihr könnt natürlich jetzt über den selben Weg noch die Armada und das Begleitschiff anpassen.
Die einzutragenden Werte entnehmt ihr bitte der assets.xml-Datei und zwar sind das die guids der Schiffe. Passt aber auf, nicht das ihr eine guid für die Geschosse oder sonst was erwischt, die stehen nämlich auch bei den Schiffen mit drin.
Denke jetzt sollte es bedeutend einfacher sein, so das jeder sein Lieblingsschiff gleich beim Start hat. :strategie_zone_5:
Viel Spaß, Bacchus :strategie_zone_20:

Bauradius Hafen erhöhen

Verfasst: 28. Januar 2012 09:51
von Bacchus
...weil ich grad beim schreiben bin, hier noch was ganz nützliches. Viele hat bestimmt gestört das der Hafen ab einer gewissen Stadtgröße einfach viel zu klein ist.
Sieht erstmal irgendwie nicht wirklich proportional aus.
Hier nun eine kurze Anleitung um den Bauradius zu erweitern.
Dafür benötigen wir die properties.xml sowie die assets.xml-Datei unter data/ config/ game.
Als erstes öffnet ihr bitte die properties.xml und gebt: harboursize als Suchbegriff ein.
Der 3. Treffer ist unser gesuchter Eintrag:
...
</ResidenceSystemStraightCount>
<HarbourSize>15</HarbourSize>
<NeutralBuildingsDamagePerMinute>
....
Diesen Wert könnt ihr jetzt beliebig ändern. Ich sage allerding später noch etwas dazu.

Als zweites gebt ihr bitte: TradingDistance als Suchbegriff ein.
Und ihr solltet sofort auf diesen Eintrag gelenkt werden:
...
<ShipValues>
<ShipBuildWarehouseRadius>15</ShipBuildWarehouseRadius>
<ShipTradingDistance>15</ShipTradingDistance>
<InnerIslandFrameDistance>3</InnerIslandFrameDistance>
...
Den markierten Wert ebenfalls auf den Wert setzen den ihr oben schon bestimmt habt. In dem Fall kann der Wert aber auch kleiner ausfallen, was bedeutet das eure Landungsstege nicht mehr arbeiten, wenn sie auf den maximalen Wert vom Bauradius gesetzt werden.
Der Wert HarbourSize gibt an wie weit ihr ins Meer bauen könnt, der Wert unter ShipTradingDistance auf welcher Entfernung das Kontor noch in der Lage ist mit Schiffen zu handeln.
Bedeutet, wenn ihr einen Wert von 40 unter HarbourSize eingebt und nur 25 bei der ShipTradingDistance dann könnt ihr zwar "da draußen auf dem Meer" noch Türme und Kräne bauen, aber sobald ihr einen Landungssteg dort draußen baut, wird nix passieren.

In der assets.xml-Datei müsst ihr jetzt natürlich noch den Wert für den Einflussradius der Hafenmeisterei bzw. vom Kontor ändern. Egal wie hoch ihr die Werte in den proterties setzt, ihr könnt nur soweit raus bauen wie der Einflussbereich vom Hauptgebäude eines Hafens, in dem Fall Kontor bzw. Hafenmeisterei, ist.
Hierfür die assets.xml öffen und: harbourmaster als Suchbegriff eingeben.

Hier past ihr nun die Werte des Einflussradius euren Werten aus der proerties.xml an:
...
<MaxHitpoints>3000</MaxHitpoints>
</Hitpoints>
<Influence>
<InfluenceRadius>20</InfluenceRadius>
<InfluenceRadiusType>Harbour</InfluenceRadiusType>
<InfluenceRadiusTypeNeeded>Production</InfluenceRadiusTypeNeeded>
</Influence>
<InfoLayer />
...
Das ganze macht ihr bitte auch bei den Kontoren, passt hier aber auf das ihr nicht die Markthäuser an Land erwischt!
Die beiden Gebäude sind unter der selben Kategorie: Warehouse in der assets.xml eingetragen.

Wie gesagt noch ein paar Worte zu den Werten. Das ganze hat natürlich noch einen kleinen Nachgeschmack, da dieser Wert das "Fahrwasser" blockiert.
Bedeutet, wenn ihr mit den geänderten Werten ein Save starten wollt, kommen die unmöglichsten Handelsrouten dabei raus. Bedeutet im Klartext, durch den erhöhten Bauradius wir soviel Wasser blockiert das eure Schiffe nicht mehr durch zwei Inseln durchpassen, auch wenn ihr hier keinen Hafen gebaut habt.
Der zweite Wermutstropfen, alle eure gemerkten Kartennummern sind hinfällig, da der Mapgenerator die neuen Werte erkennt, wird jetzt eine neue Inselwelt erstellt so das eure Schiffe ungehindert fahren können.
Meine Erfahrung, erhöht die Werte max. um 5, dann seid ihr auf der sicheren Seite. Bei Werten zwischen 25 und 35 werden zwar die selben Inseln geladen, aber sie werden neu angeordnet.
Ab 80 könnt ihr dann eure Lieblingskarten vergessen.
Der Wert zwischen 40 und 80 ist abhängig vom Aufbau der Karte. Bedeutet, wenn's noch passt wird's geladen, ansonsten neu gestaltet.

Ich habe mich auf einen Wert von 20 beschränkt, aber wie man sieht komme auch ich ganz gut aus den Buchten raus:

Bild

Vielen Dank an Sir Viper aus der Annozone für die super Zusammenarbeit !
Wie immer viel Spaß, Bacchus :strategie_zone_20: