Project1

标题: 【不是创意的创意】显示地图名和地图坐标加强 [打印本页]

作者: 精灵使者    时间: 2013-1-26 03:11
标题: 【不是创意的创意】显示地图名和地图坐标加强
本帖最后由 精灵使者 于 2013-9-8 00:30 编辑

作用:在右下角显示地图名和地图坐标。
XPver:适用于XP版本

  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  3. #==========================================================================
  4. module MAP_XY
  5.   WINDOW_XY = 1                   # XY坐标窗口开关
  6.   MAPNAME_COLOR =
  7.   Color.new(255, 255, 255)        # 地图名颜色,如果是其他颜色请指定
  8.   XYNAME_COLOR =
  9.   Color.new(192, 224, 255)        # XY名字的颜色,如果是其他颜色请指定
  10.   XYNUMBER_COLOR =
  11.   Color.new(255, 255, 255)        # XY数字的颜色,如果是其他颜色请指定
  12.   XY_OPACITY = 0                  # XY窗口的透明度,默认完全透明
  13.   XY_B_OPACITY = 0                # XY窗口背景的透明度,默认完全透明
  14.   XY_C_OPACITY = 255              # XY窗口内容的透明度,默认完全不透明
  15.   XYBACK_PNG = ""                 # XY背景图片文件名(注:背景图片会遮挡小地图)
  16.   XYBACK_OPATITY = 192            # XY背景透明度(建议透明,否则会完全盖住)
  17.   XY_WORD_X = "X:"                # 表示X坐标的用语
  18.   XY_WORD_Y = "Y:"                # 表示Y坐标的用语
  19. end
  20. #==============================================================================
  21. # ■ Window_XY
  22. #------------------------------------------------------------------------------
  23. #  显示坐标的窗口。
  24. #==============================================================================
  25. class Window_xy < Window_Base#注意前面那个window_xy是文件名
  26. #--------------------------------------------------------------------------
  27. # ● 初始化窗口
  28. #--------------------------------------------------------------------------
  29. def initialize
  30.    $mapnames = load_data("Data/MapInfos.rxdata") #读取地图名文件
  31.    super(0, 0, 224, 96)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  32.    self.contents = Bitmap.new(width - 32, height - 32)
  33.    self.back_opacity = MAP_XY::XY_B_OPACITY  # 这个是背景透明
  34.    self.opacity = MAP_XY::XY_OPACITY       # 这个是边框和背景都透明
  35.    self.contents.font.bold = true
  36.    self.contents_opacity = MAP_XY::XY_C_OPACITY       # 这个是内容透明
  37.    self.visible = false
  38.    @x = $game_player.x
  39.    @y = $game_player.y
  40.    @id = $game_map.map_id
  41.    refresh
  42. end

  43. #--------------------------------------------------------------------------
  44. # ● 刷新
  45. #--------------------------------------------------------------------------
  46. def refresh
  47.    if $game_switches[MAP_XY::WINDOW_XY] #确定开关是否打开,可以自己改变开关
  48.      @x = $game_player.x #获取角色X坐标
  49.      @y = $game_player.y #获取角色Y坐标
  50.      @id = $game_map.map_id  #获取地图编号
  51.     self.contents.clear #清除以前的东西
  52.     map_name = $mapnames[@id].name #获得地图名
  53.     self.contents.font.color = MAP_XY::MAPNAME_COLOR#颜色,这里是白色~
  54.     self.contents.draw_text(0, 0,175, 32, map_name,1)
  55.     self.contents.font.color = MAP_XY::XYNAME_COLOR #颜色,暗蓝色
  56.     self.contents.draw_text(0, 32, 175, 32, MAP_XY::XY_WORD_X)#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  57.     self.contents.font.color = MAP_XY::XYNUMBER_COLOR#颜色,这里是白色~
  58.     self.contents.draw_text(0, 32, 80, 32, @x.to_s,2)
  59.     self.contents.font.color = MAP_XY::XYNAME_COLOR #上面那个是X坐标的变量,可以自己更改变量名~
  60.     self.contents.draw_text(95, 32, 175, 32, MAP_XY::XY_WORD_Y)#显示Y这个字~
  61.     self.contents.font.color = MAP_XY::XYNUMBER_COLOR
  62.     self.contents.draw_text(0, 32, 175, 32, @y.to_s,2)
  63.    end
  64. end
  65. #--------------------------------------------------------------------------
  66. # ● 判断文字刷新。节约内存用
  67. #--------------------------------------------------------------------------
  68. def judge
  69.    return true if @x != $game_player.x
  70.    return true if @y != $game_player.y
  71.    return true if @id != $game_map.map_id
  72.    return false
  73. end
  74. end
  75. ###########################################################################
  76. #                           下面的东西不需要掌握~                         #
  77. ###########################################################################

  78. class Scene_Map
  79. alias xy_66rpg_main main
  80. def main
  81.    @xy_window = Window_xy.new
  82.    @xy_window.x = 640 - 16 - @xy_window.width
  83.    @xy_window.y = 480 - 16 - @xy_window.height
  84.    @xy_window.z = 2000
  85.    @xy_window.opacity = MAP_XY::XY_OPACITY
  86.    @back = Sprite.new
  87.    unless MAP_XY::XYBACK_PNG.empty?
  88.    @back.bitmap = Bitmap.new("Graphics/Pictures/"+MAP_XY::XYBACK_PNG)
  89.    @back.x = 640 - 16 - @back.bitmap.width
  90.    @back.y = 480 - 16 - @back.bitmap.height
  91.    @back.z = 1250
  92. end
  93.    @back.visible = @xy_window.visible
  94.    @back.opacity = MAP_XY::XYBACK_OPATITY
  95.    xy_66rpg_main
  96.    @xy_window.dispose
  97.    @back.dispose
  98. end
  99. #--------------------------------------------------------------------------
  100. # ● 刷新画面
  101. #--------------------------------------------------------------------------
  102. alias xy_66rpg_update update
  103. def update
  104.    xy_66rpg_update
  105.    if $game_switches[MAP_XY::WINDOW_XY]
  106.      @xy_window.visible = true
  107.      @back.visible = @xy_window.visible
  108.      @xy_window.refresh if @xy_window.judge
  109.    else
  110.      @xy_window.visible = false
  111.      @back.visible = @xy_window.visible
  112.    end
  113. end
  114. end
  115. #==========================================================================
  116. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  117. #==========================================================================
复制代码
VX ver:适用于VX版本

  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  3. #==========================================================================
  4. module MAP_XY
  5.   WINDOW_XY = 1                   # XY坐标窗口开关
  6.   MAPNAME_COLOR =
  7.   Color.new(255, 255, 255)        # 地图名颜色,如果是其他颜色请指定
  8.   XYNAME_COLOR =
  9.   Color.new(192, 224, 255)        # XY名字的颜色,如果是其他颜色请指定
  10.   XYNUMBER_COLOR =
  11.   Color.new(255, 255, 255)        # XY数字的颜色,如果是其他颜色请指定
  12.   XY_OPACITY = 0                  # XY窗口的透明度,默认完全不透明
  13.   XY_B_OPACITY = 0                # XY窗口背景的透明度,默认完全透明
  14.   XY_C_OPACITY = 255              # XY窗口内容的透明度,默认完全不透明
  15.   XYBACK_PNG = ""                 # XY背景图片文件名(注:背景图片会遮挡小地图)
  16.   XYBACK_OPATITY = 0           # XY背景透明度(建议透明,否则会完全盖住)
  17.   XY_WORD_X = "X:"                # 表示X坐标的用语
  18.   XY_WORD_Y = "Y:"                # 表示Y坐标的用语
  19. end
  20. #==============================================================================
  21. # ■ Window_XY
  22. #------------------------------------------------------------------------------
  23. #  显示坐标的窗口。
  24. #==============================================================================
  25. class Window_xy < Window_Base#注意前面那个window_xy是文件名
  26. #--------------------------------------------------------------------------
  27. # ● 初始化窗口
  28. #--------------------------------------------------------------------------
  29. def initialize
  30.    $mapnames = load_data("Data/MapInfos.rvdata") #读取地图名文件
  31.    super(0, 0, 224, 96)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  32.    self.contents = Bitmap.new(width - 32, height - 32)
  33.    self.back_opacity = MAP_XY::XY_B_OPACITY  # 这个是背景透明
  34.    self.opacity = MAP_XY::XY_OPACITY       # 这个是边框和背景都透明
  35.    self.contents.font.bold = true
  36.    self.contents_opacity = MAP_XY::XY_C_OPACITY       # 这个是内容透明
  37.    self.visible = false
  38.    @x = $game_player.x #获取角色X坐标
  39.    @y = $game_player.y #获取角色Y坐标
  40.    @id = $game_map.map_id  #获取地图编号
  41.    refresh
  42. end

  43. #--------------------------------------------------------------------------
  44. # ● 刷新
  45. #--------------------------------------------------------------------------
  46. def refresh
  47.    if $game_switches[MAP_XY::WINDOW_XY] #确定开关是否打开,可以自己改变开关
  48.      @x = $game_player.x #获取角色X坐标
  49.      @y = $game_player.y #获取角色Y坐标
  50.      @id = $game_map.map_id  #获取地图编号
  51.     self.contents.clear #清除以前的东西
  52.     map_name = $mapnames[@id].name #获得地图名
  53.     self.contents.font.color = MAP_XY::MAPNAME_COLOR#颜色,这里是白色~
  54.     self.contents.draw_text(0, 0,175, 32, map_name,1)
  55.     self.contents.font.color = MAP_XY::XYNAME_COLOR #颜色,暗蓝色
  56.     self.contents.draw_text(0, 32, 175, 32, MAP_XY::XY_WORD_X)#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  57.     self.contents.font.color = MAP_XY::XYNUMBER_COLOR#颜色,这里是白色~
  58.     self.contents.draw_text(0, 32, 80, 32, @x.to_s,2)
  59.     self.contents.font.color = MAP_XY::XYNAME_COLOR #上面那个是X坐标的变量,可以自己更改变量名~
  60.     self.contents.draw_text(95, 32, 175, 32, MAP_XY::XY_WORD_Y)#显示Y这个字~
  61.     self.contents.font.color = MAP_XY::XYNUMBER_COLOR
  62.     self.contents.draw_text(0, 32, 175, 32, @y.to_s,2)
  63.    end
  64. end
  65. #--------------------------------------------------------------------------
  66. # ● 判断文字刷新。节约内存用
  67. #--------------------------------------------------------------------------
  68. def judge
  69.    return true if @x != $game_player.x
  70.    return true if @y != $game_player.y
  71.    return true if @id != $game_map.map_id
  72.    return false
  73. end
  74. end
  75. ###########################################################################
  76. #                           下面的东西不需要掌握~                         #
  77. ###########################################################################

  78. class Scene_Map
  79. alias xy_66rpg_start start
  80. def start
  81.    xy_66rpg_start
  82.    @xy_window = Window_xy.new
  83.    @xy_window.x = 544 - 16 - @xy_window.width
  84.    @xy_window.y = 416 - 16 - @xy_window.height
  85.    @xy_window.z = 2000
  86.    @xy_window.opacity = MAP_XY::XY_OPACITY
  87.    @back = Sprite.new
  88.   unless MAP_XY::XYBACK_PNG.empty?
  89.    @back.bitmap = Bitmap.new("Graphics/Pictures/"+MAP_XY::XYBACK_PNG)
  90.    @back.x = 544 - 16 - @back.bitmap.width
  91.    @back.y = 416 - 16 - @back.bitmap.height
  92.    @back.z = 1250
  93.   end
  94.    @back.visible = @xy_window.visible
  95.    @back.opacity = MAP_XY::XYBACK_OPATITY
  96.   end
  97. alias xy_66rpg_terminate terminate
  98. def terminate
  99.    xy_66rpg_terminate
  100.    @xy_window.dispose
  101.    @back.dispose
  102. end
  103. #--------------------------------------------------------------------------
  104. # ● 刷新画面
  105. #--------------------------------------------------------------------------
  106. alias xy_66rpg_update update
  107. def update
  108.    xy_66rpg_update
  109.    if $game_switches[MAP_XY::WINDOW_XY]
  110.      @xy_window.visible = true
  111.      @back.visible = @xy_window.visible
  112.      if @xy_window.judge
  113.      @xy_window.refresh
  114.      end
  115.      @xy_window.update
  116.    else
  117.      @xy_window.visible = false
  118.      @back.visible = @xy_window.visible
  119.    end
  120. end
  121. end
  122. #==========================================================================
  123. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  124. #==========================================================================
复制代码
Ace ver:适用于ACE版本

  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  3. #==========================================================================
  4. module MAP_XY
  5.   WINDOW_XY = 1                   # XY坐标窗口开关
  6.   MAPNAME_COLOR =
  7.   Color.new(255, 255, 255)        # 地图名颜色,如果是其他颜色请指定
  8.   XYNAME_COLOR =
  9.   Color.new(192, 224, 255)        # XY名字的颜色,如果是其他颜色请指定
  10.   XYNUMBER_COLOR =
  11.   Color.new(255, 255, 255)        # XY数字的颜色,如果是其他颜色请指定
  12.   XY_OPACITY = 0                  # XY窗口的透明度,默认完全不透明
  13.   XY_B_OPACITY = 0                # XY窗口背景的透明度,默认完全透明
  14.   XY_C_OPACITY = 255              # XY窗口内容的透明度,默认完全不透明
  15.   XYBACK_PNG = ""                 # XY背景图片文件名(注:背景图片会遮挡小地图)
  16.   XYBACK_OPATITY = 0           # XY背景透明度(建议透明,否则会完全盖住)
  17.   XY_WORD_X = "X:"                # 表示X坐标的用语
  18.   XY_WORD_Y = "Y:"                # 表示Y坐标的用语
  19. end
  20. #==============================================================================
  21. # ■ Window_XY
  22. #------------------------------------------------------------------------------
  23. #  显示坐标的窗口。
  24. #==============================================================================
  25. class Window_xy < Window_Base#注意前面那个window_xy是文件名
  26. #--------------------------------------------------------------------------
  27. # ● 初始化窗口
  28. #--------------------------------------------------------------------------
  29. def initialize
  30.    $mapnames = load_data("Data/MapInfos.rvdata2") #读取地图名文件
  31.    super(0, 0, 224, 96)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  32.    self.contents = Bitmap.new(width - 32, height - 32)
  33.    self.back_opacity = MAP_XY::XY_B_OPACITY  # 这个是背景透明
  34.    self.opacity = MAP_XY::XY_OPACITY       # 这个是边框和背景都透明
  35.    self.contents.font.bold = true
  36.    self.contents_opacity = MAP_XY::XY_C_OPACITY       # 这个是内容透明
  37.    self.visible = false
  38.    @x = $game_player.x #获取角色X坐标
  39.    @y = $game_player.y #获取角色Y坐标
  40.    @id = $game_map.map_id  #获取地图编号
  41.    refresh
  42. end

  43. #--------------------------------------------------------------------------
  44. # ● 刷新
  45. #--------------------------------------------------------------------------
  46. def refresh
  47.    if $game_switches[MAP_XY::WINDOW_XY] #确定开关是否打开,可以自己改变开关
  48.      @x = $game_player.x #获取角色X坐标
  49.      @y = $game_player.y #获取角色Y坐标
  50.      @id = $game_map.map_id  #获取地图编号
  51.     self.contents.clear #清除以前的东西
  52.     map_name = $mapnames[@id].name #获得地图名
  53.     self.contents.font.color = MAP_XY::MAPNAME_COLOR#颜色,这里是白色~
  54.     name = map_name
  55.     cx = name.length * 7
  56.     ye = 130 - cx
  57.     if ye < 0
  58.      ye = 0
  59.     elsif ye > self.width - 5
  60.     ye = self.width - 5
  61.    end
  62.     self.contents.draw_text(ye, 0,cx, 32, map_name,0)
  63.     self.contents.font.color = MAP_XY::XYNAME_COLOR #颜色,暗蓝色
  64.     self.contents.draw_text(0, 32, 175, 32, MAP_XY::XY_WORD_X)#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  65.     self.contents.font.color = MAP_XY::XYNUMBER_COLOR#颜色,这里是白色~
  66.     self.contents.draw_text(0, 32, 80, 32, @x.to_s,2)
  67.     self.contents.font.color = MAP_XY::XYNAME_COLOR #上面那个是X坐标的变量,可以自己更改变量名~
  68.     self.contents.draw_text(95, 32, 175, 32, MAP_XY::XY_WORD_Y)#显示Y这个字~
  69.     self.contents.font.color = MAP_XY::XYNUMBER_COLOR
  70.     self.contents.draw_text(0, 32, 175, 32, @y.to_s,2)
  71.    end
  72. end
  73. #--------------------------------------------------------------------------
  74. # ● 判断文字刷新。节约内存用
  75. #--------------------------------------------------------------------------def judge
  76. def judge
  77.    return true if @x != $game_player.x
  78.    return true if @y != $game_player.y
  79.    return true if @id != $game_map.map_id
  80.    return false
  81. end
  82. end
  83. ###########################################################################
  84. #                           下面的东西不需要掌握~                         #
  85. ###########################################################################

  86. class Scene_Map
  87. alias xy_66rpg_start start
  88. def start
  89.    xy_66rpg_start
  90.    @xy_window = Window_xy.new
  91.    @xy_window.x = 544 - 16 -@xy_window.width
  92.    @xy_window.y = 416 - 16 -@xy_window.height
  93.    @xy_window.z = 2000
  94.    @xy_window.opacity = MAP_XY::XY_OPACITY
  95.    @back = Sprite.new
  96.   unless MAP_XY::XYBACK_PNG.empty?
  97.    @back.bitmap = Bitmap.new("Graphics/Pictures/"+MAP_XY::XYBACK_PNG)
  98.    @back.x = 544 - 16 - @back.bitmap.width
  99.    @back.y = 416 - 16 - @back.bitmap.height
  100.    @back.z = 1250
  101.   end
  102.    @back.visible = @xy_window.visible
  103.    @back.opacity = MAP_XY::XYBACK_OPATITY
  104.   end
  105. alias xy_66rpg_terminate terminate
  106. def terminate
  107.    xy_66rpg_terminate
  108.    @xy_window.dispose
  109.    @back.dispose
  110. end
  111. #--------------------------------------------------------------------------
  112. # ● 刷新画面
  113. #--------------------------------------------------------------------------
  114. alias xy_66rpg_update update
  115. def update
  116.    xy_66rpg_update
  117.    if $game_switches[MAP_XY::WINDOW_XY]
  118.      @xy_window.visible = true
  119.      @back.visible = @xy_window.visible
  120.      if @xy_window.judge
  121.      @xy_window.refresh
  122.      end
  123.      @xy_window.update
  124.    else
  125.      @xy_window.visible = false
  126.      @back.visible = @xy_window.visible
  127.    end
  128. end
  129. end
  130. #==========================================================================
  131. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  132. #==========================================================================
复制代码
更新版本:修正了VX和ACE的背景图的坐标错误,更新了前景窗口的坐标

效果图:

作者: 刺夜之枪    时间: 2013-1-26 03:17
本帖最后由 刺夜之枪 于 2013-1-25 14:18 编辑

咦~N版本通用,要是在美观点多好
作者: 黑化の鼠标    时间: 2013-1-26 07:55
果然地图名称还是用图片显示省事= -美观看个人,麻烦看个人......
不过XY坐标....话说用在RPG个人感觉不太合适的样子(纯个人观点)
作者: Mic_洛洛    时间: 2013-1-26 08:06
其实我是来吐槽这一句的
本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦

这个意思就是“你能加密,我也能解密,于是乎……”(大雾

作者: 明日不愁    时间: 2013-1-26 10:04
话说,这个XP能用吗?
作者: 哆啦008    时间: 2013-1-26 10:41
这个VX能用吗?
作者: 精灵使者    时间: 2013-1-26 12:02
恩,用我对应的VX版本
ACE也有
作者: 2012keke    时间: 2013-1-26 13:32
哇  这都西值得收藏
作者: 3366hhl    时间: 2013-1-26 15:59
我把脚本插入之后,测试游戏却没有效果,怎么弄
作者: 3366hhl    时间: 2013-1-28 21:38
3366hhl 发表于 2013-1-26 15:59
我把脚本插入之后,测试游戏却没有效果,怎么弄

你干脆用图片教我把
作者: jieisme    时间: 2013-8-23 16:25
想美化可以制作一个指南针呀{:2_275:}




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