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

Project1

 找回密码
 注册会员
搜索
查看: 1508|回复: 4
打印 上一主题 下一主题

[已经过期] 关于保存和读取事件名的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
跳转到指定楼层
1
发表于 2012-9-13 10:40:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 木许许 于 2012-9-13 10:42 编辑

我在游戏中需要经常改动事件名,在Game_event 下添加了 attr_accessor   :name   但是在游戏中保存读取后有时候改过的事件名会恢复以前地图的设置,我希望在保存时把当前地图所有的事件名记录在存档里,然后可以从存档里读到改动过的事件名

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2012-9-13 10:57:21 | 只看该作者
其实你可以在Game_System里新建一个变量,以类似[地图编号, 事件ID,名字]的格式存储一下,只需要在读档后依次把这个变量里的东西取出来给对应的事件换一下名字就好了。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
3
 楼主| 发表于 2012-9-13 11:22:39 | 只看该作者
亿万星辰 发表于 2012-9-13 10:57
其实你可以在Game_System里新建一个变量,以类似[地图编号, 事件ID,名字]的格式存储一下,只需要在读档后依 ...

请教具体怎么写啊?我只需要给每张地图的11号事件改名字
回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3195
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 2012-9-13 13:19:27 | 只看该作者
注意:
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地图的特性,一举两得。

评分

参与人数 1星屑 +60 收起 理由
hcm + 60 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
帖子
360
5
 楼主| 发表于 2012-9-24 23:13:13 | 只看该作者
hys111111 发表于 2012-9-13 13:19
注意:
name先不用定义


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

一执行事件就出错了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 07:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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