Project1

标题: 无用产物,省成本开关 [打印本页]

作者: 英顺的马甲    时间: 2015-4-12 13:12
标题: 无用产物,省成本开关
先说明,这脚本没什么实际作用,硬要说有的话就只是在开关的部分减少存档的大小。
因此,新人可以回去了
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Game_Switches
  4. #------------------------------------------------------------------------------
  5. #  省成本的处理开关的类。
  6. #==============================================================================

  7. class Game_Switches
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     @data = []
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 获取开关
  16.   #--------------------------------------------------------------------------
  17.   def [](switch_id)
  18.     return (@data[switch_id / 8].to_i & (1 << (switch_id % 8)) != 0)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 设置开关
  22.   #--------------------------------------------------------------------------
  23.   def []=(switch_id, value)
  24.     return if switch_id > 5000
  25.     c = @data[switch_id / 8].to_i
  26.     c |= (1 << (switch_id % 8))
  27.     c ^= (1 << (switch_id % 8)) unless value
  28.     @data[switch_id / 8] = c
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 保存时
  32.   #--------------------------------------------------------------------------
  33.   def _dump(*args)
  34.     @data.map{|c|c.to_i}.pack('C*')
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 读取时
  38.   #--------------------------------------------------------------------------
  39.   def self._load(bin, *args)
  40.     a = new
  41.     a.instance_eval{@data = bin.unpack('C*')}
  42.     return a
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 兼容VA
  46.   #--------------------------------------------------------------------------
  47.   def on_change
  48.     $game_map.need_refresh = true
  49.   end
  50. end
复制代码
@晴兰 你最喜欢的bit操作




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