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

Project1

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

[已经过期] 关于战斗掉落多重物品的某个脚本发生错误的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1572
在线时间
105 小时
注册时间
2011-2-5
帖子
3
跳转到指定楼层
1
发表于 2011-2-13 18:17:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 掉落物品扩张- KGC_ExtraDropItem ◆ VX ◆
#_/                                        汉化  by 约束
#_/    ◇ Last update : 2008/02/10 ◇
#_/----------------------------------------------------------------------------
#_/  敌人掉落物品种类增加。
#_/============================================================================
#_/ 【特殊物品】如想使用 战斗难易度 脚本,请在它之上导入 。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

module KGC
module ExtraDropItem
  # 正规表现
  module Regexp
    # 敌方
    module Enemy
      # 掉落物品
      DROP_ITEM = /<(?:DROP|掉落)\s*([IWA]):(\d+)\s+(\d+)([%%])?>/i
    end
  end
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ RPG::Enemy
#==============================================================================

class RPG::Enemy
  #--------------------------------------------------------------------------
  # ○ 掉落物品扩张的保存生成
  #--------------------------------------------------------------------------
  def create_extra_drop_item_cache
    @__extra_drop_items = []

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::ExtraDropItem::Regexp::Enemy::DROP_ITEM
        # 掉落物品
        item = RPG::Enemy::DropItem.new
        case $1.upcase
        when "I"  # 物品
          item.kind = 1
          item.item_id = $2.to_i
        when "W"  # 武器
          item.kind = 2
          item.weapon_id = $2.to_i
        when "A"  # 防具
          item.kind = 3
          item.armor_id = $2.to_i
        else
          next
        end
        # 掉落率
        if $4 != nil
          item.drop_prob = $3.to_i
        else
          item.denominator = $3.to_i
        end
        @__extra_drop_items << item
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 扩张掉落物品
  #--------------------------------------------------------------------------
  def extra_drop_items
    create_extra_drop_item_cache if @__extra_drop_items == nil
    return @__extra_drop_items
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ RPG::Enemy::DropItem
#==============================================================================

unless $@
class RPG::Enemy::DropItem
  #--------------------------------------------------------------------------
  # ● 公开速成变量
  #--------------------------------------------------------------------------
  attr_accessor :drop_prob                # 掉落率
  #--------------------------------------------------------------------------
  # ● 目标初期化
  #--------------------------------------------------------------------------
  alias initialize_KGC_ExtraDropItem initialize
  def initialize
    initialize_KGC_ExtraDropItem

    @drop_prob = 0
  end
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 扩张掉落物品的取得
  #--------------------------------------------------------------------------
  def extra_drop_items
    return enemy.extra_drop_items
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Troop
#==============================================================================

class Game_Troop < Game_Unit
  #--------------------------------------------------------------------------
  # ● 掉落物品的排列作成
  #--------------------------------------------------------------------------
  alias make_drop_items_KGC_ExtraDropItem make_drop_items
  def make_drop_items
    drop_items = make_drop_items_KGC_ExtraDropItem

    for enemy in dead_members
      for di in enemy.extra_drop_items
        next if di.kind == 0
        if di.drop_prob > 0
          # 概率指定
          next if di.drop_prob < rand(100)
        else
          # 分母指定
          next if rand(di.denominator) != 0
        end
        if di.kind == 1
          drop_items.push($data_items[di.item_id])
        elsif di.kind == 2
          drop_items.push($data_weapons[di.weapon_id])
        elsif di.kind == 3
          drop_items.push($data_armors[di.armor_id])
        end
      end
    end
    return drop_items
  end
end

上面的脚本,设定好了几率,却在Scene_Battle第623行text = sprintf(Vocab::ObtainItem, item.name)出错,显示不了...求助!!!

Lv4.逐梦者

弓箭手?剑兰

梦石
0
星屑
5384
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
2
发表于 2011-2-13 22:11:10 | 只看该作者
1.请用脚本框/禁用表情
2.这个脚本实在怪物的注释里设定(无范例无法做)
3.是脚本冲突吗?(请给范例)
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-7 05:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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