Praiostempel in Thorwal? - 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: Praiostempel in Thorwal? (/showthread.php?tid=472) |
RE: Praiostempel in Thorwal? - Dondor - 13.06.2022 (13.06.2022, 00:07)siebenstreich schrieb:(10.06.2022, 21:52)Dondor schrieb: Ich denke, nach höchstens 5-10 Minuten hatte es geklappt bei meiner Gruppe. Also eigentlich ein Bug der recht gut zum Ausprobieren einlädt. Tja, da waren die Zwölfgötter wohl mit mir Nagut, das klingt durchaus plausibel, dass man unter den von Dir genannten Bedingen im Durchschnitt so lange brauchen mag, um das gewünschte Ereignis auszulösen. Also ich denke, selbst wenn ich die Wahrscheinlichkeiten der Zufallsbegegnungen genau wüsste, würde ich persönlich wohl trotzdem solch eine Rechnung nicht durchführen, weil mir so etwas am Ende einfach zu... irrelevant wäre. Ist zwar auch nicht so richtig wichtig, aber ob gar je nach Stadt eine andere Wahrscheinlichkeit besteht, den Straßenhändlern zu begegnen..? Ich weiß es nicht, und vielleicht wohl auch eher nicht. Nun, ich habe mal geguckt, meine Gruppe ist in einem Tempel in Oberorken stationiert. Vielleicht geht es ja wirklich einfach schneller, wenn man sich das Ergebnis etwa herbeiwünscht, oder so?? (13.06.2022, 11:32)Zurgrimm schrieb:(13.06.2022, 00:07)siebenstreich schrieb: Die Abfolge ist "Pfeil nach oben", "Mausklick auf Tempel verlassen" (Mauspointer ist vorpositioniert), warten, bis der Fade-out fertig ist, dann 2x "Pfeil nach links", und das ganze von vorne.Vorstellbar wäre, dass man den Schritt 2x "Pfeil nach links" auslassen kann, wenn man statt "Pfeil nach oben" den "Pfeil nach unten" benutzt. Denn man kann auch rückwärts in Gebäude laufen, muss also nicht vorher die Blickrichtung ändern, wenn ich nicht ganz falsch liege. Ob dabei allerdings dann Zufallsbegegnungen auftreten können, ... ich habe es nie ausprobiert. Man kann in Schick rückwärts keine Gebäude betreten. Nachtrag: Wenn das theoretisch möglich wäre, dann wäre es doch höchst wahrscheinlich, dass siebenstreich solch eine Überlegung in seine Berechnung hätte miteinfließen lassen. Gehe ich doch mal von aus. RE: Praiostempel in Thorwal? - Zurgrimm - 13.06.2022 (13.06.2022, 20:07)Dondor schrieb: Man kann in Schick rückwärts keine Gebäude betreten.O.K., damit hast Du Recht. Ich habe es gerade ausprobiert - mit der Disketten- und der CD-Version. Mein Irrtum kam daher, dass man Illusionswände durchaus rückwärts in Richtungen durchschreiten kann, in denen es sonst nicht geht. Dass Gebäude als undurchdringliche Wände behandelt werden, damit hatte ich nicht gerechnet (und es rückwärts wahrscheinlich noch nie versucht). Insofern stimmt siebenstreichs Schätzung also komplett. RE: Praiostempel in Thorwal? - siebenstreich - 13.06.2022 (13.06.2022, 20:07)Dondor schrieb: Also ich denke, selbst wenn ich die Wahrscheinlichkeiten der Zufallsbegegnungen genau wüsste, würde ich persönlich wohl trotzdem solch eine Rechnung nicht durchführen, weil mir so etwas am Ende einfach zu... irrelevant wäre. Zu letzterem vermag ich nichts zu sagen, aber ich kann dir zeigen, wo ich die Wahrscheinlichkeiten herhabe. An dieser Stelle im Programmcode sieht man die Bedingungen, unter denen ein Zufallsevent in einer Stadt stattfindet. Die Gruppe muss sich auf ein anderes Feld bewegen (am Fleck drehen reicht z.B. nicht), muss sich in Thorwal, Prem, Phexcaer oder Oberorken aufhalten. Dann wird mit 'random_schick(100) <= 1' eine 1%ige Zufallsbedingung eingebaut. Und dann kommt noch die Bedingung, dass es zischen 8 und 20 Uhr spät ist. Wenn all das zutrifft, dann wird die Fuktion 'city_event_switch()' aufgerufen, zu finden hier. Dort sieht man, dass noch mit random_schick(9) eines der 9 möglichen Zufallsereignisse ausgewählt wird. Der Straßenhändler ist übrigens 'city_event_6()'. Du siehst also, es muss einer der Orte Thorwal, Prem, Phexcaer und Oberorken sein. Von diesen Städten wird jede gleich behandelt. (13.06.2022, 20:07)Dondor schrieb:(13.06.2022, 11:32)Zurgrimm schrieb:(13.06.2022, 00:07)siebenstreich schrieb: Die Abfolge ist "Pfeil nach oben", "Mausklick auf Tempel verlassen" (Mauspointer ist vorpositioniert), warten, bis der Fade-out fertig ist, dann 2x "Pfeil nach links", und das ganze von vorne. Genau, rückwärts geht nicht. Vorwärts immer, rückwärts nimmer! Letztlich wäre es auch ziemlich egal, denn der begrenzende Faktor ist ohnehin das Abwarten, bis der fade-out nach dem Verlassen des Tempels abgeschlossen ist. In dieser Zeit kann man die 3 Tasten "links", "links", "vorwärts" schon vorab eintippen. Müsste man nur die eine Taste "rückwärts" tippen, wäre es etwas bequemer, aber kein Zeitvorteil. RE: Praiostempel in Thorwal? - Mandur - 19.06.2022 (10.06.2022, 17:55)siebenstreich schrieb: Ich denke, das jetzt hingekriegt zu haben, s.u. Toll, das es jetzt aufgeklärt ist. (10.06.2022, 20:56)Zurgrimm schrieb:(10.06.2022, 20:44)siebenstreich schrieb: Außerdem habe ich gerade mal einen Helden in dem Praios-Tempel entlassen. Nach erneutem Betreten via Straßenhändler konnte ich den Helden nicht aufnehmen, er war nicht mehr vorhanden.Interessant. Das führt mich zu einer weiteren Überlegung. Kann man in dem Praios-Tempel einen Spielstand speichern? Und wenn ja und man diesen später lädt, steht man dann in dem Praios-Tempel oder in dem richtigen Tempel, in dem man an der Stelle sein sollte? Ich hatte damals extra einen im Praios Tempel abgespeicherten Spielstand angehängt. Damit hätte jeder mal ausprobieren können. RE: Praiostempel in Thorwal? - siebenstreich - 21.06.2022 (10.06.2022, 22:15)Zurgrimm schrieb:Ich habe gerade den ursprünglichen Bericht von Froggel gefunden, vom 4.3.2006. Die Sache mit dem Straßenhändler steht dort tatsächlich ziemlich explizit drin.(10.06.2022, 21:52)Dondor schrieb: Als ich vor längerer Zeit auch mal so einem Praois-Tempel begegnete, hatte ich interessehalber auch dort einen Speicherstand angelegt, man will schließlich nicht ständig ewig vor Tempeln raus und rein gehen, bis jener "Praois-Bug" auftaucht. Andererseits ist jenes Ereignis auch gar nicht soo langwierig zum Erreichen, den Straßenhändlern begegnet man ja relativ öfters in den genannten Städten. Ich denke, nach höchstens 5-10 Minuten hatte es geklappt bei meiner Gruppe.Das klingt ja jetzt so, als wäre Dir diese Bug-Mechanik mit dem Straßenhändler schon länger bekannt gewesen. Froggel schrieb:Was mir dabei das allererste Mal passiert ist: Ich stand mitten in Thorwal plötzlich in einem Praios-Tempel. Eigentlich ist es der Travia-Tempel, den ich allerdings wohl nicht auf dem normalen Wege betreten habe. Statt einfach reinzulatschen überraschte mich direkt vor der Tür ein Strassenhändler -- und als ich den wieder verließ, stand ich im Praios-Tempel. Da gibts übrigens auch Wunder: Praios verhalf meinen Helden temporär zu einem Mutpunkt und steigerte bei einem nicht-Magie-begabten Held die MR auf 103. RE: Praiostempel in Thorwal? - siebenstreich - 21.06.2022 Ich habe die Fehlerquelle inzwischen gefunden und in meinem BrightEyes-Fork repariert. Beim Betreten eines Tempels (oder auch eines anderen Gebäudes) wird die ID des Tempels in die Variable TYPEINDEX geschrieben. Von dieser ID hängt die Gottheit des Tempels ab. Taucht nun der Straßenhändler auf und betritt man seinen Laden, so wird die Variable TYPEINDEX mit der Zahl 93 überschrieben, das ist seine Händler-ID. Beim Verlassen des Straßenhändlers wird TYPEINDEX aber nicht auf die ursprüngliche Tempel-ID zurückgesetzt. Man landet also in einem Tempel mit der ID 93, den es aber gar nicht gibt. Wie weiter oben schon diskutiert führt das dann zu einem Praios-Tempel. Etwas überraschend ist dieser Bug schon, denn es gibt parallel noch die Variable LOCATION (die den "groben" Gebäudetyp steuert, also ob Tempel, Händler, Taverne, etc.), welche zwischengespeichert, durch den Wert für einen Händler überschrieben, und nach dem Verlassen des Straßenhändlers auch korrekt zurückgesetzt wird. Auch bei anderen Gebäudetypen führt der Bug dazu, dass man immer in dem entsprechenden Gebäude der ID 93 landet. Wenn es diese ID gar nicht gibt, können seltsame Sachen passieren, weil dann die Eigenschaften (wie der Grundpreis für eine Mahlzeit bei Tavernen) aus einem Speicherbereich gelesen werden, der eigentlich ganz andere Daten enthält. Bei Händlern gibt es die ID 93 schon (nämlich den Straßenhändler), so dass hier folgendes passiert: Man will einen Händler (egal ob Gemischtwaren, Kräuter oder Waffen) betreten; der Straßenhändler erscheint zufällig und man besucht seinen Laden; und danach steht man plötzlich nochmal beim Straßenhändler. RE: Praiostempel in Thorwal? - Lippens die Ente - 21.06.2022 hat der Straßenhänder ein fixes Sortiment oder ist das variabel? es gibt ja noch den Kolbergladen, was hat der denn für eine ID? RE: Praiostempel in Thorwal? - siebenstreich - 22.06.2022 Das Sortiment des Straßenhändlers ist fix, es sind immer 34 Artikel. Preisniveau ist 100%. Kolberg hat die ID 91, 39 Artikel (also z.B. auch Dietriche, Kristallkugel und Alchemie-Set), Preisniveau 125%. ID 92 ist das Zeughaus. RE: Praiostempel in Thorwal? - Zurgrimm - 22.06.2022 (21.06.2022, 10:10)siebenstreich schrieb: Ich habe die Fehlerquelle inzwischen gefunden und in meinem BrightEyes-Fork repariert.Ich kann den Bright-Eyes-Code nicht lesen bzw. verstehen. Daher meine Frage: Wie hast Du es denn repariert? Die konsequensteste Lösung wäre ja, dass bei dem Schritt in ein Gebäude Zufallsereignisse überhaupt nicht auftreten. Denn dann kann es zu solchen Überschreibungen überhaupt nicht erst kommen. Aber ich weiß natürlich nicht, ob das überhaupt bzw. mit vertretbarem Aufwand zu ändern ist oder ob es eine technisch viel einfacher umsetzbare Lösung gibt. Deshalb mein Interesse, was Deine Lösung beinhaltet. RE: Praiostempel in Thorwal? - siebenstreich - 22.06.2022 Eigentlich steht die Erklärung in meinem letzten Beitrag. Ich versuche es nochmal alternativ an einem konkreten Fall. Die Gruppe steht vor dem Travia-Tempel in Prem. Man drückt die Taste "vorwärts." Das Programm bereitet nun das Betreten des Tempels vor, indem nach LOCATION die Zahl 2 und nach TYPEINDEX die Zahl 47 in den Speicher geschrieben wird. LOCATION=2 bedeutet Gebäudetyp Tempel, und TYPEINDEX=47 ist die ID des Travia-Tempels in Prem. Dabei erscheint jetzt der Straßenhändler und wir wählen die Antwort 3, um seinen Laden zu besuchen. Jetzt wird das Betreten des Ladens vorbereitet. Dazu wird der Inhalt von LOCATION (also die Zahl 2) ausgelesen und an einer anderen Speicherstelle zwischengespeichert. Für TYPEINDEX passiert dies **nicht**. Nun wird die Speicherstelle LOCATION durch die Zahl 5 (=Händler) überschrieben und TYPEINDEX durch die Zahl 93 (=ID des Straßenhändlers). Danach wird der Besuch des Straßenhändlers abgespult. Nach dem Verlassen des Straßenhändlers wird die zwischengespeicherte Zahl 2 wieder nach LOCATION zurückgeschrieben. Für TYPEINDEX passiert jedoch **nichts vergleichbares**, so dass dort nach wie vor die Zahl 93 steht. Nun wird der Programmcode zum Betreten eines Tempels ausgeführt (wegen LOCATION=2 weiß das Programm, dass es sich um einen Tempel handelt). Allerdings steht unter TYPEINDEX immer noch die Zahl 93 (und nicht 47, wie es sein sollte). Der Tempel-Programmcode sucht nun in einer Art Telefonbuch nach der zur ID 93 gehörenden Gottheit, findet aber nichts (denn es ist kein Tempel der ID 93 vorgesehen) Das ganze führt wie weiter oben von anderen beschrieben dazu, dass ein Praios-Tempel erscheint. Die Reparatur war ziemlich einfach. Einmal gefunden, ist der Fehler völlig klar und lokal scharf umgrenzt. Man kann einfach den entsprechenden, direkt daneben stehenden Programmcode für LOCATION abtippen, wo ja korrekt zwischengespeichert und rückgesetzt wird (Ironie der Geschichte: Für LOCATION wäre das eigentlich gar nicht so dringend nötig, ließe man den Inhalt von LOCATION beim zwischengeschobenen Besuch des Straßenhändlers komplett unangetastet. Denn der Straßenhändler wird direkt mit do_merchant() aufgerufen, womit der Inhalt von LOCATION gar nicht relevant ist (abgesehen von einem späteren Test, ob der Händler über einen Markt betreten wurde)). RE: Praiostempel in Thorwal? - siebenstreich - 22.06.2022 (22.06.2022, 17:31)Zurgrimm schrieb: Die konsequensteste Lösung wäre ja, dass bei dem Schritt in ein Gebäude Zufallsereignisse überhaupt nicht auftreten. Denn dann kann es zu solchen Überschreibungen überhaupt nicht erst kommen. Aber ich weiß natürlich nicht, ob das überhaupt bzw. mit vertretbarem Aufwand zu ändern ist oder ob es eine technisch viel einfacher umsetzbare Lösung gibt. Deshalb mein Interesse, was Deine Lösung beinhaltet. Du hast insofern recht, als dass der Ablauf der Zufallsereignisse immer noch nicht stimmig ist. Zufallsereignisse können nur auftreten, wenn man sich in der Stadt auf ein anderes Feld bewegen will (Drehen reicht nicht). Wenn sich dabei tatsächlich ein Zufallsereignis ereignet, so bleibt man auf dem Ausgangsfeld stehen. Es sei denn, man wollte ein Gebäude betreten. Ich finde aber, die konsequenteste Lösung wäre eine der folgenden beiden: (1) Man sorgt dafür, dass man sich nach dem Zufallsereignis immer auf das Zielfeld weiterbewegt, egal ob es ein Gebäude war oder nicht. (2) Tritt beim Versuch, ein Gebäude zu betreten, ein Zufallsereignis auf, so wird das Gebäude im Anschluss nicht betreten. Man bleibt also in jedem Fall auf dem Ausgangsfeld stehen. Um das so abzuändern fehlt mir aber noch der nötige Überblick über die Abläufe in BrightEyes, denn es spielen mehrere verstreute Programmteile mit rein. Übrigens gibt es in diesem Zusammenhang noch einen weiteren Bug: Ein Zufallsereignis kann auch auftreten, wenn man in einer Stadt stehend vom Info-Bildschirm aus (also nicht von einem Tempel aus) einen Spielstand in einem Tempel lädt. Die Heldengruppe des geladenen Spielstands kann somit beklaut werden, bevor man überhaupt irgendeine Aktion vornehmen konnte. Und der geladene Spielstand kann auch beim Straßenhändler starten, nach dessen Verlassen man dann in einem Praios-Temepl steht. Somit wäre der Erfahrungsbericht auch verifiziert, der von einem Praios-Tempel direkt nach dem Neuladen berichtet hatte. RE: Praiostempel in Thorwal? - Zurgrimm - 23.06.2022 (22.06.2022, 20:00)siebenstreich schrieb: Eigentlich steht die Erklärung in meinem letzten Beitrag.Die Erklärung hatte ich auch bereits verstanden. Sie besagte nur nicht direkt, wie Du das korrigiert hast, denn dafür gibt - wie Du ja auch selbst bestätigst - mehrere Möglichkeiten. (22.06.2022, 20:00)siebenstreich schrieb: Die Reparatur war ziemlich einfach. Einmal gefunden, ist der Fehler völlig klar und lokal scharf umgrenzt.O.K., jetzt ist mir auch das klar. Es bleibt also alles gleich, man landet nur nach dem Verlassen des Straßenhändlers im vorgesehenen Tempel, nicht im Praios-Tempel. RE: Praiostempel in Thorwal? - siebenstreich - 24.06.2022 (23.06.2022, 17:51)Zurgrimm schrieb:(22.06.2022, 20:00)siebenstreich schrieb: Die Reparatur war ziemlich einfach. Einmal gefunden, ist der Fehler völlig klar und lokal scharf umgrenzt.O.K., jetzt ist mir auch das klar. Es bleibt also alles gleich, man landet nur nach dem Verlassen des Straßenhändlers im vorgesehenen Tempel, nicht im Praios-Tempel. Ja, genau. Ich habe den Fehler lokal repariert, also das fehlende Rücksetzen von TYPEINDEX nach dem Besuch des Straßenhändlers eingefügt. Hinsichtlich der weitergehenden Unstimmigkeiten habe ich nichts unternommen bisher. |