赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 2 |
经验 | 0 |
最后登录 | 2015-10-20 |
在线时间 | 20 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 1735
- 在线时间
- 20 小时
- 注册时间
- 2013-11-24
- 帖子
- 4
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 天地有正气 于 2014-5-17 16:25 编辑
将脚本插入后一呼出图鉴,就会出现如下问题,,,,请问该如何解决,,,,,,,,,,,谢谢,,
这是脚本- #==============================================================================
- # ★ カスタマイズ項目 ★
- #==============================================================================
- module KGC
- # ◆図鑑画面背景透過
- # true にすると、マップ画面が透けて見える。
- MG_BACK_TRANSPARENT = true
- # ◆図鑑から隠す敵
- # 図鑑から隠したい敵のIDを配列に格納。
- # <例> MG_HIDE_ENEMIES = [2, 4, 8, 16, 32]
- MG_HIDE_ENEMIES = [16]
- # ◆属性耐性を調べる範囲(属性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 # 撃破済みフラグ
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- alias initialize_KGC_MonsterGuide initialize
- def initialize
- initialize_KGC_MonsterGuide
- @enemy_encountered = []
- @enemy_defeated = []
- 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[i] &&
- @enemy_defeated[i] && !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)
- [url=home.php?mod=space&uid=292300]@Hidden[/url] = 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.back_opacity = 160 if KGC::MG_BACK_TRANSPARENT
- refresh
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- text = "撃破数:#{$game_system.defeated_enemies_count}/#{$game_system.all_enemies_count}"
- self.contents.draw_shadow_text(0, 0, width - 32, 32, text)
- text = "完成度:#{$game_system.monster_guide_completion}%"
- self.contents.draw_shadow_text(0, 32, width - 32, 32, text)
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Window_MonsterGuideLeft
- #------------------------------------------------------------------------------
- # モンスター図鑑画面で、モンスター一覧を表示するウィンドウです。
- #==============================================================================
- class Window_MonsterGuideLeft < Window_Selectable
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- super(0, 96, 240, 384)
- self.index = 0
- self.back_opacity = 160 if KGC::MG_BACK_TRANSPARENT
- 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[i])
- 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[i])
- 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, "? ? ? ? ? ? ? ?", 1)
- 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.back_opacity = 160 if KGC::MG_BACK_TRANSPARENT
- 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_shadow_text(0, 208, 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_shadow_text(0, 280, 368, 32, "- Not Defeated -", 1)
- end
- end
- #--------------------------------------------------------------------------
- # ● ステータス描画
- # enemy : エネミー
- #--------------------------------------------------------------------------
- def draw_status(enemy)
- # ステータスを描画
- self.contents.font.color = system_color
- self.contents.draw_shadow_text( 0, 224, 64, 32, $data_system.words.hp)
- self.contents.draw_shadow_text(122, 224, 64, 32, $data_system.words.sp)
- self.contents.draw_shadow_text(244, 224, 64, 32, $data_system.words.str)
- self.contents.draw_shadow_text( 0, 256, 64, 32, $data_system.words.dex)
- self.contents.draw_shadow_text(122, 256, 64, 32, $data_system.words.agi)
- self.contents.draw_shadow_text(244, 256, 64, 32, $data_system.words.int)
- self.contents.draw_shadow_text( 0, 288, 64, 32, $data_system.words.atk)
- self.contents.draw_shadow_text(122, 288, 64, 32, $data_system.words.pdef)
- self.contents.draw_shadow_text(244, 288, 64, 32, $data_system.words.mdef)
- self.contents.draw_shadow_text( 0, 320, 96, 32, "弱点属性")
- self.contents.draw_shadow_text( 0, 352, 96, 32, "耐性属性")
- self.contents.draw_shadow_text( 0, 384, 96, 32, "経験値")
- self.contents.draw_shadow_text(184, 384, 384, 32, $data_system.words.gold)
- self.contents.draw_shadow_text( 0, 416, 64, 32, $data_system.words.item)
- # 値を描画
- self.contents.font.color = normal_color
- enemy = Difficulty.get_revised_enemy(enemy) if $imported["BattleDifficulty"]
- self.contents.draw_shadow_text( 48, 224, 64, 32, enemy.maxhp.to_s, 2)
- self.contents.draw_shadow_text(170, 224, 64, 32, enemy.maxsp.to_s, 2)
- self.contents.draw_shadow_text(292, 224, 64, 32, enemy.str.to_s, 2)
- self.contents.draw_shadow_text( 48, 256, 64, 32, enemy.dex.to_s, 2)
- self.contents.draw_shadow_text(170, 256, 64, 32, enemy.agi.to_s, 2)
- self.contents.draw_shadow_text(292, 256, 64, 32, enemy.int.to_s, 2)
- self.contents.draw_shadow_text( 48, 288, 64, 32, enemy.atk.to_s, 2)
- self.contents.draw_shadow_text(170, 288, 64, 32, enemy.pdef.to_s, 2)
- self.contents.draw_shadow_text(292, 288, 64, 32, enemy.mdef.to_s, 2)
- self.contents.draw_shadow_text( 0, 384, 144, 32, enemy.exp.to_s, 2)
- self.contents.draw_shadow_text(184, 384, 144, 32, enemy.gold.to_s, 2)
- # 弱点属性描画
- text = ""
- KGC::MG_ELEMENT_RANGE.each { |i|
- # 有効度が A,B ならば弱点属性追加
- if enemy.element_ranks[i] < 3
- text += "/" if text != ""
- text += $data_system.elements[i]
- end
- }
- self.contents.font.color = KGC::MG_WEEK_COLOR.dup
- self.contents.draw_text(104, 320, 264, 32, text)
- # 耐性属性描画
- text = ""
- KGC::MG_ELEMENT_RANGE.each { |i|
- # 有効度が D,E,F ならば耐性属性追加
- if enemy.element_ranks[i] > 3
- text += "/" if text != ""
- text += $data_system.elements[i]
- end
- }
- self.contents.font.color = KGC::MG_RESIST_COLOR.dup
- self.contents.draw_text(104, 352, 264, 32, text)
- self.contents.font.color = normal_color
- # アイテム描画
- prob = "#{enemy.treasure_prob}%"
- 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."
- prob = ""
- end
- self.contents.blt(70, 420, icon, Rect.new(0, 0, 24, 24))
- self.contents.draw_shadow_text(92 , 416, 204, 32, text)
- self.contents.draw_shadow_text(300, 416, 64, 32, prob)
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_MonsterGuide
- #------------------------------------------------------------------------------
- # モンスター図鑑画面の処理を行うクラスです。
- #==============================================================================
- class Scene_MonsterGuide
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # map_call : マップからの呼び出しフラグ
- #--------------------------------------------------------------------------
- def initialize(map_call = false)
- @map_call = map_call
- end
- #--------------------------------------------------------------------------
- # ● メイン処理
- #--------------------------------------------------------------------------
- def main
- # スプライトセット作成
- @spriteset = Spriteset_Map.new if KGC::MG_BACK_TRANSPARENT
- # 図鑑ウィンドウを作成
- @guide_top_window = Window_MonsterGuideTop.new
- @guide_left_window = Window_MonsterGuideLeft.new
- @guide_right_window = Window_MonsterGuideRight.new
- # ステータス表示
- @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
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新
- #--------------------------------------------------------------------------
- def 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_Map.new
- 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
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_Battle (分割定義 2)
- #==============================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● アフターバトルフェーズ開始
- #--------------------------------------------------------------------------
- alias start_phase5_KGC_MonsterGuide start_phase5
- def start_phase5
- # トループ全体をループ
- $game_troop.enemies.each { |enemy|
- # エネミーが隠れていない場合
- unless enemy.hidden
- # 撃破済みフラグをオン
- $game_system.enemy_defeated[enemy.id] = true
- # 変身前の敵も撃破済みにする
- if KGC::MG_ORIGINAL_DEFEAT
- enemy.original_id.compact.each { |i|
- $game_system.enemy_defeated[i] = true
- }
- end
- end
- }
- start_phase5_KGC_MonsterGuide
- end
- end
复制代码 原脚本链接
http://ytomy.sakura.ne.jp/tkool/ ... nster_guide_xp.html |
|