234 lines
No EOL
9.9 KiB
Ruby
234 lines
No EOL
9.9 KiB
Ruby
|
||
module N03_Hide
|
||
|
||
# ウインドウを非表示にしないスキル(書くと旧仕様再現)
|
||
NO_HIDE_SKILL = [ 2, 3]
|
||
|
||
# 黒枠の縦幅をプラスする この設定が0なら黒枠の縦幅は24(文字の高さと同じ)
|
||
BACK_HEIGHT = 0
|
||
|
||
# 黒枠の不透明度 値が大きいほど色が濃くなる 0~255の範囲
|
||
BACK_OPACITY = 100
|
||
|
||
end
|
||
|
||
=begin
|
||
トリス 1 2 3 4 5 更新回数2
|
||
|
||
|
||
1 ダンジョン内の暗闇の優先度
|
||
イベントコマンドのスクリプトで
|
||
コモンイベント8のウインドウピクチャ作成時に picture_front(1)
|
||
コモンイベント7のステ振り終了時に picture_front(0) と入れてください。
|
||
|
||
2 ステートが付加されない
|
||
解決しました。
|
||
|
||
3 モンスター図鑑とアイテム図鑑を任意の順番で
|
||
モンスター・アイテムのメモ欄に <図鑑ID=19.1> のように数値を指定すると
|
||
図鑑での並び順がnとして扱われます。小数の指定も可能です。
|
||
|
||
|
||
4 だいじなものをメニュー時に使用不可
|
||
アイテムのメモ欄に <イベント選択> と入っていると、メニューで使えないものでも
|
||
イベントからの選択時は選択できるようになります。
|
||
設定項目の使用可能時は「使用不可」にしてください。
|
||
|
||
|
||
5 スキル使用時のみ上下のウインドウを消す
|
||
設定項目で指定したスキル以外の使用時は、
|
||
上部スキル名ウインドウは背景を黒枠にします。
|
||
下部ステータスウインドウは非表示になります。
|
||
|
||
|
||
|
||
|
||
1 説明
|
||
picture_front(1) と実行すると、全てのピクチャが
|
||
「『暗闇が表示されている画像表示領域』よりも手前にある画像表示領域」に
|
||
配置されるようになります。
|
||
|
||
この間、ピクチャは暗闇・天気・タイマー・画面フラッシュより手前に表示されます。
|
||
picture_front(0) と実行すると元に戻ります。
|
||
|
||
|
||
2 説明
|
||
Aceの仕様が原因でした。
|
||
バトラーには「この行動で解除されたステート一覧」というパラメータがあります。
|
||
ステートが解除された時にこの一覧に追加されます。
|
||
この一覧はメッセージ表示に使われる他、一覧に入っているステートは付加されません。
|
||
|
||
このパラメータが初期化されるタイミングは
|
||
スキル等の効果を受ける直前、行動終了、ターン終了、戦闘終了、1歩移動ごとです。
|
||
|
||
ステートの「戦闘終了時に解除」のタイミングは「戦闘終了で一覧初期化」の直後です。
|
||
この時に一覧に追加され、その後1歩移動するまでは一覧に入ったままです。
|
||
歩く前にステートを付加しようとすると、一覧に入っているので付加できません。
|
||
|
||
タイミングを変更し、戦闘終了でステート解除→一覧を初期化 としました。
|
||
これにより、1歩移動する前でも一覧からは削除されており、付加が可能となりました。
|
||
|
||
=end
|
||
|
||
# 1
|
||
#==============================================================================
|
||
# ■ Spriteset_Map
|
||
#==============================================================================
|
||
class Spriteset_Map
|
||
#--------------------------------------------------------------------------
|
||
# ● ピクチャスプライトの更新
|
||
#--------------------------------------------------------------------------
|
||
def update_pictures
|
||
#@picture_sprites = [] if $event_script_picture_create_flag←修正
|
||
if $event_script_picture_create_flag#追記
|
||
@picture_sprites.each {|s| s.dispose if s && !s.disposed?}#追記
|
||
@picture_sprites = []#追記
|
||
end#追記
|
||
$event_script_picture_create_flag = false
|
||
viewport = $event_script_picture_front_number == 1 ? @viewport3 : @viewport2
|
||
$game_map.screen.pictures.each do |pic|
|
||
@picture_sprites[pic.number] ||= Sprite_Picture.new(viewport, pic)
|
||
@picture_sprites[pic.number].update
|
||
end
|
||
end
|
||
end
|
||
#==============================================================================
|
||
# ■ Game_Interpreter
|
||
#==============================================================================
|
||
class Game_Interpreter
|
||
def picture_front(number)
|
||
$event_script_picture_front_number = number
|
||
$event_script_picture_create_flag = true
|
||
end
|
||
end
|
||
|
||
# 2
|
||
#==============================================================================
|
||
# ■ Game_Battler
|
||
#==============================================================================
|
||
class Game_Battler < Game_BattlerBase
|
||
#--------------------------------------------------------------------------
|
||
# ● 戦闘終了処理
|
||
#--------------------------------------------------------------------------
|
||
def on_battle_end
|
||
remove_battle_states
|
||
remove_all_buffs
|
||
clear_actions
|
||
clear_tp unless preserve_tp?
|
||
appear
|
||
@result.clear
|
||
end
|
||
end
|
||
|
||
# 3
|
||
#==============================================================================
|
||
# ■ Window_MonsterDictionaryList
|
||
#==============================================================================
|
||
class Window_MonsterDictionaryList < Window_Selectable
|
||
#--------------------------------------------------------------------------
|
||
# ● アイテムリストの作成
|
||
#--------------------------------------------------------------------------
|
||
alias :dictionary_sort_make_item_list :make_item_list
|
||
def make_item_list
|
||
dictionary_sort_make_item_list
|
||
@data.sort_by! {|item| item.dictionary_id}
|
||
end
|
||
end
|
||
#==============================================================================
|
||
# ■ Window_ItemDictionaryList
|
||
#==============================================================================
|
||
class Window_ItemDictionaryList < Window_Selectable
|
||
#--------------------------------------------------------------------------
|
||
# ● アイテムリストの作成
|
||
#--------------------------------------------------------------------------
|
||
alias :dictionary_sort_make_item_list :make_item_list
|
||
def make_item_list
|
||
dictionary_sort_make_item_list
|
||
@data.sort_by! {|item| item.dictionary_id}
|
||
end
|
||
end
|
||
#==============================================================================
|
||
# ■ RPG::BaseItem
|
||
#==============================================================================
|
||
class RPG::BaseItem
|
||
def dictionary_id
|
||
return $1.to_f if @note =~ /<図鑑ID=(\d+.*\d*)>/
|
||
return $1.to_f if @note =~ /<図鑑ID=(\d+.*\d*)>/
|
||
return id
|
||
end
|
||
end
|
||
|
||
# 4
|
||
#==============================================================================
|
||
# ■ Window_KeyItem
|
||
#==============================================================================
|
||
class Window_KeyItem < Window_ItemList
|
||
#--------------------------------------------------------------------------
|
||
# ● 選択項目の有効状態を取得
|
||
#--------------------------------------------------------------------------
|
||
def enable?(item)
|
||
$game_party.usable?(item) or item.note =~ /<イベント選択>/
|
||
end
|
||
end
|
||
|
||
# 5
|
||
#==============================================================================
|
||
# ■ Scene_Battle
|
||
#==============================================================================
|
||
class Scene_Battle < Scene_Base
|
||
#--------------------------------------------------------------------------
|
||
# ● スキル/アイテム名の表示
|
||
#--------------------------------------------------------------------------
|
||
def display_item(item)
|
||
return @log_window.display_use_item(@subject, item) if N03::BATTLE_LOG
|
||
@log_window.off
|
||
if not N03_Hide::NO_HIDE_SKILL.include?(item.id) && item.is_a?(RPG::Skill)
|
||
@status_window.hide
|
||
@skill_name_window = Window_Skill_name.new(item.name, true) unless N03::NO_DISPLAY_SKILL_ID.include?(item.id) && item.is_a?(RPG::Skill)
|
||
return
|
||
end
|
||
@skill_name_window = Window_Skill_name.new(item.name) unless N03::NO_DISPLAY_SKILL_ID.include?(item.id) && item.is_a?(RPG::Skill)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● スキル/アイテム名の表示終了
|
||
#--------------------------------------------------------------------------
|
||
def display_end_item
|
||
@skill_name_window.dispose if @skill_name_window != nil
|
||
@skill_name_window = nil
|
||
@status_window.show
|
||
set_camera_wait(N03::ACTION_END_WAIT) if @subject.sv.derivation_skill_id == 0
|
||
@log_window.clear if N03::BATTLE_LOG
|
||
end
|
||
end
|
||
#==============================================================================
|
||
# ■ Window_Skill_name
|
||
#==============================================================================
|
||
class Window_Skill_name < Window_Base
|
||
#--------------------------------------------------------------------------
|
||
# ● オブジェクト初期化
|
||
#--------------------------------------------------------------------------
|
||
def initialize(text, flag = false)
|
||
super(0, 30, Graphics.width, line_height + standard_padding * 2)#紅茶走
|
||
draw_text(4, 0, Graphics.width - 64, line_height,text, 1)
|
||
|
||
return unless flag
|
||
self.opacity = 0
|
||
@back_bitmap = Bitmap.new(width, height)
|
||
@back_sprite = Sprite.new
|
||
@back_sprite.bitmap = @back_bitmap
|
||
@back_sprite.y = y
|
||
@back_sprite.z = z - 1
|
||
back_height = N03_Hide::BACK_HEIGHT
|
||
back_rect = Rect.new(0, padding - back_height / 2, width, line_height + back_height)
|
||
back_color = Color.new(0, 0, 0, N03_Hide::BACK_OPACITY)
|
||
@back_bitmap.fill_rect(back_rect, back_color)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 解放
|
||
#--------------------------------------------------------------------------
|
||
def dispose
|
||
super
|
||
@back_bitmap.dispose if @back_bitmap
|
||
@back_sprite.dispose if @back_sprite
|
||
end
|
||
end |