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

Project1

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

[已经解决] 为什么我用那个小地图的脚本时,存档再读档就会错误啊?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
跳转到指定楼层
1
发表于 2011-8-29 07:36:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是从脚本库里找来的小地图脚本,要替换一堆自带脚本的那个……

点评

能不能把脚本贴出来  发表于 2011-8-29 08:50

Lv1.梦旅人

音速君

梦石
0
星屑
161
在线时间
1623 小时
注册时间
2011-6-9
帖子
3393

开拓者贵宾

2
发表于 2011-8-29 10:33:53 | 只看该作者
是这个吗?
  1. #===============================================================
  2. # ● [VX] ?迷你地图 ? □
  3. # * 无须图片的迷你地图脚本,浪使者倾情汉化 *
  4. #--------------------------------------------------------------
  5. # ? by Woratana [原作者]
  6. # ? 用于 RPG Maker VX  
  7. # ? 最近更新: 09/09/2008
  8. # ? 版本: 1.1 Beta
  9. #--------------------------------------------------------------
  10. # ? 特别感谢: KGC 的 XP 迷你地图脚本,
  11. # 没有他的迷你地图脚本,这个就不会被做出来.
  12. # 精灵使者更新:请在注释的第一行写入关键字,关键字可以在下面添加。
  13. #--------------------------------------------------------------

  14. module MiniMap
  15.   #===========================================================================
  16.   # [START]迷你地图脚本设置部分 地图名前+[NOMAP] 不显示
  17.   #---------------------------------------------------------------------------
  18.   SWITCH_NO_MINIMAP = 120 #  打开这个开关的话就不显示迷你地图
  19.    
  20.   MAP_RECT = [400, 20, 96, 96] # 迷你地图的大小和位置
  21.   # [X, Y, Width, Height]
  22.   # 你可以用调用脚本的方法任意改变他:
  23.   # $game_system.minimap = [X, Y, Width, Height]

  24.   MAP_Z = 0 # 迷你地图的Z轴
  25.   # 增加这个数值,如果迷你地图显示在某些物体下面的话(被覆盖)。

  26.   GRID_SIZE = 8 # 引导大小,建议数值大于3.
  27.   
  28.   MINIMAP_BORDER_COLOR = Color.new(0, 0, 0, 255) # 色彩设定
  29.   # Color.new(Red, Green, Blue, Opacity)
  30.   MINIMAP_BORDER_SIZE = 3
  31.   
  32.   FOREGROUND_COLOR = Color.new(255, 255, 255, 255) # 可通过物颜色
  33.   BACKGROUND_COLOR = Color.new(0, 0, 0, 100) # 不可通过物颜色

  34.   USE_OUTLINE_PLAYER = true # 是否描绘的角色?
  35.   PLAYER_OUTLINE_COLOR = Color.new(0, 0, 0, 255) # 角色颜色
  36.   USE_OUTLINE_EVENT = true # 是否描绘特殊事件?(如商人、敌人NPC等)
  37.   EVENT_OUTLINE_COLOR = Color.new(0, 0, 0, 255) # 特殊事件颜色
  38.   
  39.   PLAYER_COLOR = Color.new(0, 0, 255, 255) # 角色颜色设定
  40.   #---------------------------------------------------------------------------

  41.   OBJECT_COLOR = {} # 不要改变或删除这一行!
  42.   #===============================================================
  43.   # * 设置关键字和颜色
  44.   #---------------------------------------------------------------
  45.   # ** 例如:
  46.   # OBJECT_COLOR['keyword'] = Color.new(Red, Green, Blue, Opacity)
  47.   #-------------------------------------------------------------
  48.   # * 'keyword': 你想放到公共事件里来显示的颜色
  49.   # ** 标记: 'keyword' 是很关键的!
  50.   # * Color.new(...): 你需要的颜色
  51.   # 你可输入 0 - 255 的可选色彩范围 (Red, Green, Blue, Opacity)
  52.   #-------------------------------------------------------------
  53.   OBJECT_COLOR['npc'] = Color.new(0,255,255,255)
  54.   OBJECT_COLOR['treasure'] = Color.new(255,255,0,255)
  55.   OBJECT_COLOR['enemy'] = Color.new(255,0,0,255)
  56.   OBJECT_COLOR['merchant'] = Color.new(255,150,0,255)
  57.   OBJECT_COLOR['teleport'] = Color.new(255,0,255,255)
  58.   OBJECT_COLOR['rest'] = Color.new(0,255,0,255)
  59.   OBJECT_COLOR['door'] = Color.new(128,128,128,255)
  60.   #===========================================================================
  61.   # * [说明] 标签:
  62.   #---------------------------------------------------------------------------
  63.   # 改变这些关闭迷你地图 & 或设置显示迷你地图~
  64.   # TAG_EVENT的关键字和OBJECT_COLOR关键字要对应。
  65.   #-----------------------------------------------------------------------
  66.   TAG_NO_MINIMAP = '[NOMAP]'
  67.   TAG_EVENT = ["npc","enemy","treasure","merchant","teleport","rest"]
  68.   #---------------------------------------------------------------------------
  69.   # NPC 非主角控制人物 enemy敌人 treasure宝物 merchant商人 teleport传送 door门
  70.   # REST   休息
  71.   #---------------------------------------------------------------------------
  72.   # [END] 迷你地图脚本设置部分
  73.   #===========================================================================
  74.   
  75.   def self.refresh
  76.     if $scene.is_a?(Scene_Map)
  77.       $scene.spriteset.minimap.refresh
  78.     end
  79.   end
  80.   
  81.   def self.update_object
  82.     if $scene.is_a?(Scene_Map)
  83.       $scene.spriteset.minimap.update_object_list
  84.     end
  85.   end
  86. end

  87. #==============================================================================
  88. # ■ RPG::MapInfo
  89. #==============================================================================
  90. class RPG::MapInfo
  91.   def name
  92.     return @name.gsub(/\[.*\]/) { }
  93.   end

  94.   def original_name
  95.     return @name
  96.   end

  97.   def show_minimap?
  98.     return [email protected]?(MiniMap::TAG_NO_MINIMAP)
  99.   end
  100. end
  101. #==============================================================================
  102. # ■ Game_System
  103. #==============================================================================
  104. class Game_System
  105.   attr_accessor :minimap
  106.   alias wora_minimap_gamsys_ini initialize
  107.   
  108.   def initialize
  109.     wora_minimap_gamsys_ini
  110.     @minimap = MiniMap::MAP_RECT
  111.   end
  112.   
  113.   def show_minimap
  114.     return !$game_switches[MiniMap::SWITCH_NO_MINIMAP]
  115.   end
  116. end
  117. #==============================================================================
  118. # ■ Game_Map
  119. #==============================================================================
  120. class Game_Map
  121.   alias wora_minimap_gammap_setup setup
  122.   def setup(map_id)
  123.     wora_minimap_gammap_setup(map_id)
  124.     @db_info = load_data('Data/MapInfos.rvdata') if @db_info.nil?
  125.     @map_info = @db_info[map_id]
  126.   end
  127.   
  128.   def show_minimap?
  129.     return @map_info.show_minimap?
  130.   end
  131. end
  132. #==============================================================================
  133. # ■ Game_Event
  134. #==============================================================================
  135. class Game_Event < Game_Character
  136.   def mm_comment?(comment, return_comment = false )
  137.     if [email protected]?
  138.       for i in [email protected] - 1
  139.         next if @list[i].code != 108
  140.         if comment.include?(@list[i].parameters[0])
  141.           return @list[i].parameters[0] if return_comment
  142.           return true
  143.         end
  144.       end
  145.     end
  146.     return '' if return_comment
  147.     return false
  148.   end
  149. end

  150. #==============================================================================
  151. # ■ Game_MiniMap
  152. #------------------------------------------------------------------------------
  153. class Game_MiniMap
  154.   def initialize(tilemap)
  155.     @tilemap = tilemap
  156.     refresh
  157.   end

  158.   def dispose
  159.     @border.bitmap.dispose
  160.     @border.dispose
  161.     @map_sprite.bitmap.dispose
  162.     @map_sprite.dispose
  163.     @object_sprite.bitmap.dispose
  164.     @object_sprite.dispose
  165.     @position_sprite.bitmap.dispose
  166.     @position_sprite.dispose
  167.   end

  168.   def visible
  169.     return @map_sprite.visible
  170.   end

  171.   def visible=(value)
  172.     @map_sprite.visible = value
  173.     @object_sprite.visible = value
  174.     @position_sprite.visible = value
  175.     @border.visible = value
  176.   end

  177.   def refresh
  178.     @mmr = $game_system.minimap
  179.     map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
  180.     grid_size = [MiniMap::GRID_SIZE, 1].max

  181.     @x = 0
  182.     @y = 0
  183.     @size = [map_rect.width / grid_size, map_rect.height / grid_size]

  184.     @border = Sprite.new
  185.     @border.x = map_rect.x - MiniMap::MINIMAP_BORDER_SIZE
  186.     @border.y = map_rect.y - MiniMap::MINIMAP_BORDER_SIZE
  187.     b_width = map_rect.width + (MiniMap::MINIMAP_BORDER_SIZE * 2)
  188.     b_height = map_rect.height + (MiniMap::MINIMAP_BORDER_SIZE * 2)
  189.     @border.bitmap = Bitmap.new(b_width, b_height)
  190.     @border.bitmap.fill_rect(@border.bitmap.rect, MiniMap::MINIMAP_BORDER_COLOR)
  191.     @border.bitmap.clear_rect(MiniMap::MINIMAP_BORDER_SIZE, MiniMap::MINIMAP_BORDER_SIZE,
  192.     @border.bitmap.width - (MiniMap::MINIMAP_BORDER_SIZE * 2),
  193.     @border.bitmap.height - (MiniMap::MINIMAP_BORDER_SIZE * 2))
  194.    
  195.     @map_sprite = Sprite.new
  196.     @map_sprite.x = map_rect.x
  197.     @map_sprite.y = map_rect.y
  198.     @map_sprite.z = MiniMap::MAP_Z
  199.     bitmap_width = $game_map.width * grid_size + map_rect.width
  200.     bitmap_height = $game_map.height * grid_size + map_rect.height
  201.     @map_sprite.bitmap = Bitmap.new(bitmap_width, bitmap_height)
  202.     @map_sprite.src_rect = map_rect

  203.     @object_sprite = Sprite.new
  204.     @object_sprite.x = map_rect.x
  205.     @object_sprite.y = map_rect.y
  206.     @object_sprite.z = MiniMap::MAP_Z + 1
  207.     @object_sprite.bitmap = Bitmap.new(bitmap_width, bitmap_height)
  208.     @object_sprite.src_rect = map_rect

  209.     @position_sprite = Sprite_Base.new
  210.     @position_sprite.x = map_rect.x + @size[0] / 2 * grid_size
  211.     @position_sprite.y = map_rect.y + @size[1] / 2 * grid_size
  212.     @position_sprite.z = MiniMap::MAP_Z + 2
  213.    
  214.     bitmap = Bitmap.new(grid_size, grid_size)
  215.     # Player's Outline
  216.     if MiniMap::USE_OUTLINE_PLAYER and MiniMap::GRID_SIZE >= 3
  217.       bitmap.fill_rect(bitmap.rect, MiniMap::PLAYER_OUTLINE_COLOR)
  218.       brect = Rect.new(bitmap.rect.x + 1, bitmap.rect.y + 1, bitmap.rect.width - 2,
  219.         bitmap.rect.height - 2)
  220.       bitmap.clear_rect(brect)
  221.     else
  222.       brect = bitmap.rect
  223.     end
  224.    
  225.     bitmap.fill_rect(brect, MiniMap::PLAYER_COLOR)
  226.     @position_sprite.bitmap = bitmap

  227.     draw_map
  228.     update_object_list
  229.     draw_object
  230.     update_position
  231.   end

  232.   def draw_map
  233.     bitmap = @map_sprite.bitmap
  234.     bitmap.fill_rect(bitmap.rect, MiniMap::BACKGROUND_COLOR)
  235.     map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
  236.     grid_size = [MiniMap::GRID_SIZE, 1].max
  237.    
  238.     $game_map.width.times do |i|
  239.       $game_map.height.times do |j|
  240.         if !$game_map.passable?(i, j)
  241.           next
  242.         end
  243.         rect = Rect.new(map_rect.width / 2 + grid_size * i,
  244.           map_rect.height / 2 + grid_size * j,
  245.           grid_size, grid_size)
  246.         if grid_size >= 3
  247.           if !$game_map.passable?(i, j)
  248.             rect.height -= 1
  249.             rect.x += 1
  250.             rect.width -= 1
  251.             rect.width -= 1
  252.             rect.y += 1
  253.             rect.height -= 1
  254.           end
  255.         end
  256.         bitmap.fill_rect(rect, MiniMap::FOREGROUND_COLOR)
  257.       end
  258.     end
  259.   end

  260.     def update_object_list
  261.     @object_list = {}
  262.     $game_map.events.values.each do |e|
  263.       comment = e.mm_comment?(MiniMap::TAG_EVENT, true)
  264.       if comment != ''
  265.         #type = comment.gsub(/#{MiniMap::TAG_EVENT}/){}.gsub(/\s+/){}
  266.         type = comment
  267.         @object_list[type] = [] if @object_list[type].nil?
  268.         @object_list[type] << e
  269.       end
  270.     end
  271.   end

  272.   def draw_object
  273.     bitmap = @object_sprite.bitmap
  274.     bitmap.clear
  275.     map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
  276.     grid_size = [MiniMap::GRID_SIZE, 1].max
  277.     rect = Rect.new(0, 0, grid_size, grid_size)
  278.     mw = map_rect.width / 2
  279.     mh = map_rect.height / 2

  280.     @object_list.each do |key, events|
  281.       color = MiniMap::OBJECT_COLOR[key]
  282.       next if events.nil? or color.nil?
  283.       events.each do |obj|
  284.         #if !obj.character_name.empty?
  285.           rect.x = mw + obj.real_x * grid_size / 256
  286.           rect.y = mh + obj.real_y * grid_size / 256
  287.           # Event's Outline
  288.           if MiniMap::USE_OUTLINE_EVENT and MiniMap::GRID_SIZE >= 3
  289.             bitmap.fill_rect(rect, MiniMap::EVENT_OUTLINE_COLOR)
  290.             brect = Rect.new(rect.x + 1, rect.y + 1, rect.width - 2,
  291.             rect.height - 2)
  292.             bitmap.clear_rect(brect)
  293.           else
  294.             brect = bitmap.rect
  295.           end
  296.           bitmap.fill_rect(brect, color)
  297.         #end
  298.       end
  299.     end
  300.   end

  301.   def update
  302.     if @mmr != $game_system.minimap
  303.       dispose
  304.       refresh
  305.     end
  306.     update_object_list
  307.     draw_object
  308.     update_position
  309.     if @map_sprite.visible
  310.       @map_sprite.update
  311.       @object_sprite.update
  312.       @position_sprite.update
  313.     end
  314.   end

  315.   def update_position
  316.     map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
  317.     grid_size = [MiniMap::GRID_SIZE, 1].max
  318.     sx = $game_player.real_x * grid_size / 256
  319.     sy = $game_player.real_y * grid_size / 256
  320.     @map_sprite.src_rect.x = sx
  321.     @map_sprite.src_rect.y = sy
  322.     @object_sprite.src_rect.x = sx
  323.     @object_sprite.src_rect.y = sy
  324.   end
  325. end
  326. #==============================================================================
  327. # ■ Spriteset_Map
  328. #------------------------------------------------------------------------------
  329. class Spriteset_Map
  330.   attr_reader :minimap
  331.   alias wora_minimap_sprsetmap_ini initialize
  332.   alias wora_minimap_sprsetmap_dis dispose
  333.   alias wora_minimap_sprsetmap_upd update
  334.   
  335.   def initialize
  336.     wora_minimap_sprsetmap_ini
  337.     if $game_map.show_minimap?
  338.       @minimap = Game_MiniMap.new(@tilemap)
  339.       $game_system.show_minimap = true if $game_system.show_minimap.nil?
  340.       @minimap.visible = $game_system.show_minimap
  341.     end
  342.   end
  343.   
  344.   def dispose
  345.     @minimap.dispose if [email protected]?
  346.     wora_minimap_sprsetmap_dis
  347.   end

  348.   def update
  349.     if [email protected]?
  350.       if $game_system.show_minimap
  351.         @minimap.visible = true
  352.         @minimap.update_object_list
  353.         @minimap.update
  354.       else
  355.         @minimap.visible = false
  356.       end
  357.     end
  358.     wora_minimap_sprsetmap_upd
  359.   end
  360. end
  361. #==============================================================================
  362. # ■ Scene_Map
  363. #------------------------------------------------------------------------------
  364. class Scene_Map < Scene_Base
  365.   attr_reader :spriteset
  366. end
复制代码
不知道什么原因,反正新开一个就没事了。
Deartime
RMVA从零学起
【RMVA从零学起】【基础27课】数据库-系统
#2013年11月24日更新
偷懒了好久呢. .
于是最终还是决定暂时不写进阶教程了
先把这些基础的东西仔细说一下.w.
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
3
 楼主| 发表于 2011-8-29 11:15:38 | 只看该作者
Sonic1997 发表于 2011-8-29 10:33
是这个吗?不知道什么原因,反正新开一个就没事了。

不是……
http://rpg.blue/thread-72764-1-1.html的……迷宫探索系统
回复

使用道具 举报

Lv1.梦旅人

音速君

梦石
0
星屑
161
在线时间
1623 小时
注册时间
2011-6-9
帖子
3393

开拓者贵宾

4
发表于 2011-8-29 11:25:53 | 只看该作者
888000 发表于 2011-8-29 11:15
不是……
是http://rpg.blue/thread-72764-1-1.html的……迷宫探索系统

你已经把所有★的脚本放入游戏了吗?
Deartime
RMVA从零学起
【RMVA从零学起】【基础27课】数据库-系统
#2013年11月24日更新
偷懒了好久呢. .
于是最终还是决定暂时不写进阶教程了
先把这些基础的东西仔细说一下.w.
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
5
 楼主| 发表于 2011-8-29 12:05:51 | 只看该作者
Sonic1997 发表于 2011-8-29 11:25
你已经把所有★的脚本放入游戏了吗?

是的,而且就算是范例,也是读档再存档就错误


888000于2011-8-29 12:06补充以下内容:
然道是我rmvx版本太老?1.01的。
你们有没有问题啊?
回复

使用道具 举报

Lv1.梦旅人

音速君

梦石
0
星屑
161
在线时间
1623 小时
注册时间
2011-6-9
帖子
3393

开拓者贵宾

6
发表于 2011-8-29 14:45:07 | 只看该作者
我用的是1.00没问题,再说,范例里是可以读档的啊,我试过!
Deartime
RMVA从零学起
【RMVA从零学起】【基础27课】数据库-系统
#2013年11月24日更新
偷懒了好久呢. .
于是最终还是决定暂时不写进阶教程了
先把这些基础的东西仔细说一下.w.
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
7
 楼主| 发表于 2011-8-29 16:26:10 | 只看该作者
Sonic1997 发表于 2011-8-29 14:45
我用的是1.00没问题,再说,范例里是可以读档的啊,我试过!

是我rm有问题?
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1165
在线时间
274 小时
注册时间
2011-7-24
帖子
272
8
发表于 2011-8-29 16:43:31 | 只看该作者
6大的哪个有许多默认的脚本被改了还是有SF的吧6大的太麻烦
不过在传统RPG里有个小地图  不好╮(╯▽╰)╭
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 03:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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