2in1: Mapexport und Tileset rearrangement
sodelle
hi
erstma alles ordnen
alsoo..
Was brauche ich?
Ein Exporterscript um eine Map als Textdatei zu erstellen + das dazugehörige Tileset zu verändern.
Was ist mit Tileset verändern/ NEUES Tileset gemeint?
Ich brauche meine Tilesets für eine andere Engine! Diese hat Probleme mit grafiken die länger als 4096 pixel sind.
Daher muss das Tileset einer map angepasst werden..
von 256*XXXX zu 4096*4096.
Dazu müssen die tiles quasi neu angeordnet werden.
Jetzt das wichtige!!
Ist das neue tileset voll, so soll ein weiteres erstellt werden!
Dieses soll im Dateiname das sufix '_b', '_c'..etc haben. Alle Tile_ids, eines jeden tilesets müssen mit 0 beginnen.
D.h. endet die ID auf einem Tileset mit 16383, und ein neues Set wird erstellt, so geht die ID normalerweise mit 16384 weiter - ABER, das soll sie nicht. Sie MUSS wieder mit 0 beginnen!
Autotiles...
Diese sollen separiert exportiert werden.
Jedes Autotile soll die IDs 0-47 haben.
So exportiert:
Grund dafür ist, dass ich mit der neuen Engine mehr als 7 Autoriles verwende und diese dazu noch anders aussehen als die vom rmxp.
Wie soll die Textdatei aussehen?
Der Inhalt des Mapblock sollte so aussehen:
tileset_name = Grafikdateiname
tile_id = die ID des Tilesets
tilelayer = die database werte 0-5
tilepos_x/y = die position des tiles auf dem jeweilig NEUEN Tileset, in Tiles (nicht pixel)
bools = die flags der database
Beispiel:
Dadurch das ich mehrere Tilesets pro map haben werde (durch den Umstand der beschränkten größe), muss der Dteiname des Tilesets für jedes Tile angegeben werden.
Der Dateiheader sollte alle Map Properties enthalten:
Der Tileset Dateiname ist dabei immer der ohne sufix!
Zu guter letzt sollen die Events exportiert werden. Allerdings nur so:
Dies hat den Grund, das ich anhand des Eventname alles neu schreibe und grafik..etc zuweisen will.
Der Gesamtaufbau der Textdatei soll dann so aussehen:
Ich hoffe das mir da jemand helfen kann
Bei Fragen bitte posten oder PN oder Skype oder ICQ
hi
erstma alles ordnen

alsoo..
Was brauche ich?
Ein Exporterscript um eine Map als Textdatei zu erstellen + das dazugehörige Tileset zu verändern.
Was ist mit Tileset verändern/ NEUES Tileset gemeint?
Ich brauche meine Tilesets für eine andere Engine! Diese hat Probleme mit grafiken die länger als 4096 pixel sind.
Daher muss das Tileset einer map angepasst werden..
von 256*XXXX zu 4096*4096.
Dazu müssen die tiles quasi neu angeordnet werden.
Jetzt das wichtige!!
Ist das neue tileset voll, so soll ein weiteres erstellt werden!
Dieses soll im Dateiname das sufix '_b', '_c'..etc haben. Alle Tile_ids, eines jeden tilesets müssen mit 0 beginnen.
D.h. endet die ID auf einem Tileset mit 16383, und ein neues Set wird erstellt, so geht die ID normalerweise mit 16384 weiter - ABER, das soll sie nicht. Sie MUSS wieder mit 0 beginnen!
Autotiles...
Diese sollen separiert exportiert werden.
Jedes Autotile soll die IDs 0-47 haben.
So exportiert:
|
|
Quellcode |
1 |
"Autotile Dateiname", Tile_ID |
Grund dafür ist, dass ich mit der neuen Engine mehr als 7 Autoriles verwende und diese dazu noch anders aussehen als die vom rmxp.
Wie soll die Textdatei aussehen?
Der Inhalt des Mapblock sollte so aussehen:
|
|
Quellcode |
1 |
"tileset_name", tile_id, tilelayer, tilepos_x, tilepos_y, terrain_tag, passierbarkeit_bool, Busch_bool, Theke_bool |
tileset_name = Grafikdateiname
tile_id = die ID des Tilesets
tilelayer = die database werte 0-5
tilepos_x/y = die position des tiles auf dem jeweilig NEUEN Tileset, in Tiles (nicht pixel)
bools = die flags der database
Beispiel:
|
|
Quellcode |
1 |
"Wood.png", 10, 3, 3, 1, 0, false, false, false, Wood_b.png", 6, 3, 7, 0, 7, true, false, false, ... |
Dadurch das ich mehrere Tilesets pro map haben werde (durch den Umstand der beschränkten größe), muss der Dteiname des Tilesets für jedes Tile angegeben werden.
Der Dateiheader sollte alle Map Properties enthalten:
|
|
Quellcode |
1 2 3 4 5 |
mapgröße X mapgröße Y Tileset Dateiname BGM Dateiname BGS Dateiname |
Der Tileset Dateiname ist dabei immer der ohne sufix!
Zu guter letzt sollen die Events exportiert werden. Allerdings nur so:
|
|
Quellcode |
1 2 3 4 5 6 |
Eventname Event_ID Mappos_x Mpappos_y paralell_process_bool autorun_bool |
Dies hat den Grund, das ich anhand des Eventname alles neu schreibe und grafik..etc zuweisen will.
Der Gesamtaufbau der Textdatei soll dann so aussehen:
|
|
Quellcode |
1 2 3 4 5 6 7 8 |
Header Mapblock Mapebene 1 Mapblock Mapebene 2 Mapblock Mapebene 3 Autotiles Mapebene 1 Autotiles Mapebene 2 Autotiles Mapebene 3 Events |
Ich hoffe das mir da jemand helfen kann

Bei Fragen bitte posten oder PN oder Skype oder ICQ
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chaosgod Espér« (2. November 2012, 09:26)
Ich brauche meine Tilesets für eine andere Engine! Diese hat Probleme mit grafiken die länger als 4096 pixel sind.
Daher muss das Tileset einer map angepasst werden..
von 256*XXXX zu 4096*4096.
Dazu müssen die tiles quasi neu angeordnet werden.
Was hat das mit dem Export zu tun, wie das Set aussehen soll? Jedes Tile hat eine ID, wie du mit der Umgehst, ist dir überlassen. Oder soll dieses als neue Grafik generiert werden? (=> Autotiles?)
tilelayer = die database werte 0-5
Du meinst diese Z-Achsen-Dinger?
tilepos_x/y = die position des tiles auf dem jeweilig NEUEN Tileset, in Tiles (nicht pixel)
Reicht da nicht eine Tile-ID? Wie du die Position berechnest, hast du ja vor 3 Tagen in nem andern Thread gelernt?
passierbarkeit_bool
Es gibt doch 3 Passierbarkeitswerte, oder verwechsel ich da was? Auch sind die Passierbarkeitsrichtungen relevant.
Der Tileset Dateiname ist dabei immer der ohne sufix!
Im Beispiel hast du die Datei-Endung mit drin, was also meinst du?
paralell_process_bool
autorun_bool
Im Maker wird das als ein Integer-Wert gehalten, da es immer nur eine sgleichzeitig sein kann. Ich würde vorschlagen, dies zu übernehmen.
Auch die Booleans würde ich als 1 / 0 übernehmen, da dies in der Datei selbst weniger Platz weg nimmt. Bedenke, dass das ganze alles in Strings gehandelt wird. Da ist eine 1 (Integer) weniger als ein "true".

-
Hallo
Tabs klicken unso, ne? -
Lyric
Meine schwarze Liste, beginnt mit einem Satz:
"Wer zuletzt lacht, lacht am besten!", und am Ende ist noch Platz.
Auf der Liste meiner Feinde, ist auch für euch noch Platz
Wer zuletzt lacht, lacht am besten!
Merkt euch diesen Satz!
Ode an die Feindschaft von Saltatio Mortis
-
Outtakes
-
Nummer 3
20.09.2012 - 19:46
"Yah, ich bin ihre Motivazin." "Motivazin - gibts das jetzt in der Apotheke rezeptflichtig?" -
Ich mag Kekse
-
Nummer 2
08.09.2012 - 01:29 Uhr
"Die Erlebnismacher zu Hannovre - Exlibre - ääääh... Excalibur"
*Lachflash* -
Nummer 1
07.09.2012 - 22:58 Uhr
*Bööarps* - Die Erlebnismacher zu Hannovre - Excalibur... "Mahlzeit... also... doch nicht Mahlzeit... war nur die Website"
"Ich hab gerülpst -.-" "Du hast was?" *LACHFLASH*
"Nicht dein Ernst, oder?" "DOCH!" *LACHFLASH second tour*
-
-
Profile

-
Ich
Dass bin ich:
Maker: RPG-XP, RPG-VX
Story:
Für andere mehr als für mich: 60%
Grafik:
Ich werde besser: 35%
Pixeln:
Ich stehe an den Anfängen: 7%
Mapping:
Es fehlen nur noch (alle) Feinheiten: 67%
Scripting:
Informatiker, mittlerweile auch andere Sachen am skripten: 93% -
Neues aus der SB
Neues aus der SB:
(03:41:36) Kagurame: n8 du
(03:41:37) Irrlicht: Nacht Mozilla
(03:41:47) MozillaBabybird: Kagu: der witz war flach
(03:42:01) Kagurame: welcher witz?
(03:42:14) Heatra: geh nicht benji
(03:42:21) Heatra: spiel lieber ats2
(03:42:25) MozillaBabybird: nacht leute ^^ ijemand sollte diesen verlauf im studio bash posten, damit die mal wissen wer die echten camper hier sind
(03:42:35) Kagurame: ich bin scripten
(03:42:3
MozillaBabybird: Heat: tut mir sorry xD
(03:42:40) Kagurame: ich mach das...^^
(03:42:4
MozillaBabybird: bis .... mittag ?
(03:42:49) Heatra: ^^
(03:42:55) MozillaBabybird: ja mittag dürfte passen
(03:42:56) MozillaBabybird:
(03:42:57) Kagurame: ^^
(03:43:02) Heatra: ich steh morgen eh erst um 5 uhr mittags auf
(03:43:07) Kagurame: bis heute
(03:43:11) Steve: MozillaBabybird verlässt den Chat.
(03:43:15) Kagurame: ich so um 3zum Lesen den Text mit der Maus markieren
(03:05:32) Ankou: bist du dir SICHER, dass es die Performance an der Stelle kritisch ist und c.a. 30% sind KEIN großer Unterschied?
(03:05:41) Ankou: oh
(03:05:45) Ankou: okay
(03:06:21) Asandril: Oh Ha was habt Ihr gerade für ein Thema?
(03:06:41) Ankou: das ist in der Tat eine performancekritische angelegenheit, aber ich denke dennoch nicht, dass das die Dinge sind auf die du dein Hauptaugenmerk richten solltest.
(03:07:01) Heatra: maschine
(03:07:01) Ankou: derartige Mikrooptimierungen werden Performanceprobleme sogut wie niemals beseitigen können
(03:07:01) Irrlicht: anhand der Tatsache dass es 20 000 000 Durchläufe waren nicht wirklich :-/
(03:07:0
Ankou: änder was konzeptionelles oder lass es bleiben.
(03:07:31) Ankou: evtl. kannst du mehr der Interpretation nach vorne verlagern
(03:08:06) Ankou: aber solche Dinge zu versuchen wie die case Abfragen durch send zu ersetzen in der Hoffnung ein paar Prozent einzusparen bringens dir nicht
(03:08:26) Asandril: Bin ich gerade hier in einem Kurs gelandet ..
(03:08:36) Irrlicht: hatte mal in Erwägung gezogen die Befehle evtl. schonmal etwas "vorzuinterpretieren", aber das dürfte dann mehr Speicher verbrauchen als es Geschwindigkeit bringt...
(03:09:11) Ankou: Asandril: ja, erstaunlich, angetrunken an Silvester über so etwas zu reden
(03:09:2
Heatra: -> lampenfieber
(03:09:40) Asandril: Kann ich nur beipflichten.
(03:09:46) Irrlicht: atm bin ich mir nicht sicher was genau den doch vergleichsweise erheblichen Lag von Parallel-Process-Events verursacht (oder ob es einfach an der gesammten Masse liegt) wenn ich bei 2 000 000 solcher Durchläufe unter einer Sek. bleibe...
(03:09:57) Ankou: Irrlicht: das ist durchaus üblich. Speicher gegen Geschwindigkeit einzustauschen ist sehr populär und bringt oft viel
(03:11:23) Irrlicht: mal schaun
zum Lesen den Text mit der Maus markieren
(03:32:35) (Kagurame_AnkündigungImForumMach): es da ne methode wie beim xp?
(03:32:4
Irrlicht: Cache.system("Iconset")
bekommst das Iconset
(03:32:50) (Kagurame_AnkündigungImForumMach): brauche es dringend, aber nix gefunden bisher
(03:33:01) (Kagurame_AnkündigungImForumMach): und dann per id?
(03:33:06) (Kagurame_AnkündigungImForumMach): drauf zugreifen?
(03:33:07) Irrlicht: Index berechnet sich einfach aus
x = index % 16
y = index / 16
(03:33:17) Irrlicht: afaik warens 16 nebeneinander^^
(03:33:2
(Kagurame_AnkündigungImForumMach): ok, danke.
(03:33:51) (Kagurame_AnkündigungImForumMach): ich glaub ich scripte dann noch ein bissl
(03:34:01) Steve: (Kagurame_AnkündigungImForumMach) heißt jetzt Kagurame.
(03:34:04) Irrlicht: im XP hast die einzelnen Icons anhand des Namens aus dem Icon-Ordner aufgerufen
(03:34:09) Steve: Kagurame ist nun Scripten!
(03:34:17) Irrlicht: (geht natürlich im VX auch, aber wozu gibts das Iconset)
(03:34:23) Kagurame: ja ich weis, daher war ich heut mittag verwirrtzum Lesen den Text mit der Maus markieren
das tileset soll als neue grafik/neue Grafiken generiert werden, die jeweils 4096*4096 groß sind.
Teilweise übersteigen meine Tilesets die 16384 Grenze. d.h. Das tile mit der ID 16384 würde nichtmehr auf die 4096*4096 Grafik passen. Daher muss nun eine weitere grafikdatei angelegt werden.
Im Beispiel Wood.png, würde die neue Datei nun ein sufix bekommen -> Wood_b.png
jede weitere grafikdatei erhält dann sufixe wie '_c', '_d'..etc
So, nun würde das Tile 16284 auf Wood_b.png geblittet. Allerdings darf es hier nichtmehr die ID 16384 haben, sondern 0. Die id 16385 wäre dann 1, 16386 wäre 2...etc
Die Werte 1-5 sind Jene, wo in der Database/Tileset als priority einestellt werden.
Bei der tilepos dachte ich mehr daran das es schneller geht des aus der datei zu lesen, als es erst berechnen zu lassen.
An die Direction passierbarkeit hab ich garnimmer gedacht...
ggf wäre dann
pass-up, pass-dn, pass-lt, pass-rt
als bool mit 1/0, und ein pass-all (auch 1/0), sodass ich pass-all zuerst abfrage um dann ggf die einzelrichtungen zu ignorieren.
ich meine das '_b', '_c'...
okay, dann autorun und passable als
startoption = int
0 = tastendruck
1 = event hit
2 = player hit
3 = paralell
4 = autorun
stimmt, ints sind besser
Teilweise übersteigen meine Tilesets die 16384 Grenze. d.h. Das tile mit der ID 16384 würde nichtmehr auf die 4096*4096 Grafik passen. Daher muss nun eine weitere grafikdatei angelegt werden.
Im Beispiel Wood.png, würde die neue Datei nun ein sufix bekommen -> Wood_b.png
jede weitere grafikdatei erhält dann sufixe wie '_c', '_d'..etc
So, nun würde das Tile 16284 auf Wood_b.png geblittet. Allerdings darf es hier nichtmehr die ID 16384 haben, sondern 0. Die id 16385 wäre dann 1, 16386 wäre 2...etc
Die Werte 1-5 sind Jene, wo in der Database/Tileset als priority einestellt werden.
Bei der tilepos dachte ich mehr daran das es schneller geht des aus der datei zu lesen, als es erst berechnen zu lassen.
An die Direction passierbarkeit hab ich garnimmer gedacht...
ggf wäre dann
pass-up, pass-dn, pass-lt, pass-rt
als bool mit 1/0, und ein pass-all (auch 1/0), sodass ich pass-all zuerst abfrage um dann ggf die einzelrichtungen zu ignorieren.
Zitat
Im Beispiel hast du die Datei-Endung mit drin, was also meinst du?
ich meine das '_b', '_c'...
okay, dann autorun und passable als
startoption = int
0 = tastendruck
1 = event hit
2 = player hit
3 = paralell
4 = autorun
stimmt, ints sind besser
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
Ähnliche Themen
-
Spieleentwicklung »-
[C#] Tile Position ermitteln
(31. Oktober 2012, 07:38)
-
Skript-Anfragen »-
Tile Priority und Passability ingame ändern
(4. Oktober 2012, 13:50)
-
Skript-Anfragen »-
Tile Priority und Passability ingame ändern
(4. Oktober 2012, 13:50)
-
Skript-Anfragen »-
Kopie einer Map auf einer 2. map.. ABER.. keine Events!
(1. Juli 2010, 22:57)
-
Skript-Anfragen »-
Skript das es schneien lässt wo der schnee auch liegenbleibt
(8. April 2010, 11:53)
