138 lines
No EOL
3.6 KiB
Ruby
138 lines
No EOL
3.6 KiB
Ruby
#==============================================================================
|
||
# ■ 第2パーティー作成補助 Ver1.01 by 星潟
|
||
#------------------------------------------------------------------------------
|
||
# アイテムや装備品等を分けた別PTの作成を容易にします。
|
||
#
|
||
# 以下、追加されるイベントコマンド(スクリプトで使用)の解説です。
|
||
#
|
||
# pt_change
|
||
#
|
||
# 各PT情報を入れ替えます。
|
||
#
|
||
# pt_combine
|
||
#
|
||
# 2つのPTを統合します。アクターは現在PTを元に追加されます。
|
||
# アイテム所持上限・パーティー人数上限にひっかかった場合は
|
||
# 上限値以上のアイテム入手やパーティーメンバー加入は無効化されます。
|
||
#
|
||
# sec_pt_delete
|
||
#
|
||
# 第2パーティーの情報(アクター配列・所持アイテム全て・所持金)を抹消します。
|
||
#
|
||
#==============================================================================
|
||
module DUAL_PT
|
||
|
||
#各PT別にアクターを分けるか
|
||
|
||
ACTOR = true
|
||
|
||
#各PT別にアイテムを分けるか
|
||
|
||
ITEM = true
|
||
|
||
#各PT別に武器を分けるか
|
||
|
||
WEAPON = true
|
||
|
||
#各PT別に防具を分けるか
|
||
|
||
ARMOR = true
|
||
|
||
#各PT別に所持金を分けるか
|
||
|
||
GOLD = true
|
||
|
||
end
|
||
class Game_Interpreter
|
||
def pt_change
|
||
$game_party.pt_change
|
||
$game_map.need_refresh
|
||
$game_player.refresh
|
||
end
|
||
def pt_combine
|
||
$game_party.pt_combine
|
||
$game_map.need_refresh
|
||
$game_player.refresh
|
||
end
|
||
def sec_pt_delete
|
||
$game_party.sec_pt_delete
|
||
end
|
||
end
|
||
class Game_Party < Game_Unit
|
||
def pt_change
|
||
if DUAL_PT::ACTOR
|
||
@sub_pt_actors = [] if @sub_pt_actors == nil
|
||
@actors, @sub_pt_actors = @sub_pt_actors, @actors
|
||
end
|
||
if DUAL_PT::ITEM
|
||
@sub_pt_items = {} if @sub_pt_items == nil
|
||
@items, @sub_pt_items = @sub_pt_items, @items
|
||
end
|
||
if DUAL_PT::WEAPON
|
||
@sub_pt_weapons = {} if @sub_pt_weapons == nil
|
||
@weapons, @sub_pt_weapons = @sub_pt_weapons, @weapons
|
||
end
|
||
if DUAL_PT::ARMOR
|
||
@sub_pt_armors = {} if @sub_pt_armors == nil
|
||
@armors, @sub_pt_armors = @sub_pt_armors, @armors
|
||
end
|
||
if DUAL_PT::GOLD
|
||
@sub_pt_gold = 0 if @sub_pt_gold == nil
|
||
@gold, @sub_pt_gold = @sub_pt_gold, @gold
|
||
end
|
||
end
|
||
def pt_combine
|
||
if DUAL_PT::ACTOR
|
||
ptc_execute(0) if @sub_pt_actors != nil && !@sub_pt_actors.empty?
|
||
@sub_pt_actors = []
|
||
end
|
||
if DUAL_PT::ITEM
|
||
ptc_execute(1) if @sub_pt_items != nil
|
||
@sub_pt_items = {}
|
||
end
|
||
if DUAL_PT::WEAPON
|
||
ptc_execute(2) if @sub_pt_weapons != nil
|
||
@sub_pt_weapons = {}
|
||
end
|
||
if DUAL_PT::ARMOR
|
||
ptc_execute(3) if @sub_pt_armors != nil
|
||
@sub_pt_armors = {}
|
||
end
|
||
if DUAL_PT::GOLD
|
||
ptc_execute(4) if @sub_pt_gold != nil
|
||
@sub_pt_gold = 0
|
||
end
|
||
end
|
||
def ptc_execute(type_data)
|
||
case type_data
|
||
when 0
|
||
for i in @sub_pt_actors
|
||
add_actor(i)
|
||
end
|
||
when 1
|
||
for i in 1...$data_items.size
|
||
next if @sub_pt_items[i] == nil
|
||
gain_item($data_items[i], @sub_pt_items[i])
|
||
end
|
||
when 2
|
||
for i in 1...$data_weapons.size
|
||
next if @sub_pt_weapons[i] == nil
|
||
gain_item($data_weapons[i], @sub_pt_weapons[i])
|
||
end
|
||
when 3
|
||
for i in 1...$data_armors.size
|
||
next if @sub_pt_armors[i] == nil
|
||
gain_item($data_armors[i], @sub_pt_armors[i])
|
||
end
|
||
when 4
|
||
gain_gold(@sub_pt_gold)
|
||
end
|
||
end
|
||
def sec_pt_delete
|
||
@sub_pt_actors = []
|
||
@sub_pt_items = {}
|
||
@sub_pt_weapons = {}
|
||
@sub_pt_armors = {}
|
||
@sub_pt_gold = 0
|
||
end
|
||
end |