Project1

标题: 还是那个每次进游戏事件名复原的问题!! [打印本页]

作者: 幻耶    时间: 2009-11-9 12:01
标题: 还是那个每次进游戏事件名复原的问题!!
本帖最后由 幻耶 于 2009-11-9 12:33 编辑

效果是每次读存档进游戏让事件名复原。原帖:
http://rpg.blue/viewthread.php?t ... page%3D1&page=1


用了下面两个脚本插在MAIN上:游戏中用 $game_map.events[1].name="XXX" 给事件改名字,结果发现,只要在并行事件中用变量记录角色或事件的坐标(如下图),游戏中就改不了事件的名字,改了之后 p 事件名,发现还是老样子,只有删了那个并行事件才可以改事件名!这个怎么解决?
  1. class Game_Event < Game_Character
  2.   attr_accessor :name
  3.   alias old_refresh refresh
  4.   def refresh
  5.     @name = @event.name
  6.     old_refresh
  7.   end
  8. end


  9. class Game_Map
  10.   def reset
  11.     @events.clear
  12.     for i in @map.events.keys
  13.       @events[i] = Game_Event.new(@map_id, @map.events[i])
  14.     end
  15.   end
  16. end
复制代码

00.jpg (14.78 KB, 下载次数: 4)

00.jpg

作者: 幻耶    时间: 2009-11-9 16:08
附上工程吧,问题就是地图左下角那个记录角色坐标的并行事件,删了就可以对1号事件改名,留着就改不了,secondsen 在的话麻烦看一下

Project10.rar

192.43 KB, 下载次数: 71


作者: 幻耶    时间: 2009-11-10 09:08

作者: secondsen    时间: 2009-11-10 15:51
@name = @event.name

这一句  放到  Game_event 24行    @id = @event.id 的后面

attr_accessor :name
放到 14行   attr_reader   :starting                 # 启动中标志      
的后面
class Game_Event < Game_Character

  attr_accessor :name

  alias old_refresh refresh

  def refresh

    @name = @event.name

    old_refresh

  end

end

删掉,,不用了。。。我把这玩意放refresh里面太不安全了,指不定什么时候刷新就改掉了。。。OTZ
作者: 幻耶    时间: 2009-11-10 16:02
这整段都不要了吗?
  1. class Game_Event < Game_Character
  2.   attr_accessor :name
  3.   alias old_refresh refresh
  4.   def refresh
  5.     @name = @event.name
  6.     old_refresh
  7.   end
  8. end
复制代码

作者: secondsen    时间: 2009-11-10 16:37
是啊、。。。

@name = @event.name

这一句  放到  Game_event 24行    @id = @event.id 的后面

attr_accessor :name
放到 14行   attr_reader   :starting                 # 启动中标志      
的后面

代替那一段了
作者: 幻耶    时间: 2009-11-11 11:07
本帖最后由 幻耶 于 2009-11-11 12:07 编辑

最后问下,我用了66RPG非官方整合系统FUKI,用了这个脚本改名之后再进存档,事件名没有变回去,那个脚本其中有一句是下面这样的,是应该改动这里么?
  1. #===========================================================================
  2. # 便于返回姓名
  3. #===========================================================================
  4. class Game_Event < Game_Character
  5.   def name
  6.     return @event.name
  7.   end
  8.   def name=(na)
  9.     @event.name = na
  10.   end
  11. end
复制代码

作者: 幻耶    时间: 2009-11-12 08:54

作者: 幻耶    时间: 2009-11-15 19:58
顶~~
作者: 日月星辰    时间: 2009-11-21 15:01
没有关系。




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