Beim Spiel kb_mahjongg soll die Auswahl der Tilesets und Layouts nicht angezeigt werden, vielmehr ist nur ein Spiel möglich. Es müssen aber zwei Variablen gesetzt werden, nämlich die Tileset-ID und die Layout-ID. Da musste ich zu einem blöden Mittel zurückgreifen – das Pfuschen im Quellcode. In der Datei pi2/class.tx_kbmahjongg_pi1.php habe ich vor den ganzen Abfragen einfach folgendes eingefügt:
$this->layout_uid = intval($this->piVars[‚layout‘]);
$this->tileset_uid = intval($this->piVars[‚tileset‘]);
/* NEU */
$this->layout_uid = $this->conf[‚layout_uid‘];
$this->tileset_uid = $this->conf[‚tileset_uid‘];
/* bis hier */
$this->layouts = $this->funcs->getLayouts();
$this->tilesets= $this->funcs->getTilesets();
Jetzt muss man im Template-Setup die Variablen einfügen:
plugin.tx_kbgamemahjongg_pi2.layout_uid = 1
plugin.tx_kbgamemahjongg_pi2.tileset_uid = 1
Damit startet man mit dem Default-Tileset.
Nun soll ein neues Tileset und ein neues Layout dazukommen, ein möglichst einfaches. Dazu kopiere ich das Default-Tileset, füge es neu ein (neue ID z.B. 2) und benenne einige Sachen um, vor allem ändere ich die Datei, aus der das eingelesen wird. Das gleiche mache ich mit dem Layout.
Dann will ich ein einfaches Spiel machen, nur mit 60 Steinen anstatt mit 144. Dazu müssen im Layout und im Tileset Anpassungen vorgenommen werden. Zunächst bearbeite ich das Tileset: alles entfernt bis auf circle_1 bis circle_5, character_1 bis character_5 und bamboo_1 bis bamboo_5. Das sind insgesamt 60 Steine. Das Layout muss auch entsprechend angepasst werden, sonst wird das Spiel nicht gestartet. In der ersten Ebene liegen 8 x 5 Steine, dann mittig darauf ein Block aus 4 x 5 Steinen, das sind auch 60. Die Layoutdatei sieht wie folgt aus: 0 2 0, 0 4 0 bis 0 16 0, 2 2 0, 2 4 0 bis 2 16 0 etc. bis 8 16 0. Das ist die erste Ebene. In der zweiten stehen Zahlen 0 6 1, 0 8 1, 0 10 1, 0 12 1 etc. bis 8 12 1.
Die Dateien dann abspeichern und dem Layout und Tileset entsprechend neu zuweisen. Jetzt fehlt nur noch die TypoScript Konfiguration für das Spielfeld. Die einfachste Variante ist, die default Werte zu kopieren. Wenn Layout und Tileset beide z.B. easyLayout bzw. easyTileset heißen, dann reicht folgendes im Template:
plugin.tx_kbgamemahjongg_pi2.easyLayout < plugin.tx_kbgamemahjongg_pi2.default
plugin.tx_kbgamemahjongg_pi2.easyLayout.easyTileset < plugin.tx_kbgamemahjongg_pi2.default.default
Neueste Kommentare