查看: 1857|回复: 3

[已经过期] 问一个 有关地图 备注 显示的问题

[复制链接]
梦石
3
星屑
3410
在线时间
451 小时
注册时间
2015-9-20
回帖
168
发表于 2015-11-15 23:16:40 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 电车之熊 于 2015-11-15 23:17 编辑

我找了一个在场景中显示Hp、Mp条的脚本

[pre lang="ruby"]class Scene_Map < Scene_Base
#----------------------------------------------------------------------------
# * 重命名方法
#----------------------------------------------------------------------------
  alias sm_sta start
#----------------------------------------------------------------------------
# * 开始处理
#----------------------------------------------------------------------------
  def start
    sm_sta
   
    @owt = Window_MapStatus.new
  end
end
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
class Window_MapStatus < Window_Base

  def initialize
    super(0, 0, 273,144)
    self.opacity = 0
    refresh
  end
  #----------------------------------------------------------------------------
  # * 刷新画面
  #----------------------------------------------------------------------------
  def update
    super
    refresh if $refresh
    $refresh = false
  end
  #----------------------------------------------------------------------------
  # * 更新内容
  #----------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_hp($game_party.members[0], 60, 35, self.contents.width - 101)
    draw_actor_mp($game_party.members[0], 60, 95, self.contents.width - 101)
  end
end
#######################################################
class Game_Actor < Game_Battler
#----------------------------------------------------------------------------
# * 重命名方法
#----------------------------------------------------------------------------
  alias ms_refresh refresh
#--------------------------------------------------------------------------
# * 刷新
#---------------------------------------------------------------------
  def refresh
    ms_refresh
    $refresh = true
  end

end
[/pre]

但是我想在大地图中显示这条,在进入城镇地图中不显示Hp、Mp条,我希望在地图中加备注。
我照猫画虎将第12行该为
[pre lang="ruby"]@owt = Window_MapStatus.new if map.note.include?("<EEE>")[/pre]


想表达的意思是当地图标注<EEE>显示Hp、Mp条,结果

Snap3.jpg

我知道意思是没有定义map 。这种备注的方法是我按物品备注照猫画虎的,大家帮我看看怎么改。谢谢了

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-11-16 10:51:49 | 显示全部楼层
手动定义一个,要获取备注时直接 $game_map.note 即可
  1. class Game_Map
  2.   def note; @map.note; end
  3. end
  4. # $game_map.note
复制代码
另外,你的思路本身就是错误的,Scene_Map不会随着地图的切换发生改变
最简单的思路:在窗口的update中根据地图的备注修改窗口的 visible 还更有效一些

点评

昨天回复的时候就已经告诉你了,你一楼的思路本身就是错误的,你不把你现在的代码写出来你是打算让我看啥?  发表于 2015-11-17 21:55
喵大若有时时间给看看呗,没时间就刷了,呵呵呵  发表于 2015-11-17 20:59
谢谢喵大,改后不报错了,但从备注的地图到未备注的地图时,血条没有消失,我分析是换了地图后,没有刷新,我搞了半天木有搞定,喵大若有时  发表于 2015-11-17 20:58
回复

使用道具 举报

梦石
3
星屑
3410
在线时间
451 小时
注册时间
2015-9-20
回帖
168
 楼主| 发表于 2015-11-22 10:02:04 | 显示全部楼层
谢谢喵大了,之前没有看懂
我现在是
  1.   # * 刷新画面
  2.   #----------------------------------------------------------------------------
  3.   def update
  4.     super
  5.     refresh if $refresh
  6.     $refresh = false
  7.     @owt.visible = true  if $game_map.note.include?("<EEE>")
  8.   end
复制代码
Snap3.jpg

显示的是visible方法不能改,看来是我@owt.visible的写法不对吧。
呵呵
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-11-22 11:45:00 | 显示全部楼层
电车之熊 发表于 2015-11-22 10:02
谢谢喵大了,之前没有看懂
我现在是

你的代码有什么地方会让visible值为false吗
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部