Project1

标题: 使用技能时更换背景 [打印本页]

作者: uishi121    时间: 2011-10-13 02:12
标题: 使用技能时更换背景
本帖最后由 uishi121 于 2011-10-13 02:13 编辑

請問一下這個腳本的問題..
  1. #==============================================================================
  2. # ■ 出招更换战斗背景效果 By 绿发的Eclair v1.1
  3. #
  4. # 部分商业游戏的魔法特技使用时战斗背景会变成各种各样华丽的图片,配合上华丽的魔
  5. # 法效果甚至可以造成一种浑然一体的美感效果,大红心~~
  6. # 用RM模拟了~~~
  7. # 使用方法:在数据库中添加属性,名字格式为 背景更换,背景的名字
  8. # 带有这个属性的战斗行动在执行时会将战斗背景渐变更换为Battleback文件夹里面
  9. # 一个叫“背景的名字”的图片,当然名字可以自定。
  10. # 一定要用英文逗号分割 背景更换 和 要更换的背景名字哦~不然会出错的~~~
  11. # 这个脚本使用了三次alias,如果说在这部分存在一些迷惑的话勉强可以做范例吧~~
  12. # 除去防御时候换背景的BUG....另外将更换背景的步骤放在显示敌人动画那里了~~~
  13. # 看起来会更舒服一些呢~~
  14. # 祝您玩得愉快哦~
  15. #==============================================================================
  16. #==============================================================================
  17. # ■ Spriteset_Battle
  18. #------------------------------------------------------------------------------
  19. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  20. # 的内部使用。
  21. #==============================================================================
  22. class Spriteset_Battle
  23.   attr_accessor :battleback_realname  
  24.   attr_accessor :battleback_sprite
  25.   alias cat_miaomiao initialize
  26.   def initialize
  27.     @battleback_realname = $game_temp.battleback_name
  28.     cat_miaomiao
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 刷新画面
  32.   #--------------------------------------------------------------------------
  33.   def update
  34.     # 刷新角色的活动块 (对应角色的替换)
  35.     @actor_sprites[0].battler = $game_party.actors[0]
  36.     @actor_sprites[1].battler = $game_party.actors[1]
  37.     @actor_sprites[2].battler = $game_party.actors[2]
  38.     @actor_sprites[3].battler = $game_party.actors[3]
  39.     # 战斗背景的文件名与现在情况有差异的情况下
  40.     if @battleback_name != @battleback_realname
  41.       @battleback_name = @battleback_realname
  42.       if @battleback_sprite.bitmap != nil and @battleback_realname == $game_temp.battleback_name
  43.         @battleback_sprite.bitmap.dispose
  44.       end
  45.       if @battleback_name != nil
  46.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  47.       @battleback_sprite.src_rect.set(0, 0, 640, 320)
  48.     end
  49.     end
  50.     # 刷新战斗者的活动块
  51.     for sprite in @enemy_sprites + @actor_sprites
  52.       sprite.update
  53.     end
  54.     # 刷新天气图形
  55.     @weather.type = $game_screen.weather_type
  56.     @weather.max = $game_screen.weather_max
  57.     @weather.update
  58.     # 刷新图片活动块
  59.     for sprite in @picture_sprites
  60.       sprite.update
  61.     end
  62.     # 刷新计时器活动块
  63.     @timer_sprite.update
  64.     # 设置画面的色调与震动位置
  65.     @viewport1.tone = $game_screen.tone
  66.     @viewport1.ox = $game_screen.shake
  67.     # 设置画面的闪烁色
  68.     @viewport4.color = $game_screen.flash_color
  69.     # 刷新显示端口
  70.     @viewport1.update
  71.     @viewport2.update
  72.     @viewport4.update
  73.   end
  74. end
  75. #==============================================================================
  76. # ■ Scene_Battle (分割定义 4)
  77. #------------------------------------------------------------------------------
  78. #  处理战斗画面的类。
  79. #==============================================================================
  80. class Scene_Battle
  81.   #--------------------------------------------------------------------------
  82.   # ● 刷新画面 (主回合步骤 4 : 对像方动画)
  83.   #--------------------------------------------------------------------------
  84.   alias kiss_cat update_phase4_step4
  85.   def update_phase4_step4
  86.   @use = []
  87.     @use = @active_battler.element_set if @active_battler.current_action.kind == 0 and @active_battler.current_action.basic == 0
  88.     if @active_battler.current_action.kind == 1
  89.     @use = $data_skills[@active_battler.current_action.skill_id].element_set
  90.     end
  91.     if @active_battler.current_action.kind == 2
  92.     @use = $data_items[@active_battler.current_action.item_id].element_set
  93.   end
  94.     for i in @use
  95.     if $data_system.elements[i].split(/,/)[0] == "背景更換"
  96.       for j in 0...10
  97.         @spriteset.battleback_sprite.opacity -= 25
  98.         Graphics.update
  99.       end
  100.     @spriteset.battleback_realname = $data_system.elements[i].split(/,/)[1]
  101.      @spriteset.update
  102.       for j in 0...10
  103.         @spriteset.battleback_sprite.opacity += 25
  104.         Graphics.update
  105.       end
  106.     break
  107.   end
  108. end
  109.     kiss_cat
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 刷新画面 (主回合步骤 6 : 刷新)
  113.   #--------------------------------------------------------------------------
  114.   alias touch_cat update_phase4_step6
  115.   def update_phase4_step6
  116.     if @spriteset.battleback_realname != $game_temp.battleback_name
  117.       for j in 0...10
  118.         @spriteset.battleback_sprite.opacity -= 25
  119.         Graphics.update
  120.       end
  121.     @spriteset.battleback_realname =  $game_temp.battleback_name
  122.      @spriteset.update
  123.       for j in 0...10
  124.         @spriteset.battleback_sprite.opacity += 25
  125.         Graphics.update
  126.       end
  127.       end
  128.     touch_cat
  129.   end
  130. end
复制代码
在更换背景后,要怎么样才能变回原本的背景?

就是用招式时变成B背景,动画结束后再变回原本的A背景这样。

劳烦各位解答了。
dsu_plus_rewardpost_czw




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