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

Project1

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

[已经解决] 掉落扩展寻用法

[复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2010-7-8 00:23:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
掉落扩展 那表达式怎么用【请给个例子以便效法】 用在哪【似乎不在备注里】 求教...
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ ドロップアイテム拡張 - KGC_ExtraDropItem ◆ VX ◆
  3. #_/    ◇ Last update : 2008/08/28 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  敵が落とすアイテムの種類を増やします。
  6. #_/============================================================================
  7. #_/ 【特殊システム】≪戦闘難易度≫ より上に導入してください。
  8. #_/ 【メニュー】≪モンスター図鑑≫ より下に導入してください。
  9. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  10. $imported = {} if $imported == nil
  11. $imported["ExtraDropItem"] = true

  12. module KGC
  13. module ExtraDropItem
  14.   # 正規表現
  15.   module Regexp
  16.     # エネミー
  17.     module Enemy
  18.       # ドロップアイテム
  19.       DROP_ITEM = /<(?:DROP|ドロップ)\s*([IWA]):(\d+)\s+(\d+)([%%])?>/i
  20.     end
  21.   end
  22. end
  23. end

  24. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  25. #==============================================================================
  26. # ■ RPG::Enemy
  27. #==============================================================================

  28. class RPG::Enemy
  29.   #--------------------------------------------------------------------------
  30.   # ○ ドロップアイテム拡張のキャッシュ生成
  31.   #--------------------------------------------------------------------------
  32.   def create_extra_drop_item_cache
  33.     @__extra_drop_items = []

  34.     self.note.each_line { |line|
  35.       case line
  36.       when KGC::ExtraDropItem::Regexp::Enemy::DROP_ITEM
  37.         # ドロップアイテム
  38.         item = RPG::Enemy::DropItem.new
  39.         case $1.upcase
  40.         when "I"  # アイテム
  41.           item.kind = 1
  42.           item.item_id = $2.to_i
  43.         when "W"  # 武器
  44.           item.kind = 2
  45.           item.weapon_id = $2.to_i
  46.         when "A"  # 防具
  47.           item.kind = 3
  48.           item.armor_id = $2.to_i
  49.         else
  50.           next
  51.         end
  52.         # ドロップ率
  53.         if $4 != nil
  54.           item.drop_prob = $3.to_i
  55.         else
  56.           item.denominator = $3.to_i
  57.         end
  58.         @__extra_drop_items << item
  59.       end
  60.     }
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ○ 拡張ドロップアイテム
  64.   #--------------------------------------------------------------------------
  65.   def extra_drop_items
  66.     create_extra_drop_item_cache if @__extra_drop_items == nil
  67.     return @__extra_drop_items
  68.   end
  69. end

  70. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  71. #==============================================================================
  72. # ■ RPG::Enemy::DropItem
  73. #==============================================================================

  74. class RPG::Enemy::DropItem
  75.   #--------------------------------------------------------------------------
  76.   # ● 公開インスタンス変数
  77.   #--------------------------------------------------------------------------
  78.   attr_writer   :drop_prob                # ドロップ率
  79.   #--------------------------------------------------------------------------
  80.   # ○ ドロップ率取得
  81.   #--------------------------------------------------------------------------
  82.   def drop_prob
  83.     @drop_prob = 0 if @drop_prob == nil
  84.     return @drop_prob
  85.   end
  86. end

  87. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  88. #==============================================================================
  89. # ■ Game_Enemy
  90. #==============================================================================

  91. class Game_Enemy < Game_Battler
  92.   #--------------------------------------------------------------------------
  93.   # ○ 拡張ドロップアイテムの取得
  94.   #--------------------------------------------------------------------------
  95.   def extra_drop_items
  96.     return enemy.extra_drop_items
  97.   end
  98. end

  99. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  100. #==============================================================================
  101. # ■ Game_Troop
  102. #==============================================================================

  103. class Game_Troop < Game_Unit
  104.   #--------------------------------------------------------------------------
  105.   # ● ドロップアイテムの配列作成
  106.   #--------------------------------------------------------------------------
  107.   alias make_drop_items_KGC_ExtraDropItem make_drop_items
  108.   def make_drop_items
  109.     drop_items = make_drop_items_KGC_ExtraDropItem

  110.     dead_members.each { |enemy|
  111.       enemy.extra_drop_items.each_with_index { |di, i|
  112.         next if di.kind == 0
  113.         if di.drop_prob > 0
  114.           # 確率指定
  115.           next if di.drop_prob < rand(100)
  116.         else
  117.           # 分母指定
  118.           next if rand(di.denominator) != 0
  119.         end
  120.         if di.kind == 1
  121.           drop_items.push($data_items[di.item_id])
  122.         elsif di.kind == 2
  123.           drop_items.push($data_weapons[di.weapon_id])
  124.         elsif di.kind == 3
  125.           drop_items.push($data_armors[di.armor_id])
  126.         end
  127.         # ドロップ済みフラグをセット
  128.         if $imported["EnemyGuide"]
  129.           KGC::Commands.set_enemy_item_dropped(enemy.enemy.id, i + 2)
  130.         end
  131.       }
  132.     }
  133.     return drop_items
  134.   end
  135. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
2
发表于 2010-7-8 00:42:11 | 只看该作者
你都哪看来的..
http://ytomy.sakura.ne.jp/tkool/ ... ech=extra_drop_item 这里有方法

评分

参与人数 1星屑 +700 收起 理由
木葬枫 + 700 认可答案,66RPG感谢您的热情解答 ...

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

姬魂

梦石
0
星屑
428
在线时间
400 小时
注册时间
2009-8-30
帖子
612

开拓者

3
发表于 2010-7-8 00:43:38 | 只看该作者
DROP|编号
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
4
 楼主| 发表于 2010-7-8 05:27:32 | 只看该作者
OK 解决了 谢谢各位
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-9 10:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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