查看: 1920|回复: 2

[已经解决] 这个图鉴有未删减版的脚本吗?

[复制链接]
梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

发表于 2014-5-6 17:54:03 | 显示全部楼层 |阅读模式

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

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

×
这个图鉴脚本是在暮色轮回2里看到的,可他这个注释着已删减。。

我放在新游戏里打败怪兽后是没有属性资料的,
请问有未删减的下载吗?或者怎么才能让他显示资料出来?

[pre lang="ruby" line="1"]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ モンスター図鑑 - KGC_MonsterGuide ◆
#_/    ◇ Last update : 2008/01/10 ◇
#_/----------------------------------------------------------------------------
#_/  モンスター図鑑を作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ カスタマイズ項目 ★
#==============================================================================

module KGC
  # ◆図鑑画面背景透過
  #  true にすると、マップ画面が透けて見える。
  MG_BACK_TRANSPARENT = true
  # ◆図鑑から隠す敵
  #  図鑑から隠したい敵のIDを配列に格納。
  # <例> MG_HIDE_ENEMIES = [2, 4, 8, 16, 32]
  MG_HIDE_ENEMIES = [1,192,193,194,195,201,202,203,204,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,229,238,239,240,241,242,243]

  # ◆属性耐性を調べる範囲(属性ID)
  MG_ELEMENT_RANGE = 1..8
  # ◆弱点属性文字色
  MG_WEEK_COLOR = Color.new(255, 128, 128)
  # ◆耐性属性文字色
  MG_RESIST_COLOR = Color.new(128, 128, 255)

  # ◆カーソル移動で表示内容更新
  #  false にすると、C ボタンを押すまで再描画しない。
  #  (重く感じない場合は true のままでOK)
  MG_MOVE_REFRESH = true

  # ◆変身前の敵も撃破
  #  false にすると、変身前の敵は撃破したと見なされない。
  MG_ORIGINAL_DEFEAT = true

  # ◆通し番号を描画
  MG_SERIAL_NUMBER = true
  # ◆通し番号をリストの並び順にする
  #  true にすると、IDを無視して表示順の番号を付ける。
  MG_SERIAL_FOLLOW = true

  # ◆敵の並び順
  #  表示する敵のIDを、表示したい順に配列に格納。
  #  .. や ... を使用した範囲指定も可能。
  #  指定しなかった敵、または MG_HIDE_ENEMIES に指定した敵は表示しない。
  #  (この機能を使用しない場合は nil)
  MG_ENEMY_ORDER = nil
  # MG_ENEMY_ORDER = [1..5, 8..13, 6, 7, 14, 15]
  #  ↑使用例
end

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

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

#--------------------------------------------------------------------------
# ● モンスター図鑑呼び出し
#--------------------------------------------------------------------------
def call_monster_guide
  # プレイヤーの姿勢を矯正
  $game_player.straighten
  # モンスター図鑑画面に切り替え
  $scene = Scene_MonsterGuide.new(true)
end

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

module MonsterGuide
  #--------------------------------------------------------------------------
  # ● 遭遇状態設定
  #--------------------------------------------------------------------------
  def self.encountered(id, flag)
    $game_system.enemy_encountered[id] = flag
  end
  #--------------------------------------------------------------------------
  # ● 撃破状態設定
  #--------------------------------------------------------------------------
  def self.defeated(id, flag)
    $game_system.enemy_defeated[id] = flag
  end
  #--------------------------------------------------------------------------
  # ● 図鑑リセット
  #--------------------------------------------------------------------------
  def self.reset
    $game_system.enemy_encountered.clear
    $game_system.enemy_defeated.clear
  end
  #--------------------------------------------------------------------------
  # ● 図鑑完成
  #--------------------------------------------------------------------------
  def self.complete
    (1..$data_enemies.size).each { |i|
      self.encountered(i, true)
      self.defeated(i, true)
    }
  end
end

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

#==============================================================================
# ■ Game_System
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :enemy_encountered        # 遭遇済みフラグ
  attr_accessor :enemy_defeated           # 撃破済みフラグ
  attr_accessor :weapon_got
  attr_accessor :armor_got
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_KGC_MonsterGuide initialize
  def initialize
    initialize_KGC_MonsterGuide
    @enemy_encountered = []
    @enemy_defeated = []
    @weapon_got = []
    @armor_got = []
  end
  def equip_count
    n = 0
    for i in $game_system.weapon_got + $game_system.armor_got
        n += 1 if i==true
    end
    return n
  end
  def equip_all
    n = 0
    for i in $data_weapons + $data_armors
      n += 1 if (i != nil and i.icon_name != "")
    end
    return n
  end
  #--------------------------------------------------------------------------
  # ● エネミー存在チェック
  #--------------------------------------------------------------------------
  def enemy_exist?(enemy_id)
    return $data_enemies[enemy_id] != nil && $data_enemies[enemy_id].name != ""
  end
  #--------------------------------------------------------------------------
  # ● 存在する敵の種類数取得
  #--------------------------------------------------------------------------
  def all_enemies_count
    n = 0
    # 存在する敵の種類数を取得
    (1...$data_enemies.size).each { |i|
      if enemy_exist?(i) && !KGC::MG_HIDE_ENEMIES.include?(i)
        n += 1
      end
    }
    return n
  end
  #--------------------------------------------------------------------------
  # ● 撃破した敵の種類数取得
  #--------------------------------------------------------------------------
  def defeated_enemies_count
    n = 0
    # 撃破した敵の種類数を取得
    (1...$data_enemies.size).each { |i|
      if enemy_exist?(i) && @enemy_encountered &&
          @enemy_defeated && !KGC::MG_HIDE_ENEMIES.include?(i)
        n += 1
      end
    }
    return n
  end
  #--------------------------------------------------------------------------
  # ● モンスター図鑑完成度の取得
  #--------------------------------------------------------------------------
  def monster_guide_completion
    num = all_enemies_count
    if num > 0
      return defeated_enemies_count * 100 / num
    else
      return 0
    end
  end
end

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

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

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader   :original_id              # 変身前のID
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     troop_id     : トループ ID
  #     member_index : トループメンバーのインデックス
  #--------------------------------------------------------------------------
  alias initialize_KGC_MonsterGuide initialize
  def initialize(troop_id, member_index)
    initialize_KGC_MonsterGuide(troop_id, member_index)

    @original_id = []
    # 遭遇済みフラグをオン
    unless @hidden
      $game_system.enemy_encountered[@enemy_id] = true
    end
  end
  #--------------------------------------------------------------------------
  # ● 変身
  #     enemy_id : 変身先のエネミー ID
  #--------------------------------------------------------------------------
  alias transform_KGC_MonsterGuide transform
  def transform(enemy_id)
    # 変身前のIDを保存
    @original_id.push(@enemy_id)

    transform_KGC_MonsterGuide(enemy_id)

    # 変身後の敵も遭遇済みにする
    $game_system.enemy_encountered[@enemy_id] = true
  end
  #--------------------------------------------------------------------------
  # ● 隠れ状態設定
  #--------------------------------------------------------------------------
  def hidden=(value)
    @Hidden = value
    # 出現した場合は遭遇済みフラグをオン
    unless @hidden
      $game_system.enemy_encountered[@enemy_id] = true
    end
  end
end

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

#==============================================================================
# ■ Window_MonsterGuideTop
#------------------------------------------------------------------------------
#  モンスター図鑑画面で、完成度を表示するウィンドウです。
#==============================================================================

class Window_MonsterGuideTop < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 240, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    text = "#{$game_system.defeated_enemies_count}/#{$game_system.all_enemies_count}"
    self.contents.draw_text(110, 0, width - 32, 32, text)
    text = "#{$game_system.monster_guide_completion}%"
    self.contents.draw_text(110, 32, width - 32, 32, text)
  end
end

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

#==============================================================================
# ■ Window_MonsterGuideLeft
#------------------------------------------------------------------------------
#  モンスター図鑑画面で、モンスター一覧を表示するウィンドウです。
#==============================================================================

class Window_MonsterGuideLeft < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 96, 227, 352)
    self.index = 0
    self.opacity = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 選択モンスターの取得
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # 存在するエネミーを取得
    if KGC::MG_ENEMY_ORDER == nil
      # ID順
      (1...$data_enemies.size).each { |i|
        if $game_system.enemy_exist?(i) && !KGC::MG_HIDE_ENEMIES.include?(i)
          @data.push($data_enemies)
        end
      }
    else
      # 指定順
      KGC::MG_ENEMY_ORDER.each { |i|
        if i.is_a?(Range)  # 範囲指定の場合
          i.each { |j|
            if $game_system.enemy_exist?(j) && !KGC::MG_HIDE_ENEMIES.include?(j)
              @data.push($data_enemies[j])
            end
          }
        else  # 直接指定の場合
          if $game_system.enemy_exist?(i) && !KGC::MG_HIDE_ENEMIES.include?(i)
            @data.push($data_enemies)
          end
        end
      }
    end
    # 項目数が 0 でなければビットマップを作成し、全項目を描画
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #     index : 項目番号
  #--------------------------------------------------------------------------
  def draw_item(index)
    enemy = @data[index]
    # 撃破していれば通常文字色に、そうでなければ無効文字色に設定
    if $game_system.enemy_defeated[enemy.id]
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4
    y = index * 32
    rect = Rect.new(x, y, self.width - 40, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    # 遭遇していれば名前、遭遇していなければ?を描画
    if KGC::MG_SERIAL_NUMBER
      s_num = KGC::MG_SERIAL_FOLLOW ? (index + 1) : enemy.id
    end
    if $game_system.enemy_encountered[enemy.id]
      if KGC::MG_SERIAL_NUMBER
        text = sprintf("%03d: %s", s_num, enemy.name)
      else
        text = enemy.name
      end
      self.contents.draw_text(x, y, self.width - 40, 32, text)
    else
      if KGC::MG_SERIAL_NUMBER
        text = sprintf("%03d: %s", s_num, "??????")
        self.contents.draw_text(x, y, self.width - 40, 32, text)
      else
        self.contents.draw_text(x, y, self.width - 40, 32, "??????")
      end
    end
  end
end

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

#==============================================================================
# ■ Window_MonsterGuideRight
#------------------------------------------------------------------------------
#  モンスター図鑑画面で、ステータスを表示するウィンドウです。
#==============================================================================

class Window_MonsterGuideRight < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(240, 0, 400, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #     enemy       : エネミー
  #     show_status : ステータス表示
  #--------------------------------------------------------------------------
  def refresh(enemy, show_status = true)
    self.contents.clear
    # 遭遇していない場合はNo data
    unless $game_system.enemy_encountered[enemy.id]
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 100, 368, 32, "- No Data -", 1)
      return
    end
    # バトラー画像を描画
    bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
    cw = bitmap.width >> 1
    self.contents.blt(184 - cw, 0, bitmap, bitmap.rect)
    # ステータス非表示の場合は戻る
    return unless show_status
    # 撃破済みの場合、詳細情報を描画
    if $game_system.enemy_defeated[enemy.id]
      draw_status(enemy)
    # 撃破していない場合
    else
      self.contents.font.color = disabled_color
      self.contents.draw_text(0, 100, 368, 32, "- Not Defeated -", 1)
    end
  end
  #--------------------------------------------------------------------------
  # ● ステータス描画
  #     enemy : エネミー
  #--------------------------------------------------------------------------
  def draw_status(enemy)

    # 値を描画
    self.contents.font.color = normal_color
    enemy = Difficulty.get_revised_enemy(enemy) if $imported["BattleDifficulty"]
  if $game_switches[94] == true
    self.contents.draw_text( 48, 224-30,  64, 32, (enemy.maxhp/2).to_s, 2)
  else
    self.contents.draw_text( 48, 224-30,  64, 32, enemy.maxhp.to_s, 2)
  end
    self.contents.draw_text(170, 224-30,  64, 32, enemy.maxsp.to_s, 2)
    self.contents.draw_text(292, 224-30,  64, 32, (enemy.str*8/10).to_s, 2)
    self.contents.draw_text( 48, 256-30,  64, 32, (enemy.dex*8/10).to_s, 2)
    self.contents.draw_text(170, 256-30,  64, 32, (enemy.agi*8/10).to_s, 2)
    self.contents.draw_text(292, 256-30,  64, 32, (enemy.int*8/10).to_s, 2)
    self.contents.draw_text( 48, 288-30,  64, 32, (enemy.atk*8/10).to_s, 2)
    self.contents.draw_text(170, 288-30,  64, 32, (enemy.pdef*8/10).to_s, 2)
    self.contents.draw_text(292, 288-30,  64, 32, (enemy.mdef*8/10).to_s, 2)
    self.contents.draw_text(  0, 384-30, 144, 32, (3*enemy.exp).to_s, 2)
    self.contents.draw_text(184, 384-30, 144, 32, enemy.gold.to_s, 2)
    # 弱点属性描画
    text = ""
    KGC::MG_ELEMENT_RANGE.each { |i|
      # 有効度が A,B ならば弱点属性追加
      if enemy.element_ranks < 3
        text += "/" if text != ""
        text += $data_system.elements
      end
    }
    self.contents.font.color = KGC::MG_WEEK_COLOR.dup
    self.contents.draw_text(104, 320-30, 264, 32, text)
    # 耐性属性描画
    text = ""
    KGC::MG_ELEMENT_RANGE.each { |i|
      # 有効度が D,E,F ならば耐性属性追加
      if enemy.element_ranks > 3
        text += "/" if text != ""
        text += $data_system.elements
      end
    }
    self.contents.font.color = KGC::MG_RESIST_COLOR.dup
    self.contents.draw_text(104, 352-30, 264, 32, text)
    self.contents.font.color = normal_color

   item2_id = 0
   weapon2_id = 0
   armor2_id = 0
   if enemy.treasure2 != ""
     case enemy.treasure2[0,1]
     when "W"
       weapon2_id = enemy.treasure2[/[0-9]+/].to_i
     when "A"
       armor2_id = enemy.treasure2[/[0-9]+/].to_i
     when "I"
       item2_id = enemy.treasure2[/[0-9]+/].to_i
     end
   end
   
    no_rareitem = 0
    if item2_id > 0
      icon2 = RPG::Cache.icon($data_items[item2_id].icon_name)
      text2 = $data_items[item2_id].name
      rareitem = 1
    elsif weapon2_id > 0
      icon2 = RPG::Cache.icon($data_weapons[weapon2_id].icon_name)
      text2 = $data_weapons[weapon2_id].name
      rareitem = 1
    elsif armor2_id > 0
      icon2 = RPG::Cache.icon($data_armors[armor2_id].icon_name)
      text2 = $data_armors[armor2_id].name
      rareitem = 1
    else
      icon2 = Bitmap.new(24, 24)
      text2 = ""
    end   
    if enemy.item_id > 0
      icon = RPG::Cache.icon($data_items[enemy.item_id].icon_name)
      text = $data_items[enemy.item_id].name
    elsif enemy.weapon_id > 0
      icon = RPG::Cache.icon($data_weapons[enemy.weapon_id].icon_name)
      text = $data_weapons[enemy.weapon_id].name
    elsif enemy.armor_id > 0
      icon = RPG::Cache.icon($data_armors[enemy.armor_id].icon_name)
      text = $data_armors[enemy.armor_id].name
    else
      icon = Bitmap.new(24, 24)
      text = "No Item." if rareitem == 0
    end

    self.contents.blt(130, 420-30, icon, Rect.new(0, 0, 24, 24))
    self.contents.draw_text(155 , 416-30, 204, 32, text)
    if rareitem == 1
    self.contents.blt(130, 415, icon2, Rect.new(0, 0, 24, 24))
    self.contents.draw_text(155 , 412, 204, 32, text2)
    self.contents.font.color = text_color(6)
    self.contents.draw_text(65 , 412, 204, 32, "(稀有!)")
    end
end
end

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

#==============================================================================
# ■ Scene_MonsterGuide
#------------------------------------------------------------------------------
#  モンスター図鑑画面の処理を行うクラスです。
#==============================================================================

class Scene_MonsterGuide
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     map_call : マップからの呼び出しフラグ
  #--------------------------------------------------------------------------
  def initialize(map_call = false)
    @map_call = map_call
  end
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # スプライトセット作成
    @state_com = Sprite.new
    @state_com.bitmap = RPG::Cache.title("图鉴.jpg")
    @state_com.z = 10
    @spriteset = Spriteset_Map.new if !KGC::MG_BACK_TRANSPARENT
    # 図鑑ウィンドウを作成
    @guide_top_window = Window_MonsterGuideTop.new
    @guide_left_window = Window_MonsterGuideLeft.new
    @guide_left_window.y += 10
    @guide_right_window = Window_MonsterGuideRight.new
    @guide_right_window.y += 10
    # ステータス表示
    @show_status = true
    # エネミーオブジェクトを指定
    enemy = @guide_left_window.item
    # 情報描画
    @guide_right_window.refresh(enemy, @show_status)
    # トランジション実行
    Graphics.transition
    # メインループ
    loop {
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    }
    # トランジション準備
    Graphics.freeze
    # ウィンドウを解放
    @spriteset.dispose if !KGC::MG_BACK_TRANSPARENT
    @guide_top_window.dispose
    @guide_left_window.dispose
    @guide_right_window.dispose
    @state_com.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ウィンドウを更新
    @state_com.update
    @guide_top_window.update
    @guide_left_window.update
    @guide_right_window.update
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # マップから呼び出された場合
      if @map_call
        # マップ画面に切り替え
        $scene = Scene_Menu.new(4)
      else
        # メニュー画面に切り替え
        if $imported["MenuAlter"]
          index = KGC::MA_COMMANDS.index(11)
          if index != nil
            $scene = Scene_Menu.new(index)
          else
            $scene = Scene_Menu.new
          end
        else
          $scene = Scene_Menu.new(@menu_index)
        end
      end
      return
    end
    # A ボタンが押された場合
    if Input.trigger?(Input::A)
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      # ステータス表示を切り替え
      @show_status = !@show_status
      # 情報更新
      update_info
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      # 情報更新
      update_info
      return
    end
    if KGC::MG_MOVE_REFRESH && @last_index != @guide_left_window.index
      # インデックス保存
      @last_index = @guide_left_window.index
      # 情報更新
      update_info
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 情報更新
  #--------------------------------------------------------------------------
  def update_info
    # エネミーオブジェクトを指定
    enemy = @guide_left_window.item
    # 情報描画
    @guide_right_window.refresh(enemy, @show_status)
  end
end[/pre]
梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

 楼主| 发表于 2014-5-7 11:08:42 | 显示全部楼层
本帖最后由 hijl1990 于 2014-5-7 19:34 编辑

没人知道吗?话说只要能正常显示数据就可以了,为什么再原游戏里可以显示呢?

这是原游戏里的显示是正常的。
232641vllolrggmjmgoijo.jpg

我拿出来后放在新游戏里是没显示数据的。
QQ截图20140507110805.jpg

真心求解,谢谢大家。


@Tabris_Air 不知道作者在不在。


第二天自顶不算连贴吧?
回复

使用道具 举报

梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

 楼主| 发表于 2014-5-8 14:03:24 | 显示全部楼层
已自行解决,此贴可结。。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部