Hallo,
ich arbeite seit den letzten Tagen intensiv mit dem Arcturus Emulator. Natürlich muss man auch hier die Standardprozedur durchgehen, wie das einfügen eines neuen Furni in den Katalog. Hier gab es ein paar kleine dumme Fehler, denen ich begegnet bin. Hier poste ich eine Lösung + Erklärung, vielleicht kann jemand damit was anfangen. Inwiefern das für andere Datenbanken kompatibel ist weiß ich nicht, allerdings müsste die Vorgehensweise fast identisch, wenn nicht sogar gleich sein.
Furnidata.xml - was ist das überhaupt?
Es reicht nicht nur die Möbel in die Datenbanktabellen catalog_items und items_base hinzuzufügen, sondern müsst ihr das Möbel auch der Furnidata.xml übergeben. Diese sorgt dafür, dass alle Möbel zusammengefasst werden und mittels einer id, die wir für jedes Möbelstück in der Deklaration des einzelnen Möbelstück angeben müssen, die Referenz in der Datenbanktabelle items_base sucht (in der items_base Tabelle wird das Verhalten des Möbelstück festgelegt). Folgende Eigenschaften sind essenziell und am relevantesten für uns:
<furnitype id="ID" classname="swfname">
Die ID wird mit der Id der Datenbanktabelle items_base gefüllt (die Referenz zum Möbelstück). Classname entspricht hier der swf des Möbelstück.
Darauf solltest du achten:
- Die ID muss auf alle Fälle der id von items_base des Möbelstück entsprechen.
- Der SWF Name des Möbelstück darf nicht abgeändert werden, andernfalls lädt die swf nicht korrekt. Die SWF muss in der hof_furni abgelagert werden.
- Das Möbelicon (.png) muss genauso wie die swf heißen, allerdings gibt es hier einen kleinen Unterschied: am Ende der der Datei muss ein "_icon" dranhängen.
Mein Möbel lädt nicht korrekt! Woran kann das liegen?
Bevor du tiefer in dieses Problem gehst, solltest du vorher im Hotel mittels :update_catalogue und :update_items die Datenbanktabellen aktualisieren und den Cache löschen! Sollte das nicht helfen, ist folgendes zu beachten:
- Die Möbelswf befindet sich nicht im Ordner hof_furni.
- Du hast eine falsche ID in der furnidata.xml angegeben.
- Die IDs in catalogue_items und/oder in items_base sind nicht korrekt.
Obacht: Die Spalte "sprite_id" in der Tabelle items_base muss nicht identisch mit der Id catalogue_items und items_base sein. Die furnidata.xml sucht sich die Sprite_id in der items_base und nimmt dies als Referenzwert.
Wenn du dir am Anfang noch nicht sicher bist, ist es nicht verkehrt in jeder Spalte die gleiche Id zu benutzen!
Achtung! Achtet auf die furnitypes in der furnidata.xml!
Hier lag letztendlich bei mir der Knochen vergraben. Ich hatte schlichtweg die furnitypes in der furnidata.xml übersehen. Es gibt zwei furnitypes: roomitemtype und wallitemtype. Achtet darauf, dass euer Möbel in der entsprechenden furnitype platziert ist. Eine Eismaschine gehört zu roomitemtype!
Ich wünsche viel vergnügen