查看: 2673|回复: 3

[已经解决] 如何 获取当前地图的备注

[复制链接]
梦石
0
星屑
130
在线时间
11 小时
注册时间
2018-1-11
回帖
1
发表于 2018-5-21 17:56:45 | 显示全部楼层 |阅读模式

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

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

×
class Scene_ItemBase
  alias escape_use_item use_item
  def use_item
    escape_use_item
    use_escape_item if item.note.include?("<ESCAPE>")
  end
  def use_escape_item
    m = $game_variables[21]
    x = $game_variables[22]
    y = $game_variables[23]
    $game_player.reserve_transfer(m, x, y)
    SceneManager.goto(Scene_Map)
  end
end

class Game_BattlerBase
  alias escape_usable_item_conditions_met? usable_item_conditions_met?
  def usable_item_conditions_met?(item)
    if item.note.include?("<ESCAPE>") && $game_variables[21] == 0
      false
    else
      escape_usable_item_conditions_met?(item)
    end
  end
end
本人萌新,有点小想法,但却遇到点困难,上方代码是在做帮助文档里的实践篇里制作逃脱物品时的代码
红色部分是用于判断是否可以使用该物品的片段,我想加一段内容大概是 人物当前所在的地图的备份中存在<NO ESCAPE>
使得该片段需要判断 1.物品备注中存在<ESCAPE> 2.21号变量为0 3.人物当前所在的地图的备份中存在<NO ESCAPE>
若上述三者为真则道具为无法使用状态
求问:人物当前所在的地图的备份中存在<NO ESCAPE>应当如何实现

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2018-5-21 21:18:41 | 显示全部楼层
Game_Map类存储的就是当前地图的数据
参考其中的setup(map_id)方法可以知晓任一地图的数据读取方式
而其中的@map实例变量就是存储的RPG::Map地图数据类,其note属性就是地图的备注栏内容(字符串)
但这个实例变量并没有写外部读取接口
你在Game_Map类中添加
  1.   attr_reader   :map
复制代码

那么就能用 $game_map.map.note 获取到当前地图的备注栏了
回复 1 0

使用道具 举报

梦石
0
星屑
130
在线时间
11 小时
注册时间
2018-1-11
回帖
1
 楼主| 发表于 2018-5-23 22:08:08 | 显示全部楼层
百里_飞柳 发表于 2018-5-21 21:18
Game_Map类存储的就是当前地图的数据
参考其中的setup(map_id)方法可以知晓任一地图的数据读取方式
而其中 ...

    if item.note.include?("<ESCAPE>") && $game_variables[21] == 0 && $game_map.map.note == ("<NO ESCAPE>")
我这样写对吗

点评

$game_map.map.note.include?("<ESCAPE>")  发表于 2018-5-23 22:19
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部