Project1

标题: 请帮我把技能背景变暗脚本改成某个开关才变暗 [打印本页]

作者: 爆焰    时间: 2020-1-8 22:51
标题: 请帮我把技能背景变暗脚本改成某个开关才变暗
就是这个脚本是使用某个设置的技能时背景变暗,我希望可以修改成不要是技能变暗战斗背景,而是一直是暗的,渲染战斗时恐怖的气氛,或者光线暗的那种效果。通过开关来控制。请问各位GGJJ怎么实现?
#---------------------------------------------------------------------------
#戦闘背景暗転化スクリプトver.1.11(RTAB用)
#by bant http://homepage2.nifty.com/bant/
#---------------------------------------------------------------------------
# 特性の属性を設定した武器、スキル、アイテムを使った時に
# 戦闘背景の色調を変更するスクリプトです。
#
# 特に戦闘背景が白い場合(008-Snowfield01など)戦闘アニメが見えなくなってしまう
# ので有効です。
#
# 数値の設定によっては暗くせずに明るくすることも可能です。
# このスクリプトへの質問等は必ずhttp://homepage2.nifty.com/bant/内の掲示板にして下さい
# 1.1へのバージョンアップ情報
#
# 軽量化:80~104行目を変更
# 戦闘終了後に暗転フラグをオフにする:121~137行目を追加
#
# 1.11へのバージョンアップ情報
#
# アイテムへの対応:107行目、周辺のコメントアウトを消す
# 戦闘前に暗転フラグをオフにする:138、139行目を追加
#=begin
class Game_Battler
  BLACK_ELEMENT = "暗转" # 戦闘背景を暗転化する時にこの名前の属性を設定して下さい
end
class Spriteset_Battle
# 色調がどれぐらいまで変化するかの数値です。具体的にはイベントの色調変化で
# 赤色が-TONE_MARGINALになるまで色調が変化します。
  TONE_MARGINAL = 100
# 1フレームで変化する赤、緑、青のカラーバランス調整値です。
# 例えば赤なら1フレームで-BLACK_Rだけ変化します。
  BLACK_R = 5
  BLACK_G = 5
  BLACK_B = 5
# *注意:TONE_MARGINALはそれぞれのカラーバランス調整値で割り切れるように設定して下さい。
end

#==============================================================================
# ■ Game_Temp
#------------------------------------------------------------------------------
#  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
# スタンスは $game_temp で参照されます。
#==============================================================================

class Game_Temp
  attr_accessor :black_flug               # ☆暗転用
  alias initialize_black_bant initialize
  def initialize
    initialize_black_bant
    @black_flug = false
  end
end

#==============================================================================
# ■ Spriteset_Battle
#------------------------------------------------------------------------------
#  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ
# スの内部で使用されます。
#==============================================================================

class Spriteset_Battle
  alias update_black_bant update
  def update
    update_black_bant
    #if @battleback_sprite.tone.red != -TONE_MARGINAL
    if $game_temp.black_flug && @battleback_sprite.tone.red != -TONE_MARGINAL
      @battleback_sprite.tone.red -= BLACK_R
      @battleback_sprite.tone.green -= BLACK_G
      @battleback_sprite.tone.blue -= BLACK_B
    #elsif @battleback_sprite.tone.red != 0
    elsif !$game_temp.black_flug && @battleback_sprite.tone.red != 0
      @battleback_sprite.tone.red += BLACK_R
      @battleback_sprite.tone.green += BLACK_G
      @battleback_sprite.tone.blue += BLACK_B
    end
  end
end

#==============================================================================
# ■ Game_Battler (分割定義 3)
#------------------------------------------------------------------------------
#  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
# スのスーパークラスとして使用されます。
#==============================================================================
#=begin
class Game_Battler
  alias attack_effect_black_bant attack_effect
  def attack_effect(attacker)
    if attacker.element_set.include?($data_system.elements.index(BLACK_ELEMENT))
      $game_temp.black_flug = true
    end
    attack_effect_black_bant(attacker)
  end
  
  alias skill_effect_black_bant skill_effect
  def skill_effect(user, skill)
    if skill.element_set.include?($data_system.elements.index(BLACK_ELEMENT))
      $game_temp.black_flug = true
    end
    skill_effect_black_bant(user, skill)
  end
  alias item_effect_black_bant item_effect
  def item_effect(item, user = $game_party.actors[0])
    if item.element_set.include?($data_system.elements.index(BLACK_ELEMENT))
      $game_temp.black_flug = true
    end
    item_effect_black_bant(item, user)
  end
end

#==============================================================================
# ■ Scene_Battle (分割定義 4)
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================

class Scene_Battle
  alias update_phase4_step6_black_bant update_phase4_step6
  def update_phase4_step6(battler)
    if $game_temp.black_flug
      $game_temp.black_flug = false
    end
    update_phase4_step6_black_bant(battler)
  end
end
#==============================================================================
# ■ Scene_Battle (分割定義 1)
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  alias main_black_bant main
  def main
    # 戦闘前に暗転フラグをオフにしておく
    $game_temp.black_flug = false
    main_black_bant
    # 戦闘終了時に暗転フラグをオフにしておく
    $game_temp.black_flug = false
  end
end
#=end

作者: soulsaga    时间: 2020-1-8 23:31
RUBY 代码复制
  1. #=begin
  2. class Game_Battler
  3.   alias attack_effect_black_bant attack_effect
  4.   def attack_effect(attacker)
  5.     if attacker.element_set.include?($data_system.elements.index(BLACK_ELEMENT)) or $game_switches[10086]
  6.       $game_temp.black_flug = true
  7.     end
  8.     attack_effect_black_bant(attacker)
  9.   end
  10.  
  11.   alias skill_effect_black_bant skill_effect
  12.   def skill_effect(user, skill)
  13.     if skill.element_set.include?($data_system.elements.index(BLACK_ELEMENT)) or $game_switches[10086]
  14.       $game_temp.black_flug = true
  15.     end
  16.     skill_effect_black_bant(user, skill)
  17.   end
  18.   alias item_effect_black_bant item_effect
  19.   def item_effect(item, user = $game_party.actors[0])
  20.     if item.element_set.include?($data_system.elements.index(BLACK_ELEMENT)) or $game_switches[10086]
  21.       $game_temp.black_flug = true
  22.     end
  23.     item_effect_black_bant(item, user)
  24.   end
  25. end

作者: 爆焰    时间: 2020-1-11 11:18
soulsaga 发表于 2020-1-8 23:31
#=begin
class Game_Battler
  alias attack_effect_black_bant attack_effect

  1. class Game_Battler
  2.   BLACK_ELEMENT = "暗转" # 戦闘背景を暗転化する時にこの名前の属性を設定して下さい
  3. end
  4. class Spriteset_Battle
  5. # 色調がどれぐらいまで変化するかの数値です。具体的にはイベントの色調変化で
  6. # 赤色が-TONE_MARGINALになるまで色調が変化します。
  7.   TONE_MARGINAL = 100
  8. # 1フレームで変化する赤、緑、青のカラーバランス調整値です。
  9. # 例えば赤なら1フレームで-BLACK_Rだけ変化します。
  10.   BLACK_R = 5
  11.   BLACK_G = 5
  12.   BLACK_B = 5
  13. # *注意:TONE_MARGINALはそれぞれのカラーバランス調整値で割り切れるように設定して下さい。
  14. end

  15. #==============================================================================
  16. # ■ Game_Temp
  17. #------------------------------------------------------------------------------
  18. #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
  19. # スタンスは $game_temp で参照されます。
  20. #==============================================================================

  21. class Game_Temp
  22.   attr_accessor :black_flug               # ☆暗転用
  23.   alias initialize_black_bant initialize
  24.   def initialize
  25.     initialize_black_bant
  26.     @black_flug = false
  27.   end
  28. end

  29. #==============================================================================
  30. # ■ Spriteset_Battle
  31. #------------------------------------------------------------------------------
  32. #  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ
  33. # スの内部で使用されます。
  34. #==============================================================================

  35. class Spriteset_Battle
  36.   alias update_black_bant update
  37.   def update
  38.     update_black_bant
  39.     #if @battleback_sprite.tone.red != -TONE_MARGINAL
  40.     if $game_temp.black_flug && @battleback_sprite.tone.red != -TONE_MARGINAL
  41.       @battleback_sprite.tone.red -= BLACK_R
  42.       @battleback_sprite.tone.green -= BLACK_G
  43.       @battleback_sprite.tone.blue -= BLACK_B
  44.     #elsif @battleback_sprite.tone.red != 0
  45.     elsif !$game_temp.black_flug && @battleback_sprite.tone.red != 0
  46.       @battleback_sprite.tone.red += BLACK_R
  47.       @battleback_sprite.tone.green += BLACK_G
  48.       @battleback_sprite.tone.blue += BLACK_B
  49.     end
  50.   end
  51. end

  52. #==============================================================================
  53. # ■ Game_Battler (分割定義 3)
  54. #------------------------------------------------------------------------------
  55. #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
  56. # スのスーパークラスとして使用されます。
  57. #==============================================================================
  58. class Game_Battler
  59.   alias attack_effect_black_bant attack_effect
  60.   def attack_effect(attacker)
  61.     if attacker.element_set.include?($data_system.elements.index(BLACK_ELEMENT)) or $game_switches[10086]
  62.       $game_temp.black_flug = true
  63.     end
  64.     attack_effect_black_bant(attacker)
  65.   end

  66.   alias skill_effect_black_bant skill_effect
  67.   def skill_effect(user, skill)
  68.     if skill.element_set.include?($data_system.elements.index(BLACK_ELEMENT)) or $game_switches[10086]
  69.       $game_temp.black_flug = true
  70.     end
  71.     skill_effect_black_bant(user, skill)
  72.   end
  73.   alias item_effect_black_bant item_effect
  74.   def item_effect(item, user = $game_party.actors[0])
  75.     if item.element_set.include?($data_system.elements.index(BLACK_ELEMENT)) or $game_switches[10086]
  76.       $game_temp.black_flug = true
  77.     end
  78.     item_effect_black_bant(item, user)
  79.   end
  80. end
  81. #==============================================================================
  82. # ■ Scene_Battle (分割定義 4)
  83. #------------------------------------------------------------------------------
  84. #  バトル画面の処理を行うクラスです。
  85. #==============================================================================

  86. class Scene_Battle
  87.   alias update_phase4_step6_black_bant update_phase4_step6
  88.   def update_phase4_step6(battler)
  89.     if $game_temp.black_flug
  90.       $game_temp.black_flug = false
  91.     end
  92.     update_phase4_step6_black_bant(battler)
  93.   end
  94. end
  95. #==============================================================================
  96. # ■ Scene_Battle (分割定義 1)
  97. #------------------------------------------------------------------------------
  98. #  バトル画面の処理を行うクラスです。
  99. #==============================================================================

  100. class Scene_Battle
  101.   #--------------------------------------------------------------------------
  102.   # ● メイン処理
  103.   #--------------------------------------------------------------------------
  104.   alias main_black_bant main
  105.   def main
  106.     # 戦闘前に暗転フラグをオフにしておく
  107.     $game_temp.black_flug = false
  108.     main_black_bant
  109.     # 戦闘終了時に暗転フラグをオフにしておく
  110.     $game_temp.black_flug = false
  111.   end
  112. end
复制代码

作者: 爆焰    时间: 2020-1-13 14:58
soulsaga 发表于 2020-1-8 23:31
#=begin
class Game_Battler
  alias attack_effect_black_bant attack_effect

这个是范例,就是开关开了之后一直是暗的,而不是使用技能时才变暗,最好是连同敌人的变暗。
qqq.7z (185.51 KB, 下载次数: 57)
作者: soulsaga    时间: 2020-1-13 15:19
本帖最后由 soulsaga 于 2020-1-13 15:23 编辑
爆焰 发表于 2020-1-13 14:58
这个是范例,就是开关开了之后一直是暗的,而不是使用技能时才变暗,最好是连同敌人的变暗。
...

你要连敌人都变暗就不要用这脚本了..
作者: 紫英晓狼1130    时间: 2020-1-13 19:10
队伍——战斗事件——条件:开关[0001]为ON——更改画面色调
作者: soulsaga    时间: 2020-1-13 19:20
你难道要玩时停吗..这就要艾特

@灯笼菜刀王
作者: soulsaga    时间: 2020-1-13 21:13
那可以用这个脚本https://rpg.blue/thread-477564-1-1.html战斗中会执行並行的公共事件然后
更改画面色调就行..
作者: 轩辕合流    时间: 2020-2-17 18:07
公共事件 - 自动执行 - 1号开关(屏幕暗淡处理)
更改画面色调(value, value,  value, value),  @1
等待  1帧
开关操作 1号 OFF (关闭 1号开关)

QQ截图20200217180433.png (15.22 KB, 下载次数: 19)

QQ截图20200217180433.png





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1