Project1

标题: 请问如何让玩家佩戴特定的装备时,敌人的某技能表现不同 [打印本页]

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

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

另:我使用了BattleCore.js,但是仍然不知道如何使得技能中的使用者和目标与事件里的user、current target绑定
作者: dunklen.f    时间: 2025-3-26 19:24
1、安装插件:VisuMZ_1_BattleCore.js
2、在角色备注栏写:
JAVASCRIPT 代码复制
  1. <JS Pre-Damage As Target>
  2.   //角色受到伤害前
  3.   if (target.hasArmor($dataArmors[n]) && this.isHpEffect() && value > 0 && user.enemyId() == m) {
  4.       //角色持有护甲(n需要根据自己游戏情况填写),敌人为亡灵(m需根据游戏情况填写)
  5.       value = 0; //不会受到伤害
  6.       let fanshang = 5;
  7.       user.gainHp(-fanshang); //攻击者(亡灵受到5点伤害)
  8.       user.startDamagePopup();
  9.       user.addState(id); //亡灵附加燃烧状态,id根据自己游戏写
  10.   }
  11. </JS Pre-Damage As Target>

在自己工程中测试过没啥问题,更多的功能可以自行添加。

PS. 找脚本代码可以从这个网页里面搜索。非常好的脚本调用手册
虽然是MV的脚本,大部分MZ也可以使用
作者: xiaohuangdi    时间: 2025-3-27 05:18
有意思嗎?沒意思
玩家能知道這個觸發點嗎?重複觸發會降低玩家體驗感;
要想做成游戲,放棄這些不切實際的做法,把時間和精力花在主要的地方。
要想達到劇情效果,又讓玩家有參與感,直接劇情描述就行。
你這個就跟戰鬥内劇情需要某個角色無敵幾回合一樣沒意思,幾十年前就問過了,這種游戲沒一個成事的。
作者: 玛丽的对头    时间: 2025-3-29 04:53
dunklen.f 发表于 2025-3-26 19:24
1、安装插件:VisuMZ_1_BattleCore.js
2、在角色备注栏写:

十分感谢解答!在进行编码时又伴随如下问题:
1.如何保证:使用某个技能的时候才触发?
2.如何确保反伤是反火属性伤害?(比如有受到200%火属性伤害的不死生物会正常受到200%火属性伤害)
作者: dunklen.f    时间: 2025-3-31 19:28
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>


作者: 玛丽的对头    时间: 2025-4-2 08:08
dunklen.f 发表于 2025-3-31 19:28
1、你想表达的是特定技能触发反伤么?直接改备注栏标签即可
角色备注栏中改为技能 ...

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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1