查看: 1225|回复: 5

[有事请教] 请问如何让玩家佩戴特定的装备时,敌人的某技能表现不同

[复制链接]
梦石
0
星屑
738
在线时间
8 小时
注册时间
2017-5-9
回帖
2
发表于 2025-3-26 07:27:32 | 显示全部楼层 |阅读模式

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

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

×
请问如何实现“敌人用某个技能攻击角色时,如果该角色身上正在穿戴某个装备,则不造成伤害改为播放一个事件。”
我想做的效果是:如果我身上穿着圣光铠甲,那么亡灵使用近身攻击的时候不会对我造成伤害,反而他们会受到5点光属性伤害并添加燃烧状态,如果我没穿圣光铠甲,则我正常受到a.atk - b.def伤害。

如果用开关和事件来模拟的话,我发现有三个难点。
1.无法在事件中指明敌人的目标是谁。
2.开关无法随时检测玩家当前是否装备了某个装备(战斗中可以换装备)
3.伤害公式是否能写在事件里?

另:我使用了BattleCore.js,但是仍然不知道如何使得技能中的使用者和目标与事件里的user、current target绑定
梦石
0
星屑
10175
在线时间
1096 小时
注册时间
2016-8-22
回帖
59

开拓者

发表于 2025-3-26 19:24:51 | 显示全部楼层
1、安装插件:VisuMZ_1_BattleCore.js
2、在角色备注栏写:
[pre lang="javascript"]<JS Pre-Damage As Target>
  //角色受到伤害前
  if (target.hasArmor($dataArmors[n]) && this.isHpEffect() && value > 0 && user.enemyId() == m) {
      //角色持有护甲(n需要根据自己游戏情况填写),敌人为亡灵(m需根据游戏情况填写)
      value = 0; //不会受到伤害
      let fanshang = 5;
      user.gainHp(-fanshang); //攻击者(亡灵受到5点伤害)
      user.startDamagePopup();
      user.addState(id); //亡灵附加燃烧状态,id根据自己游戏写
  }
</JS Pre-Damage As Target>[/pre]
在自己工程中测试过没啥问题,更多的功能可以自行添加。

PS. 找脚本代码可以从这个网页里面搜索。非常好的脚本调用手册
虽然是MV的脚本,大部分MZ也可以使用
回复

使用道具 举报

梦石
0
星屑
8177
在线时间
1873 小时
注册时间
2017-10-23
回帖
351
发表于 2025-3-27 05:18:30 | 显示全部楼层
有意思嗎?沒意思
玩家能知道這個觸發點嗎?重複觸發會降低玩家體驗感;
要想做成游戲,放棄這些不切實際的做法,把時間和精力花在主要的地方。
要想達到劇情效果,又讓玩家有參與感,直接劇情描述就行。
你這個就跟戰鬥内劇情需要某個角色無敵幾回合一樣沒意思,幾十年前就問過了,這種游戲沒一個成事的。
回复 0 1

使用道具 举报

梦石
0
星屑
738
在线时间
8 小时
注册时间
2017-5-9
回帖
2
 楼主| 发表于 2025-3-29 04:53:28 | 显示全部楼层
dunklen.f 发表于 2025-3-26 19:24
1、安装插件:VisuMZ_1_BattleCore.js
2、在角色备注栏写:

十分感谢解答!在进行编码时又伴随如下问题:
1.如何保证:使用某个技能的时候才触发?
2.如何确保反伤是反火属性伤害?(比如有受到200%火属性伤害的不死生物会正常受到200%火属性伤害)
回复

使用道具 举报

梦石
0
星屑
10175
在线时间
1096 小时
注册时间
2016-8-22
回帖
59

开拓者

发表于 2025-3-31 19:28:32 | 显示全部楼层
1、你想表达的是特定技能触发反伤么?直接改备注栏标签即可
角色备注栏中<JS Pre-Damage As Target>改为技能备注栏<JS Pre-Damage>


2、特定属性--不会。
但是反伤翻倍--可以。

在技能备注栏中写:
<JS Pre-Damage>
    if (target.hasArmor($dataArmors[n]) && this.isHpEffect() && value > 0 && user.enemyId() == m) {
      let fanshang = value * 2; //备注自行定义
      value = 0;
      user.gainHp(-fanshang);
      user.startDamagePopup();
      user.addState(id);
  }
</JS Pre-Damage>

回复 1 0

使用道具 举报

梦石
0
星屑
738
在线时间
8 小时
注册时间
2017-5-9
回帖
2
 楼主| 发表于 2025-4-2 08:08:24 | 显示全部楼层
dunklen.f 发表于 2025-3-31 19:28
1、你想表达的是特定技能触发反伤么?直接改备注栏标签即可
角色备注栏中改为技能 ...

哦哦感谢!我一直不知道怎么在代码里锁定使用技能,没想过可以直接在技能里写……感谢!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部