Zwickt mich mal einer? Wie kann es an einem fast 30 Jahre alten Spiel mit vielleicht 5 Fans weltweit noch so viel Aktivität geben? ![]()
Posts by diba89
-
-
Bevor man SoA auf CD Kaufen konnte wurde es Kapitelweise als Download vertrieben und damals über Web.de vermarktet.
War wirklich vor seiner Zeit. Dummerweise war die Aktivierung buggy as hell (einer der Gründe wieso sich die Supportforen damals so gut gefüllt haben).Spannend wie wichtig es ist zur richtigen Zeit am richtigen Ort zu sein, damit eine Idee zündet. Glaub zu der Zeit war es ja schon eine Qual nur eine Musikalbum in mäßiger Qualität herunterzuladen. Da haben sie sich ja ganz schön was getraut bei Black Star!
-
Ja, die Charaktere finde ich auch gut gelungen. Trotzdem man "nur" lesen konnte waren die Charaktere doch gut ausgearbeitet, unterscheidbar und einprägsam, sogar solche, die einem nicht mal Quests gegeben haben.
Wie oft ist es so, dass man in RPGs von einem NPC eine Aufgabe bekommt, der nach Abschluss jener nichts mehr zu sagen hat. In SoA dagegen haben so viele Charaktere sogar Kapitel-spezifisch etwas neues zu erzählen. Sehr immersiv, ich mag sowas.
So einen richtigen Twist gab es in der Story zwar nicht, aber den Perspektivwechsel in Kapitel 4 fand ich sehr stark. Vorher waren die Ahoul nur Kanonenfutter, Gut gegen Böse und so. In dem Kapitel hat man gemerkt, dass die Ahoul auch keinen Bock darauf haben und nur von ihrer herrschenden Klasse getrieben sind.
Das Layersystem hab ich so auch nie wieder so richtig gut gesehen. Klar hab es z.b. in Morrowind o.ä. auch zerstückelte Rüstungen, aber das waren eigentlich immer Sets und wenn da ein Teil nicht gepasst hat, sah es immer beschissen aus. So eine Freiheit wie in SoA ist schon cool.
-
Von der Download Strategie wusste ich noch gar nichts. Ich hatte damals meinen Vater zu Mediamarkt geschickt, wenn ich mit einem Kapitel fertig war.

Aber abseits vom Marketing und co... War es denn objektiv gesehen ein gutes Spiel?
-
Ich hab Diablo tatsächlich nie gespielt. Ich hörte aber, dass es eher ein Hack'n'Slash ist, also der Fokus auf dem Umhauen von Monstern liegt, was ja völlig anders ist als SoA, das ja mehr storylastig ist. Ich hatte auch immer das Gefühl ein Buch zu erleben, damit wurde ja auch geworben, wenn ich mich richtig erinnere.
Was das Lesen angeht, fällt mir direkt Morrowind ein. Hier musste ja auch viel gelesen werden, trotzdem schien es die Spieler nicht abgeschreckt zu haben!
-
Ich hab SoA damals als 11-jähriger auf der CD von Computer Bild Spiele entdeckt. Es war eins meiner ersten PC-Spiele überhaupt und ich war damals mächtig beeindruckt.
Aber wie ist SoA so im Vergleich mit anderen RPGs aus der Zeit, z.B. Baldurs Gate? Ich habe es neulich mal probiert, bin aber leider nicht reingekommen.
Ist SoA im Vergleich dazu purer Jank? Ist es gut, ist aber nur nicht richtig angekommen beim Publikum? Ist es müsig Vergleiche anzustellen, weil man eh immer Äpfel mit Birnen vergleicht?
-
Rucksacksepp hast du eigentlich schon einmal darüber nachgedacht den Patch auf Nexus Mods, ModDB oder einem vergleichbaren Portal zu veröffentlichen?
Ich finde das Forum ja super und die Download-Sektion ist auch gut benutzbar. Der Patch wird aber von deiner Cloud heruntergeladen. Ich mache mir nur etwas Sorgen, weil das ja alles eher privat ist und von jemandem betrieben werden muss. Wenn irgendwann mal der Stecker gezogen wird, dann wären ja die Patches, sowie alle bisher erschienenen Mods dahin.
Auf so einer kommerziellen Plattform wären sie meiner Meinung nach etwas persistenter. Die Seiten können natürlich auch abgeschalten werden, sie sind aber so etabliert, dass damit in absehbarer Zeit nicht zu rechnen ist.
-
Schritt 2: Die Items ins Spiel bringen
Hier gibt es nun mehrere Möglichkeiten. Da ich nicht weiß, welche Änderungen in den (halb-)offiziellen Patches noch kommen und ich möchte, dass diese Mod möglichst kompatibel ist, habe ich keinen Weg vorgesehen, wie man die Items regulär im Spiel bekommt. Normalerweise würde man die Items wahrscheinlich in eine Kiste legen, wozu man aber wieder ChaptEd braucht.
Ein einfacherer Weg wäre es, sich die Items von einem NPC geben zu lassen. Dazu muss nur die passende .cnv-Datei aus dem "Conversations"-Ordner (siehe oben) bearbeitet werden. Achtet bitte darauf diese Datei mit der passenden Dateikodierung zu speichern, sonst sind alle Umlaute futsch!
Hier nur die blaue Robe als Beispiel.
Folgende Zeile muss nach der "Say"-Zeile hinzugefügt werden:
Codescript=player.additem(BlueArcanePant);player.additem(MageHood4);player.additem(BlueArcaneGluvs);player.additem(BlueArcaneShirt);player.additem(BlueArcaneKilt);player.additem(BlueArcaneBoot);Storytechnisch würden sich dazu mMn folgende Zeitpunkte anbieten:
Lasst euch gerne davon inspirieren!
Wer und wann Datei Block Warum? Corvus, beim Start-Dialog corvus1.cnv [Corvus6] Zum Ausprobieren Elazar, bevor er einen zum Turm schickt Elazar.cnv [elaringquesta] Da der Umhang in seinem Turm ist, ist es offenbar sein "gutes Zeug". Wäre ja sinnvoll, wenn er es nicht mehr braucht, es uns zu geben. Librius, wenn man ihn bittet die passenden Einträge vorzulesen Librius.cnv [intro3] Selbe Begründung. Der Umhang ist ja in Elazars Turm, der erste Eintrag könnte sich auf das Flammenbuch beziehen, dann könnte der zweite Eintrag ja die Robe betreffen, die einem "würdigen" Besucher ausgehändigt werden soll. Glaucus Magetrainer.cnv [muir] Bevor ihr in die Eishöhle geht, stattet euch Glaucus mit einer Robe aus, die passenderweise vor Frost schützt. Das Frostbuch findet sich ja auch in seiner Hütte. Muir TalkingTree.cnv [astralguardian] Als Belohnung, dass man bis hier gekommen ist. -
Schritt C: Items.db aktualisieren
Einfach folgende Zeilen in die .db-Datei übernehmen:
Code
Display MoreMageHood4|||||||||||||||||||||||||||||||||3|3|3|||||4||2|||||||1|||||||||||[Helmet]|Dieses Kleidungsstück aus Samt und Leder bedeckt den ganzen Kopf und hängt über die Stirn. Der weiße, spitz zulaufende Saum ist mit uralten Symbolen verziert.|42|||Clothing||||MageHood4.gif|prt_MageHood4|Blaue Magierkapuze|78|54|Other BlueArcanePant|||||||||||||||||||||||1|1|1||2||||||3|4|4||9|||||||2|||-4|-4|4|||1|||1||10|||[Leg1][Leg2]|Mit Runen und anderen mystischen Symbolen verzierte Stoffhose.|58|||Clothing||||BlueArcanePant.gif|prt_BlueArcanePant|Hose des Erfrierens|52|72|Other BlueArcaneBoot|||||||||||||||||||||||||||1||||||1|2|2||8|||2||2||1|||||4|||2|||||8||3|[Boot]|Mit Runen und anderen mystischen Symbolen verzierte Lederstiefel.|40|||Clothing||||BlueArcaneboot.gif|prt_BlueArcaneBoot|Stiefel der klirrenden Kälte|78|54|Other BlueArcaneGluvs|||||||||||||||||||||||1|1|1||2|||1|||4|4|4||6|||4||1|3|3||5|-2|-4|2|||2|||2||12|||[Gauntlet]|Mit Runen und anderen mystischen Symbolen verzierte Lederhandschuhe.|40|||Clothing||||BlueArcaneGluvs.gif|prt_BlueArcaneGluvs|Fästlinge des Schneesturms|52|54|Other BlueArcaneKilt|||||||||||||||||||||||1|1|1||3|||1|||4|4|4||9|||4||||||4|||4|||2|||2||7|||[Leg2][Belt]|Mit Runen und anderen mystischen Symbolen verzierter Faltenrock.|50|||Clothing||||BlueArcaneKilt.gif|prt_BlueArcaneKilt|Sarong des Winters|52|72|Other BlueArcaneShirt|||||||||||||||||||||||1|1|1||1|||1||1|5|5|5||12|||8||3||||5|||4|||3||||||||[Chest1][Chest2][Chest3]|Mit Runen und anderen mystischen Symbolen verzierte Stofftunika. Sie zu tragen verbessert die Fähigkeit Frostbälle zu schleudern erheblich.|1|Deepfreeze||Clothing||||BlueArcaneshirt.gif|prt_BlueArcaneShirt|Magierhemd des Frostes|52|72|Other WhtGluv|||||||||||||||||||||||||||||||||3|3|4||||||||||||||1|||||||||||[Gauntlet]|Eine Schutzbekleidung für die Hände, Handgelenke und Unterarme.|4|||Armor||||WhtGluv.gif|prt_WhtGluv|Weißer Stulpenhandschuh|104|54|Other WhtBoot|||||||||||||||||||||||||||||||||2|3|3|||||||||||||||||||||||||[Boot]|Schuhwerk, das mindestens den Knöchel bedeckt.|3|||Armor||||WhtBoot.gif|prt_WhtBoot|Weiße Lederstiefel|78|54|Other WhtCoif|||||||||||||||||||||||||||||||||2|4|6||||||||||||||4|||||||||||[Chest3][Outer]|Eine Schutzbekleidung für die Schultern.|6|||Armor||||WhtCoif.gif|prt_WhtCoif|Weiße, mit Nieten verzierte Haube|52|72|Other WhtArmSplints|||||||||||||||||||||||||||||||||3|4|4|||||||||||||-1|2||||||||||-1|[Arm]|Eine Schutzbekleidung für die Oberarme, aus Leder angefertigt und mit Schienen verstärkt.|3|||Armor||||WhtArmSplints.gif|prt_WhtArmSplints|Weiße Leder-Armschienen|52|54|Other DrkArmSplints|||||||||||||||||||||||||||||||||3|4|4|||||||||||||-1|2||||||||||-1|[Arm]|Eine Schutzbekleidung für die Oberarme, aus Leder angefertigt und mit Schienen verstärkt.|3|||Armor||||DrkArmSplints.gif|prt_DrkArmSplints|Schwarze Leder-Armschienen|52|54|Other DrkSteelBoots|||||||||||||||||||||||2|2|2|||||||2|8|9|10|||||||7||||||-7|6||||||||||-4|[Boot]|Schuhwerk, das mindestens den Knöchel bedeckt.|9|||Armor||||DrkSteelBoots.gif|prt_DrkSteelBoots|Schwarze, mit Stahl beschlagene Stiefel|78|54|Metal DrkSteelGloves|||||||||||||||||||||||2|2|2|||||||1|8|9|10|||||||7||||||-3|4||-1||||||||-3|[Gauntlet]|Eine Schutzbekleidung für die Hände und Handgelenke.|9|||Armor||||DrkSteelGloves.gif|prt_DrkSteelGloves|Schwarze Panzerhandschuh|104|54|Metal DrkChainmail|||||||||||||||||||||||||||||||||4|5|8|||||||||||||-4|4||||||||||-1|[Chest2][Chest3]|Aus ineinander gefügten Ringen bestehender hemdartiger Schutz des Oberkörpers.|10|||Armor||||DrkChainmail.gif|prt_DrkChainmail|Schwarzes Kettenhemd|52|72|Metal GldArmplate|||||||||||||||||||||||2|2|2|||||||2|9|10|11|||||||7||||||-4|9||-3||||||||-5|[Arm][Gauntlet]|Teil eines Panzers. Diese schützen die Arme.|10|||Armor||||GldArmplate.gif|prt_GldArmplate|Armschienen aus vergoldetem Stahl|52|72|Metal GldBoots|||||||||||||||||||||||2|2|2|||||||2|8|9|10|||||||7||||||-7|6||||||||||-4|[Boot]|Schuhwerk, das mindestens den Knöchel bedeckt.|10|||Armor||||GldBoots.gif|prt_GldBoots|Goldene, mit Stahl beschlagene Stiefel|78|54|Metal GldBreastplate|||||||||||||||||||||||2|2|2|||||||1|9|10|12|||||||4||||||-7|12||-4||||||||-4|[Chest1][Chest2][Chest3][Outer]|Wird normalerweise aus Metall gefertigt, und schützt den Brustbereich.|20|||Armor||||GldBreastplate.gif|prt_GldBreastplate|Fein gearbeiteter, goldener Kürass|104|72|Metal GldCoif|||||||||||||||||||||||||||||||||6|10|10|||||||1||||||-4|2||-2|||||||||[Coif][Helmet]|Eine Schutzbekleidung für den Kopf und die Schultern. Dieses Exemplar ist aus Kettenpanzer.|10|||Armor||||GldCoif.gif|prt_GldCoif|Goldene Kettenhaube|26|54|Metal GldGauntlet|||||||||||||||||||||||2|2|2|||||||1|8|9|10|||||||7||||||-3|4||-1||||||||-3|[Gauntlet]|Eine Schutzbekleidung für die Hände und Handgelenke.|20|||Armor||||GldGauntlet.gif|prt_GldGauntlet|Goldene Panzerhandschuh|104|54|Metal GldHelmet|||||||||||||||||||||||2|2|2|||||||1|8|11|11|||||||8||||||-5|3||-4||||||||-3|[Helmet]|Eine zum Schutz im Kampf getragene, den ganzen Kopf bedeckende Haube aus getriebenem Metall.|10|||Armor||||GldHelmet.gif|prt_GldHelmet|Goldener Vollhelm|52|36|Metal GldGreaves|||||||||||||||||||||||2|2||||||||1|9|11|11|||||||7||||||-7|9||-3||||||||-4|[Leg2]|Teile eines Panzers. Diese bedecken die Waden und Knie.|30|||Armor||||GldGreaves.gif|prt_GldGreaves|Beinschienen aus vergoldetem Stahl|130|72|Metal GldShoulderpads|||||||||||||||||||||||1|1|1|||||||1|6|7|8|||||||4||||||-2|6||-1||||||||-3|[Chest1][Chest2][Chest3][Outer]|Teil eines Panzers. Diese schützen die Schultern.|20|||Armor||||GldShoulderpads.gif|prt_GldShoulderpads|Goldener Stahl-Schulterschutz|52|90|Metal GrnLeatherTunic|||||||||||||||||||||||||||||||||3|5|7||||||||||||||3|||||||||||[Chest2]|Eine lange, eng anliegende Jacke.|6|||Armor||||GrnLeatherTunic.gif|prt_GrnLeatherTunic|Ledertunika des Waldläufers|52|72|Other BlueLeatherTunic|||||||||||||||||||||||||||||||||3|5|7||||||||||||||3|||||||||||[Chest2]|Eine lange, eng anliegende Jacke.|6|||Armor||||BlueLeatherTunic.gif|prt_BlueLeatherTunic|Ledertunika des Waldläufers|52|72|Other RbyLeatherTunic|||||||||||||||||||||||||||||||||3|5|7||||||||||||||3|||||||||||[Chest2]|Eine lange, eng anliegende Jacke.|6|||Armor||||RbyLeatherTunic.gif|prt_RbyLeatherTunic|Ledertunika des Waldläufers|52|72|Other RbyChainmail|||||||||||||||||||||||||||||||||4|5|8|||||||||||||-4|4||||||||||-1|[Chest2][Chest3]|Aus ineinander gefügten Ringen bestehender hemdartiger Schutz des Oberkörpers.|10|||Armor||||RbyChainmail.gif|prt_RbyChainmail|Rubinrotes Kettenhemd|52|72|Metal RbyArmplate|||||||||||||||||||||||2|2|2|||||||2|9|10|11|||||||7||||||-4|9||-3||||||||-5|[Arm][Gauntlet]|Teil eines Panzers. Diese schützen die Arme.|10|||Armor||||RbyArmplate.gif|prt_RbyArmplate|Armschienen aus rubinrotem Stahl|52|72|Metal RbyBoots|||||||||||||||||||||||2|2|2|||||||2|8|9|10|||||||7||||||-7|6||||||||||-4|[Boot]|Schuhwerk, das mindestens den Knöchel bedeckt.|10|||Armor||||RbyBoots.gif|prt_RbyBoots|Rubinrote, mit Stahl beschlagene Stiefel|78|54|Metal RbyBreastplate|||||||||||||||||||||||2|2|2|||||||1|9|10|12|||||||4||||||-7|12||-4||||||||-4|[Chest1][Chest2][Chest3][Outer]|Wird normalerweise aus Metall gefertigt, und schützt den Brustbereich.|20|||Armor||||RbyBreastplate.gif|prt_RbyBreastplate|Fein gearbeiteter, rubinroter Kürass|104|72|Metal RbyCoif|||||||||||||||||||||||||||||||||6|10|10|||||||1||||||-4|2||-2|||||||||[Coif][Helmet]|Eine Schutzbekleidung für den Kopf und die Schultern. Dieses Exemplar ist aus Kettenpanzer.|10|||Armor||||RbyCoif.gif|prt_RbyCoif|Rubinrote Kettenhaube|26|54|Metal RbyGauntlet|||||||||||||||||||||||2|2|2|||||||1|8|9|10|||||||7||||||-3|4||-1||||||||-3|[Gauntlet]|Eine Schutzbekleidung für die Hände und Handgelenke.|20|||Armor||||RbyGauntlet.gif|prt_RbyGauntlet|Rubinroter Panzerhandschuh|104|54|Metal RbyHelmet|||||||||||||||||||||||2|2|2|||||||1|8|11|11|||||||8||||||-5|3||-4||||||||-3|[Helmet]|Eine zum Schutz im Kampf getragene, den ganzen Kopf bedeckende Haube aus getriebenem Metall.|10|||Armor||||RbyHelmet.gif|prt_RbyHelmet|Rubinroter Vollhelm|52|36|Metal RbyGreaves|||||||||||||||||||||||2|2||||||||1|9|11|11|||||||7||||||-7|9||-3||||||||-4|[Leg2]|Teile eines Panzers. Diese bedecken die Waden und Knie.|30|||Armor||||RbyGreaves.gif|prt_RbyGreaves|Beinschienen aus rubinrotem Stahl|130|72|Metal RbyShoulderpads|||||||||||||||||||||||1|1|1|||||||1|6|7|8|||||||4||||||-2|6||-1||||||||-3|[Chest1][Chest2][Chest3][Outer]|Teil eines Panzers. Diese schützen die Schultern.|20|||Armor||||RbyShoulderpads.gif|prt_RbyShoulderpads|Rubinroter Stahl-Schulterschutz|52|90|MetalHier können auch die Werte angepasst werden, falls sie nicht gefallen.
-
Schritt B: xref.db aktualisieren
In der .db-Datei einfach folgende Zeilen hinzufügen:
Code
Display Moreprt_BlueArcanePant|HumanMaleLayers\BlueArcanePant.gif|HumanMaleLayers\BlueArcanePant.gif|HumanMaleLayers\BlueArcanePant.gif|HumanMaleLayers\BlueArcanePant.gif prt_BlueArcaneShirt|HumanMaleLayers\BlueArcaneShirt.gif|HumanMaleLayers\BlueArcaneShirt.gif|HumanMaleLayers\BlueArcaneShirt.gif|HumanMaleLayers\BlueArcaneShirt.gif prt_BlueArcaneGluvs|HumanMaleLayers\BlueArcaneGluvs.gif|HumanMaleLayers\BlueArcaneGluvs.gif|HumanMaleLayers\BlueArcaneGluvs.gif|HumanMaleLayers\BlueArcaneGluvs.gif prt_BlueArcaneKilt|HumanMaleLayers\BlueArcaneKilt.gif|HumanMaleLayers\BlueArcaneKilt.gif|HumanMaleLayers\BlueArcaneKilt.gif|HumanMaleLayers\BlueArcaneKilt.gif prt_BlueArcaneBoot|HumanMaleLayers\BlueArcaneBoot.gif|HumanMaleLayers\BlueArcaneBoot.gif|HumanMaleLayers\BlueArcaneBoot.gif|HumanMaleLayers\BlueArcaneBoot.gif prt_MageHood4|HumanMaleLayers\MageHood4.gif|HumanMaleLayers\MageHood4.gif|HumanMaleLayers\MageHood4.gif|HumanMaleLayers\MageHood4.gif prt_SafArcaneShirt|HumanMaleLayers\SafArcaneShirt.gif|HumanMaleLayers\SafArcaneShirt.gif|HumanMaleLayers\SafArcaneShirt.gif|HumanMaleLayers\SafArcaneShirt.gif prt_WhtCoif|HumanMaleLayers\WhtCoif.gif|HumanMaleLayers\WhitCoif.gif|HumanMaleLayers\WhtCoif.gif|HumanMaleLayers\WhtCoif.gif| prt_WhtBoot|HumanMaleLayers\WhtBoot.gif|HumanMaleLayers\WhitBoot.gif|HumanMaleLayers\WhtBoot.gif|HumanMaleLayers\WhtBoot.gif| prt_WhtGluv|HumanMaleLayers\WhtGluv.gif|HumanMaleLayers\WhitGluv.gif|HumanMaleLayers\WhtGluv.gif|HumanMaleLayers\WhtGluv.gif| prt_WhtArmSplints|HumanMaleLayers\WhtArmSplints.gif|HumanMaleLayers\WhtArmSplints.gif|HumanMaleLayers\WhtArmSplints.gif|HumanMaleLayers\WhtArmSplints.gif| prt_WhtQuiver|HumanMaleLayers\WhtQuiver.gif|HumanMaleLayers\WhtQuiver.gif|HumanMaleLayers\WhtQuiver.gif|HumanMaleLayers\WhtQuiver.gif| prt_DrkArmSplints|HumanMaleLayers\DrkArmSplints.gif|HumanMaleLayers\DrkArmSplints.gif|HumanMaleLayers\DrkArmSplints.gif|HumanMaleLayers\DrkArmSplints.gif| prt_DrkSteelBoots|HumanMaleLayers\DrkSteelBoots.gif|HumanMaleLayers\DrkSteelBoots.gif|HumanMaleLayers\DrkSteelBoots.gif|HumanMaleLayers\DrkSteelBoots.gif| prt_DrkSteelGloves|HumanMaleLayers\DrkSteelGloves.gif|HumanMaleLayers\DrkSteelGloves.gif|HumanMaleLayers\DrkSteelGloves.gif|HumanMaleLayers\DrkSteelGloves.gif| prt_DrkChainmail|HumanMaleLayers\DrkChainmail.gif|HumanMaleLayers\DrkChainmail.gif|HumanMaleLayers\DrkChainmail.gif|HumanMaleLayers\DrkChainmail.gif| prt_GldArmplate|HumanMaleLayers\GldArmplate.gif|HumanMaleLayers\GldArmplate.gif|HumanMaleLayers\GldArmplate.gif|HumanMaleLayers\GldArmplate.gif| prt_GldBoots|HumanMaleLayers\GldBoots.gif|HumanMaleLayers\GldBoots.gif|HumanMaleLayers\GldBoots.gif|HumanMaleLayers\GldBoots.gif| prt_GldBreastplate|HumanMaleLayers\GldBreastplate.gif|HumanMaleLayers\GldBreastplate.gif|HumanMaleLayers\GldBreastplate.gif|HumanMaleLayers\GldBreastplate.gif| prt_GldCoif|HumanMaleLayers\GldCoif.gif|HumanMaleLayers\GldCoif.gif|HumanMaleLayers\GldCoif.gif|HumanMaleLayers\GldCoif.gif| prt_GldGauntlet|HumanMaleLayers\GldGauntlet.gif|HumanMaleLayers\GldGauntlet.gif|HumanMaleLayers\GldGauntlet.gif|HumanMaleLayers\GldGauntlet.gif| prt_GldHelmet|HumanMaleLayers\GldHelmet.gif|HumanMaleLayers\GldHelmet.gif|HumanMaleLayers\GldHelmet.gif|HumanMaleLayers\GldHelmet.gif| prt_GldGreaves|HumanMaleLayers\GldGreaves.gif|HumanMaleLayers\GldGreaves.gif|HumanMaleLayers\GldGreaves.gif|HumanMaleLayers\GldGreaves.gif| prt_GldShoulderpads|HumanMaleLayers\GldShoulderpads.gif|HumanMaleLayers\GldShoulderpads.gif|HumanMaleLayers\GldShoulderpads.gif|HumanMaleLayers\GldShoulderpads.gif| prt_GrnLeatherTunic|HumanMaleLayers\GrnLeatherTunic.gif|HumanMaleLayers\GrnLeatherTunic.gif|HumanMaleLayers\GrnLeatherTunic.gif|HumanMaleLayers\GrnLeatherTunic.gif| prt_BlueLeatherTunic|HumanMaleLayers\BlueLeatherTunic.gif|HumanMaleLayers\BlueLeatherTunic.gif|HumanMaleLayers\BlueLeatherTunic.gif|HumanMaleLayers\BlueLeatherTunic.gif| prt_RbyLeatherTunic|HumanMaleLayers\RbyLeatherTunic.gif|HumanMaleLayers\RbyLeatherTunic.gif|HumanMaleLayers\RbyLeatherTunic.gif|HumanMaleLayers\RbyLeatherTunic.gif| prt_RbyArmplate|HumanMaleLayers\RbyArmplate.gif|HumanMaleLayers\RbyArmplate.gif|HumanMaleLayers\RbyArmplate.gif|HumanMaleLayers\RbyArmplate.gif| prt_RbyBoots|HumanMaleLayers\RbyBoots.gif|HumanMaleLayers\RbyBoots.gif|HumanMaleLayers\RbyBoots.gif|HumanMaleLayers\RbyBoots.gif| prt_RbyBreastplate|HumanMaleLayers\RbyBreastplate.gif|HumanMaleLayers\RbyBreastplate.gif|HumanMaleLayers\RbyBreastplate.gif|HumanMaleLayers\RbyBreastplate.gif| prt_RbyCoif|HumanMaleLayers\RbyCoif.gif|HumanMaleLayers\RbyCoif.gif|HumanMaleLayers\RbyCoif.gif|HumanMaleLayers\RbyCoif.gif| prt_RbyGauntlet|HumanMaleLayers\RbyGauntlet.gif|HumanMaleLayers\RbyGauntlet.gif|HumanMaleLayers\RbyGauntlet.gif|HumanMaleLayers\RbyGauntlet.gif| prt_RbyHelmet|HumanMaleLayers\RbyHelmet.gif|HumanMaleLayers\RbyHelmet.gif|HumanMaleLayers\RbyHelmet.gif|HumanMaleLayers\RbyHelmet.gif| prt_RbyGreaves|HumanMaleLayers\RbyGreaves.gif|HumanMaleLayers\RbyGreaves.gif|HumanMaleLayers\RbyGreaves.gif|HumanMaleLayers\RbyGreaves.gif| prt_RbyShoulderpads|HumanMaleLayers\RbyShoulderpads.gif|HumanMaleLayers\RbyShoulderpads.gif|HumanMaleLayers\RbyShoulderpads.gif|HumanMaleLayers\RbyShoulderpads.gif| prt_RbyChainmail|HumanMaleLayers\RbyChainmail.gif|HumanMaleLayers\RbyChainmail.gif|HumanMaleLayers\RbyChainmail.gif|HumanMaleLayers\RbyChainmail.gif| -
Installation Schritt 1: Items in die Datenbank übernehmen
Rucksacksepp hat sich bereit erklärt diesen Schritt in seinen Patch zu integrieren. Wenn der nächste Patch ausgerollt wird, wird dieser Schritt also entfallen.
Die Dateien befinden sich hier: https://drive.google.com/drive…J6WiYGTOytnX1PSuJDTzWmIfs
Das Installationsverzeichnis von SoA sieht etwa so aus:
Code
Display More<root> - ArtLib - Ressources - Conversations - german/english ... - corvus1.cnv - ... - Database - german/english ... Items.db - xref.db - Engine - LayeredImages - HumanMaleLayers - ...pox - InventoryImages - ...poxSchritt A: Dateien übernehmen
Die Dateien aus dem "inventory" Ordner gehören in den Ordner "InventoryImages", die aus dem Ordner "layered" in den Ordner "HumanMaleLayers".
-
Hallo,
das ist eine Zusammenfassung mehrerer Versuche mehr Items in SoA einzubauen, dabei ging es insb. um die Vervollständigung bestehender Sets, bei denen es entweder nur 1-2 Items gab, bzw. nur einzelne Items gefehlt haben. Außerdem geht es um die Bewahrung von Eustace Goldene Rüstung, die mit dem ReRelease inkompatibel ist, sowie das Überführen einiger Items aus Ashes of Avalon ins Hauptspiel.
Hier eine Galerie der neuen Items, inkls. Vergleich mit bestehenden Items, wo es passt:
Neu Items aufgeteilt nach Farben:
- Schwarz
- Kapuze verändert, sodass man das Gesicht sehen kann
- Panzerhandschuhe
- Kettenhemd
- Panzerstiefel
- Leder-Armschienen
- Weiß
- Leder-Armschienen
- Lederhaube
- Lederhandschuhe
- Lederstiefel
- Knochenköcher eingefärbt, sodass er wie im Inventarbild grau/weiß aussieht und nicht mehr wie alle anderen Köcher auch (nicht im Bild)
- Blau
- Magierkapuze
- Magierhemd
- Magierhandschuhe
- Magierkilt
- Magierhose
- Magierstiefel
- Ledertunika (für Kundschafter gedacht, nicht im Bild)
- Grün
- Ledertunika (für Kundschafter gedacht)
- Gold
- Helm
- Kettenhaube
- Schulterschutz
- Kürass
- Armschienen
- Handschuhe
- Beinschienen
- Stiefel
- Rubinrot
- Helm
- Kettenhaube
- Schulterschutz
- Kürass
- Handschuhe
- Kettenhemd
- Beinschienen
- Stiefel
- Ledertunika (für Kundschafter gedacht, nicht im Bild)
- Schwarz
-
Python
Display Morefrom PIL import Image, ImageEnhance import os def shift_hue(img, hue_shift): hsv = img.convert("HSV") h, s, v = hsv.split() hue_shift = int(hue_shift * 255 / 360) h = h.point(lambda p: (p + hue_shift) % 256) return Image.merge("HSV", (h, s, v)).convert("RGB") def decolorize(img, brightness=1.0, gamma=1.0): pixels = img.load() width, height = img.size for y in range(height): for x in range(width): r, g, b = pixels[x, y] if (r, g, b) == (0, 255, 255): # cyan background continue gray = int(0.3*r + 0.59*g + 0.11*b) gray = int((gray / 255.0) ** gamma * 255) gray = min(255, max(0, int(gray * brightness))) pixels[x, y] = (gray, gray, gray) return img def colorize(img, color=(255, 215, 0), brightness=1.0, gamma=1.0): gray = img.convert("L") gray = int((gray / 255.0) ** gamma * 255) img_colored = Image.merge("RGB", ( gray.point(lambda p: p * color[0] / 255), gray.point(lambda p: p * color[1] / 255), gray.point(lambda p: p * color[2] / 255) )) enhancer = ImageEnhance.Brightness(img_colored) return enhancer.enhance(brightness) def restore_cyan_background(original_img, processed_img): orig_data = original_img.getdata() proc_data = processed_img.getdata() new_data = [] for orig, proc in zip(orig_data, proc_data): if orig == (0, 255, 255): new_data.append((0, 255, 255)) else: new_data.append(proc) processed_img.putdata(new_data) return processed_img def process_images(input_folder, output_folder, hue_shift=None, do_decolorize=False, do_colorize=False, color=(255, 215, 0), brightness=1.0, gamma=1.0): os.makedirs(output_folder, exist_ok=True) for filename in os.listdir(input_folder): if not filename.lower().endswith((".png", ".jpg", ".jpeg", ".bmp", ".tif")): continue in_path = os.path.join(input_folder, filename) out_path = os.path.join(output_folder, filename) original = Image.open(in_path).convert("RGB") # ❗ Skip check: top-left pixel black if original.getpixel((0, 0)) == (0, 0, 0): print(f"⏩ Übersprungen: {filename} (oben links schwarz)") continue img = original.copy() if hue_shift is not None: img = shift_hue(img, hue_shift) if do_decolorize: img = decolorize(img, brightness=brightness, gamma=gamma) if do_colorize: img = colorize(img, color=color, brightness=brightness, gamma=gamma) img = restore_cyan_background(original, img) img.save(out_path) print(f"✅ {filename} gespeichert") # ====================== # Beispiele: # ====================== # Hue-Shift -30° # process_images("input", "output", hue_shift=-30) # In Graustufen mit Gamma=2 und Helligkeit=0.7 # process_images("input", "output", do_decolorize=True, brightness=0.7, gamma=2) # Gold einfärben + heller machen # process_images("input", "output", do_colorize=True, color=(255,215,150), brightness=1.5) -
Hallo,
ich hatte schon lange daran gedacht die rote Magierrobe von Amori blau umzufärben, weil es ja diesen blauen Mantel im Magierturm in Kapitel 5 gibt, aber nichts anderes dazu, Bisher ist das daran gescheitert, dass ich keine Ahnung hatte, wie man das lästige manuelle Umfärben von allen Einzelbildern mit vertretbarem Aufwand hinbekommen kann. Nun habe ich einen Weg gefunden, wie man das gut automatisieren kann. Ich möchte das Wissen hier teilen, auch damit es für mich persistent ist, falls ich dasselbe noch mal machen will.

Zutaten
Man braucht:
- POXMaker Tools: Pox maker tools
- POXConvert: PoxConvert
- Python: https://www.python.org/
- Einen Rechner oder eine Virtuelle Maschine mit Windows 7 abwärts
- ggf. weitere Modding-Tools, um Items ins Spiel zu bringen, nachzubearbeiten
Anleitung
1. Schritt: Ordner vorbereiten
Zunächst erstellt man am besten einen neuen Ordner und benennt ihn so, wie das neue Item heißen soll. Darin legt man wiederum neue Ordner an für Inventory und Layered.
In beiden Ordnern wird eine leere Text-Datei angelegt und so benannt: <Item-Name>.ini.
Am Ende sollte es also so eine Struktur geben:
- Arbeitsverzeichnis
- BlueArcaneShirt
- Inventory
- BlueArcaneShirt.ini
- Layered
- BlueArcaneShirt.ini
- Inventory
BlueArcanePant
...
- BlueArcaneShirt
2. Schritt: Template-Item auspacken
Man benötigt eine .pox-Datei für das Inventarbild und eine .pox-Datei für die Animation ingame. Diese befinden sich hier:
- Inventory: <SoA-Dir>/ArtLib/Ressources/Engine/InventoryImages
- Layered: <SoA-Dir>/ArtLib/Ressources/Engine/LayeredImages/HumanMaleLayers
Man nimmt das Tool PoxConvert und konvertiert dann nacheinander das Inventarbild und die Animation.
Zunächst kopiert man sich den Text vom Ini-Tab weg und fügt ihn in die neu angelegten Ini-Dateien hinein.
Inventarbild:
Layered:
Code
Display More[HEADER] FileName=RedArcaneShirt.gif GameClass=Character ValidLayers=chest1,chest2,chest3,outer LayeredParts=Yes Blend=None BlendAmount=0 UseLighting=Vert TransparentColor=16776960 ImagePacking=IndividualFrames Highlightable=Yes CollisionHeight=101 CollisionOffset=74 CollisionRadius=13 Shadow=Complex ShadowColor=0 FrameMultiplier=2 ImageWidth=148 ImageHeight=130 EditorImage=21 GameImageFrame=288 Actions=Stand,Attack1,BowAttack,Cast,Pain,Death,Walk,Run ...Die rot markierten Stellen müssen durch den Namen des neuen Items ausgetauscht werden.
Die Zeile "TransparentColor" muss auch in die .ini-Datei des Inventarbilds eingefügt werden.
Dann ändert man unter "Options --> Background Color" die Hintergrundfarbe auf cyan (RGB: 0, 255, 255, Hex: #00FFFF). Anschließend geht man auf die Schaltfläche "Export Frames" und wählt als Zielordner den oben angelegten Ziel-Ordner aus. Dann kann man zusehen, wie das Tool nacheinander alle Frames durchgeht und als einzelne bmp-Dateien in den Zielordner anlegt.
Es gibt einen Bug, dass das Tool den ersten Frame nicht exportiert. Statt 360 Bilder entstehen nur 359 Bilder im Zielordner. Um den ersten Frame zu gewinnen macht man einen Screenshot vom ersten Frame, öffnet diesen in Paint, Paint.net oder einem anderen Programm. Dann schneidet man das Bild passend zurecht. Die Länge und Breite kann man entweder in der unteren Zeile in PoxConvert ablesen oder aus der .ini-Datei entnehmen. Das Bild muss als .bmp abgespeichert werden. Damit das Zusammenfügen später klappt, sollte es auf dem Suffix _0 enden. Farbtiefe ist erstmal egal, der Standardwert passt schon.
Ist man mit diesem Schritt durch, sollten die Ordner von oben so aussehen:
- BlueArcaneShirt
- Inventory
- BlueArcaneShirt.ini
- BlueArcaneShirt_0.bmp
- BlueArcaneShirt_1.bmp
- Layered
- BlueArcaneShirt.ini
- BlueArcaneShirt_0.bmp
- ...
- BlueArcaneShirt_359.bmp
- Inventory
Alle Bilder sollten einen cyan-Farbenden Hintergrund haben.
Schritt 3: Items umfärben
Normalerweise müsste man jetzt das Grafiktool seiner Wahl (z.B. paint.net oder GIMP) auspacken und jedes Bild einzeln umfärben. Zum Glück kann Python das auch, sodass man die ganze Aufgabe automatisieren kann. Dazu muss zunächst über pip das Paket "pillow" installiert werden:
Dann kann man einfach folgendes Skript benutzen, um die Items umzufärben:
Das Skript macht viele Dinge:
- Einen hue-shift auf das ganze Bild anwenden
- Bild grau machen und eine andere Farbe drüberlegen
- Aufhellen/Dunkler machen (Um schwarze/weiße Items zu erzeugen)
- Gamma-Wert verändern, um Glanz zu erhalten
- Bilder mit schwarzem Hintergrund ignorieren (Schatten des Inventory-Bilds)
- Cyan-Hintergrund wiederherstellen
Über die Parameter kann man steuern, was genau gemacht werden soll. Hat man im vorhergehenden Schritt bereits alle zu färbenden Items vorbereitet, kann man das Skript einfach nacheinander für alle Ordner ausführen.
Schritt 4: Eine .gif erzeugen
Dazu benötigt man das Tool BPMWork.
Man öffnet das Tool und wählt die als "INI-Properties-File die .ini-Datei aus. Im Hauptfenster fügt man alle .bmp-Dateien im Zielordner hinzu. Der Name der entstehenden Datei soll <ItemName>.gif sein, bei mir also BlueArcaneShirt.gif. Das wiederholt man für das Inventar-Bild und die Animation.
Die Option "transparent" ist verbuggt, die bitte nicht benutzen. Wenn man den "Loop" Schalter anwählt, funktioniert es. Ich hab nicht ausprobiert, was passiert, wenn man das weglässt.
Schritt 5: Eine .pox erzeugen
Hier benötigt man den Windows 7 (oder niedriger) Rechner und das Werkzeug Gif2Pox. Es reicht aus, wenn man z.B. über einen USB-Stick nur die entstandenen .gif-Dateien auf den Windows-7-Rechner zieht.
Zunächst muss man die Farbtiefe des Rechners auf 16bit umstellen. Das ist in Windows 7 noch möglich, alle nachfolgenden Versionen von Windows arbeiten mit höheren Farbtiefen. Das ist der Grund warum man einen alten Rechner, bzw. eine VM für diesen Schritt braucht, weil das oben genannte Tool mit der System-Farbtiefe arbeitet.
In Gif2Pox wählt man den zu konvertierenden Ordner aus. Das Tool sammelt sich dann selbst alle .gif-Dateien aus diesen Ordnern zusammen und macht daraus .pox-Dateien. Es ist also emfpehlenswert schon alle .gif-Dateien zusammenzuhaben, wenn man diesen Schritt angeht.
Schritt 6: Die Items in die Datenbank hinzufügen
Dazu benötigt man die Items.db und die xref.db.
Zunächst fügt man die erstellten .pox-Dateien in die entsprechenden Ordner hinzu (siehe Schritt 2)
Dann kopiert man sich in den Datenbank-Dateien den Eintrag von dem Quell-Item und fügt sie als neue Zeile hinzu und tauscht dann einfach alle Bezeichner gegen das neu erstellte Item aus.
In der Items.db kann dann noch an den Werten des neuen Items heraumgeschraubt werden, das kann man auch über das Tool "ItemMaker" erledigen.
Schritt 7: Die Items ins Spiel bringen
Zu Testzwecken nehme ich mir dazu die Datei corvus1.cnv aus dem "conversations" Ordner. Dort passt man den letzten Dialog so an:
Code[Corvus6] Say=Das wohl kaum. So wie ich General Roth kenne, hat er den Kommandant der Listen bereits gebeten, dich zu bewerten. .... script=player.additem(comletter);player.additem(BlueArcaneShirt); Adventure=ch1-00; AddQuest=ch1-00; RspDflt=Das mache ich, Bruder. Mögen dich die Geister behüten. Wir reden weiter, wenn du wieder da bist.Damit sorgt man dafür, dass Corvus einem zusammen mit dem Offizierspatent das neue Item aushändigt. So kann man im Spiel testen, ob es so funktioniert wie gewünscht.
Wie ihr das Item dann final ins Spiel bringt ist dann euch überlassen.
-
Und noch ein Verbersserungsvorschlag:
In Kapitel 6. als Magier erhält man nur den Feuermantel:
In den Spieldateien sind aber noch mehr Items vorhanden:
Wäre es auch hier möglich das volle Set zu erhalten? Eine Kapuze scheint es dazu nicht zu geben, nur eine Haube/Kutte (siehe unten)
Edit: Ich habe die Items mal ausprobiert, sie scheinen in Ordnung zu sein.
Desweiteren gibt es noch den "MageStaff2", ich erinnere mich, dass man den zu dem SoAmigos-Patch-Zeiten auch mal von Athamas bekommen hat, nachdem man das letzte Training absolviert hat. Der ist besonders praktisch, weil Einhändig, sodass man in der linken Hand noch einen Zauberstab aus Kapitel 5 tragen kann.
Dann habe ich noch diese Kutten hier entdeckt:
Die scheinen aber kaputt zu sein. Man kann sie ausrüsten, sie erscheinen aber nicht im Spiel:
Auch hier erinnere ich mich daran, dass dieses Item mit dem SoAmigos-Patch 0.7 im Spiel war und funktioniert hatte.
-
Eine andere Idee wäre es noch die Boni von dem schwarzen Magierzeug in Kapitel 5 einmal aufzuräumen. Ich verstehe ja, dass die Sachen Mali haben sollten, damit nicht z.b. ein Krieger oder Kundschafter sie verwendet, dass es also Mali auf Kampffähigkeiten und Boni auf Magiefahigkeiten haben sollte.
Aber oft ist es so, dass das eine Item einen Bonus gewährt, der vom nächsten Item als Malus wieder abgezogen wird. Das gleicht sich dann insgesamt aus und ergibt so doch gar keinen Sinn. Es sei denn es geht um Chaos aus Prinzip!

-
Ah, da lernt man 20 Jahren noch etwas neues. Ich hätte schwören können, dass Felious noch nie diesen Stab gedroppt hat, ich hatte aber wohl auch noch nie die 'alles nehmen' Option verwendet.
Falls du den Stab der Macht besser machst, dann auch nicht vergessen den Preis entsprechend anzupassen.

Edit: Und schön, dass du noch was machst! Man könnte ja denken, dass du nach all den Jahren mal keine Lust mehr auf das alles hast!

-
Eine Verbesserungsvorschlag hätte ich noch.
Ich mag ja die Kombi Magier + Stab. Leider ist der gesprungene Stab im 1. Kapitel von der Stärkeanforderung her schlecht. Ein Magier bekommt nur 7 Punkte, die Anforderung liegt glaub ich bei 10 und niemand investiert im 1. Kapitel Punkte in Stärke.
Der Stab der Macht, den man im 2. Kapitel kaufen kann, hat zwar Magieschaden, aber man würde doch eher den Dolch 'Mystische Klaue' nehmen, wegen des Mana-Bonus, den man im 2. Kapitel auf jeden Fall mitnehmen möchte.
Dann hinterlässt Felious einen 'Kampfstab', der soweit ich weiß einzigartig ist, aber nichts besonderes ist. Der Schattenkrieger im Turm im 3. Kapitel hat ebenfalls Stab ausgerüstet, der aber nicht lootbar ist.
Mein Vorschlag wäre es den Kampfstab etwas aufzuwerten, damit er so gut ist wie die mystische Klaue. Dann hätte man auch als Magier etwas verwertbaren Loot und man hätte eine gewisse Auswahl, ob einem Stäbe oder Dolche mehr liegen.
Das gute Zeug gibt es ja eh erst im 5. Kapitel dann.
-
Ja, im ersten Kapitel lief es flüssig, aber jetzt im 2. mit vier Begleitern und viel los in der Innenburg merkt man es schon mehr.
Ist aber nicht schlimm. Wäre nicht das erste mal, dass sich Winlator Kontra intuitiv verhält. Ein Action RPG aus 2009 lief flüssiger als die Siedler 3 von 1998.
-
Ich hab jetzt mal einen älteren Treiber und ein FPS-Limit ausprobiert, damit ist das Problem nicht ganz verschwunden, es ist aber deutlich besser geworden.
Außerdem hab ich den Objektschatten deaktiviert, damit sind diverse Ruckler auch verschwunden.