查看: 364|回复: 5

[有事请教] 请问如何给敌人一阶段锁血?

[复制链接]
梦石
0
星屑
15
在线时间
4 小时
注册时间
2026-8-11
回帖
1
发表于 2026-8-21 03:24:55 | 显示全部楼层 |阅读模式

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

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

×
老师们好,我想做出bs2第一个白兔boss那样的一阶段锁血二阶段切换立绘
但是我给敌人施加状态免疫无法战斗但依然会被打死,请问我该怎么做呢?
梦石
0
星屑
138
在线时间
24 小时
注册时间
2026-7-30
回帖
4
发表于 2026-8-21 04:48:34 | 显示全部楼层
插入以下脚本指令,即可实现锁血 ,可以设置条件每回合执行一次 比如,角色获得某状态后解除锁血,我这里写在战斗事件里测试是没问题的
  1. // 示例 数据库id第一个敌人锁血
  2. //$gameTroop.members()[0]._isLockHp = true;

  3. // 关闭锁血(转阶段前)
  4. //$gameTroop.members()[0]._isLockHp = false;
  5. //============================================
  6. // 锁血
  7. var _Game_Enemy_executeDamage = Game_Enemy.prototype.executeDamage;
  8. Game_Enemy.prototype.executeDamage = function (value) {
  9.     _Game_Enemy_executeDamage.call(this, value);
  10.     if (this._isLockHp) {
  11.         //this._hp = this.mhp; // 锁满血
  12.         this._hp = 1;
  13.     }
  14. };

  15. // 免疫秒杀
  16. var _Game_Enemy_die = Game_Enemy.prototype.die;
  17. Game_Enemy.prototype.die = function () {
  18.     if (this._isLockHp) {
  19.         //this._hp = this.mhp;
  20.         this._hp = 1;
  21.         return;
  22.     }
  23.     _Game_Enemy_die.call(this);
  24. };
复制代码
回复

使用道具 举报

梦石
0
星屑
15
在线时间
4 小时
注册时间
2026-8-11
回帖
1
 楼主| 发表于 2026-8-21 09:45:22 | 显示全部楼层
hxu6253 发表于 2026-8-21 04:48
插入以下脚本指令,即可实现锁血 ,可以设置条件每回合执行一次 比如,角色获得某状态后解除锁血,我这里写 ...


天呐太谢谢您了老师,真的非常感谢TT!
回复

使用道具 举报

梦石
0
星屑
138
在线时间
24 小时
注册时间
2026-7-30
回帖
4
发表于 2026-8-21 11:33:29 | 显示全部楼层
Crazw 发表于 2026-8-21 09:45
天呐太谢谢您了老师,真的非常感谢TT!

不客气,我也是刚接触mv没多久,这个思路可能会存在一些问题,比如写死了锁定后的血量
其实可以获取敌人当前HP,再用这个参数进行锁血更合理
还有那个不死之身状态不生效的原因也很简单,因为hp为0就会死亡,所以只需要加一个自动回血就能解决
回复

使用道具 举报

梦石
2
星屑
1066
在线时间
370 小时
注册时间
2015-2-2
回帖
126

超评测优秀

发表于 2026-8-27 11:10:10 | 显示全部楼层
直接打死后加入一个新的敌人(第二形态)就行了啊。锁血这种设计少用,它属于“反直觉设计”。
为什么要想那么多呢?夜空之下,冷风之中,其实也是一种美呢。一定会开启,梦之旅的!
回复

使用道具 举报

梦石
0
星屑
139
在线时间
15 小时
注册时间
2026-8-10
回帖
9
发表于 2026-9-12 22:15:52 | 显示全部楼层
天呐太谢谢您了老师,真的非常感谢TT!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部