在《传奇》游戏中,使用治疗BUFF可以为自己或队友恢复生命值。当敌人触发治疗BUFF时,可以使用以下脚本来回复自己的血量。
使用治疗BUFF回血脚本
检查BUFF是否已触发
使用以下条件语句检查治疗BUFF是否已触发:
#if
CHECKSOCKETABLEITEM 0 0 N2 S2
#act
goto @fybf
break
Copy
如果检测到BUFF已触发,则跳转到标签@fybf,否则直接跳过BUFF回血部分。
计算要回复的生命值
根据当前生命值和最大生命值计算要回复的生命值:
#if
CheckContainsText <$STR(S2)> 治疗lv1
random 98
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 20
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复20%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复20%血量,持续1秒!
Copy
在这个例子中,如果BUFF的等级是治疗lv1,则每秒回复20%的最大生命值。
重复步骤 2
重复步骤 2,直到BUFF的持续时间结束。
可调整的参数
CheckContainsText <$STR(S2)> 治疗lv1:检查BUFF是否为治疗lv1。
random 98:随机数范围,可以修改范围以控制BUFF的触发频率。
MUL n$治疗 20:每秒回复的生命值百分比,可以修改该值以调整回血速度。
脚本:传奇BUFF回血脚本触发,当前治疗Buff已触发每秒恢复%血量持续1秒,敌方触发治疗Buff、1秒内回复20%血量,当前治疗Buff已触发,每秒恢复20%血量,持续1秒
[@BUFF回血A]
{
#if
CHECKSOCKETABLEITEM 0 0 N2 S2
#act
goto @fybf
break
#elseact
break
#if
#act
HUMANHP + 0
break
[@fybf]
#if
CheckContainsText <$STR(S2)> 治疗lv1
random 98
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 20
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复20%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复20%血量,持续1秒!
#if
CheckContainsText <$STR(S2)> 治疗lv1
random 95
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 20
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复20%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复20%血量,持续1秒!
#if
CheckContainsText <$STR(S2)> 治疗lv1
random 93
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 20
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复20%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复20%血量,持续1秒!
#if
CheckContainsText <$STR(S2)> 治疗lv1
random 90
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 20
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复20%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复20%血量,持续1秒!
;—————————–
#if
CheckContainsText <$STR(S2)> 治疗lv2
random 98
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 30
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复30%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复30%血量,持续1秒!
#if
CheckContainsText <$STR(S2)> 治疗lv2
random 95
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 30
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复30%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复30%血量,持续1秒!
#if
CheckContainsText <$STR(S2)> 治疗lv2
random 93
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 30
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复30%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复30%血量,持续1秒!
#if
CheckContainsText <$STR(S2)> 治疗lv2
random 90
#ACT
mov n$治疗 <$maxhp>
DIV n$治疗 100
MUL n$治疗 30
HUMANHP + <$STR(N$治疗)>
<$CURRRTARGETNAME>.GuildNoticeMsg 245 0 敌方触发治疗Buff、1秒内回复30%血量! Self
SENDMSG 6 当前治疗Buff已触发,每秒恢复30%血量,持续1秒!
}