Project1

标题: 如何 获取当前地图的备注 [打印本页]

作者: fhfshkkmk    时间: 2018-5-21 17:56
标题: 如何 获取当前地图的备注
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>应当如何实现

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

那么就能用 $game_map.map.note 获取到当前地图的备注栏了
作者: fhfshkkmk    时间: 2018-5-23 22: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>")
我这样写对吗




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