#============================================================================== # ■ RGSS3 装備固定or封印スロット用フレーム付与 Ver1.01 by 星潟 #------------------------------------------------------------------------------ # 装備固定もしくは封印スロットの周りを枠で囲み # 視覚的に非常に分かりやすくします。 # また、枠の内側に色を指定することや # 項目の表示を半透明にしない設定が可能になります。 #============================================================================== class Window_EquipSlot < Window_Selectable #装備固定スロットでも項目を半透明にしない? #trueで半透明にしない。falseで半透明にする。 FIX_CC = true #装備固定スロットの場合に枠の処理を行うか? #trueで表示。falseで表示しない FIX_CF = true #装備固定スロットの枠を描写するか? #trueで描写。falseで描写しない。 F_F_OUT = true #装備固定スロットの枠の内側を塗りつぶすか? #trueで塗りつぶす。falseで塗りつぶさない。 F_F_IN = true #装備固定スロットの枠の色を指定。 #(1つ目の数字は赤の要素、2つ目の数字は緑の要素 # 3つ目の数字は青の要素、4つ目の数字は透明度を示す) FIX_COLOR1 = [255, 0, 0, 255] #装備固定スロットの枠の内側の色を指定。 #(1つ目の数字は赤の要素、2つ目の数字は緑の要素 # 3つ目の数字は青の要素、4つ目の数字は透明度を示す) FIX_COLOR2 = [128, 0, 0, 128] #装備封印スロットでも項目を半透明にしない? #trueで半透明にしない。falseで半透明にする。 SEAL_CC = true #装備封印スロットの場合に枠の処理を行うか? #trueで表示。falseで表示しない SEAL_CF = true #装備封印スロットの枠を描写するか? #trueで描写。falseで描写しない。 S_F_OUT = true #装備封印スロットの枠の内側を塗りつぶすか? #trueで塗りつぶす。falseで塗りつぶさない。 S_F_IN = true #装備封印スロットの枠の色を指定。 #(1つ目の数字は赤の要素、2つ目の数字は緑の要素 # 3つ目の数字は青の要素、4つ目の数字は透明度を示す) SEAL_COLOR1 = [0, 0, 255, 255] #装備封印スロットの枠の内側の色を指定。 #(1つ目の数字は赤の要素、2つ目の数字は緑の要素 # 3つ目の数字は青の要素、4つ目の数字は透明度を示す) SEAL_COLOR2 = [0, 0, 128, 128] #-------------------------------------------------------------------------- # 項目の描画 #-------------------------------------------------------------------------- alias draw_item_fix_back draw_item def draw_item(index) #アクターが存在する場合は分岐。 if @actor #該当スロットが装備固定スロットの場合。 if @actor.equip_type_fixed?(@actor.equip_slots[index]) #装備スロットの許可状態変更フラグをtrueにする。 @actor.fix_enable_flag = true if FIX_CF #スロットの矩形を取得。 rect = item_rect_for_text(index) #矩形の位置を左に2ずらす。 rect.x -= 2 #矩形の位置を下に2ずらす。 rect.y += 2 #矩形の幅を4足す。 rect.width += 4 #矩形の高さを4減らす。 rect.height -= 4 #矩形サイズに応じたビットマップを生成。 bitmap = Bitmap.new(rect.width, rect.height) #枠を描写する場合は分岐。 if F_F_OUT #外枠の色を指定。 color = Color.new(FIX_COLOR1[0], FIX_COLOR1[1], FIX_COLOR1[2], FIX_COLOR1[3]) #ビットマップを外枠の色で満たす。 bitmap.fill_rect(0,0,bitmap.width,bitmap.height,color) #ビットマップの外枠部分を除いて消去する。 bitmap.clear_rect(1,1,bitmap.width - 2,bitmap.height - 2) end #枠の内側を塗りつぶす場合は分岐。 if F_F_IN #内側の色を指定。 color = Color.new(FIX_COLOR2[0], FIX_COLOR2[1], FIX_COLOR2[2], FIX_COLOR2[3]) #ビットマップの内側部分を指定した色で満たす。 bitmap.fill_rect(1,1,bitmap.width - 2,bitmap.height - 2,color) end #ウィンドウに描写する。 contents.blt(rect.x, rect.y, bitmap, bitmap.rect) #ビットマップを解放する。 bitmap.dispose end #該当スロットが装備封印スロットの場合。 elsif @actor.equip_type_sealed?(@actor.equip_slots[index]) #装備スロットの許可状態変更フラグをtrueにする。 @actor.seal_enable_flag = true if SEAL_CF #スロットの矩形を取得。 rect = item_rect_for_text(index) #矩形の位置を左に2ずらす。 rect.x -= 2 #矩形の位置を下に2ずらす。 rect.y += 2 #矩形の幅を4足す。 rect.width += 4 #矩形の高さを4減らす。 rect.height -= 4 #矩形サイズに応じたビットマップを生成。 bitmap = Bitmap.new(rect.width, rect.height) #枠を描写する場合は分岐。 if S_F_OUT #外枠の色を指定。 color = Color.new(SEAL_COLOR1[0], SEAL_COLOR1[1], SEAL_COLOR1[2], SEAL_COLOR1[3]) #ビットマップを外枠の色で満たす。 bitmap.fill_rect(0,0,bitmap.width,bitmap.height,color) #ビットマップの外枠部分を除いて消去する。 bitmap.clear_rect(1,1,bitmap.width - 2,bitmap.height - 2) end #枠の内側を塗りつぶす場合は分岐。 if S_F_IN #内側の色を指定。 color = Color.new(SEAL_COLOR2[0], SEAL_COLOR2[1], SEAL_COLOR2[2], SEAL_COLOR2[3]) #ビットマップの内側部分を指定した色で満たす。 bitmap.fill_rect(1,1,bitmap.width - 2,bitmap.height - 2,color) end #ウィンドウに描写する。 contents.blt(rect.x, rect.y, bitmap, bitmap.rect) #ビットマップを解放する。 bitmap.dispose end end end bitmap = nil #アイテムを描写する。 draw_item_fix_back(index) #装備スロットの許可状態変更フラグを初期化。 @actor.fix_enable_flag = nil @actor.seal_enable_flag = nil end #-------------------------------------------------------------------------- # 装備スロットを許可状態で表示するかどうか #-------------------------------------------------------------------------- alias enable_fix_back? enable? def enable?(index) #設定に応じて強制的にtrueを返す。 ((FIX_CC && @actor.fix_enable_flag != nil) or (SEAL_CC && @actor.seal_enable_flag != nil)) == true ? true : enable_fix_back?(index) end end class Game_BattlerBase attr_accessor :fix_enable_flag attr_accessor :seal_enable_flag #-------------------------------------------------------------------------- # 装備スロット固定 #-------------------------------------------------------------------------- alias equip_type_fixed_fix_back? equip_type_fixed? def equip_type_fixed?(etype_id) #固定用の許可状態変更フラグが有効な場合はtrueを返す。 @fix_enable_flag != nil ? true : equip_type_fixed_fix_back?(etype_id) end #-------------------------------------------------------------------------- # 装備スロット封印 #-------------------------------------------------------------------------- alias equip_type_sealed_fix_back? equip_type_sealed? def equip_type_sealed?(etype_id) #封印用の許可状態変更フラグが有効な場合はtrueを返す。 @seal_enable_flag != nil ? true : equip_type_sealed_fix_back?(etype_id) end end