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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 66lcf1986
打印 上一主题 下一主题

[已经解决] RMVA辅助技能回合内持续显示,怎么做

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2015-3-1
帖子
42
11
 楼主| 发表于 2015-3-3 15:58:26 | 只看该作者

rmva技能发动后,想用一个光环持续在我方队员脚下显示三...

如题,设计了一个加防御,负面状态免疫的技能,并添加好了相应的状态,但是想用一个光环图片在我方队员脚下持续显现,按照系统设定,无法使图片定义在我方队员脚下,求大神解决。谢谢。~
图书馆中的光环技能脚本用了,白搭,求解。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
12
发表于 2015-3-3 22:35:02 | 只看该作者
呼,这个问题你问了很多遍了,我也给过你回答了,MOG的MOG_Animation_+脚本可以实现,你说你不会英文,我现在把脚本贴给你:
脚本来自MOG,用法:在数据库-状态页签-需要循环动画的状态的备注栏里填写<Loop Animation = ID>,其中ID是循环播放动画的ID
  1. #==============================================================================
  2. # +++ MOG - Animation + (V1.2) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com
  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,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. # ● Histórico (Version History)
  59. #==============================================================================
  60. # v 1.2 - Corrigido o erro da prioridade das animações.
  61. #       - Corrigido o erro de não apresentar as animações de condições.
  62. # v 1.1 - Corrigido o erro de acionar a animação fora da batalha.
  63. #==============================================================================


  64. #==============================================================================
  65. # ■ Game Battler
  66. #==============================================================================
  67. class Game_Battler < Game_BattlerBase

  68.   attr_accessor :animation_loop

  69.   #--------------------------------------------------------------------------
  70.   # ● Initialize
  71.   #--------------------------------------------------------------------------
  72.   alias mog_animation_plus_initialize initialize
  73.   def initialize
  74.       mog_animation_plus_initialize
  75.       @animation_loop = []
  76.   end
  77.   
  78.   #--------------------------------------------------------------------------
  79.   # ● Add New State
  80.   #--------------------------------------------------------------------------               
  81.   alias mog_animation_plus_add_new_state add_new_state
  82.   def add_new_state(state_id)
  83.       mog_animation_plus_add_new_state(state_id)
  84.       check_loop_animation
  85.   end   
  86.   
  87.   #--------------------------------------------------------------------------
  88.   # ● Erase State
  89.   #--------------------------------------------------------------------------            
  90.   alias mog_animation_plus_erase_state erase_state
  91.   def erase_state(state_id)  
  92.       mog_animation_plus_erase_state(state_id)  
  93.       check_loop_animation
  94.   end  
  95.   
  96.   #--------------------------------------------------------------------------
  97.   # ● Check Loop Animation
  98.   #--------------------------------------------------------------------------               
  99.   def check_loop_animation
  100.       @animation_loop.clear
  101.       index = 1
  102.       for i in self.states
  103.           if i.note =~ /<Loop Animation = (\d+)>/i            
  104.              #@animation_loop.push([$1.to_i,0, index, true])
  105.              @animation_loop.push([$1.to_i,MOG_ANIMATION_PLUS::STATES_LOOP_SPEED, index, true])
  106.              index += 1
  107.           end   
  108.       end
  109.   end
  110.       
  111.   #--------------------------------------------------------------------------
  112.   # ● Item Apply
  113.   #--------------------------------------------------------------------------           
  114.   alias mog_animation_plus_item_apply item_apply
  115.   def item_apply(user, item)
  116.       mog_animation_plus_item_apply(user, item)
  117.       execute_animation_plus_hit(item) if @result.success
  118.   end
  119.   
  120.   #--------------------------------------------------------------------------
  121.   # ● Execute Animation Plus Hit
  122.   #--------------------------------------------------------------------------           
  123.   def execute_animation_plus_hit(item)
  124.       return if item == nil
  125.       return if !SceneManager.scene_is?(Scene_Battle)
  126.       self.animation_id = $1.to_i if item.note =~ /<Hit Animation = (\d+)>/i   
  127.       if self.dead?
  128.          if self.is_a?(Game_Enemy)
  129.             battler = $data_enemies[self.enemy_id]
  130.          else
  131.             battler = $data_actors[self.id]
  132.          end  
  133.          self.animation_id = $1.to_i if battler.note =~ /<Death Animation = (\d+)>/i
  134.       end
  135.   end
  136.   
  137. end

  138. #==============================================================================
  139. # ■ Sprite_Base
  140. #==============================================================================
  141. class Sprite_Base < Sprite  

  142.   #--------------------------------------------------------------------------
  143.   # ● Battle Animation?
  144.   #--------------------------------------------------------------------------            
  145.   def battle_animation?
  146.       if @animation != nil
  147.          if MOG_ANIMATION_PLUS::IGNORE_WAIT_TIME_ANIMATION_ID.include?(@animation.id)
  148.             return false
  149.          end
  150.          return true         
  151.       end  
  152.       return false
  153.   end
  154.   
  155. end  


  156. #==============================================================================
  157. # ■ Sprite Battler
  158. #==============================================================================
  159. class Sprite_Battler < Sprite_Base
  160.   
  161.   #--------------------------------------------------------------------------
  162.   # ● Update Position
  163.   #--------------------------------------------------------------------------            
  164.   alias mog_animation_plus_update_position update_position
  165.   def update_position
  166.       mog_animation_plus_update_position
  167.       update_loop_animation
  168.     #  update_z_correction
  169.   end
  170.   
  171.   #--------------------------------------------------------------------------
  172.   # ● Update Loop Animation
  173.   #--------------------------------------------------------------------------               
  174.   def update_loop_animation
  175.       #@animation_loop.clear
  176.       #index = 1
  177.       #for i in self.states
  178.       #    if i.note =~ /<Loop Animation = (\d+)>/i            
  179.       #       @animation_loop.push([$1.to_i,0, index, true])
  180.       #       index += 1
  181.       #    end   
  182.       #end
  183.       return if BattleManager.in_turn?
  184.       return if self.animation?
  185.       return if @battler.animation_loop.empty? or @battler.dead?  
  186.       for i in @battler.animation_loop
  187.           next if !i[3]
  188.           i[1] += 1
  189.           if i[1] >= MOG_ANIMATION_PLUS::STATES_LOOP_SPEED
  190.              i[1] = 0
  191.              @battler.animation_id = i[0]
  192.              i[3] = false
  193.              if i[2] >= @battler.animation_loop.size
  194.                 for i in @battler.animation_loop
  195.                     i[1] = 0
  196.                     i[3] = true
  197.                 end                 
  198.             end  
  199.           end
  200.           break           
  201.       end        
  202.   end
  203.   
  204.   #--------------------------------------------------------------------------
  205.   # ● Update Z Correction
  206.   #--------------------------------------------------------------------------                  
  207.   def update_z_correction
  208.       return if !@animation
  209.       index = 0
  210.       @ani_sprites.each do |sprite|
  211.            sprite.z = self.z + 1 + index
  212.            index += 0
  213.       end
  214.   end  
  215.   
  216. end

  217. #==============================================================================
  218. # ■ Spriteset_Battle
  219. #==============================================================================
  220. class Spriteset_Battle
  221.   
  222.   #--------------------------------------------------------------------------
  223.   # ● Animation?
  224.   #--------------------------------------------------------------------------                     
  225.   def animation?
  226.       battler_sprites.any? {|sprite| sprite.battle_animation? }
  227.   end  
  228.   
  229. end

  230. #==============================================================================
  231. # ■ Scene Battle
  232. #==============================================================================
  233. class Scene_Battle < Scene_Base

  234.   #--------------------------------------------------------------------------
  235.   # ● Start
  236.   #--------------------------------------------------------------------------
  237.   alias mog_animation_plus_start start
  238.   def start
  239.       $game_party.members.each {|actor| actor.check_loop_animation }   
  240.       mog_animation_plus_start
  241.   end

  242.   #--------------------------------------------------------------------------
  243.   # ● Use Item
  244.   #--------------------------------------------------------------------------         
  245.   alias mog_animation_plus_use_item use_item
  246.   def use_item
  247.       execute_cast_animation
  248.       mog_animation_plus_use_item        
  249.   end

  250.   #--------------------------------------------------------------------------
  251.   # ● Execute Cast Animation
  252.   #--------------------------------------------------------------------------      
  253.   def execute_cast_animation
  254.       return if @subject.current_action.item == nil rescue return
  255.       item = @subject.current_action.item
  256.       if item.note =~ /<Use Animation = (\d+)>/i
  257.          execute_animation(@subject, $1.to_i,false)   
  258.       elsif item.note =~ /<Wait Use Animation = (\d+)>/i  
  259.          execute_animation(@subject, $1.to_i,true)   
  260.       end  
  261.   end  
  262.   
  263.   #--------------------------------------------------------------------------
  264.   # ● Execute Animation
  265.   #--------------------------------------------------------------------------     
  266.   def execute_animation(subject , anime_id = 0, wait_animation = false)
  267.       return if anime_id <= 0 or subject == nil
  268.       subject.animation_id = anime_id rescue nil
  269.       if wait_animation
  270.          duration = ($data_animations[anime_id].frame_max * 4) + 1
  271.          for i in 0..duration
  272.              @spriteset.update
  273.              Graphics.update
  274.          end      
  275.       end   
  276.   end  
  277.   
  278. end   

  279. #==============================================================================
  280. # ■ Game Actor
  281. #==============================================================================
  282. class Game_Actor < Game_Battler

  283.   #--------------------------------------------------------------------------
  284.   # ● Level UP
  285.   #--------------------------------------------------------------------------      
  286.   alias mog_animation_plus_level_up level_up
  287.   def level_up
  288.        mog_animation_plus_level_up
  289.        if use_sprite? and SceneManager.scene_is?(Scene_Battle)
  290.           self.animation_id = MOG_ANIMATION_PLUS::LEVEL_UP_ANIMATION
  291.        end   
  292.   end

  293. end

  294. $mog_rgss3_animation_plus = true
复制代码

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2015-3-1
帖子
42
13
 楼主| 发表于 2015-3-3 22:54:04 | 只看该作者
tan12345 发表于 2015-3-3 22:35
呼,这个问题你问了很多遍了,我也给过你回答了,MOG的MOG_Animation_+脚本可以实现,你说你不会英文,我现 ...

现在弄明白了,大神,是不是将技能的动画ID,如我的是神圣守护技能发动后,循环显示图片,光环1,不是动画,所以弄了好久,弄不好。我按照你说的,将466号ID,神圣守护动画,代入进去,却总是出错,现在我把工程给你船到这里来,看大神是否有空,解决下。
目前脚本ID,已经带入了,但是出错,大神看下脚本那个地方错了,工程已经上传,附带我的素材。技能动画是用了两个光效素材做的,所以我用技能号码466,带入的ID,不知道这种方法对不对?
因本人才接触VA一个月多点,所以刚学习脚本,希望能看懂脚本,找出错误,谢谢大神的一路关注和扶持,谢谢!~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
14
发表于 2015-3-4 10:48:45 | 只看该作者
66lcf1986 发表于 2015-3-3 22:54
现在弄明白了,大神,是不是将技能的动画ID,如我的是神圣守护技能发动后,循环显示图片,光环1,不是动 ...

给你举个例子吧,例如,11号技能使用后对自己附加22号状态,这个状态要循环显示33号动画,那么,在数据库-状态-22号状态的备注栏里填写<Loop Animation = 33>
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2015-3-1
帖子
42
15
 楼主| 发表于 2015-3-4 18:34:21 | 只看该作者
tan12345 发表于 2015-3-4 10:48
给你举个例子吧,例如,11号技能使用后对自己附加22号状态,这个状态要循环显示33号动画,那么,在数据库 ...

终于解决问题了,原来是因为脚本多了,我把这个脚本放到上面,才能循环显示,放到下面是不显示的,谢谢大神的帮助,谢谢了、
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 20:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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