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

Project1

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

[已经过期] 状态动画的问题。。。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1524
在线时间
31 小时
注册时间
2014-2-13
帖子
4
跳转到指定楼层
1
发表于 2014-10-17 18:03:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 Dawn_Flame 于 2014-10-17 20:24 编辑


  貌似没人懂。。算了。。。那那个如何让附加状态后就有动画在目标身上呢。。。
RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Animation + (V1.5) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com[/url]
  6. #==============================================================================
  7. # - O script adiciona algumas funções extras para apresentar as animações
  8. # de batalha.
  9. #==============================================================================
  10. # Coloque as tags abaixo na caixa de notas das habilidades ou itens.
  11. #
  12. # ID = ID of Animation.
  13. #
  14. #------------------------------------------------------------------------------
  15. # ● HIT ANIMATION ●
  16. #
  17. # <Hit Animation = ID>
  18. #
  19. #------------------------------------------------------------------------------
  20. # ● USE ANIMATION (TYPE 1) ●
  21. #
  22. # <Use Animation = ID>
  23. #
  24. #------------------------------------------------------------------------------
  25. # ● USE ANIMATION (TYPE 2) ● (Wait for animation to complete)
  26. #
  27. # <Wait Use Animation = ID>
  28. #
  29. #------------------------------------------------------------------------------
  30. # ● STATES ANIMATION (LOOP) ● (States Tab)
  31. #
  32. # <Loop Animation = ID>
  33. #
  34. #------------------------------------------------------------------------------
  35. # ● DEATH ANIMATION ● (Enemy or Actor Tab)
  36. #
  37. # <Death Animation = ID>
  38. #
  39. #==============================================================================
  40. module MOG_ANIMATION_PLUS
  41.    # Defina aqui as IDs das animações que irão ignorar o tempo de espera
  42.    # para fluir a batalha, caso contrário o sistema de batalha vai
  43.    # esperar todas as animações sem excessão terminarem para poder prosseguir
  44.    # para o próximo estágio de batalha.
  45.    #
  46.    # É aconselhável colocar as animações das condições nesta opção para evitar
  47.    # que o sistema espere a animação do loop terminar.
  48.    #
  49.    IGNORE_WAIT_TIME_ANIMATION_ID = [1,69,109,114,115,116,117,118,119,120]
  50.  
  51.    #Velocidade de loop entre as animações.
  52.    STATES_LOOP_SPEED = 30
  53.  
  54.    #Definição da animação de level UP.
  55.    LEVEL_UP_ANIMATION = 37
  56. end
  57.  
  58. #==============================================================================
  59. # Atualizações desta versão.
  60. #============================================================================
  61. # (Ver 1.4) - Melhoria na compatibilidade com o script Battle Hud EX.
  62. #==============================================================================
  63.  
  64. $imported = {} if $imported.nil?
  65. $imported[:mog_animation_plus] = true
  66.  
  67. #==============================================================================
  68. # ■ Game Battler
  69. #==============================================================================
  70. class Game_Battler < Game_BattlerBase
  71.  
  72.   attr_accessor :animation_loop
  73.  
  74.   #--------------------------------------------------------------------------
  75.   # ● Initialize
  76.   #--------------------------------------------------------------------------
  77.   alias mog_animation_plus_initialize initialize
  78.   def initialize
  79.       mog_animation_plus_initialize
  80.       @animation_loop = []
  81.   end
  82.  
  83.   #--------------------------------------------------------------------------
  84.   # ● Add New State
  85.   #--------------------------------------------------------------------------               
  86.   alias mog_animation_plus_add_new_state add_new_state
  87.   def add_new_state(state_id)
  88.       mog_animation_plus_add_new_state(state_id)
  89.       check_loop_animation
  90.   end   
  91.  
  92.   #--------------------------------------------------------------------------
  93.   # ● Erase State
  94.   #--------------------------------------------------------------------------            
  95.   alias mog_animation_plus_erase_state erase_state
  96.   def erase_state(state_id)  
  97.       mog_animation_plus_erase_state(state_id)  
  98.       check_loop_animation
  99.   end  
  100.  
  101.   #--------------------------------------------------------------------------
  102.   # ● Check Loop Animation
  103.   #--------------------------------------------------------------------------               
  104.   def check_loop_animation
  105.       @animation_loop.clear
  106.       self.states.each_with_index do |i, index|
  107.       if i.note =~ /<Loop Animation = (\d+)>/i   
  108.          @animation_loop.push([$1.to_i,0, index + 1, true])
  109.       end
  110.       end
  111.   end
  112.  
  113.   #--------------------------------------------------------------------------
  114.   # ● Item Apply
  115.   #--------------------------------------------------------------------------           
  116.   alias mog_animation_plus_item_apply item_apply
  117.   def item_apply(user, item)
  118.       mog_animation_plus_item_apply(user, item)
  119.       execute_animation_plus_hit(item) if @result.success
  120.   end
  121.  
  122.   #--------------------------------------------------------------------------
  123.   # ● Execute Animation Plus Hit
  124.   #--------------------------------------------------------------------------           
  125.   def execute_animation_plus_hit(item)
  126.       return if item == nil
  127.       return if !SceneManager.scene_is?(Scene_Battle)
  128.       self.animation_id = $1.to_i if item.note =~ /<Hit Animation = (\d+)>/i   
  129.       if self.dead?
  130.          if self.is_a?(Game_Enemy)
  131.             battler = $data_enemies[self.enemy_id]
  132.          else
  133.             battler = $data_actors[self.id]
  134.          end  
  135.          self.animation_id = $1.to_i if battler.note =~ /<Death Animation = (\d+)>/i
  136.       end
  137.   end
  138.  
  139. end
  140.  
  141. #==============================================================================
  142. # ■ Sprite_Base
  143. #==============================================================================
  144. class Sprite_Base < Sprite  
  145.  
  146.   #--------------------------------------------------------------------------
  147.   # ● Battle Animation?
  148.   #--------------------------------------------------------------------------            
  149.   def battle_animation?
  150.       if @animation != nil
  151.          if MOG_ANIMATION_PLUS::IGNORE_WAIT_TIME_ANIMATION_ID.include?(@animation.id)
  152.             return false
  153.          end
  154.          return true         
  155.       end  
  156.       return false
  157.   end
  158.  
  159. end  
  160.  
  161.  
  162. #==============================================================================
  163. # ■ Sprite Battler
  164. #==============================================================================
  165. class Sprite_Battler < Sprite_Base
  166.  
  167.   #--------------------------------------------------------------------------
  168.   # ● Update Position
  169.   #--------------------------------------------------------------------------            
  170.   alias mog_animation_plus_update_position update_position
  171.   def update_position
  172.       mog_animation_plus_update_position
  173.       update_loop_animation if can_loop_animation?
  174.   end
  175.  
  176.   #--------------------------------------------------------------------------
  177.   # ● Can Loop Animation?
  178.   #--------------------------------------------------------------------------            
  179.   def can_loop_animation?
  180.       return false if BattleManager.in_turn?
  181.       return false if self.animation?
  182.       return false if @battler.animation_loop.empty? or @battler.dead?  
  183.       if $imported[:mog_battle_hud_ex]
  184.       return false if $game_message.visible and MOG_BATTLE_HUD_EX::MESSAGE_WINDOW_FADE_HUD
  185.       return false if !$game_temp.battle_hud_visible
  186.       end         
  187.       return true
  188.   end
  189.  
  190.   #--------------------------------------------------------------------------
  191.   # ● Update Loop Animation
  192.   #--------------------------------------------------------------------------               
  193.   def update_loop_animation
  194.       for i in @battler.animation_loop
  195.           next if !i[3]
  196.           i[1] += 1
  197.           if i[1] >= MOG_ANIMATION_PLUS::STATES_LOOP_SPEED
  198.              i[1] = 0 ; @battler.animation_id = i[0] ; i[3] = false
  199.              if i[2] >= @battler.animation_loop.size
  200.                 for i in @battler.animation_loop
  201.                     i[1] = 0 ; i[3] = true
  202.                 end                 
  203.             end  
  204.           end
  205.           break           
  206.       end        
  207.   end
  208.  
  209.   #--------------------------------------------------------------------------
  210.   # ● Update Z Correction
  211.   #--------------------------------------------------------------------------                  
  212.   def update_z_correction
  213.       return if !@animation
  214.       @ani_sprites.each do |sprite| sprite.z = self.z + 1 end
  215.   end  
  216.  
  217. end
  218.  
  219. #==============================================================================
  220. # ■ Spriteset_Battle
  221. #==============================================================================
  222. class Spriteset_Battle
  223.  
  224.   #--------------------------------------------------------------------------
  225.   # ● Animation?
  226.   #--------------------------------------------------------------------------                     
  227.   def animation?
  228.       battler_sprites.any? {|sprite| sprite.battle_animation? }
  229.   end  
  230.  
  231. end
  232.  
  233. #==============================================================================
  234. # ■ Scene Battle
  235. #==============================================================================
  236. class Scene_Battle < Scene_Base
  237.  
  238.   #--------------------------------------------------------------------------
  239.   # ● Start
  240.   #--------------------------------------------------------------------------
  241.   alias mog_animation_plus_start start
  242.   def start
  243.       $game_party.members.each {|actor| actor.check_loop_animation }   
  244.       mog_animation_plus_start
  245.   end
  246.  
  247.   #--------------------------------------------------------------------------
  248.   # ● Use Item
  249.   #--------------------------------------------------------------------------         
  250.   alias mog_animation_plus_use_item use_item
  251.   def use_item
  252.       execute_cast_animation
  253.       mog_animation_plus_use_item        
  254.   end
  255.  
  256.   #--------------------------------------------------------------------------
  257.   # ● Execute Cast Animation
  258.   #--------------------------------------------------------------------------      
  259.   def execute_cast_animation
  260.       return if @subject.current_action.item == nil rescue return
  261.       item = @subject.current_action.item
  262.       if item.note =~ /<Use Animation = (\d+)>/i
  263.          execute_animation(@subject, $1.to_i,false)   
  264.       elsif item.note =~ /<Wait Use Animation = (\d+)>/i  
  265.          execute_animation(@subject, $1.to_i,true)   
  266.       end  
  267.   end  
  268.  
  269.   #--------------------------------------------------------------------------
  270.   # ● Execute Animation
  271.   #--------------------------------------------------------------------------     
  272.   def execute_animation(subject , anime_id = 0, wait_animation = false)
  273.       return if anime_id <= 0 or subject == nil
  274.       subject.animation_id = anime_id rescue nil
  275.       if wait_animation
  276.          duration = ($data_animations[anime_id].frame_max * 4) + 1
  277.          for i in 0..duration
  278.              @spriteset.update ; Graphics.update
  279.          end      
  280.       end   
  281.   end  
  282.  
  283. end   
  284.  
  285. #==============================================================================
  286. # ■ Game Actor
  287. #==============================================================================
  288. class Game_Actor < Game_Battler
  289.  
  290.   #--------------------------------------------------------------------------
  291.   # ● Level UP
  292.   #--------------------------------------------------------------------------      
  293.   alias mog_animation_plus_level_up level_up
  294.   def level_up
  295.        mog_animation_plus_level_up
  296.        self.animation_id = MOG_ANIMATION_PLUS::LEVEL_UP_ANIMATION if can_lvup_animation?
  297.   end
  298.  
  299.   #--------------------------------------------------------------------------
  300.   # ● Can Lvup Animation
  301.   #--------------------------------------------------------------------------      
  302.   def can_lvup_animation?
  303.       return false if !use_sprite?
  304.       return false if !SceneManager.scene_is?(Scene_Battle)
  305.       if $imported[:mog_battle_hud_ex]
  306.           return false if $game_message.visible and MOG_BATTLE_HUD_EX::MESSAGE_WINDOW_FADE_HUD
  307.           return false if !$game_temp.battle_hud_visible
  308.       end
  309.       return true
  310.   end
  311.  
  312. end


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

本版积分规则

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

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

GMT+8, 2024-11-14 10:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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