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

Project1

 找回密码
 注册会员
搜索

求关于保留事件位置脚本的问题

查看数: 2280 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-10-29 02:40

正文摘要:

虽然脚本已经找到了,但是一个房间进去后再出来就变成这样了 请问有没有只指定一个地图的事件或某一事件可以保存事件位置(支持读档) 目前的脚本 RUBY 代码复制class Game_Character&nbs ...

回复

yang1zhi 发表于 2016-10-29 12:23:18
  1. #==============================================================================
  2. # ■ Game_Event
  3. #------------------------------------------------------------------------------
  4. #  处理事件的类。拥有条件判断、事件页的切换、并行处理、执行事件等功能。
  5. #   在 Game_Map 类的内部使用。
  6. #==============================================================================

  7. class Game_Event < Game_Character
  8.   # 改为true将会变成保存被标记为不保存的事件
  9.   INVERSE_MARK = false
  10.   #--------------------------------------------------------------------------
  11.   # ● 是否储存位置
  12.   #--------------------------------------------------------------------------
  13.   def save_pos?
  14.     return true unless @list
  15.     return true if @list[0].code != 108
  16.     return (@list[0].parameters[0].include?("不保存事件位置") == INVERSE_MARK)
  17.   end
  18. end
  19. #==============================================================================
  20. # ■ Game_Map
  21. #------------------------------------------------------------------------------
  22. #  管理地图的类。拥有卷动地图以及判断通行度的功能。
  23. #   本类的实例请参考 $game_map 。
  24. #==============================================================================

  25. class Game_Map
  26.   #--------------------------------------------------------------------------
  27.   # ● 初始化对象
  28.   #--------------------------------------------------------------------------
  29.   alias save_event_pos_initialize initialize
  30.   def initialize
  31.     save_event_pos_initialize
  32.     @event_pos = {}
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 设置
  36.   #--------------------------------------------------------------------------
  37.   alias save_event_pos_setup setup
  38.   def setup(map_id)
  39.     save_event_pos
  40.     save_event_pos_setup(map_id)
  41.     load_event_pos
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 保存事件位置
  45.   #--------------------------------------------------------------------------
  46.   def save_event_pos
  47.     return if @map_id == 0
  48.     @event_pos[@map_id] ||= []
  49.     @events.each{|i,e|
  50.     if e.save_pos?
  51.       @event_pos[@map_id][i] = [e.x,e.y,e.direction]
  52.     else
  53.       @event_pos[@map_id][i] = nil
  54.     end
  55.     }
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 读取事件位置
  59.   #--------------------------------------------------------------------------
  60.   def load_event_pos
  61.     return if @map_id == 0
  62.     @event_pos[@map_id] ||= []
  63.     @events.each{|i,e|
  64.       next unless @event_pos[@map_id][i]
  65.       e.moveto(@event_pos[@map_id][i][0],@event_pos[@map_id][i][1])
  66.       e.direction = @event_pos[@map_id][i][2]
  67.     }
  68.   end
  69. end
复制代码

点评

应该是直接就能使用。在第一页执行内容里面注释“不保存事件位置”的事件不保存位置。  发表于 2016-10-29 19:58
额,问题是该怎么用?  发表于 2016-10-29 14:38

评分

参与人数 1星屑 +240 收起 理由
无忧谷主幻 + 240 认可答案

查看全部评分

yang1zhi 发表于 2016-10-30 20:12:35
无忧谷主幻 发表于 2016-10-30 17:00
我是这么设置的,结果…

需要把  attr_reader   :direction   
改成
  attr_accessor   :direction           
不过这样说是有安全隐患。
还有就是那个注释要放在第一个位置。

点评

建议层主深刻了解这几个方法之后再来讨论attr_accessor的问题。这里和破解没关系。  发表于 2016-10-31 09:32
attr_reader是表示只读, attr_accessor是表示可读可写,direction是面向  发表于 2016-10-30 21:52
不知道,可能指破解吧  发表于 2016-10-30 21:50
额,安全隐患是指?  发表于 2016-10-30 21:44
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-14 16:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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