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

Project1

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

[讨论] 从XP移植到VA的显示地图坐标,能否取代RM默认显示地图名?

[复制链接]

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
跳转到指定楼层
1
发表于 2012-3-28 00:01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 eve592370698 于 2012-3-28 00:03 编辑

代码先拿出来给大家看看
  1. =begin  ===========================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  3. #===================================

  4. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  5. # 鉴定为古老脚本,作者不明。 By 絮语 2011.2
  6. # 改订 By 絮语 2011.4
  7. =end #=========================================================================

  8. XY_SWITCH = 28 # 当3号开关关闭,本脚本才开始工作。
  9. #BACK_PNG = RPG::Cache.system('游戏边框右下.png') #背景
  10. =begin   #============================================================
  11.   □ 交通工具添加一点内容不解释
  12. =end #===================================================
  13. class Game_Vehicle < Game_Character
  14.   # 预读交通工具所在的地图位置!
  15.   attr_reader   :map_id            
  16.   attr_reader   :name_display
  17. end
  18. #==============================================================================
  19. # ■ Window_XY
  20. #------------------------------------------------------------------------------
  21. #  显示坐标的窗口。
  22. #==============================================================================
  23. class Window_xy < Window_Base#注意前面那个window_xy是文件名   
  24.   #--------------------------------------------------------------------------
  25.   # ● 初始化窗口
  26.   #--------------------------------------------------------------------------
  27.   def initialize
  28. =begin ==============
  29. 其实说真的,真不愿意用在默认分辨率上,
  30. 因为VX这种可怜的分辨率,最好把分辨率扩展一下
  31. =end  #==============  
  32.     super(0, Graphics.height - 99, 820, 696)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  33.     self.contents = Bitmap.new(width - 32, height - 32)
  34.     self.back_opacity = 255  # 这个是背景透明
  35.     self.opacity = 255       # 这个是边框和背景都透明
  36.     self.contents_opacity = 255       # 这个是内容透明
  37.     self.visible = false
  38.     self.z = 1000
  39.     refresh
  40.     @x = $game_player.x
  41.     @y = $game_player.y
  42.     @id = $game_map.map_id
  43.   end
  44.   def main_color
  45.     return Color.new(-210, -210, -210, 255)
  46.   end
  47.   def main2_color
  48.     return Color.new(-180, -170, -170, 255)
  49.   end
  50.   def else_color
  51.     return Color.new(-140, -140, -140, 255)
  52.   end
  53.   #---------------------------------
  54.   def get_map_name
  55.     #这个是从XP移植过来的用法
  56.     $mapnames = load_data("Data/MapInfos.rvdata2") #读取地图名文件
  57.     #获取玩家所在地图的信息
  58.     @x = $game_player.x #获取角色X坐标
  59.     @y = $game_player.y #获取角色Y坐标
  60.     @id = $game_map.map_id  #获取地图编号
  61.       
  62.       
  63.       @player_map = load_data(sprintf("Data/Map%03d.rvdata2", @id))
  64.       #获得地图名
  65.       unless @player_map.display_name == nil
  66.         @for_player = @player_map.display_name
  67.       else
  68.         @for_player = $mapnames[@id].name  #←玩家角色所在地图
  69.       end
  70.       
  71.       
  72.     #获取飞船所在地图的信息  
  73.     @airship_x = $game_map.airship.x
  74.       @airship_y = $game_map.airship.y
  75.       @airship_map_id  = $game_map.airship.map_id
  76.       @airship_map = load_data(sprintf("Data/Map%03d.rvdata2", @airship_map_id))
  77.       if @airship_map.display_name == nil
  78.         @for_airship = $mapnames[@airship_map_id].name
  79.       else
  80.         @for_airship = @airship_map.display_name
  81.       end
  82.    
  83.   end
  84. =begin --------------------------------------------------------
  85. # ● 刷新
  86. =end #-----------------------------------------------------------
  87.   def refresh   
  88.     #确定开关是否打开,可以自己改变开关
  89.     unless $game_switches[XY_SWITCH]
  90.       
  91.       self.contents.clear #清除以前的东西
  92.       if @back != nil
  93.         if @back.visible
  94.           @back.dispose
  95.         end   
  96.       end
  97.       get_map_name
  98.       self.contents.font.size = 20
  99.       self.contents.font.color = text_color(0)#颜色
  100.       self.contents.draw_text(0, 0, 160, 32, @for_player)
  101.       self.contents.font.color = text_color(0)
  102.       self.contents.draw_text(10, 32, 120, 32, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  103.       self.contents.font.color = main2_color
  104.       self.contents.draw_text(10, 32, 52, 32, @x.to_s,2)
  105.       self.contents.font.color = text_color(0)#上面那个是X坐标的变量,可以自己更改变量名~
  106.       self.contents.draw_text(74, 32, 128, 32, "Y:")#显示Y这个字~
  107.       self.contents.font.color = main2_color
  108.       self.contents.draw_text(10, 32, 116, 32, @y.to_s,2)
  109.       #添加交通工具的坐标
  110.       self.contents.font.size = 20
  111.       self.contents.font.color = text_color(1)#颜色
  112.       self.contents.draw_text(100, 00, 160, 32, "飞船在:" +  @for_airship ,2)
  113.       self.contents.font.color = text_color(0)
  114.       self.contents.draw_text(140, 32, 120, 32, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  115.       self.contents.font.color = main2_color
  116.       self.contents.draw_text(140, 32, 52, 32, @airship_x.to_s,2)
  117.       #上面那个是X坐标的变量,可以自己更改变量名~
  118.       self.contents.font.color = text_color(0)
  119.       self.contents.draw_text(204, 32, 128, 32, "Y:")#显示Y这个字~
  120.       self.contents.font.color = main2_color
  121.       self.contents.draw_text(140, 32, 116, 32, @airship_y.to_s,2)
  122.       
  123.     end
  124.   end
  125. #--------------------------------------------------------------------------
  126. # ● 判断文字刷新。节约内存用
  127. #--------------------------------------------------------------------------
  128.   def judge
  129.     return true if @x != $game_player.x
  130.     return true if @y != $game_player.y
  131.     return true if @id != $game_map.map_id
  132.     return true if @airship_x != $game_map.airship.x
  133.     return true if @airship_y != $game_map.airship.y
  134.     return false
  135.   end
  136. end
  137. ###########################################################################
  138. #                           下面的东西不需要掌握~                         #
  139. ###########################################################################

  140. class Scene_Map
  141.   alias xy_66rpg_main main
  142.   def main
  143.     @xy_window = Window_xy.new
  144.     #原来这里是设置坐标的啊,不过下面两个是内容
  145.     #@xy_window.x = 800 - 190
  146.     #@xy_window.y = 600 - 96
  147.     @xy_window.opacity = 0
  148.     xy_66rpg_main
  149.     @xy_window.dispose
  150.   end
  151. #--------------------------------------------------------------------------
  152. # ● 刷新画面
  153. #--------------------------------------------------------------------------
  154.   alias xy_66rpg_update update
  155.   def update
  156.     xy_66rpg_update
  157.     unless $game_switches[XY_SWITCH]
  158.       @xy_window.visible = true
  159.       if @边框右下 != nil and @边框右下.visible
  160.           @边框右下.dispose
  161.         
  162.       end
  163.       if @边框左上 != nil and @边框左上.visible
  164.         @边框左上.dispose
  165.       end
  166.       @边框右下 = Sprite.new
  167.       @边框右下.x = 0 #- 256
  168.       @边框右下.y = 0
  169.       #@边框右下.bitmap = RPG::Cache.system('游戏边框.png')
  170.       @xy_window.refresh if @xy_window.judge
  171.     else
  172.       @xy_window.visible = false
  173.     end
  174.   end
  175. end
  176. #==========================================================================
  177. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  178. #==========================================================================
复制代码
可以识别VA特有的地图游戏中显示名称了,如果地图设置了VA专用的名称就显示,如果那里空白就显示通用的地图名称,效果凑合吧,自己把飞船的坐标和地图名称也加进来了,这样也方便玩家能快速找到自己的交通工具。小船和大船自己因为时间和精力有限暂时搁置。

但是,仔细想想,VA自己自带的切换地图短暂显示地图名称那个功能还是有限,怎么办呢?

结束时间: 2012-4-20 23:55 裁判: Fux2

正方观点 (1)

取代那个功能吧!毕竟出了这个脚本,RM默认的显示地图名称实在是有点鸡肋,而且正好这个脚本正好挺适合“启用/禁止显示地图名称”这个判定,省了自己单独设定开关。

反方观点 (2)

鸠占鹊巢,这可不行!毕竟VX那种默认的小分辨率,算上主角和3个交通工具根本没必要全用上,否则给人眼花缭乱的感觉,只要不同场合开启部分功能就可以了,毕竟RM开关多着呢,不能省事就一概而论。

辩手:0 ( 加入 )
     
    辩手:0 ( 加入 )
      潜水,专心忙活三次元工作了……

      Lv1.梦旅人

      派大星

      梦石
      0
      星屑
      195
      在线时间
      2133 小时
      注册时间
      2011-9-18
      帖子
      2652
      2
      发表于 2012-3-28 00:11:40 | 只看该作者
      保持中立,取不取代,它都存在,存在就有意义,具体用途按照自己需要的效果进行选择,有时显示地图名不一定重要,有时又很有必要,按需分配吧。
      回复

      使用道具 举报

      Lv6.析梦学徒

      Fuzzy Ginkgo
      Taciturn Knight

      梦石
      0
      星屑
      60700
      在线时间
      1933 小时
      注册时间
      2010-6-26
      帖子
      1605

      烫烫烫开拓者

      3
      发表于 2012-3-28 08:16:28 | 只看该作者
      那个事件开启就一直显示(用这个
      关闭就用原来的…
      如果都不要就连续两次执行事件关闭…
      我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
      Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
      捐赠 | GitHub
      回复

      使用道具 举报

      Lv4.逐梦者

      醉啸 长风万里

      梦石
      0
      星屑
      6057
      在线时间
      6586 小时
      注册时间
      2007-12-16
      帖子
      4501

      贵宾

      4
      发表于 2012-3-28 12:25:36 | 只看该作者
      都差不多嘛
      回复

      使用道具 举报

      Lv1.梦旅人

      Mr.Gandum

      梦石
      0
      星屑
      226
      在线时间
      2070 小时
      注册时间
      2007-1-31
      帖子
      3039

      贵宾

      5
      发表于 2012-3-28 13:24:12 | 只看该作者
      这就跟横板可不可以代替默认战斗似的,感觉没有讨论的意义= =
      回复

      使用道具 举报

      Lv3.寻梦者 (暗夜天使)

      精灵族の天使

      梦石
      0
      星屑
      1697
      在线时间
      3038 小时
      注册时间
      2007-3-16
      帖子
      33731

      开拓者贵宾

      6
      发表于 2012-4-9 09:50:53 | 只看该作者
      显示地图名和XY脚本里面有效率很低的地方,需要进行改进。
      回复

      使用道具 举报

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

      本版积分规则

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

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

      GMT+8, 2024-5-6 22:51

      Powered by Discuz! X3.1

      © 2001-2013 Comsenz Inc.

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