RPGツクールXP/VX用のRGSS素材です。
一部英語版対応です。
(A few materials can be used for English RPG MAKER XP/VX.)
競合率はルファーの独断と偏見なのでたまにハズレます。
#==============================================================================
# ■ ダブルプレイヤーモード (分割定義 2)
#------------------------------------------------------------------------------
# 2 つのデータを読み込んで対戦するシーンクラスの定義です。
# ゲーム内で使うには、 $scene = Scene_DoublePlayersLoad.new というスクリプトを
# どこかに挿入する必要があります。
# (C) ルファー
# HP https://tkoolerlufar.pages.dev/
#==============================================================================
#----------------------------------------------------------------------------
# ◆ Game_Temp クラス
#----------------------------------------------------------------------------
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :doubleplayers_mode # ダブルプレイヤーモードフラグ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias lfr4_old_init initialize
def initialize
lfr4_old_init
@doubleplayers_mode = false
end
end
#----------------------------------------------------------------------------
# ◆ Game_Actor クラス
#----------------------------------------------------------------------------
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :player_index # プレイヤーインデックス
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# actor_id : アクター ID
#--------------------------------------------------------------------------
alias lfr4_old_init initialize
def initialize(actor_id)
@player_index = nil
lfr4_old_init(actor_id)
end
#--------------------------------------------------------------------------
# ● インデックス取得
# player_index : プレイヤーインデックス
#--------------------------------------------------------------------------
alias lfr4_old_index index
def index
if @player_index != nil
$game_doubleplayers[@player_index].actors.index(self)
else
lfr4_old_index
end
end
#--------------------------------------------------------------------------
# ● MaxHP の取得
#--------------------------------------------------------------------------
alias lfr4_old_maxhp maxhp
def maxhp
n = lfr4_old_maxhp
$game_temp.doubleplayers_mode && Lfer::DP_MHP ? n * (@level + 1) + 99 : n
end
#--------------------------------------------------------------------------
# ● スキルの使用可能判定
# skill_id : スキル ID
#--------------------------------------------------------------------------
def skill_can_use?(skill_id)
if not skill_learn?(skill_id)
return false
end
if $data_skills[skill_id].common_event_id > 0 and
$game_temp.doubleplayers_mode
return false
end
return super
end
end
#----------------------------------------------------------------------------
# ◆ Game_DoublePlayers クラス
#----------------------------------------------------------------------------
class Game_DoublePlayers < Game_Party
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# game_actors : アクターのゲームデータ
# game_party : パーティのゲームデータ
# player_index : プレイヤーインデックス
#--------------------------------------------------------------------------
def initialize(game_actors, game_party, player_index)
@game_actors = game_actors
@actors = game_party.actors
@player_index = player_index
for actor in @actors
actor.player_index = @player_index
end
end
#--------------------------------------------------------------------------
# ● パーティメンバーのリフレッシュ
#--------------------------------------------------------------------------
def refresh
new_actors = []
for i in 0...@actors.size
if $data_actors[@actors[i].id] != nil
new_actors.push(@game_actors[@actors[i].id])
end
end
@actors = new_actors
for actor in @actors
actor.player_index = @player_index
end
end
#--------------------------------------------------------------------------
# ● 全滅判定
#--------------------------------------------------------------------------
def all_dead?
if @actors.size == 0
return false
end
for actor in @actors
if actor.hp > 0
return false
end
end
return true
end
end
戻る