Project1

标题: 求解使用特定技能时更改战斗背景的方式!! [打印本页]

作者: rpg916162895    时间: 2013-9-28 18:29
标题: 求解使用特定技能时更改战斗背景的方式!!
就是用特定技能的时候战斗背景更改,技能放完又改回来!!貌似公共事件调用脚本{:2_271:}只能技能放完了才改变!!!!!!!!!!!!!!!!!!!!!
作者: 美丽晨露    时间: 2013-9-28 18:45
  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, 480)
  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
复制代码
设置方法都在脚本内了
作者: rpg916162895    时间: 2013-9-28 19:23
我能追问下吗?貌似画面切换是在对象方动画播放的时候,怎么才能变成使用方动画播放的时候,脚本调整那些地方啊




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