查看: 2127|回复: 4

[已经过期] 如何让技能先执行“使用效果”,再执行技能本身?

[复制链接]
梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
回帖
184
发表于 2016-11-19 22:24:54 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 眼中目之瞳 于 2016-11-19 22:30 编辑

一般的顺序不都是:播放技能动画(然后对目标造成效果)→“使用效果”栏目下的各项
改成:“使用效果”栏目下的各项→播放技能动画(然后对目标造成效果)
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-11-20 09:45:33 | 显示全部楼层
[pre lang="ruby"]
class Scene_Battle < Scene_Base
  
  def use_item
        item = @subject.current_action.item
        @log_window.display_use_item(@subject, item)
        @subject.use_item(item)
        refresh_status
        targets = @subject.current_action.make_targets.compact
    if item.is_a?(RPG::Skill) && [5,6,7,8].include?(item.id) #技能,ID:5,6,7,8
      targets.each {|target| item.repeats.times { invoke_item(target, item) } }
      show_animation(targets, item.animation_id)
    else  
      show_animation(targets, item.animation_id)
      targets.each {|target| item.repeats.times { invoke_item(target, item) } }
    end  
        end
  
end
[/pre]

使用此插件脚本,并更改技能ID。如果要物品或者物品和技能都有的话请注明。

此脚本的原理是在Scene_Battle(战斗场景)的use_item(使用物品)方法(就是掌控执行使用效果和播放动画的地方)内增加判定,让某些技能的播放动画/技能效果执行顺序反过来。
if item.is_a?(RPG::Skill)是判定使用的是否技能。如果是物品的话,要放RPG::Item。&& 是“和”的符号,而 [1,2,3,4].include?(item.id) 是如果数组 [1,2,3,4] 里面包含技能/物品的ID的话,判定就成功。

回复

使用道具 举报

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
回帖
184
 楼主| 发表于 2016-11-20 20:54:24 | 显示全部楼层
RaidenInfinity 发表于 2016-11-20 09:45
class Scene_Battle < Scene_Base
  
  def use_item

出了点问题……在添加了脚本后原本一个根据使用者ID更改变量的脚本无效了,而且出现了敌我双方的行动栏不消失的情况
bandicam 2016-11-20 20-49-30-133.jpg

这个是被无效了的脚本
[pre lang="ruby"]class Scene_Battle < Scene_Base
      #--------------------------------------------------------------------------
      # ● 使用技能/物品
      #--------------------------------------------------------------------------
      alias sny46_161005_use_item use_item
      def use_item
        # 如果使用者是我方角色,11号变量在释放的时候赋值为使用者ID
        $game_variables[11] = @subject.id if @subject.is_a?(Game_Actor)
        $game_variables[12] = @subject.enemy_id if @subject.is_a?(Game_Enemy)
        sny46_161005_use_item
      end
    end[/pre]
回复

使用道具 举报

梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-11-20 20:58:32 | 显示全部楼层
把我提供的脚本放在失效脚本的上面即可。
回复

使用道具 举报

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
回帖
184
 楼主| 发表于 2016-11-20 21:49:26 | 显示全部楼层
本帖最后由 眼中目之瞳 于 2016-11-20 21:54 编辑
RaidenInfinity 发表于 2016-11-20 20:58
把我提供的脚本放在失效脚本的上面即可。


放在上面了,失效的脚本没问题了,但依旧没有效果,释放技能时的说明依旧像上图那样全部显示,不消失
bandicam 2016-11-20 21-47-15-006.jpg bandicam 2016-11-20 21-47-17-829.jpg bandicam 2016-11-20 21-47-26-628.jpg bandicam 2016-11-20 21-47-39-223.jpg
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部