设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3128|回复: 1
打印 上一主题 下一主题

[已经解决] 运行时更改地图图块的脚本求修改

[复制链接]

Lv1.梦旅人

梦石
0
星屑
94
在线时间
648 小时
注册时间
2009-2-3
帖子
238
跳转到指定楼层
1
发表于 2013-9-5 22:03:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1星屑
这个脚本是把更改后的数据存在存档中的 可否更改后直接更改Map文件 而不需要存档?
使用方法:事件脚本中 $game_map.hzhj(384)
384为第一个图块


RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_System
  3. #==============================================================================
  4.  
  5. class Game_System
  6.   attr_accessor :hzhj_map
  7.   alias hzhj_sys_ini initialize
  8.   def initialize
  9.     @hzhj_map = {}
  10.     hzhj_sys_ini
  11.   end
  12. end
  13.  
  14.  
  15. #==============================================================================
  16. # ■ Game_Map
  17. #==============================================================================
  18.  
  19. class Game_Map
  20.   alias hzhj_setup_map setup
  21.   def setup(map_id)
  22.     hzhj_setup_map(map_id)
  23.     if $game_system.hzhj_map[@map_id] != nil
  24.       for a in $game_system.hzhj_map[@map_id]
  25.         @map.data[a[0],a[1],a[2]] = a[3]
  26.       end
  27.     end
  28.   end
  29.  
  30.   def data=(new_data)
  31.     @map.data = new_data
  32.     return @map
  33.   end
  34.  
  35.   def hzhj(c, f = 0)
  36.     a = $game_player.x;b = $game_player.y
  37.     d = [];d.push(a);d.push(b);d.push(f)
  38.     d.push(c)
  39.     e = $game_map.map_id
  40.     if $game_system.hzhj_map[e] == nil
  41.       $game_system.hzhj_map[e] = []
  42.       $game_system.hzhj_map[e].push(d)
  43.     else
  44.       $game_system.hzhj_map[e].push(d)
  45.     end
  46.     $game_map.data[a,b,f] = c
  47.   end
  48. end
  49.  
  50. #==============================================================================
  51. # ■ Spriteset_Map
  52. #==============================================================================
  53. class Spriteset_Map
  54.   alias hzhj_spri_map_upd update
  55.   def update
  56.     if @tilemap.map_data != $game_map.data
  57.       @tilemap.map_data = $game_map.data
  58.     end
  59.     hzhj_spri_map_upd
  60.   end
  61. end

最佳答案

Lv3.寻梦者

梦石
0
星屑
3439
在线时间
3054 小时
注册时间
2011-11-17
帖子
980
2
发表于 2013-9-5 22:03:11 | 只看该作者
  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
复制代码

点评

48行  发表于 2013-9-6 00:35

评分

参与人数 1星屑 +84 收起 理由
弗雷德 + 84 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 21:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表