赞 | 0 |
VIP | 5 |
好人卡 | 0 |
积分 | 1 |
经验 | 14326 |
最后登录 | 2018-1-11 |
在线时间 | 461 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 461 小时
- 注册时间
- 2008-2-19
- 帖子
- 96
|
本帖最后由 IamI 于 2011-3-21 18:57 编辑
- #==============================================================================
- # ■ Phase_Battle_End
- #------------------------------------------------------------------------------
- # 戦闘終了フェーズ
- # Copyright (C) 2005-2010 rgss-lib
- #==============================================================================
- module DQ
- module Battle
- class Phase_Battle_End
- include Battle_Phase_Base_Module
- # 定数設定
- @@action_log_level_up_me = nil
- @@action_log_level_up_me = ACTION_LOG_LEVEL_UP_ME if defined? ACTION_LOG_LEVEL_UP_ME
- def self.start
- $scene.phase = Phase_Battle_End.new
- end
- def initialize
- # メッセージ表示間隔を戦闘時用からもどす
- $scene.message_window.auto_message_interval = nil
- # ステータスウィンドウを元に戻す
- $scene.status_window.state_on
- # メッセージウィンドウを消すようにする
- $scene.message_window.fade_out_off = false
- # メッセージウェイトあり
- $scene.message_window.sprite_message.no_wait = false
- if $scene.win?
- start_phase5
- elsif $scene.lose?
- # バトルリザルトログ
- action_log_battle_result_lose
- end
- end
- def update
- update_phase5
- end
- #--------------------------------------------------------------------------
- # ● アフターバトルフェーズ開始
- #--------------------------------------------------------------------------
- def start_phase5
- # バトル終了 ME を演奏
- $game_system.me_play($game_system.battle_end_me)
- # バトル開始前の BGM に戻す
- $game_system.bgm_play($game_temp.map_bgm)
- # EXP、ゴールド、トレジャーを初期化
- exp = 0
- gold = 0
- treasures = []
- drop_enemies = []
- level_up_actors = []
- # ループ
- for enemy in $game_troop.enemies
- # エネミーが隠れ状態でない場合
- unless enemy.hidden
- # 獲得 EXP、ゴールドを追加
- exp += enemy.exp
- gold += enemy.gold
- # トレジャー出現判定
- if rand(100) < enemy.treasure_prob
- if enemy.treasure_id > 0
- # ランダムドロップ
- gt = Data_Loader.game_treasure
- items = gt.drop(enemy.treasure_id)
- treasures.concat(items)
- drop_enemies.push enemy
- elsif enemy.item_id > 0
- # アイテム
- treasures.push(Game_Item.new(enemy.item_id))
- drop_enemies.push enemy
- elsif enemy.weapon_id > 0
- # 武器
- treasures.push(Game_Weapon.new(enemy.weapon_id))
- drop_enemies.push enemy
- elsif enemy.armor_id > 0
- # 防具
- treasures.push(Game_Armor.new(enemy.armor_id))
- drop_enemies.push enemy
- end
- end
- end
- end
- # トレジャーの数を 6 個までに限定
- treasures = treasures[0..5]
- # EXP パーティ割
- # 経験値分配をするならtrue(デフォルト:false)
- if defined? SHARE_EXP
- if SHARE_EXP
- exp = (exp / $game_party.actors.size).to_i()
- end
- end
- # EXP 獲得
- for i in 0...$game_party.actors.size
- actor = $game_party.actors[i]
- if actor.cant_get_exp? == false
- last_level = actor.level
- actor.exp += exp
- if actor.level > last_level
- level_up_actors.push([actor,last_level])
- end
- end
- end
- # ゴールド獲得
- $game_party.gain_gold(gold)
- # トレジャー獲得
- for item in treasures
- Item_Facade.gain(item)
- end
- # バトルリザルトログ
- action_log_battle_result_win(exp, gold, treasures, drop_enemies, level_up_actors)
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新 (アフターバトルフェーズ)
- #--------------------------------------------------------------------------
- def update_phase5
- # メインフェーズフラグをクリア
- $game_temp.battle_main_phase = false
- # ステータスウィンドウをリフレッシュ
- refresh_status_window
- # バトル終了
- battle_end(0)
- end
- def action_log_battle_result_win(exp, gold, treasures, drop_enemies, level_up_actors)
- # アクション結果表示イベント
- action_event = Script_Event.new
- msg = '\clear'
- if $game_troop.enemies.size == 1
- if exp == 0 and gold == 0
- msg << $game_troop.enemies[0].name << 'は さっていった…\n'
- else
- msg << $game_troop.enemies[0].name << 'を たおした!\n'
- end
- else
- if exp == 0 and gold == 0
- msg << 'まものたちは さっていった…\n'
- else
- msg << 'まもののむれを やっつけた!\n'
- end
- end
- action_event.message(msg)
- msg = ''
- if exp != 0 or gold != 0
- if $game_party.actors.size == 1
- msg << "\\PN[0][color=Red]は[/color]\\n"
- else
- msg << "それぞれ\\n"
- end
- end
- if exp != 0
- msg << "#{exp}#{WORD_EXP_UNIT_NAME}の #{WORD_EXP_NAME}を"
- if gold == 0
- msg << " かくとくした!\\n"
- else
- msg << "かくとく!\\n"
- end
- end
- if gold != 0
- msg << "#{gold}#{WORD_GOLD_NAME}を てにいれた!\\n"
- end
- if msg != ''
- action_event.message('\clear'+msg)
- end
- if treasures.size == 1
- msg = "#{drop_enemies[0].name}は #{treasures[0].name}を もっていた!\\n"
- action_event.message(msg)
- elsif treasures.size != 0
- msg = "まもののむれは アイテムを もっていた!\\n"
- action_event.message(msg)
- end
- for i in 0 ... treasures.size
- item = treasures[i]
- # enemy = drop_enemies[i]
- if $game_party.actors.size == 1
- msg = "结果\\PN[0]发现了#{item.name}。"
- #msg = "\\PN[0]は #{item.name}を 手に入れた。"
- action_event.message(msg)
- else
- msg = "\\PN[0]将#{item.name}收入了口袋。"
- #msg = "\\PN[0]達は #{item.name}を 手に入れた。"
- action_event.message(msg)
- end
- end
- for level_up_data in level_up_actors
- actor,last_level = level_up_data
- action_event.me_start(nil)
- action_event.me_start(@@action_log_level_up_me)
- action_event.messageactor.name}は レベルがあがった!\\n")
- names = [
- $data_system.words.hp,
- $data_system.words.sp,
- $data_system.words.str,
- $data_system.words.dex,
- $data_system.words.agi,
- $data_system.words.int,
- ]
- for key_list in [[2,3,4,5],[0,1]]
- msg = ''
- for key in key_list
- name = names[key]
- last_val = $data_actors[actor.id].parameters[key, last_level]
- base_val = $data_actors[actor.id].parameters[key, actor.level]
- val = base_val - last_val
- if val > 0
- msg += "#{name}が #{val.abs} あがった。"
- elsif val < 0
- msg += "#{name}が #{val.abs} さがった。"
- end
- end
- if msg != ''
- action_event.message(msg)
- end
- end
- for level in (last_level+1) .. actor.level
- # スキル習得
- for learning in $data_classes[actor.class_id].learnings
- if learning.level == level
- skill = $data_skills[learning.skill_id]
- action_event.message("学会了#{skill.name}。")
- end # ("#{skill.name}を おぼえた。")
- end
- end
- end
- battle_event_start(action_event)
- end
- def action_log_battle_result_lose
- # アクション結果表示イベント
- action_event = Script_Event.new
- msg = '\clear'
- if $game_party.actors.size == 1
- msg << '\pn[0]被打倒了!\n'#'\pn[0]は たおれた!\n'
- else
- msg << '\pn[0]我方全部阵亡了!\n'#'\pn[0]達は ぜんめつした!\n'
- end
- action_event.message(msg)
- # 敗北可能の場合
- if $game_temp.battle_can_lose
- # バトル開始前の BGM に戻す
- action_event.script('$game_system.bgm_play($game_temp.map_bgm)')
- action_event.method_call(method(:battle_end),2)
- else
- action_event.script('$game_temp.gameover = true')
- end
- battle_event_start(action_event)
- end
- end
- end
- end
复制代码 |
|