Crystals-DSA-Foren
Der HEX-Thread / Spielstandsprobleme - Druckversion

+- Crystals-DSA-Foren (https://www.crystals-dsa-foren.de)
+-- Forum: Allgemeines zur Nordlandtrilogie DOS (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=20)
+--- Forum: Technische Werkstatt (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=34)
+--- Thema: Der HEX-Thread / Spielstandsprobleme (/showthread.php?tid=80)

Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52


RE: Der HEX-Thread / Spielstandsprobleme - aeyol - 10.12.2015

Hehe, das sind jetzt aber nicht nur Gesichter. Interessant, was die für Szenen in so wenige Pixel gequetscht haben! (Hängebrücke... Kutsche... Floß!)

Die Augenklappe von E3 wirkt verbuggt.

Und hat Eliane Windenbek (F2) eigentlich so knallig blaue Haare oder ist das ein Kopftuch/Kapuze? Ich frage mich das, weil H8 mit "normal dunklen" Haaren dargestellt ist, sodass das ja zumindest möglich gewesen wäre.


RE: Der HEX-Thread / Spielstandsprobleme - Zurgrimm - 10.12.2015

(10.12.2015, 20:21)Crystal schrieb: F3 ist Olvir, der Skalde - F8 dagegen ist Tiomar Swafnildsson.
O.k., die stimmen, das habe ich gerade überprüft. :ok:

(10.12.2015, 20:25)Alrik Alrikson schrieb: D2 ist Ektor Gremob (oder so ähnlich), auf jeden Fall erscheint das Bild im Zusammenhang mit dem dortigen Phextempel bzw. der Villa wenn die Helden sich abfällig über das Brot etc. äußern (scheint teilweise Zufall zu sein, denn manchmal kommt im Tempel einfach auch nur D6).
Ektor Gremob stimmt tatsächlich, das kann man auch an Crystals Screenshots hier sehen:
http://www.crystals-dsa-foren.de/showthread.php?tid=243&pid=4606#pid4606

Zufall ist es aber nicht, ob Ektor Gremob oder der Tempeldiener kommt, die Mechanik dazu hatte ich hier geschildert:
http://www.crystals-dsa-foren.de/showthread.php?tid=243&pid=14921#pid14921

Allerdings hat der Tempeldiener, der alternativ zu Ektor Gremob kommt, das Bild C13, nicht D6. Wenn ich mich recht entsinne, könnte D6 die fanatische Phex-Anhängerin im großen Phextempel in Phexcaer sein. :think:


RE: Der HEX-Thread / Spielstandsprobleme - Alrik Alrikson - 10.12.2015

Ja das stimmt, D6 ist diese Geweihte aus dem Phex-Tempel und auch Olimone aus den Sümpfen. Hatte in Erinnerung gehabt, dass der Phex-Tempel in Phexcaer zeitgleich dieser korrumpierte Gremob-Tempel sei. :pfeif:

Bilder, welche ich nicht kenne (oder mir gerade nicht einfallen) sind: C12, D1, G6, H2, H3, H12, H13.


RE: Der HEX-Thread / Spielstandsprobleme - wiese.hano - 10.12.2015

(10.12.2015, 21:18)aeyol schrieb: Und hat Eliane Windenbek (F2) eigentlich so knallig blaue Haare oder ist das ein Kopftuch/Kapuze? Ich frage mich das, weil H8 mit "normal dunklen" Haaren dargestellt ist, sodass das ja zumindest möglich gewesen wäre.
Ich habe das Blaue immer für Haare gehalten (auch wenn es etwas seltsam anmutet).

Wenn mir jemand die Farbpalette für Riva gibt, konvertiere ich das gewünschte Bild Pixel für Pixel manuell. (Denn ich glaube, einen Konverter gibt es dafür nicht.)

Warum sind denn die Charakterportraits unterschiedlich breit?


RE: Der HEX-Thread / Spielstandsprobleme - thEClaw - 10.12.2015

(10.12.2015, 23:26)wiese.hano schrieb: Wenn mir jemand die Farbpalette für Riva gibt, konvertiere ich das gewünschte Bild Pixel für Pixel manuell. (Denn ich glaube, einen Konverter gibt es dafür nicht.)
Ich glaube, dass es sich spätestens nach dem zweiten Bild amortisieren würde, ein kleines Skript/Programm dafür zu schreiben. Solange beide Paletten (Schick und Riva, nehme ich an) bekannt sind, sollte das mit ganz wenig Code zu machen sein - inklusive Schnörkel vielleicht 50 Zeilen.


RE: Der HEX-Thread / Spielstandsprobleme - Rabenaas - 11.12.2015

Sowas lässt sich ganz gut mit Gimp regeln. Ihr müsst nur eine Tabelle mit den Indices und den dazu passenden Farbwerten erstellen. Sowas von Hand zu machen ist mMn Quatsch. Gimp weist den Farben dann ganz automatisch die richtigen Werte zu, sobald die einmal definiert sind.


RE: Der HEX-Thread / Spielstandsprobleme - thEClaw - 11.12.2015

Kommt man mit Gimp dann auch einfach auf die Rohdaten zurueck, die in eine der Spieldateien geschrieben werden muessen? Wenn ja, waere das sicher die beste Loesung. Von Hand waeren das...1024 Pixel, nehme ich an? Das klingt wirklich nicht nach etwas, das man versuchen sollte.


RE: Der HEX-Thread / Spielstandsprobleme - Jandor - 11.12.2015

(10.12.2015, 23:26)wiese.hano schrieb: Warum sind denn die Charakterportraits unterschiedlich breit?

Wenn das auf die von mir gepostete Darstellung Bezug nimmt, liegt es höchstwahrscheinlich 'nur' daran, dass ich's beim Zusammenbasteln der 130 Bildchen nicht ganz so genau genommen habe. Oder garstiger ausgedrückt: weil es nur fix zusammengeschlumpert wurde. ;)

Gruß, Jandor.


RE: Der HEX-Thread / Spielstandsprobleme - Rabenaas - 11.12.2015

(11.12.2015, 08:32)thEClaw schrieb: Kommt man mit Gimp dann auch einfach auf die Rohdaten zurueck, die in eine der Spieldateien geschrieben werden muessen? Wenn ja, waere das sicher die beste Loesung. Von Hand waeren das...1024 Pixel, nehme ich an? Das klingt wirklich nicht nach etwas, das man versuchen sollte.
Tja hm, Rohdaten. Ich habe die Daten wirklich roh als Bytes aus dem Speicher gelesen. Schick benutzt für seine Bilder ja ein Amiga-Format. Solange es Konverter dafür gibt, ist das dank nltpack kein Problem.


RE: Der HEX-Thread / Spielstandsprobleme - thEClaw - 11.12.2015

Hier mal ein Stück Python-Code, das eigentlich tauglich sein sollte (mangels Daten habe ich es aber nicht getestet). Es berechnet den Abstand zweier Farben im RGB-Raum und "rundet" die alten Pixel auf die am besten passende neue Farbe.
Code:
input_file = "schick.bin"  # Roh-Daten eines Bildes; e.g. [0, 1, 2, 2, 1, 0, 0, 2]
output_file = "riva.bin"

palette_1 = []  # alte Palette; e.g. [[255, 0, 0], [0, 255, 0], [0, 0, 255]]
palette_2 = []  # neue Palette; e.g. [[255, 0, 0], [0, 255, 0], [0, 0, 255]]

data = open(input_file, "rb"):
raw = data.read()

# jeden Pixel mit am besten passender neuer Farbe ersetzen
for x in range(len(raw)):
  rgb_1 = palette_1[raw[x]]  # alte Farbe
  optimum_index = None
  optimum_distance = None

  # beste Farbe finden, indem kleinster Farb-Abstand berechnet wird
  for y in range(len(palette_2)):
    rgb_2 = palette_2[y]

    # quadrierten Vektor-Abstand berechnen
    distance = sum([(x - y)**2 for (x, y) in zip(rgb_1, rgb_2)])
    if optimum_distance is None or optimum_distance > distance:
      optimum_distance = distance
      optimum_index = y
    elif optimum_distance == distance and palette_2[optimum_index] != rgb_2:
      # Ausgabe wenn der Abstand zu zwei Farben identisch ist
      print("Ambiguous colours detected for pixel %s: %s and %s" % (x, palette_2[optimum_index], rgb_2) )

  raw[x] = optimum_index

# konvertiertes Bild liegt in 'raw' vor
with open (output_file, "wb") as data:
  data.write(bytearray(raw))

Man müsste nur die Paletten im passenden Format einfügen und das ganze sollte laufen. Ich nehme an, dass man den Code auch leicht für andere Sprachen anpassen könnte; bis auf die sum()-Funktion steckt da eigentlich nichts besonderes drin.

PS: Der Code ist natürlich ziemlich schlicht, es wird für jeden Pixel einmal über die komplette neue Palette iteriert (bei 1024 Pixeln und 64 Paletten-Einträgen sollte das aber noch immer nicht soo lange dauern.)


RE: Der HEX-Thread / Spielstandsprobleme - Hendrik - 11.12.2015

Ich fänd es ja ganz schick, wenn es für Camoto Module für die Dateiformate der NLT gäbe ...


RE: Der HEX-Thread / Spielstandsprobleme - Rabenaas - 11.12.2015

@theClaw: Wenn ich mich nicht täusche, berechnet Dein Programm nicht die euklidische Distanz (und auch nicht deren Quadrat), falls das die Absicht war.


RE: Der HEX-Thread / Spielstandsprobleme - thEClaw - 11.12.2015

Das wäre diese Zeile:
Code:
sum([(rgb_1[i] - rgb_2[i])**2 for i in range(len(rgb_1))])
Und ich bin ziemlich sicher, dass sie doch den euklidischen Abstand berechnet. Habe ich an anderer Stelle einen Fehler gemacht?


RE: Der HEX-Thread / Spielstandsprobleme - Rabenaas - 11.12.2015

Du hast Recht. Ich habe palette_1,2 mit rgb_1,2 verwechselt. Wenn ich die Beschwerde in eine Bitte umwandeln darf: Folgendes würde mir das Lesen erleichtern. ;)
Code:
sum([(x-y)**2 for (x,y) in zip(rgb_1,rgb_2)])



RE: Der HEX-Thread / Spielstandsprobleme - thEClaw - 11.12.2015

Mmh. Jetzt, wo du das sagst, koennte ich schwoeren, dass es nie anders gewesen ist.:pfeif::ok:


RE: Der HEX-Thread / Spielstandsprobleme - Lippens die Ente - 06.02.2017

ich wollte mal wieder in dem Wiki nachsehen weil ich mal wieder was hexen will da ich nicht mehr genau weiß wo in der Monster.dat welche Werte stehen, jetzt finde ich diese informationen nicht mehr, kann mir jemand sagen wo ich sie finden kann?


RE: Der HEX-Thread / Spielstandsprobleme - wiese.hano - 27.04.2017

Wenn du den Link zum Wiki gibst, gucke ich mal nach. *g*


RE: Der HEX-Thread / Spielstandsprobleme - Lippens die Ente - 27.04.2017

ich habe es längst gefunden, die Seite heißt nur jetzt anders, aber die Daten sind noch alle da, hat sich also erledigt.


RE: Der HEX-Thread / Spielstandsprobleme - wiese.hano - 23.06.2017

Es ging mir eigentlich um den Link zum Wiki (das ja offensichtlich eine Zeit lang down war). *räusper* Jetzt habe ich ihn noch immer nicht. :(


RE: Der HEX-Thread / Spielstandsprobleme - Shihan - 25.06.2017

Hallo wiese.hano,
Obi-Wahn hat dankenswerterweise das Wiki wieder online gestellt. Der Link ist immer noch der alte: http://bright-eyes.obiwahn.de