Project1

标题: 怎么让地图上的事件重进游戏后恢复原样? [打印本页]

作者: 幻耶    时间: 2009-11-5 09:39
标题: 怎么让地图上的事件重进游戏后恢复原样?
本帖最后由 幻耶 于 2009-11-5 09:40 编辑

做ARPG,地图上有一些敌人事件随机行走,当游戏进行到一定程度保存退出,我希望:再次读取这个进度的时候敌人事件都回到最初的坐标,而不是退出游戏时它们所在的坐标

这个效果貌似刷怪物吧。。。
作者: 精灵使者    时间: 2009-11-5 09:51
灵活的使用“暂时消除事件”
暂时消除事件——此事件页暂时中断,下次进入/重进地图以后再重新运行此事件页
作者: 幻耶    时间: 2009-11-5 10:07
本帖最后由 幻耶 于 2009-11-5 10:16 编辑

暂时消除事件的话,不退出游戏的情况下反复进地图就可以刷了吧?如果我希望反复进地图不可以刷怪,只在退出游戏重新读取的时候重新运行此事件页呢?
作者: secondsen    时间: 2009-11-5 11:11
本帖最后由 secondsen 于 2009-11-5 11:12 编辑

  1. class Game_Map
  2.   def reset
  3.     @events.clear
  4.     for i in @map.events.keys
  5.       @events[i] = Game_Event.new(@map_id, @map.events[i])
  6.     end
  7.   end
  8. end
复制代码
Scene_Load 81行

    $game_map           = Marshal.load(file)
后面插入
    $game_map.reset

原理。生成精灵前重置事件。。。我选的是读档的时候
作者: 独行侠    时间: 2009-11-5 11:13
那你就得用开关控制了,而且要修改脚本。不使用暂时消除事件,在你的怪物事件新建事件页以打开XX开关为控制条件,copy你原来的怪物事件过去。然后在Scene_Load中的def initialize里面加上打开XX开关。这样读取进度时就会直接打开这个开关从而让怪物事件重现。
作者: 幻耶    时间: 2009-11-5 11:53
class Game_Map
  def reset
    @events.clear
    for i in @map.events.keys
      @events = Game_Event.new(@map_id, @map.events)
    end
  end
endScene_Load 81行

    $game_map           = Marshal.loa ...
secondsen 发表于 2009-11-5 11:11



哦!那如果只是想50~100号地图中所有的1~20号事件恢复原位,其他的不用呢?




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