cn:rpd:heal_spell
治疗
描述
治疗法术立即恢复目标部分生命值,使其在紧急情况下非常有价值。治疗量计算为20%目标最大生命值乘以施法者技能等级(最少恢复1点生命值)。
属性
机制
根据Lua实现,法术为(Max HP / 5 * 施法者技能等级)生命值恢复目标角色,最少恢复1点。
Lua代码中的确切公式是:heal = target:ht() / 5. * caster:skillLevel()
这意味着对于满血目标:
- 施法者技能等级为1时:恢复目标最大生命值的20%(最少1点)
- 施法者技能等级为2时:恢复目标最大生命值的40%(最少1点)
- 施法者技能等级为3时:恢复目标最大生命值的60%(最少1点)
- 以此类推…
用法
治疗法术可用于:
- 危险遭遇时的紧急生命值恢复
- 战斗情况下的自我治疗
- 治疗盟友或宠物
- 在挑战性战斗中支援宠物
策略
- 生命值极低时最好使用
- 盟友和宠物以及你自己都可以治疗
- 挑战性战斗中支援宠物效果良好
- 治疗效果随你的技能等级提升
- 计划治疗时请注意2回合冷却时间
亲和力
重要说明
有一个不同的基于Java的法术叫做“Healing”(不是“Heal”),具有不同的机制:
- Healing.java - 恢复目标最大生命值的30%,仅可对自己施法,消耗10法力,等级3法术
- 有关基于Java的治疗法术更多信息,请参见治疗法术
代码参考
- Lua实现: Heal.lua
- 法术可用性(通用): CustomSpellsList.lua#L9
- 法术可用性(巫术): CustomSpellsList.lua#L13
- 法术可用性(牧师): CustomSpellsList.lua#L16
- 法术可用性(瘟疫医生): CustomSpellsList.lua#L17
- 法术基类(Lua): spell.lua - 基础法术实现
- 通用类库: commonClasses.lua - RPD模块导入
- 英语字符串资源: strings_all.xml#L2679-L2680
- 俄语字符串资源: strings_all.xml#L2681-L2682
- 西班牙语字符串资源: strings_all.xml#L2519-L2520
- 法语字符串资源: strings_all.xml#L2666-L2667
- 德语字符串资源: strings_all.xml#L2502-L2503
- 中文字符串资源: strings_all.xml#L2510-L2511
- 日语字符串资源: strings_all.xml#L2518-L2519
- 葡萄牙语字符串资源: strings_all.xml#L2508-L2509
- 土耳其语字符串资源: strings_all.xml#L2547-L2548
- 印度尼西亚语字符串资源: strings_all.xml#L2503-L2504
- 治疗治疗机制: Char.java#L99-L107 - 法术调用的heal()方法
- Lua法术框架: LuaSpell.java - 处理Lua法术执行的Java类
- Java治疗法术: Healing.java - 不同的基于Java的治疗法术(30%自我目标)
- 公式验证: Lua代码显示heal = target:ht() / 5. * caster:skillLevel(),最少1点
- Java治疗法术代码参考:
- Healing.java#L15-L20 - 属性初始化(目标,亲和力,等级,图像,消耗)
- Healing.java#L23-L27 - 精确治疗计算1)
- Healing.java - 基于Java的治疗法术,治疗目标最大生命值的30%,仅可对自己施法,消耗10法力,等级3法术
- 法术目标系统: SpellHelper.java - 处理法术的目标选择
- 法术施放框架: Spell.java - 所有法术的基类
- 角色生命系统: Char.java - 定义法术使用的ht() (最大生命值)和heal()方法
- 施法者技能系统: Hero.java - 定义治疗计算中使用的skillLevel()方法
- 法力系统: Mana.java - 法术施放的法力消耗
- 法术亲和力系统: SpellHelper.AFFINITY_WITCHCRAFT - 定义此法术使用的巫术亲和力
- JSON法术配置: Heal.json - 在JSON中定义的法术属性
- 技能等级计算: Hero.skillLevel() - 施法者技能等级的确定方法
- 最后更新: 最新提交
数据验证
- Lua法术属性 (Heal.lua): MagicAffinity =
Witchcraft, TargetingType =char, Level = 2, CastTime = 1, SpellCost = 5, Cooldown = 2 - 治疗公式 (Lua):
heal = target:ht() / 5. * caster:skillLevel(),最少恢复1点生命值 - 治疗效果 (Lua):
target:heal(math.max(1, heal), caster)- 以最少1点生命值数量治疗 - 字符串资源: 字符串资源中的
Heal_Name和Heal_Info - Char.java中的heal方法调用确保治疗正确应用并以施法者作为来源(用于追踪和机制)
参见
- 法术
- 游戏机制
- 法术亲和力
- 巫术亲和力
- 牧师职业
- 瘟疫医生亲和力
- 治疗法术 - 基于Java的治疗法术(不同于此治疗法术)
- 英雄 - 主要可玩角色
- 状态效果 - 游戏中的各种状态效果
- 法力 - 法力系统机制
- 施法者 - 可施法的角色
- 目标 - 游戏中的不同目标机制
- 增益和减益 - 可被治疗的状态效果
- 法术法力消耗 - 有关法术法力消耗的信息
- 施法英雄职业 - 专精于法术施放的职业
1)
int) (chr.ht()*0.3
cn/rpd/heal_spell.txt · Last modified: by 127.0.0.1

