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

Project1

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

迭代所有事件指令

[复制链接]

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2015-2-7 20:20:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
在对游戏做全局修改或查找的时候可能会用到。注意备份。

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ● 迭代整个游戏的每个事件指令,并保存所做的修改。
  3. #--------------------------------------------------------------------------
  4.  
  5. module Taroxd
  6.   module LoadAndSaveEventCommand
  7.  
  8.     module_function
  9.  
  10.     # 迭代所有地图事件的事件指令
  11.     def of_map(&block)
  12.       return to_enum(__method__) unless block
  13.       load_data('Data/MapInfos.rvdata2').each_key do |map_id|
  14.         load_and_save(sprintf('Data/Map%03d.rvdata2', map_id)) do |map|
  15.           map.events.each_value do |event|
  16.             event.pages.flat_map(&:list).each(&block)
  17.           end
  18.         end
  19.       end
  20.     end
  21.  
  22.     # 迭代所有公共事件的事件指令
  23.     def of_common_event(&block)
  24.       return to_enum(__method__) unless block
  25.       load_and_save('Data/CommonEvents.rvdata2') do |events|
  26.         events.each { |event| event.list.each(&block) if event }
  27.       end
  28.     end
  29.  
  30.     # 迭代所有敌群事件的事件指令
  31.     def of_troop(&block)
  32.       return to_enum(__method__) unless block
  33.       load_and_save('Data/Troops.rvdata2') do |troops|
  34.         troops.each do |troop|
  35.           troop.pages.flat_map(&:list).each(&block) if troop
  36.         end
  37.       end
  38.     end
  39.  
  40.     # 迭代上述所有事件指令
  41.     def all(&block)
  42.       return to_enum(__method__) unless block
  43.       of_map(&block)
  44.       of_common_event(&block)
  45.       of_troop(&block)
  46.     end
  47.  
  48.     # 读取文件,执行 block 并保存到原来的文件
  49.     def load_and_save(filename, &block)
  50.       save_data(load_data(filename).tap(&block), filename)
  51.     end
  52.   end
  53. end
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-22 17:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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