Themabewertung:
  • 2 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Der HEX-Thread / Spielstandsprobleme
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.
Zitieren
(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/showthr...06#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/showthr...1#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:
"Haut die Säbel auffe Schnäbel."
Zitieren
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.
"Alrik war durstig und hat getrunken."
Zitieren
(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?
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
(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.
NLT-Spielstandskonverter - konvertiert Spielstände zwischen beliebigen Teilen der Nordlandtrilogie
(alternativer Link)

Gravis Ultrasound+Sternenschweif

Battletech? MechWarrior: Living Legends! (Trailer)
Zitieren
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.
Zitieren
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.
NLT-Spielstandskonverter - konvertiert Spielstände zwischen beliebigen Teilen der Nordlandtrilogie
(alternativer Link)

Gravis Ultrasound+Sternenschweif

Battletech? MechWarrior: Living Legends! (Trailer)
Zitieren
(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.
Zitieren
(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.
Zitieren
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.)
NLT-Spielstandskonverter - konvertiert Spielstände zwischen beliebigen Teilen der Nordlandtrilogie
(alternativer Link)

Gravis Ultrasound+Sternenschweif

Battletech? MechWarrior: Living Legends! (Trailer)
Zitieren
Ich fänd es ja ganz schick, wenn es für Camoto Module für die Dateiformate der NLT gäbe ...
Hallo, ich bin's - der Bart von Fidel Castro. Und mir ist total langweilich nie geschnitten wurde.
I'm a roleplayer. My dice are like my relationships: platonic and unlucky.
Zitieren
@theClaw: Wenn ich mich nicht täusche, berechnet Dein Programm nicht die euklidische Distanz (und auch nicht deren Quadrat), falls das die Absicht war.
Zitieren
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?
NLT-Spielstandskonverter - konvertiert Spielstände zwischen beliebigen Teilen der Nordlandtrilogie
(alternativer Link)

Gravis Ultrasound+Sternenschweif

Battletech? MechWarrior: Living Legends! (Trailer)
Zitieren
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)])
Zitieren
Mmh. Jetzt, wo du das sagst, koennte ich schwoeren, dass es nie anders gewesen ist.:pfeif::ok:
NLT-Spielstandskonverter - konvertiert Spielstände zwischen beliebigen Teilen der Nordlandtrilogie
(alternativer Link)

Gravis Ultrasound+Sternenschweif

Battletech? MechWarrior: Living Legends! (Trailer)
Zitieren
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?
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Zitieren
Wenn du den Link zum Wiki gibst, gucke ich mal nach. *g*
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
ich habe es längst gefunden, die Seite heißt nur jetzt anders, aber die Daten sind noch alle da, hat sich also erledigt.
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Zitieren
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. :(
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
Hallo wiese.hano,
Obi-Wahn hat dankenswerterweise das Wiki wieder online gestellt. Der Link ist immer noch der alte: http://bright-eyes.obiwahn.de
Shihans Erzählungen - Geschichten aus der Welt der Phantasie

Neues Foren-Theme mit dunkler Schrift auf hellem Hintergrund (nur Firefox):
userContent.css (mit Anleitung zum Einbinden)
Zitieren




Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste