Project1

标题: 【敌人掉落物扩张】 [打印本页]

作者: VIPArcher    时间: 2014-11-1 08:47
标题: 【敌人掉落物扩张】
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 敌人追加掉落物
  3. # By :VIPArcher
  4. #  -- 本脚本来自 https://rpg.blue 使用或转载请保留以上信息。
  5. #==============================================================================
  6. # 使用说明:
  7. #   在敌人的备注栏里备注<drops kind ID X%>
  8. #   其中 kind: i => 道具
  9. #              w => 武器
  10. #              a => 防具
  11. #          ID: 物品编号索引
  12. #           X:概率(就是概率 5 就是 5%
  13. #   例如<drops w 5 55%> 就是55%的概率获得5号武器
  14. #   注:备注多个掉落物品请记得换行,备注信息中的空格不要忘记了。
  15. #==============================================================================
  16. $VIPArcherScript ||= {};$VIPArcherScript[:expand_drop] = 20141101
  17. class RPG::Enemy < RPG::BaseItem
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取备注扩展掉落信息
  20.   #--------------------------------------------------------------------------
  21.   def get_extra_drop_item
  22.     expand_drop_item = []
  23.     self.note.split(/[\r\n]+/).each{ |line|
  24.       if line =~ /<drops((?:\s+\w+){3})%>/
  25.         expand_item = $1.lstrip.split(/\s+/)
  26.         expand_drop_item.push(expand_item)
  27.       end}
  28.     return expand_drop_item
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 生成扩展掉落物品实例
  32.   #--------------------------------------------------------------------------
  33.   def make_drop_item(drop_item)
  34.     return nil if drop_item == []
  35.     di = RPG::Enemy::DropItem.new
  36.     di.kind = ["","i","w","a"].index(drop_item[0])
  37.     di.data_id = drop_item[1].to_i
  38.     di.denominator = 100 / drop_item[2].to_f
  39.     return di
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 生成掉落物品信息数组
  43.   #--------------------------------------------------------------------------
  44.   alias extra_drop_items drop_items
  45.   def drop_items
  46.     items = extra_drop_items.clone
  47.     get_extra_drop_item.each{|item| items.push(make_drop_item(item)) if item}
  48.     return items
  49.   end
  50. end





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