bad-end-collector/Scripts/_.14.rb
2024-05-18 13:05:37 -05:00

272 lines
No EOL
9.9 KiB
Ruby

#==============================================================================
# ■ RGSS3 テストモードお手軽補助スクリプト Ver1.00 by 星潟
#------------------------------------------------------------------------------
#  以下の機能がテストモード・戦闘テスト中のみ使用可能になります。
#==============================================================================
# ダッシュ時、ALTキーを押す事で移動速度が更に増加します。
#==============================================================================
# マップ画面で非イベント実行中かつプレイヤーが移動していない状態の場合
# 「CTRLキーを押しつつ」以下のキーを押す事で
# それぞれ特殊な効果が得られます。
#------------------------------------------------------------------------------
# F5
#
# マップ内の特定ワードを名前に含むイベントを強制起動します。
#------------------------------------------------------------------------------
# F6
#
# 所持金が99999999増加します。
#------------------------------------------------------------------------------
# F7
#
# メンバー全員のEXPを99999999増加させます。
#------------------------------------------------------------------------------
# F8
#
# 名前のついている全てのアイテムを入手します。
#==============================================================================
# 戦闘中、「CTRLキーを押しつつ」以下のキーを押す事で
# それぞれ特殊な効果が得られます。
#------------------------------------------------------------------------------
# F5
#
# 敵全体のHPを0にします。
#------------------------------------------------------------------------------
# F6
#
# 敵全体のHPを対象の最大HPまで回復します。
#------------------------------------------------------------------------------
# F7
#
# 味方全体のHPを0にします。
#------------------------------------------------------------------------------
# F8
#
# 味方全体のHPを対象の最大HPまで回復します。
#------------------------------------------------------------------------------
# F9
#
# 戦闘を強制的に中断します。(逃走扱いになります)
#==============================================================================
# それぞれのボタン指定は変更することができます。
# nilを指定することで無効化することもできます。
#==============================================================================
module TEST_SUP
#強制起動するイベントの名前に含まれる文字列を設定します。
#複数設定する場合は["宝箱", "小さなメダル"]等、「,」で区切ってください。
#文字列は「""」で囲う事も忘れずに。
EVN_WORD = ["宝箱"]
#マップ/戦闘共通で、テストコマンドを有効にする為に
#押しておくボタンを指定します。
TEST = :CTRL
#マップ画面で、マップ内の特定ワードを名前に含むイベントを強制起動するボタンを指定します。
MKEY1 = :F5
#マップ画面で、所持金が99999999増加するボタンを指定します。
MKEY2 = :F6
#マップ画面で、メンバー全員のEXPを99999999増加させるボタンを指定します。
MKEY3 = :F7
#マップ画面で、名前のついている全てのアイテムを入手するボタンを指定します。
MKEY4 = :F8
#マップ画面で、ダッシュ速度を更に加速させるボタンを指定します。
MKEY5 = :ALT
#戦闘中、敵全体のHPを0にするボタンを指定します。
BKEY1 = :F5
#戦闘中、敵全体のHPを対象の最大HPまで回復するボタンを指定します。
BKEY2 = :F6
#戦闘中、味方全体のHPを0にするボタンを指定します。
BKEY3 = :F7
#戦闘中、味方全体のHPを対象の最大HPまで回復するボタンを指定します。
BKEY4 = :F8
#戦闘中、戦闘を強制的に中断するボタンを指定します。(逃走扱いになります)
BKEY5 = :F9
end
#テストモードか戦闘テストモードの場合のみ全ての処理を実行。
class RPG::Event
#--------------------------------------------------------------------------
# 強制起動の対象となるか否かを設定
#--------------------------------------------------------------------------
def check_test_name
#キャッシュが存在する場合はキャッシュを返す。
return @check_test_name if @check_test_name != nil
#とりあえずfalseにする。
@check_test_name = false
#名前に該当するキーワードが含まれている場合はtrueにする。
TEST_SUP::EVN_WORD.each {|word|
@check_test_name = true if self.name.include?(word)
}
#データを返す。
@check_test_name
end
end
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# 強制起動の対象か?
#--------------------------------------------------------------------------
def check_test_name
@event.check_test_name
end
end
if $TEST or $BTEST
class Game_CharacterBase
#--------------------------------------------------------------------------
# 移動速度の取得(ダッシュを考慮)
#--------------------------------------------------------------------------
alias real_move_speed_sup real_move_speed
def real_move_speed
#マップテストキー5が押されていて、なおかつダッシュ状態ならば
#更に加速する。
real_move_speed_sup + ((Input.press?(TEST_SUP::MKEY5) && dash?) ? 2 : 0)
end
end
class Scene_Map
#--------------------------------------------------------------------------
# テストモード用のコマンドを有効とするか?
#--------------------------------------------------------------------------
def test_key_enable?
#プレイヤーが操作可能であり
#なおかつテストコマンド用キーを押している場合は有効。
$game_player.movable? && Input.press?(TEST_SUP::TEST)
end
#--------------------------------------------------------------------------
# フレーム更新
#--------------------------------------------------------------------------
alias update_sup update
def update
#イベント実行中ではないか?
unless $game_map.interpreter.running?
#テストモードコマンドが有効か?
if test_key_enable?
#マップテストキー1が押された場合、特定のキーワードのイベントを全て起動。
if Input.trigger?(TEST_SUP::MKEY1)
$game_map.events.values.each {|event|
TEST_SUP::EVN_WORD.each {|i| event.start if event.check_test_name}
}
end
#マップテストキー2が押された場合、所持金を99999999増加させる。
$game_party.gain_gold(99999999) if Input.trigger?(TEST_SUP::MKEY2)
#マップテストキー3が押された場合、パーティメンバーのEXPを99999999増加させる。
$game_party.members.each {|i| i.change_exp(i.exp + 99999999, true)} if Input.trigger?(TEST_SUP::MKEY3)
#マップテストキー4が押された場合、全てのアイテム/武器/防具を所持限界まで入手する。
if Input.trigger?(TEST_SUP::MKEY4)
$data_items.each {|item| $game_party.gain_item(item, $game_party.max_item_number(item)) if item && !item.name.empty?}
$data_weapons.each {|item| $game_party.gain_item(item, $game_party.max_item_number(item)) if item && !item.name.empty?}
$data_armors.each {|item| $game_party.gain_item(item, $game_party.max_item_number(item)) if item && !item.name.empty?}
end
end
end
#本来の処理を実行。
update_sup
end
end
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# テストモード用のコマンドを有効とするか?
#--------------------------------------------------------------------------
def test_key_enable?
#なおかつテストコマンド用キーを押している場合は有効。
Input.press?(TEST_SUP::TEST)
end
#--------------------------------------------------------------------------
# フレーム更新
#--------------------------------------------------------------------------
alias update_sup update
def update
#テストモードコマンドが有効か?
if test_key_enable?
#戦闘テストキー1が押された場合、敵全体のHPを0にする。
$game_troop.members.each {|i|
if i.alive?
i.hp = 0
i.perform_collapse_effect if i.dead?
end
} if Input.trigger?(TEST_SUP::BKEY1)
#戦闘テストキー2が押された場合、敵全体のHPを全快にする。
$game_troop.members.each {|i| i.hp = i.mhp if i.exist?} if Input.trigger?(TEST_SUP::BKEY2)
#戦闘テストキー3が押された場合、味方全体のHPを0にする。
$game_party.members.each {|i|
if i.alive?
i.hp = 0
i.perform_collapse_effect if i.dead?
end
} if Input.trigger?(TEST_SUP::BKEY3)
#戦闘テストキー4が押された場合、味方全体のHPを全快にする。
$game_party.members.each {|i| i.hp = i.mhp if i.exist?} if Input.trigger?(TEST_SUP::BKEY4)
#戦闘テストキー5が押された場合、戦闘を中断する。
BattleManager.abort if Input.trigger?(TEST_SUP::BKEY5)
end
#本来の処理を実行。
update_sup
end
end
end