Project1

标题: 关于保存和读取事件名的问题 [打印本页]

作者: 木许许    时间: 2012-9-13 10:40
标题: 关于保存和读取事件名的问题
本帖最后由 木许许 于 2012-9-13 10:42 编辑

我在游戏中需要经常改动事件名,在Game_event 下添加了 attr_accessor   :name   但是在游戏中保存读取后有时候改过的事件名会恢复以前地图的设置,我希望在保存时把当前地图所有的事件名记录在存档里,然后可以从存档里读到改动过的事件名
作者: 亿万星辰    时间: 2012-9-13 10:57
其实你可以在Game_System里新建一个变量,以类似[地图编号, 事件ID,名字]的格式存储一下,只需要在读档后依次把这个变量里的东西取出来给对应的事件换一下名字就好了。
作者: 木许许    时间: 2012-9-13 11:22
亿万星辰 发表于 2012-9-13 10:57
其实你可以在Game_System里新建一个变量,以类似[地图编号, 事件ID,名字]的格式存储一下,只需要在读档后依 ...

请教具体怎么写啊?我只需要给每张地图的11号事件改名字
作者: hys111111    时间: 2012-9-13 13:19
注意:
name先不用定义


可以先插入这个脚本

  1. class Game_System
  2.   attr_reader :map_event_name
  3.   alias hys_remember_initialize initialize
  4.   def initialize
  5.     hys_remember_initialize
  6.     @map_event_name = {}
  7.   end
  8.   def event_change_name(event_id,name)
  9.     if @map_event_name[@map_id] == nil
  10.       @map_event_name[@map_id] = {}
  11.     end
  12.     @map_event_name[$game_map.map_id][event_id] = name
  13.     $game_map.events[event_id].event_change_name(name)
  14.   end
  15. end
  16. class Game_Event < Game_Character
  17.   def event_change_name(name)
  18.     @event.name = name
  19.   end
  20. end
  21. class Game_Map
  22.   alias hys_setup_return_name setup
  23.   def setup(map_id)
  24.     hys_setup_return_name(map_id)
  25.     if $game_system.map_event_name[@map_id] != nil
  26.       for i in $game_system.map_event_name[@map_id].keys
  27.         if $game_system.map_event_name[@map_id][i] != nil
  28.           name = $game_system.map_event_name[@map_id][i]
  29.           $game_system.event_change_name(i,name)
  30.         end
  31.       end
  32.     end
  33.   end
  34. end
复制代码
使用方法:在事件中改名时使用$game_system.event_change_name(事件ID,"名称")

利用读档和转换地图都要setup地图的特性,一举两得。
作者: 木许许    时间: 2012-9-24 23:13
hys111111 发表于 2012-9-13 13:19
注意:
name先不用定义


我新开一工程在1号事件里写下脚本:$game_system.event_change_name(1,"新名字")

一执行事件就出错了





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