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

Project1

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

[有事请教] 问问,怎么让全队MP为0时触发某段剧情或者结局

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
7 小时
注册时间
2025-5-16
帖子
3
跳转到指定楼层
1
发表于 2026-5-19 21:57:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,想做那种无论在哪张地图,只要mp归0时就触发一段剧情的效果
试过用插件让mp为0时附加状态效果,然后通过状态触发公共事件......但触发不了,遂来请教怎么做orz

Lv5.捕梦者

梦石
0
星屑
41773
在线时间
5970 小时
注册时间
2006-11-10
帖子
6962
2
发表于 2026-5-20 09:57:33 | 只看该作者
最简单的方法是建个并行处理的公共事件, 用开关a控制, 然后公共事件用 条件分歧: $gameParty.members().reduce((a, c) => Math.max(a, c.mp), 0) < 1 套起来, 满足的时候去处理, 不满足的时候关闭开关A

然后就是想办法打开开关A了,  因为MP一般情况下不会消耗, 只有打开菜单使用技能,战斗 和事件处理三种情况下会让MP归0, 那么在这些地方打开开关A即可(让AI帮你写个打开菜单、战斗结束的时候打开开关A的插件, 这种简单的脚本应该很容易吧)

当然, 想省事的话, 就一直保持并行的公共事件开启状态, 取消不满足的时候关闭开关A, 直到触发后再关闭开关A,  我个人并不建议这样做, 并行处理会影响游戏的流畅度,能少则少

如果你除了以上三种情况外, 还有其他消耗MP的情况, 比如状态持续掉MP,地形伤害掉MP什么的, 那就让并行处理持续打开吧, 笑
回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5973
在线时间
261 小时
注册时间
2018-1-22
帖子
211
3
发表于 2026-5-20 10:25:31 | 只看该作者
也可以对Actor类override gainMp函数,HP、TP同理

  1. Game_Actor.prototype.gainMp = function(value) {
  2.     Game_Battler.prototype.gainMp.call(this, value);
  3.     if ($gameParty.members().every((actor) => actor.mp == 0))
  4.         $gameTemp.reserveCommonEvent(公共事件ID);
  5. };
复制代码
自分自身の神様になること
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
7 小时
注册时间
2025-5-16
帖子
3
4
 楼主| 发表于 2026-5-24 02:19:03 | 只看该作者
灯笼菜刀王 发表于 2026-5-20 09:57
最简单的方法是建个并行处理的公共事件, 用开关a控制, 然后公共事件用 条件分歧: $gameParty.members().red ...

感谢大佬!!解决了!谢谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
7 小时
注册时间
2025-5-16
帖子
3
5
 楼主| 发表于 2026-5-24 02:20:33 | 只看该作者
526396987 发表于 2026-5-20 10:25
也可以对Actor类override gainMp函数,HP、TP同理

原来如此!感谢..!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-4 20:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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