Нашел как-то на просторах инета скрипт возвращающий наш любимый мейкер XP очень полезную фишку из 2000/2003 мейкеров. А именно команду change tileset. Скрипт изменяет родные скрипты игры, так что я думаю делать демку смысла нет. Просто если не знать где копать, выдрать его оттуда будет практически невозможно. Так что привожу здесь его текст с комментариями по установке. Ну а там сами в свои проекты добавляйте при желании. Приступаем.
Для начала в редакторе скриптов выбираем класс Game_Map
Там после строк:
class Game_Map
#
вставляем
attr_accessor :new_tileset
Далее здесь же находим строку:
def setup(map_id) и строкой ниже пишем
Теперь листаем текст в самый низ, и после всех строк вставляем
def replace_tileset(new_tiles) # New Method
tileset = $data_tilesets[new_tiles]
@tileset_name = tileset.tileset_name
@autotile_names = tileset.autotile_names
@panorama_name = tileset.panorama_name
@panorama_hue = tileset.panorama_hue
@fog_name = tileset.fog_name
@fog_hue = tileset.fog_hue
@fog_opacity = tileset.fog_opacity
@fog_blend_type = tileset.fog_blend_type
@fog_zoom = tileset.fog_zoom
@fog_sx = tileset.fog_sx
@fog_sy = tileset.fog_sy
@battleback_name = tileset.battleback_name
@passages = tileset.passages
@priorities = tileset.priorities
@terrain_tags = tileset.terrain_tags
$game_map.new_tileset = true
end
Ну и наконец находим класс Spriteset_Map
и после строк
class Spriteset_Map
#
def update
сразу же вставляем следующие строки
if $game_map.new_tileset == true
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
@tilemap.priorities = $game_map.priorities
for i in 0..6
autotile_name = $game_map.autotile_names[i]
@tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
end
$game_map.new_tileset = false
end
Ну вот и все!!! Чтобы использовать данную фичу как обычно создаем ивент. Добавляем в него команду Script. В тексте скрипта пишем $game_map.replace_tileset(x). Где х - номер тайлсета в базе данных. Проверял лично работает на 100% ;D