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

Project1

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

[有事请教] 【零脚本基础】mz伤害计算如何设置反伤?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
22
在线时间
2 小时
注册时间
2023-11-25
帖子
2
跳转到指定楼层
1
发表于 2023-11-26 09:51:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
mz是不是没办法一个技能同时作用使用者和被目标者,计算公式不同的时候。
比如伤害吸收25%,或者被反伤25%。

mv可以用公式
t=a.atk - b.def;a.hp-=t/4;t来执行
mz好像不能在里面直接用公式。。
用公共事件又不能记录变量值(上次伤害值)
而且就算用公共事件,也不能在战斗中显示“a受到x点反伤”这种战斗信息,只能弹出一个对话框。。
这该怎么办?

然后这种特性如何设置到装备上?
如果使用脚本的话现在是0基础,怎么获取数值,怎么输出。。

Lv1.梦旅人

梦石
0
星屑
22
在线时间
2 小时
注册时间
2023-11-25
帖子
2
2
 楼主| 发表于 2023-11-26 09:54:50 | 只看该作者
顺便再问问,能不能设置经验值以外的经验点,比如角色活着打赢一次战斗可以获得一点技能点,然后用于兑换技能。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
561
在线时间
213 小时
注册时间
2023-3-16
帖子
51
3
发表于 2023-11-26 13:20:49 | 只看该作者
Matthewliu7 发表于 2023-11-26 09:54
顺便再问问,能不能设置经验值以外的经验点,比如角色活着打赢一次战斗可以获得一点技能点,然后用于兑换技 ...

完全搞不来脚本的话不建议搞太复杂,你这一套除了技能点还要额外弄多货币商店,不然兑换技能的商店也没法做。技能点通用的话建议直接搞个叫技能点的隐藏物品,每个怪固定爆一个,学技能直接收物品发技能比较快。判定部分想按你想的硬做的话给每一个敌群加一个执行条件是1回合,执行间隔为战斗的事件,判定X角色在不在队伍里,在队伍就发一个X角色对应的技能点(变量或者物品),然后设个并行的公共事件,先判断开关X开着没有,然后分支,开着的情况判定X角色死没死,没死就关掉开关X,关着的情况下判定X角色死没死,死了就扣X一个技能点然后把开关X打开。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5787
在线时间
903 小时
注册时间
2018-9-29
帖子
399
4
发表于 2023-11-26 17:15:46 | 只看该作者
本帖最后由 sunhihi 于 2023-11-26 17:32 编辑

怎麼辦~寫插件摟~

先說第一個問題
因為最近才寫你講的狀況

t=a.atk - b.def;a.hp-=t/4;t
這種用法
在MZ也是可以的

不過這種情況沒有一個正常的介面
算是走後門

再來~不論是反擊還是反射
原生系統都沒有所謂的受損
一旦觸發反射或是反擊 傷害對象會立刻換成攻擊方
所以這點你靠公式怎樣都無法處理

再來一點反擊只有攻擊方使用一般攻擊時會觸拉
反射只有魔法攻擊會觸發

再來吸收設定 原生可以在技能實現
然後裝備在攻擊處直接設定那個吸血技能即可
但是!!! 吸血技能 原生只有 100%吸血

而且因為綁在技能
所以你其他技能的攻擊是沒有吸血效果的


再來第二個問題

我沒那個需求
所以PASS

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3041
在线时间
233 小时
注册时间
2021-4-22
帖子
217
5
发表于 2023-12-7 19:00:08 | 只看该作者
用这个不知道能不能实现http://www.yanfly.moe/wiki/Auto_Skill_Triggers_VisuStella_MZ
就是设置成自动触发技能,受到伤害时对敌人使用特定技能,技能公式就 敌人的攻击-使用者的防御 然后再怎么设置。
没试过不知道结果如何
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
921
在线时间
190 小时
注册时间
2023-7-14
帖子
86
6
发表于 2023-12-19 19:44:52 | 只看该作者
本帖最后由 catxiaolang 于 2023-12-19 20:13 编辑

使用Visu Battle Core可以实现,方法如下:

// 可用范围:角色,职业,武器,防具,状态,敌人,的备注栏

<JS Post-Damage As Target>
  // 当目标受到的伤害大于0且是物理攻击时
  if (value > 0 && this.isPhysical()) {
    const rate = 0.1; // 反伤率,当前为原始伤害的10%
    const recoil = value * rate; // 计算基础反伤值

    const defRate = 0.25; // 防御系数,当前为目标防御值的25%
    const bonus = target.def * defRate; // 计算基于防御的额外反伤

    const damage = Math.ceil(bonus + recoil); // 总反伤值
    user.gainHp(-damage); // 对攻击者应用反伤

    // 如果攻击者因反伤死亡,则执行倒下动作
    if (user.isDead()) {
      user.performCollapse();
    }
  }
</JS Post-Damage As Target>

方法出处:
https://forums.rpgmakerweb.com/i ... lla-plugins.143816/
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
921
在线时间
190 小时
注册时间
2023-7-14
帖子
86
7
发表于 2023-12-19 19:52:05 | 只看该作者
本帖最后由 catxiaolang 于 2023-12-19 19:56 编辑
dabaxhei 发表于 2023-12-7 19:00
用这个不知道能不能实现http://www.yanfly.moe/wiki/Auto_Skill_Triggers_VisuStella_MZ
就是设置成自动触 ...


这个方法的问题在于需要用额外的手段判断目标,否则反伤目标是随机的

判断目标的方法详见这个帖子(原帖是介绍如何实现反击,原理相同)
https://forums.rpgmakerweb.com/i ... ttack-state.142623/

然而我按着这个方法做出的反击技能给敌人用没有效果,由于不懂代码还没研究明白
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 08:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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