Siege.exe aus Source Code (Delphi 4 )

      Siege.exe aus Source Code (Delphi 4 )

      Da ich mir hab Delphi 4 besorgen können hab ich mich mal an die Arbeit gemacht den original Source Code von SoA zu kompilieren und bearbeiten. Ernüchternd musste ich feststellen, dass entweder Dominik Louis oder aber die Heinis von Digital Tome den Source verändert hatten. Dieser hier funktioniert nämlich so gut wie gar nicht. Teils stehen fertige in {...} Klammern geschriebene Codes drin, die noch eingegliedert werden müssen, teils funkionieren andere Sachen einfach nicht. Sollte aber der originale sein.
      Nun gut, nach längerer Arbeit hab ich doch ein bisschen was erreicht. Zu 70 % spielbar. Was fehlerhaft ist:
      -Truhen werden nicht korrekt gerendert und es stürzt folglich ab. Aus der Siege.log kann ich nix genaues dazu herauslesen.
      -"Loadmap" funktioniert nur ab und zu. Schmiert stattdessen oft ab.
      -Diamonds und Tiles werden fehlerhaft dargestellt.
      -Looting funktioniert noch nicht korrekt.
      -Charakter wird nicht korrekt mit Anziehsachen dargestellt
      -Neues Spiel: das Overlay funktioniert noch nicht richtig.
      -Optionen funktioniert nicht

      Was ich bereits ausbessern konnte:
      Kompletter Ingametext funktioniert nun
      Inventar, Statistiken usw. (Fenster) werden nun fehlerfrei aufgerufen, da Schattierungen nicht funktionieren.
      Zaubersymbole werden angezeigt.
      Inventarsachen können nun angewählt und verschoben werden.
      Konversationen und Händlerfunktion funktionieren.

      Ich hab kurz mal eine Möglichkeit aufgebaut sich das mal anzuschauen, wer möchte.
      Dateien in eine vorhandene SoA-Installation reinkopieren und dann kann mans testen. Achtung: Ein paar Dateien werden dabei überschrieben.
      Ferner kommt dort Loadmap drin vor. Wenns abschmiert, dann kann man Anfang der Stufe laden und man landet auf Karte 2.
      Dateien
      • SoA.zip

        (986,86 kB, 108 mal heruntergeladen, zuletzt: )
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Jetzt ist der Source Code soweit fertig, dass man es spielen kann. Einzige bekannte Probleme:
      1. Schwarze Rectangles (Boden) werden pink angezeigt, teilweise werden Diamonds und Rectangles nicht korrekt angezeigt.
      2. Schnelle Burgwechsel funktioniert nicht. Hotspots für die jeweilige Karte sind nicht anklickbar.
      3. Inventarzeug wird auf den Figuren nicht angezeigt.
      4. Übersetzungen (#Char#) der Namen funktionieren nicht. Es wird dann kein Name angezeigt.
      Aber es läuft und man könnte nun auch u.a. neue Zauber einfügen.

      Zum Testen einfach den Ordner im Anhang runterladen und ins SoA Verzeichnis kopieren und schon dürfte SoA damit funktionieren. Achtung: Manche Sachen (im Interface) werden dabei überschrieben.
      Dateien
      • SoA.zip

        (964,57 kB, 90 mal heruntergeladen, zuletzt: )
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Schön das es die Seite noch gibt :)

      Mal ne Frage Raptor:

      Was bringt die überarbeitete Form denn? (also was ist daran neu)

      Ich war hier lange net mehr unterwegs, daher muss ich erst mal wieder reinkommen^^

      Die Datei konnte ich noch nicht installieren, hab nen neuen Computer und muss SoA wieder erst mal drauf machen
      Es waren bestimmte Grenzen gesetzt was Modding angeht. Mit dem Source Code kannst du jetzt eigentlich alles machen. Wie halt z.B. einne neuen Zauber einbauen. Ich hatte da mal die Idee für den Zauber Blutrausch. Ähnlich wie Schatten nur halt +10 Kampfkraft für bestimmte Dauer.
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Nun funktioniert auch das Anzeigen der Kleidung. Wie es geht, hab ich über den Pinkbug-Patch herausgefunden. Andere Xref.db benutzen. Es liegt nahe, dass es sich bei dem Source Code um eine abgewandelte oder ältere Version des Pinkbug-Patches handelt.
      Aktuelle Probleme:
      1. Übersetzte Char-Namen werden nicht angezeigt
      2. Pink statt schwarze Rectangles und bei Diamonds können ein paar Quadrate nicht angezeigt werden.
      3. "Momentane Trainingspunkte-Anzeige" zu weit oben.

      Da ich nun ein paar neue Zauber eingebaut habe. Unter anderem "Steingolem beschwören", hab ich das auch gleich in SoA reingebaut (Elarath.cnv). Natürlich gleich zu anfang, damit mans auch gleich testen kann. Dazu einfach die beiden Inhalte der Ordner ins SoA Verzeichnis kopieren. Achtung: Ein paar Sachen werden dadurch überschrieben.
      Dateien
      • Siege.zip

        (720,62 kB, 99 mal heruntergeladen, zuletzt: )
      • SoA.zip

        (429,89 kB, 98 mal heruntergeladen, zuletzt: )
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Herzlichen Glückwunsch,

      das hört sich ja wirklich gut an. Bin gespannt, ob das klappen könnte. Kannst du das auch mit den Editor kombinieren?
      Allso funktionieren hier rein theoretisch auch deine Mods? Die möglichkeiten dank eigenen Quellcode steigen hierduch ja ins
      uneremessliche. 8o

      Mit freundlichen Grüßen,

      Lord Löwenher
      Es würde rein theoretisch funktionieren, wenn ich diese neu kompilierte Anwendung in die Mods reinpacke.
      Aber es gibt Grafikfehler. Ich vermute: Alles läuft auf das DirectX system dort hinaus. Die Datei zum Rendern (DXRender.pas) hat irgendeinen Fehler, den ich aber nicht finde. Jetzt kenne ich mich mit Delphi fast gar nicht aus. Wenn man sich die Dateien für DirectX anschaut, dann beißt es bei mir komplett aus.
      Die Drawalpha-Sachen laufen ja letzten Endes auch auf die Renderdatei raus. Darum scheint das auch nicht zu funktionieren,w eshalb ich ja die Transparenz komplett rauskicken musste, sowie Schatten in den Abenteuerlogs usw.
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Nach langer Zeit gibts hier mal eine Rückmeldung:
      Das Problem mit der Drawalphafunktion hat sich irgendwie gelöst obwohl ich nicht weiß, was ich gemacht habe. Der Sourcecode, der auf github liegt, hatte wohl nicht das Problem. Ich muss also irgendwo einen Fehler dringehabt haben. Die Interfacefunktionen funktionieren nun komplett.
      Die Diamond und Rectangle-Problem hab ich lösen können, da ich nach längerem Suchen auf das hier gestoßen bin:
      X := ( ( FTileMaxIndex - 1 ) div FTileMaxColumnIndex ) * FMap.FTileWidth ;
      Da muss die - 1 raus.
      Genauso hier:
      if ( ( FTileMaxIndex mod FTileMaxColumnIndex ) = 0 ) and ( FTileMaxIndex > 0 )
      Da muss statt = 0, < 0 stehen, sonst verschiebt sich das Problem einfach nur im eine Spalte. Man muss die Tiles nämlich als großes Bild sehn mit einer maximalen Bildhöhe. Überschreiten die Bilder der Tiles die Bildhöhe, fängt er eine neue Spalte an. Welcher Kaschbal kommt also darauf das so rein zuschreiben, dass es nicht richtig funktioniert?
      Das Problem mit der xref.db hab ich anderweitig gelöst, sodass man nicht eine neue Xref.db braucht, sondern die alte behalten kann.
      Desweiteren hab ich das Menü wieder zurückgearbeitet, damit man nicht auch noch neue Bilder im Ordner Interface braucht.
      Ferner hab ich die Hotkeys für Zauber umgebaut. Nicht mehr die f5-f12 sondern 0-9 auf den oben tasten, also nicht der Ziffernblock.

      Das einzige Problem, worauf man achten muss: Wenn man einen neuen Spielstand laden will und das Inventar offen hat, dann zuerst das Inventar schließen bevor man escape drückt. Sonst schmiert es beim Laden des anderen Spielstands ab. Edit: Stelle gerade fest, dass das aber auch beim Original so war.

      Im Anhang nun also die fertige Anwendung. Es befinden sich auch die neuen Zauber drin:
      Blutrausch:
      addtitle(bloodlust);
      Steingolem beschwören:
      addtitle(Summon Rockgolem);
      Eisblock:
      addtitle(Iceblock);
      Dateien
      • Siege.zip

        (821,63 kB, 62 mal heruntergeladen, zuletzt: )
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Raptor“ ()

      Da sehe ich zwei Möglichkeiten. Entweder, weil sie den Originalen schon etwas umegabut haben um daraus dann die neue Engine zu entwickeln, für die man kein Delphi mehr braucht oder aber aus reiner Missgunst nach dem Motto: Niemanden anders soll es möglich sein den Source Code fehlerfrei verwenden zu könen.
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Hier nun eine noch etwas überarbeitete Version mit folgenden Neuerungen:
      1. Zweischwerterstil per Taste eingebaut ("Z"), funktioniert aber nur bei Ashes of Avalon dann.
      2. Den Schnellreisebildschirm der Burg per Tastendruck aktivierbar gemacht ("T"). Man kann nun von überall her auf die schnelle in die Burg reisen. Kürzt damit die Zeit etwas ab, wenn man einfach nur einen gewissen Weg noch zu laufen hat.
      3. Zauberzuweisungen mit den Tasten 0-9 werden nun auch gespeichert, allerdings (ich weiß nicht warum) wird die Taste 9 zwar gespeichert aber nicht geladen. Diese muss man nach jedem Mapladen neu zugeweisen.
      4. Die Psy-, Gift- und Spezialwerte für Schaden und Resistenz werden wieder im Statistik-Menü angezeigt.
      Dateien
      • Siege.zip

        (832,57 kB, 67 mal heruntergeladen, zuletzt: )
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.
      Das steht alles im Sourcecode drin. Genauer gesagt in diesen Dateien: Spells.pas und Spells1.pas. Die einzigen Sachen, die offen liegen, sind die Animationen im Ordner Engine/Spells bzw Engine/Projectiles und die Spellglyphs.bmp im Ornder Interface.
      Wo ich bin klappt nichts,...
      aber ich kann ja nicht überall sein.