这个脚本是把更改后的数据存在存档中的 可否更改后直接更改Map文件 而不需要存档?
使用方法:事件脚本中 $game_map.hzhj(384)
384为第一个图块
#============================================================================== # ■ Game_System #============================================================================== class Game_System attr_accessor :hzhj_map alias hzhj_sys_ini initialize def initialize @hzhj_map = {} hzhj_sys_ini end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map alias hzhj_setup_map setup def setup(map_id) hzhj_setup_map(map_id) if $game_system.hzhj_map[@map_id] != nil for a in $game_system.hzhj_map[@map_id] @map.data[a[0],a[1],a[2]] = a[3] end end end def data=(new_data) @map.data = new_data return @map end def hzhj(c, f = 0) a = $game_player.x;b = $game_player.y d = [];d.push(a);d.push(b);d.push(f) d.push(c) e = $game_map.map_id if $game_system.hzhj_map[e] == nil $game_system.hzhj_map[e] = [] $game_system.hzhj_map[e].push(d) else $game_system.hzhj_map[e].push(d) end $game_map.data[a,b,f] = c end end #============================================================================== # ■ Spriteset_Map #============================================================================== class Spriteset_Map alias hzhj_spri_map_upd update def update if @tilemap.map_data != $game_map.data @tilemap.map_data = $game_map.data end hzhj_spri_map_upd end end
#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
attr_accessor :hzhj_map
alias hzhj_sys_ini initialize
def initialize
@hzhj_map = {}
hzhj_sys_ini
end
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
alias hzhj_setup_map setup
def setup(map_id)
hzhj_setup_map(map_id)
if $game_system.hzhj_map[@map_id] != nil
for a in $game_system.hzhj_map[@map_id]
@map.data[a[0],a[1],a[2]] = a[3]
end
end
end
def data=(new_data)
@map.data = new_data
return @map
end
def hzhj(c, f = 0)
a = $game_player.x;b = $game_player.y
d = [];d.push(a);d.push(b);d.push(f)
d.push(c)
e = $game_map.map_id
if $game_system.hzhj_map[e] == nil
$game_system.hzhj_map[e] = []
$game_system.hzhj_map[e].push(d)
else
$game_system.hzhj_map[e].push(d)
end
$game_map.data[a,b,f] = c
end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
alias hzhj_spri_map_upd update
def update
if @tilemap.map_data != $game_map.data
@tilemap.map_data = $game_map.data
end
hzhj_spri_map_upd
end
end
|