![]() |
|
magisches Bastardschwert - Druckversion +- Crystals-DSA-Foren (https://www.crystals-dsa-foren.de) +-- Forum: DSA 1 - Die Schicksalsklinge DOS 1992 (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=6) +--- Forum: Die Schicksalsklinge DOS 1992 (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=11) +--- Thema: magisches Bastardschwert (/showthread.php?tid=6217) Seiten:
1
2
|
magisches Bastardschwert - siebenstreich - 07.12.2025 Im Haus der Kapitäne in Daspota gibt es ein magisches Bastardschwert zu finden. Viel liest man darüber nicht, aus gutem Grund: Zwar ist es unzerbrechlich nahezu unzerbrechlich (s.u.) und gegenüber dem normalen Bastardschwert deutlich leichter, aber es hat eine um eins schlechtere Attacke und Parade. Ziemlich dürftig. Tatsächlich hat das gute Stück aber noch eine versteckte Zusatzfunktion, via "Gegenbestand benutzen" aktivierbar! Bitte keine zu hohen Erwartungen. Probiert es einfach mal aus und berichtet, was bei euch passiert. PS: Ich war kurz davor, das als Beitrag unter Fehler und Bugs einzustellen. Meine Hoffnung ist, dass es so besser gelesen wird. RE: magisches Bastardschwert - Lippens die Ente - 08.12.2025 Das Spiel hängt sich auf RE: magisches Bastardschwert - Crystal - 08.12.2025 (07.12.2025, 21:09)siebenstreich schrieb: Im Haus der Kapitäne in Daspota gibt es ein magisches Bastardschwert zu finden. Viel liest man darüber nicht, aus gutem Grund: Zwar ist es unzerbrechlich und gegenüber dem normalen Bastardschwert deutlich leichter, aber es hat eine um eins schlechtere Attacke und Parade. Es ist nicht unzerbrechlich, im Gegenteil. Der Bruchfaktor dürfte höher als beim handelsüblichen sein. http://nlt-wiki.crystals-dsa-foren.de/doku.php/sonstiges/hex-liste_ueber_alle_gegenstaende#b Bei unzerbrechlichen Items ist ein zusätzlicher HEX-Code hinterlegt, damit das Item nicht bricht....-> 9D. Vergleiche dazu den Zweihänder, Kurzschwert usw. von dieser Liste -> http://nlt-wiki.crystals-dsa-foren.de/doku.php/items/die_unzerbrechlichen_waffen_in_der_nordlandtrilogie RE: magisches Bastardschwert - Alrik Alrikson - 08.12.2025 Nach dieser Auflistung sollte der BF niedriger sein als bei der handelsüblichen Variante. Ansonsten scheint es da eine offenbar angedachte Idee nicht in die finale Version geschafft zu haben. Eigentlich schade, so hätte es neben Ringen und Amuletten auch eine Waffe gehabt, über die Magieunkundige einen Zauber wirken könnten. RE: magisches Bastardschwert - siebenstreich - 08.12.2025 (08.12.2025, 00:58)Lippens die Ente schrieb: Das Spiel hängt sich auf Genau! Bei mir ist das Spiel abgestürzt. Es handelt sich um das Resultat eines Speicherzugriffsfehlers. Prinzipiell ist vieles denkbar, je nachdem, welche Information an der angefragten Speicheradresse liegt. (Das könnte man genauer nachverfolgen, habe ich aber nicht gemacht.) (08.12.2025, 16:07)Crystal schrieb: Es ist nicht unzerbrechlich, im Gegenteil. Der Bruchfaktor dürfte höher als beim handelsüblichen sein. Danke für den Hinweis! Hier war ich etwas vorschnell. Ich habe jetzt im Quellcode nachgeschaut: Der Bruchfaktor des magischen Bastardschwerts ist -5 (Hex-Code FB, sieht man auch in der von dir verlinkten HEX-Liste). Das ist ein komischer Wert: Es gibt sonst nur positive Werte oder -99 (in Hex ist es genau der von dir genannte Wert 9D, den haben die unzerbrechlichen Waffen). Je höher, desto zerbrechlicher, d.h. -5 sollte schon ziemlich robust sein, und auch besser als der Wert +2 des normalen Bastardschwerts. Ob -5 aber wirklich unzerbrechlich ist oder nicht, kann ich aus dem Stegreif nicht sagen. EDIT: Ich habe jetzt nachgeschaut, wie das abläuft mit dem Bruchfaktor. -5 ist nicht unzerbrechlich, insofern hatte ich also unrecht. Aber eine Waffe mit BF -5 hält sehr viel mehr aus als die gewöhnlichen Waffen. Man hat 9 Beschädigungen der Waffe frei, erst bei der zehnten geht sie potentiell kaputt. Beim normalen Bastardschwert sind es nur zwei Freibeschädigungen. (08.12.2025, 16:17)Alrik Alrikson schrieb: Ansonsten scheint es da eine offenbar angedachte Idee nicht in die finale Version geschafft zu haben. Eigentlich schade, so hätte es neben Ringen und Amuletten auch eine Waffe gehabt, über die Magieunkundige einen Zauber wirken könnten. Ja, das hatte ich mir auch gedacht, vermutlich war da mal etwas geplant. Wirklich schade. Welche Funktion hätte das Verwenden des magischen Bastardschwerts wohl haben sollen? Es muss nicht zwingend ein Zauber sein. RE: magisches Bastardschwert - Zurgrimm - 09.12.2025 (08.12.2025, 22:36)siebenstreich schrieb: Welche Funktion hätte das Verwenden des magischen Bastardschwerts wohl haben sollen?Habe ich da etwas falsch verstanden oder könntest Du nicht genau das herausfinden, wenn Du dem Speicherzugriffsfehler nachspürst? (08.12.2025, 22:36)siebenstreich schrieb: Es handelt sich um das Resultat eines Speicherzugriffsfehlers. Prinzipiell ist vieles denkbar, je nachdem, welche Information an der angefragten Speicheradresse liegt. (Das könnte man genauer nachverfolgen, habe ich aber nicht gemacht.)Wenn die Information an der Speicheradresse, auf die zugegriffen wird, bekannt wäre, würde das nicht zumindest einen Hinweis darauf liefern, was der Effekt des Benutzens hätte sein sollen? RE: magisches Bastardschwert - Alrik Alrikson - 09.12.2025 Bei mir hängt sich das Spiel nicht auf, es kommt einfach nur die Spielmeldung und dann geschieht eben erklärungsgetreu nichts. Da von aufgebrauchter Magie die Rede ist, hätte ich nun durchaus einen Zauber erwartet. Und da das Bastardschwert zumindest in diese Variante inner- und außerhalb des Kampfes verwendet werden kann, wären sowohl Kampfzauber als auch andere möglich. Allerdings etwas umständlich, da die Waffe dann in der Gegenstandshand getragen und die Waffenhand frei sein muss wegen des Zweihänderstatus. RE: magisches Bastardschwert - siebenstreich - 09.12.2025 @Zurgrimm: Eigentlich ist es nur ein minimaler Fehler, ein einziges Bit: Beim magischen Bastardschwert ist die Eigenschaft "benutzbar" gesetzt. Andere derart als "benutzbar" gekennzeichnete Gegenstände sind z.B. das Schuldbuch (kann man lesen), die Stirnreife (aktiviert den Armatrutz-Zauber), der magische Beutel aus der Ruine des Schwarzmagiers, usw. Wenn man im Inventarbildschirm "Gegenstand benutzen" auswählt, kommt bei als benutzbar gekennzeichneten Gegenständen nicht die Meldung "kann man nicht benutzen", sondern das Programm liest in den Gegenstandseigenschaften den Eintrag "table_index" aus. Beim Schuldbuch steht dort Nummer 6, bei Stirnreifen die Nr. 4 und beim magischen Beutel die Nr. 13. Damit geht das Programm dann in die Tabelle g_use_item_handlers und liest den 6ten, 4ten oder 13ten Eintrag. Dieser wird als Speicheradresse interpretiert, wo das Programm jetzt hinspringt und weitermacht. In unseren Beispielen ist dies die Adresse der Routine zum Lesen des Schuldbuchs (gibt jedem 15 AP und macht Hjore Ahrensson bekannt), oder des Armatrutz-Zaubers, oder der Routine zum Öffnen des Beutels (entfernt eine Wand in der Ruine des Schwarzmagiers). Was passiert beim magischen Bastardschwerd? Für Waffen ist unter table_index der Index des zugehörigen Eintrags in der Waffentabelle abgelegt, das magische Bastardschwert hat Index 54. Damit will das Programm jetzt den 54ten Eintrag in der Tabelle g_use_item_handlers auslesen. Diese Tabelle hat aber nur 14 Einträge, so dass tatsächlich irgendein anderer Speicherinhalt (der zufällig an der anvisierten Position hinter der Tabelle steht) gelesen und als Sprungadresse zum weiteren Programmverlauf interpretiert wird. Das Programm springt also an eine willkürliche Position, wobei die Wahrscheinlichkeit sehr gering ist, dass das noch irgendeinen Sinn ergibt. Stattdessen passieren komische Dinge und das Programm stürzt ab. Übrigens ist dies ein Fehler einer Bauart, nach dem etwa Speedrunner suchen. Wenn es noch möglich wäre, die Speicherzelle mit der Sprungadresse gezielt zu manipulieren, so kann man das Programm durch die anschließende Benutzung des mag. Bastardschwerts an jede beliebige Position schicken, z.B. just dorthin, wo der Endkampf gerade gewonnen wurde. Beispiel: Sollte in dieser Speicherzelle die Anzahl der Dukaten des ersten Helden gespeichert sein, so gibt man ihm genau die richtige Anzahl von Dukaten, so dass diese Zahl als Speicheradresse interpretiert dort hinführt, wo man hinwill. (09.12.2025, 18:25)Zurgrimm schrieb:(08.12.2025, 22:36)siebenstreich schrieb: Es handelt sich um das Resultat eines Speicherzugriffsfehlers. Prinzipiell ist vieles denkbar, je nachdem, welche Information an der angefragten Speicheradresse liegt. (Das könnte man genauer nachverfolgen, habe ich aber nicht gemacht.) Wie gesagt, das magische Bastardschwert ist als "benutzbar" gekennzeichnet, das war es schon. Warum ist dem so? Hatten die Entwickler das absichtlich gemacht, weil sie eigentlich vorhatten, ihm noch irgendeine Funktion zu verleihen? Oder ist es nur ein dummer Fehler? So weit ich sehe, gibt es in diesem Umfeld leider auch keinen "verwaisten" Programmcode, der für die Funktion des mag. Bastardschwerts hätte bestimmt sein können. Wir können also wirklich nur ins Blaue mutmaßen, was die Entwickler wohl mal vorhatten. RE: magisches Bastardschwert - siebenstreich - 09.12.2025 (09.12.2025, 19:24)Alrik Alrikson schrieb: Bei mir hängt sich das Spiel nicht auf, es kommt einfach nur die Spielmeldung und dann geschieht eben erklärungsgetreu nichts. Danke für die Rückmeldung. Dies zeigt, dass es unterschiedlich weitergehen kann, wie ich es vermutet hatte. Mit "die Spielmeldung" meinst du wahrscheinlich eine Meldung, dass die Magie des magischen Gegenstands aufgebraucht wäre. Die habe ich in meinem Experimenten nicht gesehen. Hier spielt noch etwas anderes mit rein, glaube ich: Wenn ein Held einen neuen Gegenstand erhält, werden ein paar Daten dazu angelegt, u.a. ein Eintrag "quantity". Bei stapelbaren Gegenständen wird dort die Größe des Stapels eingetragen, bei benutzbaren Gegenständen die Zahl 1 bzw. die Anzahl der verbleibenden Magie-Anwendungen, sonst 0. Beim Erhalt eines benutzbaren Gegenstands wird die konkrete Zahl wieder in einer Tabelle nachgeschlagen, und beim mag. Bastardschwert führt der table_index 54 wieder zu einer Speicherzelle, die hinter dem Ende dieser Tabelle liegt, so dass irgendein Speicherinhalt mit einer eigentlich ganz anderen Bedeutung nach 'quantity' kopiert wird. Bei dir war am dieser Stelle offenbar eine Zahl <= 0 (das Programm meint dann, es sind keine magischen Ladungen mehr übrig) und bei Lippens und mir eine Zahl > 0. RE: magisches Bastardschwert - Alrik Alrikson - 10.12.2025 Genau, es erscheint eine Textbox: "Leider ist alle gespeicherte Magie aufgebraucht.". Das ist bei verschiedenen Spielständen und auch nach Übergabe des Bastardschwertes an andere Helden stets (bei ca. 15 Versuchen) so geschehen. (09.12.2025, 22:21)siebenstreich schrieb:(09.12.2025, 19:24)Alrik Alrikson schrieb: Bei mir hängt sich das Spiel nicht auf, es kommt einfach nur die Spielmeldung und dann geschieht eben erklärungsgetreu nichts. RE: magisches Bastardschwert - Zurgrimm - 10.12.2025 @siebenstreich: Danke für die verständliche Erläuterung der Mechanismen. (09.12.2025, 21:52)siebenstreich schrieb: So weit ich sehe, gibt es in diesem Umfeld leider auch keinen "verwaisten" Programmcode, der für die Funktion des mag. Bastardschwerts hätte bestimmt sein können.Das heißt, die 14 in der Tabelle existierenden Einträge werden alle für tatsächlich im Spiel vorhandenen benutzbaren Gegenständen verwendet? RE: magisches Bastardschwert - siebenstreich - 10.12.2025 (10.12.2025, 15:58)Alrik Alrikson schrieb: Genau, es erscheint eine Textbox: "Leider ist alle gespeicherte Magie aufgebraucht.". Das ist bei verschiedenen Spielständen und auch nach Übergabe des Bastardschwertes an andere Helden stets (bei ca. 15 Versuchen) so geschehen. Ich vermute, dass alle diese Spielstände "Nachfahren" derselben Spielsituation sind, wo du das Bastardschwert aufgenommen hattest. Wenn du die andere Variante provozieren möchtest, müsstest du von verschiedenen Spielständen **vor** dem Aufnehmen des mag. Bastardschwerts ausgehen. Denn im Moment des Aufnehmens passiert der oben beschriebene Eintrag in "quantity", bei dem es darauf ankommt ob er ≤ 0 oder > 0 ist. In diesem Moment wird die Zukunft sozusagen vorbestimmt. RE: magisches Bastardschwert - siebenstreich - 10.12.2025 (10.12.2025, 18:21)Zurgrimm schrieb: @siebenstreich: Danke für die verständliche Erläuterung der Mechanismen. Ja, genau. Hier die Liste. Ich nummeriere (wie im Programm) von 0 bis 13. 0: ein blinder Eintrag (letztlich etwas unsauber programmiert, aber definitiv keine versteckte Funktion) 1: roter Ring (Zauber Arcano psychostabilis) 2: alle Rezepte 3: alle lesbaren Dokumente (aber nicht die unter 6, 7, 11) 4: die Strinreife (Zauber Armatrutz) 5: grünes Amulett (Zauber Flim Flam) 6: Schuldbuch 7: Orkdokument 8: alle Waffengifte 9: Miasthmaticum 10: Hylailer Feuer 11: Das Heptagon-Zauberbuch (+2 auf den Zauber-Talentwert) 12: Beleuchtung (Laterne, Fackel, Zunderkästchen) 13: magischer Beutel Anmerkungen:
Eine weitere Dubiosität: Anscheinend führt auch der magische Brotbeutel zur Funktion 13. Benutzt man demnach den mag. Brotbeutel in der ersten Ebene der Schwarzmagier-Ruine, so sollte dort die Wand entfernt werden. War das schon bekannt? Ich habe es aber noch nicht im Spiel verifiziert. Evtl. muss man dazu auch mit Penetrizzel & Transversalis in die Ruine einsteigen. Denn wenn ich mich richtig erinnere, liegt der magische Brotbeutel in dieser Ruine, und zwar blöderweise im inneren Bereich hinterhalb dieser Wand. D.h. um überhaupt an den magischen Brotbeutel dranzukommen, muss man irgendwie diese Wand überwinden. Normalerweise entfernt man sie durch Benutzung des (normalen) magischen Beutels, aber das will man ja gerade nicht, denn man will später den magischen Brotbeutel auf diese Funktion hin testen. Falls jemand Lust hat, das mal zu auszuprobieren: Nur zu! RE: magisches Bastardschwert - Crystal - 10.12.2025 Nein, da beide Beutel verschiedene HEX-Codes haben und der Brotbeutel aus Schweif und Riva ebenso wenig in die Schicksalsklinge gehext werden kann, wie der Wandentfernungs-Beutel nach Schweif und Riva. Woran ich mich erinnere ist, dass beide Beutel das gleiche Icon im Inventar haben. Übrigens sehr interessante Liste, siebenstreich.
RE: magisches Bastardschwert - siebenstreich - 10.12.2025 (10.12.2025, 22:38)Crystal schrieb: Übrigens sehr interessante Liste, siebenstreich. Danke! Ich hab mir auch Mühe gegeben ![]() (10.12.2025, 22:38)Crystal schrieb: Nein, da beide Beutel verschiedene HEX-Codes haben und der Brotbeutel aus Schweif und Riva ebenso wenig in die Schicksalsklinge gehext werden kann, wie der Wandentfernungs-Beutel nach Schweif und Riva. Das verstehe ich nicht so ganz. Ich beziehe mich ausschließlich auf die Schicksalsklinge. RE: magisches Bastardschwert - siebenstreich - 11.12.2025 Ich habe mir die Situation beim Aufnehmen des mag. Bastardschwerts genauer angeschaut. Der nach 'quantity' kopierte Wert wird aus der Tabelle g_usable_items_table ausgelesen. Diese beginnt bei der Adresse 0x08a9 im Datensegment. Jeder Eintrag ist 3 Bytes groß. Der (hypothetische) 54te Tabelleneintrag beginnt also bei der Adresse 0x08a9 + 54 * 3 = 0x094b. Der Wert 'quantity' ist immer das mittlere der 3 Bytes, damit sind wir bei letztendlich bei der Adresse 0x094c. Da die Tabelle g_usable_items_table nur 14 Einträge hat, zeigt 0x094c auf eine Speicherzelle, deren Inhalt eine ganz andere Bedeutung hat. Es stellt sich nun heraus, dass es sich dabei um einen Eintrag in der Tabelle g_monster_name_genders handelt. Deren Einträge haben die Größe 1 Byte (und enthalten die Information, ob der Name des Monsters mit dem zugehörigen Index maskulin, feminin oder neutrum ist). Diese Tabelle beginnt an der Adresse 0x0925; somit wird auf den Eintrag mit dem Index 0x094c - 0x0925 = 39 zugegriffen. Dieser Index gehört zu einer Höhlenspinne, der Eintrag ist also "feminin", was durch die Zahl 1 codiert wird. Fazit: Beim Aufnehmen des mag. Bastardschwerts sollte unter 'quantity' die Zahl 1 eingetragen werden. Diese Zahl ist positiv und führt dazu, dass "Gegenstand benutzen" wie von Lippens und mir beobachtet wirklich weitermacht und die zugehörige Routine ausführen will, was dann zum Absturz führt. Der Eintrag 1 an dieser Stelle sollte über den gesamten Spielablauf konstant sein, d.h. ganz egal unter welchen Umständen man das magische Bastardschwert aufnimmt, bei 'quantity' wird immer der Eintrag 1 angelegt. Alrik: Mit welcher Version spielst du? Meine obigen Überlegungen stimmen für die deutsche CD-Version 3.02. Hast du evtl. eine andere Version? Es ist denkbar, dass das Datensegment dort ein anderes Layout hat, so dass der 'quantity'-Eintrags bei dir von woanders herkommt (und dann einen Wert ≤ 0 hat). Anders kann ich es mir eigentlich nicht erklären. RE: magisches Bastardschwert - Crystal - 11.12.2025 (10.12.2025, 23:44)siebenstreich schrieb:(10.12.2025, 22:38)Crystal schrieb: Nein, da beide Beutel verschiedene HEX-Codes haben und der Brotbeutel aus Schweif und Riva ebenso wenig in die Schicksalsklinge gehext werden kann, wie der Wandentfernungs-Beutel nach Schweif und Riva. Meine Antwort bezieht sich auf deine Frage: (10.12.2025, 22:25)siebenstreich schrieb: Eine weitere Dubiosität: Also nein, war nicht bekannt. Warum? Weil man es nicht nachstellen kann, wie ich es in meiner Antwort ausgeführt habe. Könnte man die Beutel hin- und herhexen, wäre es vielleicht bekannt gewesen, aber so ist es etwas, auf das ein Normalspieler niemals kommen kann.
RE: magisches Bastardschwert - siebenstreich - 11.12.2025 (Gestern, 10:56)Crystal schrieb: Meine Antwort bezieht sich auf deine Frage: o.k., danke! Also, ich stimme dir zu: Wenn es den magischen Brotbeutel in der Schicksalsklinge gar nicht zu finden gibt, dann wird auch niemand den Bug gefunden haben. Und guten Gewissens kann man kann dann auch nicht von einem Bug sprechen, wenn die Situation in einem regulären Spiel gar nicht eintreten kann. Aber: Ich war der Meinung, dass man den magischen Brotbeutel in der Schicksalsklinge eben schon finden kann. Und jetzt weiß ich auch wieder, warum: In deinem Wiki steht der magische Brotbeutel mit Fundort "Magierturm" drin. Ich war davon ausgegangen, dass es sich dabei um die Schwarzmagier-Ruine der Schicksalsklinge handelt. Erst jetzt sehe ich, dass der Eintrag ja im Abschnitt "DSA3: Schatten über Riva" steht. Also gibt es den magischen Brotbeutel in der Schicksalsklinge wohl gar nicht? Kann das zur Sicherheit nochmal jemand bestätigen? Implementiert wurde er jedenfalls: Wenn man sich den mag. Brotbeutel ins Gepäck hext, hat sich die Nahrungsversorgung für die ganze Gruppe ein für allemal erledigt. RE: magisches Bastardschwert - Crystal - 11.12.2025 (Gestern, 11:35)siebenstreich schrieb: Also gibt es den magischen Brotbeutel in der Schicksalsklinge wohl gar nicht. Kann das zur Sicherheit nochmal jemand bestätigen? Gibt es nicht, der einzige Brotbeutel im Spiel ist erst in Riva zu finden. Testen kann es jeder selbst, dass der Beutel in Schick eine andere Aufgabe hat, indem man tagelang nichts isst. Der Held mit dem Beutel hungert genauso, wie seine Kameraden ohne Beutel. Importiert man ein Schick-Save direkt nach Riva, geht der Beutel ersatzlos verloren. Eben weil der magische Brotbeutel erst im Rivaner Magierturm zu finden ist und einen anderen HEX-Code hat -> Magierturm, dritte Etage, Punkt 8 (Gestern, 11:35)siebenstreich schrieb: Implementiert wurde er jedenfalls: Wenn man ihn sich ins Gepäck hext, dann ist die Nahrungsversorgung für die ganze Gruppe erledigt. Welchen HEX-Code hat er? Müsste ja demnach ein Item sein, das ursprünglich geplant, aber wieder verworfen wurde. Möglicherweise auch ein Überbleibsel aus einer Diskettenversion. RE: magisches Bastardschwert - siebenstreich - 11.12.2025 (Gestern, 11:59)Crystal schrieb:Das ist schon klar. Der "normale" magische Beutel ist zum Entfernen der Wand, nicht zum Essen!(Gestern, 11:35)siebenstreich schrieb: Also gibt es den magischen Brotbeutel in der Schicksalsklinge wohl gar nicht. Kann das zur Sicherheit nochmal jemand bestätigen?Gibt es nicht, der einzige Brotbeutel im Spiel ist erst in Riva zu finden. Testen kann es jeder selbst, dass der Beutel in Schick eine andere Aufgabe hat, indem man tagelang nichts isst. Der Held mit dem Beutel hungert genauso, wie seine Kameraden ohne Beutel. Danke für die Bestätigung. Zitat:B8(Gestern, 11:35)siebenstreich schrieb: Implementiert wurde er jedenfalls: Wenn man ihn sich ins Gepäck hext, dann ist die Nahrungsversorgung für die ganze Gruppe erledigt.Welchen HEX-Code hat er? Müsste ja demnach ein Item sein, das ursprünglich geplant, aber wieder verworfen wurde. Möglicherweise auch ein Überbleibsel aus einer Diskettenversion. |