查看: 1319|回复: 5

[已经解决] 怎么让地图上的事件重进游戏后恢复原样?

  [复制链接]
梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
发表于 2009-11-5 09:39:18 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 幻耶 于 2009-11-5 09:40 编辑

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

这个效果貌似刷怪物吧。。。
囡囚囨囚囨図囨囧

精灵族の天使<

梦石
0
星屑
1712
在线时间
3039 小时
注册时间
2007-3-16
回帖
33092

开拓者贵宾

发表于 2009-11-5 09:51:53 | 显示全部楼层
灵活的使用“暂时消除事件”
暂时消除事件——此事件页暂时中断,下次进入/重进地图以后再重新运行此事件页
回复

使用道具 举报

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
 楼主| 发表于 2009-11-5 10:07:03 | 显示全部楼层
本帖最后由 幻耶 于 2009-11-5 10:16 编辑

暂时消除事件的话,不退出游戏的情况下反复进地图就可以刷了吧?如果我希望反复进地图不可以刷怪,只在退出游戏重新读取的时候重新运行此事件页呢?
囡囚囨囚囨図囨囧
回复

使用道具 举报

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
回帖
864
发表于 2009-11-5 11:11:13 | 显示全部楼层
本帖最后由 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

原理。生成精灵前重置事件。。。我选的是读档的时候
回复

使用道具 举报

梦石
0
星屑
50
在线时间
6 小时
注册时间
2009-10-12
回帖
393
发表于 2009-11-5 11:13:22 | 显示全部楼层
那你就得用开关控制了,而且要修改脚本。不使用暂时消除事件,在你的怪物事件新建事件页以打开XX开关为控制条件,copy你原来的怪物事件过去。然后在Scene_Load中的def initialize里面加上打开XX开关。这样读取进度时就会直接打开这个开关从而让怪物事件重现。
对于犬而言,他生来就被赋予一个位置,一种使命,他从不为自己而活,而是为了那个位置和使命。
没有犬能够脱离族群、血统和社会的桎梏,因为那对他们而言从不是桎梏,而是生命的意义;不是夺去自由的铁圈,而是代表身份的铭牌。
我只想要个位置。任何位置。我只想要个工作。任何工作。
没人肯要我。
那些同情,爱,尊重,自由,放任,都比不过有人需要我。
回复

使用道具 举报

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
 楼主| 发表于 2009-11-5 11:53:13 | 显示全部楼层
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号事件恢复原位,其他的不用呢?
囡囚囨囚囨図囨囧
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部