设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 幻耶
打印 上一主题 下一主题

[已经解决] 能否实现每次进游戏让改过的事件名的复原

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
11
发表于 2009-11-7 15:19:28 | 只看该作者
本帖最后由 secondsen 于 2009-11-7 15:20 编辑

class Game_Map
  def reset
    @events.clear
    for i in @map.events.keys
      @events = Game_Event.new(@map_id, @map.events)
    end
  end
end

。。。。

还有  Scene_Load  83行
也就是
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
下面插入
    $game_map.reset
没做么。。就是按照以前的改。。。

另外为什么你也是 改EV001的名字变成111。。。难道咱们俩心有灵犀?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
12
发表于 2009-11-7 15:22:21 | 只看该作者
为什么你也是改EV001的名字变成111,难道咱俩心有灵犀?

Scene_Load 83行
就是
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
下面插入
    $game_map.reset

还有这脚本
  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
复制代码
就是和以前一样的改动
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
13
 楼主| 发表于 2009-11-7 15:24:50 | 只看该作者
多谢!!能不能限定某些地图的某些事件还原啊?比如只让1~20号地图里面的1~20号事件的名字和位置还原
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
14
发表于 2009-11-7 15:29:36 | 只看该作者
本帖最后由 secondsen 于 2009-11-7 15:32 编辑

1~20号
  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]) if i>0 && i < 21
  6.     end
  7.   end
  8. end
复制代码
if i>0 && i < 21就加了这个东西。。。

另外。。。name是载入的时候自动变回去的。。。。如要还原不了需要
save_data()把你的数据改掉。。。如果你的游戏要打包加密的话,我也不知道会出现什么情况。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
15
 楼主| 发表于 2009-11-7 15:29:56 | 只看该作者
本帖最后由 幻耶 于 2009-11-7 15:31 编辑

下面两段放一起插在MAIN上面吗?还有在 Scene_Load  83行下面加了$game_map.reset

我保存之后再读取就出错了!缺省的工程啊~~没冲突的。。

class Game_Event < Game_Character
  attr_accessor :name
  alias old_refresh refresh
  def refresh
    @name = @event.name
    old_refresh
  end
end


  # 添加
    def reset
    @events.clear
    for i in @map.events.keys
      @events = Game_Event.new(@map_id, @map.events)
    end
  end

11.JPG (10.99 KB, 下载次数: 2)

11.JPG
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
16
发表于 2009-11-7 15:34:13 | 只看该作者
@events[i] = Game_Event.new(@map_id, @map.events[i]) if i>0 && i < 21


而不是

@events = Game_Event.new(@map_id, @map.events)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
17
发表于 2009-11-7 15:35:34 | 只看该作者
注意。。你少了 [i]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
18
 楼主| 发表于 2009-11-7 15:37:00 | 只看该作者
谢谢!我其实是把敌人的HP放到事件名里了,所以砍敌人的时候就改名字,读档的时候想还原,再次谢谢!
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
19
发表于 2009-11-7 15:38:58 | 只看该作者
本帖最后由 secondsen 于 2009-11-7 15:46 编辑

不用谢,举手之劳而已

那啥。。。认可答案。。。我攒积分中。。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
20
 楼主| 发表于 2009-11-13 08:32:19 | 只看该作者
1~20号class Game_Map
  def reset
    @events.clear
    for i in @map.events.keys
      @events = Game_Event.new(@map_id, @map.events) if i>0 && i < 21
    end
  end
endif i>0 && i < 21就加了这个东西。 ...
secondsen 发表于 2009-11-7 15:29



我加了if i>0 && i < 21,但是存盘退出再读取进游戏发现20号以上的事件都消失了!
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-28 03:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表