Project1

标题: 运行时更改地图图块的脚本求修改 [打印本页]

作者: lanyaolove    时间: 2013-9-5 22:03
标题: 运行时更改地图图块的脚本求修改
这个脚本是把更改后的数据存在存档中的 可否更改后直接更改Map文件 而不需要存档?
使用方法:事件脚本中 $game_map.hzhj(384)
384为第一个图块


[pre lang="ruby" line="1"]#==============================================================================
# ■ 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
[/pre]
作者: yagami    时间: 2013-9-5 22:03
  1. #=============================================================================
  2. # ■ Game_System
  3. #=============================================================================

  4. class Game_System
  5.   attr_accessor :hzhj_map
  6.   alias hzhj_sys_ini initialize
  7.   def initialize
  8.     @hzhj_map = {}
  9.     hzhj_sys_ini
  10.   end
  11. end


  12. #==============================================================================
  13. # ■ Game_Map
  14. #==============================================================================

  15. class Game_Map
  16.   alias hzhj_setup_map setup
  17.   def setup(map_id)
  18.     hzhj_setup_map(map_id)
  19.     if $game_system.hzhj_map[@map_id] != nil
  20.       for a in $game_system.hzhj_map[@map_id]
  21.         @map.data[a[0],a[1],a[2]] = a[3]
  22.       end
  23.     end
  24.   end

  25.   def data=(new_data)
  26.     @map.data = new_data
  27.     return @map
  28.   end

  29.   def hzhj(c, f = 0)
  30.     a = $game_player.x;b = $game_player.y
  31.     d = [];d.push(a);d.push(b);d.push(f)
  32.     d.push(c)
  33.     e = $game_map.map_id
  34.     if $game_system.hzhj_map[e] == nil
  35.       $game_system.hzhj_map[e] = []
  36.       $game_system.hzhj_map[e].push(d)
  37.     else
  38.       $game_system.hzhj_map[e].push(d)
  39.     end
  40.     $game_map.data[a,b,f] = c
  41.     ############################添加##############
  42.     save_data(@map,sprintf("Data/Map%03d.rxdata", @map_id))
  43.     ##############################################
  44.    
  45.   end
  46. end

  47. #==============================================================================
  48. # ■ Spriteset_Map
  49. #==============================================================================
  50. class Spriteset_Map
  51.   alias hzhj_spri_map_upd update
  52.   def update
  53.     if @tilemap.map_data != $game_map.data
  54.       @tilemap.map_data = $game_map.data
  55.     end
  56.     hzhj_spri_map_upd
  57.   end
  58. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X5.0