查看: 3354|回复: 5

[已经解决] 敌人死亡前执行事件

[复制链接]
梦石
0
星屑
10345
在线时间
1117 小时
注册时间
2015-2-10
回帖
164
发表于 2016-10-22 16:24:59 来自手机 | 显示全部楼层 |阅读模式

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

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

×
如何在战斗时设置一个事件,当某个敌人hp为0即将死亡前执行,执行完后敌人再死亡?
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-10-22 18:09:50 | 显示全部楼层
我不知道你有没有用其他影响界面的脚本系统,所以我基于默认系统来写。

使用这段脚本:

[pre lang="ruby"]
class Window_BattleLog < Window_Selectable

  def display_added_states(target)
    target.result.added_state_objects.each do |state|
      state_msg = target.actor? ? state.message1 : state.message2
      $game_troop.setup_battle_event
      if state.id == target.death_state_id
          $game_troop.setup_battle_event
          SceneManager.scene.update_for_interpreter while $game_troop.interpreter.running?
          target.perform_collapse_effect
      end
      next if state_msg.empty?
      replace_text(target.name + state_msg)
      wait
      wait_for_effect
    end
  end
  
end

class Scene_Battle < Scene_Base

  def update_for_interpreter
    update_basic
    $game_troop.interpreter.update
  end
  
end
[/pre]

然后就可以在敌群的事件设置使用体力值等于0%来触发你要的效果。
1.PNG
回复

使用道具 举报

梦石
0
星屑
10345
在线时间
1117 小时
注册时间
2015-2-10
回帖
164
 楼主| 发表于 2016-10-22 21:40:16 | 显示全部楼层
RaidenInfinity 发表于 2016-10-22 18:09
我不知道你有没有用其他影响界面的脚本系统,所以我基于默认系统来写。

使用这段脚本:

大部分事件可以执行,但在即将死去的敌人身上显示动画却显示不出来是怎么回事?
回复

使用道具 举报

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

开拓者剧作品鉴家

发表于 2016-10-22 22:17:31 | 显示全部楼层
本帖最后由 RaidenInfinity 于 2016-10-23 10:15 编辑

默认的战斗动画播放指令会检测敌人是否存活。
因此,需要用事件脚本指令来手动执行。

[pre lang="ruby"]
iterate_enemy_index(敌人序列 - 1) do |enemy|
enemy.animation_id = 动画ID
a = $data_animations[enemy.animation_id]
(a.frame_max  * 4).times do Fiber.yield end
end

#如果要第3个敌人,那就写
#iterate_enemy_index(2)
#以此类推
[/pre]

用法: (例子:在第4个敌人身上播放1号动画)
1.PNG
*注:脚本已经修正,请以上列脚本为准。

评分

参与人数 2星屑 +260 梦石 +1 收起 理由
怪蜀黍 + 250 + 1 楼主认可的解答
fbeds + 10 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
10345
在线时间
1117 小时
注册时间
2015-2-10
回帖
164
 楼主| 发表于 2016-10-23 08:55:50 | 显示全部楼层
RaidenInfinity 发表于 2016-10-22 22:17
默认的战斗动画播放指令会检测敌人是否存活。
因此,需要用事件脚本指令来手动执行。

不行啊,在即将死去的敌人身上显示动画前敌人就会消失了,动画也只会有声音。

点评

4楼的脚本指令已经修正了。加了等待动画播放完成的判定。  发表于 2016-10-23 10:17
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部