设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1305|回复: 3
打印 上一主题 下一主题

【XP】RTAB背景改變

[复制链接]

Lv1.梦旅人

梦石
0
星屑
217
在线时间
828 小时
注册时间
2010-6-22
帖子
120

开拓者

跳转到指定楼层
1
发表于 2011-12-18 14:15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己有寫了一段放在 Spriteset_Battle 的 def update 裡:
    for battler in $game_party.actors + $game_troop.enemies
      if battler.critical.size > 0
        for i in 0...battler.critical.size
          @battleback_sprite.tone = Tone.new(0, 0, 0, 200) if battler.critical[i] == true
          @battleback_sprite.color = Color.new(80, 80, 80, 100) if battler.critical[i] == true
          @battleback_sprite.update
        end
      end
      @battleback_sprite.tone = Tone.new(0, 0, 0, 0)
      @battleback_sprite.color = Color.new(0, 0, 0, 0)
      @battleback_sprite.update
    end

是想做成「如果會心一擊,畫面顏色更變一下」
但好像不行,求指教。

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
2
发表于 2011-12-18 23:49:32 | 只看该作者
本帖最后由 dbshy 于 2011-12-19 09:34 编辑

你的脚本有问题
不管是true或是false 都会执行,所以没效果 = =
@battleback_sprite.tone = Tone.new(0, 0, 0, 0)
@battleback_sprite.color = Color.new(0, 0, 0, 0)
用if  else来判断
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
3
发表于 2011-12-19 02:41:16 | 只看该作者
本帖最后由 月夜神音 于 2011-12-19 09:45 编辑

讲一下思路,

首先判断攻击或技能是否重击并不是在Sprite里,而是在Game_Battler3里判断的
battler.critical那个并不是用来判断重击的标志。

我不知道你是否使用技能重击等附加脚本,默认是只有普攻会出重击;
然后实际判断重击是在def attack_effect(attacker)找到:
        # クリティカル修正
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage[attacker] *= 2
          self.critical[attacker] = true
          以上就是判断重击的位置
          $game_temp.black_flug = true

        end

$game_temp.black_flug = true 是一个黑屏的脚本的显示语句,因为背景暗转会涉及到很多改动,而之前有个脚本可以直接使用,我就不一一列举了。直接贴给你去研究吧。
  1. #---------------------------------------------------------------------------
  2. #戦闘背景暗転化スクリプトver.1.11(RTAB用)
  3. #by bant [url]http://homepage2.nifty.com/bant/[/url]
  4. #---------------------------------------------------------------------------
  5. # 特性の属性を設定した武器、スキル、アイテムを使った時に
  6. # 戦闘背景の色調を変更するスクリプトです。
  7. #
  8. # 特に戦闘背景が白い場合(008-Snowfield01など)戦闘アニメが見えなくなってしまう
  9. # ので有効です。
  10. #
  11. # 数値の設定によっては暗くせずに明るくすることも可能です。
  12. # このスクリプトへの質問等は必ず[url]http://homepage2.nifty.com/bant/[/url]内の掲示板にして下さい
  13. # 1.1へのバージョンアップ情報
  14. #
  15. # 軽量化:80~104行目を変更
  16. # 戦闘終了後に暗転フラグをオフにする:121~137行目を追加
  17. #
  18. # 1.11へのバージョンアップ情報
  19. #
  20. # アイテムへの対応:107行目、周辺のコメントアウトを消す
  21. # 戦闘前に暗転フラグをオフにする:138、139行目を追加
  22. #=begin
  23. class Game_Battler
  24.   BLACK_ELEMENT = "暗转" # 戦闘背景を暗転化する時にこの名前の属性を設定して下さい
  25. end
  26. class Spriteset_Battle
  27. # 色調がどれぐらいまで変化するかの数値です。具体的にはイベントの色調変化で
  28. # 赤色が-TONE_MARGINALになるまで色調が変化します。
  29.   TONE_MARGINAL = 100
  30. # 1フレームで変化する赤、緑、青のカラーバランス調整値です。
  31. # 例えば赤なら1フレームで-BLACK_Rだけ変化します。
  32.   BLACK_R = 5
  33.   BLACK_G = 5
  34.   BLACK_B = 5
  35. # *注意:TONE_MARGINALはそれぞれのカラーバランス調整値で割り切れるように設定して下さい。
  36. end

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

  43. class Game_Temp
  44.   attr_accessor :black_flug               # ☆暗転用
  45.   alias initialize_black_bant initialize
  46.   def initialize
  47.     initialize_black_bant
  48.     @black_flug = false
  49.   end
  50. end

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

  57. class Spriteset_Battle
  58.   alias update_black_bant update
  59.   def update
  60.     update_black_bant
  61.     #if @battleback_sprite.tone.red != -TONE_MARGINAL
  62.     if $game_temp.black_flug && @battleback_sprite.tone.red != -TONE_MARGINAL
  63.       @battleback_sprite.tone.red -= BLACK_R
  64.       @battleback_sprite.tone.green -= BLACK_G
  65.       @battleback_sprite.tone.blue -= BLACK_B
  66.     #elsif @battleback_sprite.tone.red != 0
  67.     elsif !$game_temp.black_flug && @battleback_sprite.tone.red != 0
  68.       @battleback_sprite.tone.red += BLACK_R
  69.       @battleback_sprite.tone.green += BLACK_G
  70.       @battleback_sprite.tone.blue += BLACK_B
  71.     end
  72.   end
  73. end
  74. #==============================================================================
  75. # ■ Game_Battler (分割定義 3)
  76. #------------------------------------------------------------------------------
  77. #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
  78. # スのスーパークラスとして使用されます。
  79. #==============================================================================
  80. #=begin
  81. class Game_Battler
  82.   alias attack_effect_black_bant attack_effect
  83.   def attack_effect(attacker)
  84.     if attacker.element_set.include?($data_system.elements.index(BLACK_ELEMENT))
  85.       $game_temp.black_flug = true
  86.     end
  87.     attack_effect_black_bant(attacker)
  88.   end
  89.   
  90.   alias skill_effect_black_bant skill_effect
  91.   def skill_effect(user, skill)
  92.     if skill.element_set.include?($data_system.elements.index(BLACK_ELEMENT))
  93.       $game_temp.black_flug = true
  94.     end
  95.     skill_effect_black_bant(user, skill)
  96.   end
  97.   alias item_effect_black_bant item_effect
  98.   def item_effect(item, user = $game_party.actors[0])
  99.     if item.element_set.include?($data_system.elements.index(BLACK_ELEMENT))
  100.       $game_temp.black_flug = true
  101.     end
  102.     item_effect_black_bant(item, user)
  103.   end
  104. end

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

  110. class Scene_Battle
  111.   alias update_phase4_step6_black_bant update_phase4_step6
  112.   def update_phase4_step6(battler)
  113.     if $game_temp.black_flug
  114.       $game_temp.black_flug = false
  115.     end
  116.     update_phase4_step6_black_bant(battler)
  117.   end
  118. end
  119. #==============================================================================
  120. # ■ Scene_Battle (分割定義 1)
  121. #------------------------------------------------------------------------------
  122. #  バトル画面の処理を行うクラスです。
  123. #==============================================================================

  124. class Scene_Battle
  125.   #--------------------------------------------------------------------------
  126.   # ● メイン処理
  127.   #--------------------------------------------------------------------------
  128.   alias main_black_bant main
  129.   def main
  130.     # 戦闘前に暗転フラグをオフにしておく
  131.     $game_temp.black_flug = false
  132.     main_black_bant
  133.     # 戦闘終了時に暗転フラグをオフにしておく
  134.     $game_temp.black_flug = false
  135.   end
  136. end
  137. #=end
复制代码
另外,如果使用了技能重击等类似的脚本,也只要找到判断重击的地方把$game_temp.black_flug = true
加上就可以了。���
湿滑落式骑!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
4
发表于 2011-12-19 10:42:28 | 只看该作者
改成
  1. for battler in $game_party.actors + $game_troop.enemies
  2.       @battleback_sprite.tone = Tone.new(0, 0, 0, 0)
  3.       @battleback_sprite.color = Color.new(0, 0, 0, 0)
  4.       @battleback_sprite.update
  5.       if battler.critical.size > 0
  6.         for i in 0...battler.critical.size
  7.           @battleback_sprite.tone = Tone.new(0, 0, 0, 200) if battler.critical[i] == true
  8.           @battleback_sprite.color = Color.new(80, 80, 80, 100) if battler.critical[i] == true
  9.           @battleback_sprite.update
  10.         end
  11.       end
  12.     end
复制代码
- -b脚本从上往下执行...ORZ
好歹当年也当过大魔王过,orz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 22:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表