每损失10%的hP,受到的伤害减少3%
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-05-11 21:09:06 |
👁️ 阅读: 32
要实现“每损失10%的HP,受到的伤害减少3%”,根据课程日志记录,可以通过设置伤害吸收来实现。你可以利用脚本检测人物当前HP百分比,并根据损失的血量比例动态设置伤害吸收。
核心思路是:在人物受到攻击或血量变化时,计算当前血量百分比,然后根据损失的血量(每10%一个阶段)来调整伤害吸收的比例。
一个简单的实现示例(在攻击触发或定时检测中):
```
#IF
#ACT
; 获取人物最大HP和当前HP
GetHumMaxHP N$最大HP
GetHumHP N$当前HP
; 计算当前血量百分比(保留整数)
FORMULATION <$STR(N$当前HP)> * 100 / <$STR(N$最大HP)> N$当前百分比 1
; 计算损失的血量百分比(每10%一个阶段)
FORMULATION (100 - <$STR(N$当前百分比)>) / 10 N$损失阶段 1
; 每损失10% HP,减少3%伤害,即增加3%伤害吸收
FORMULATION <$STR(N$损失阶段)> * 3 N$吸收比例
; 设置伤害吸收(例如总吸收值设为较大值,吸收比例根据阶段动态计算)
; 注意:SetSuckDamage 命令中吸收比例参数 1=0.1%,所以3%对应30
FORMULATION <$STR(N$吸收比例)> * 10 N$实际比例
SetSuckDamage = 10000 <$STR(N$实际比例)> 100
SENDMSG 6 当前血量损失阶段:<$STR(N$损失阶段)>,伤害吸收比例:<$STR(N$吸收比例)>%
```
**注意**:
1. 此脚本需要放在合适的触发点(例如攻击触发[@Attack]或[@Struck])或通过定时器循环检测。
2. `SetSuckDamage` 命令的参数说明:第二个参数是吸收比例,1代表0.1%,所以3%需要填30。
3. 伤害吸收值(第一个参数)可以根据需要调整,这里示例用了10000点总吸收值。
4. 该效果下线不保存,每次上线或触发时需要重新计算设置。
如果你希望该效果永久持续直到血量恢复,需要将计算逻辑放在攻击触发或定时检测中,以确保伤害吸收比例随着血量实时变化。
← 返回问答库