在《魔兽争霸3》中,何通可以通过地图编辑器(World Editor)的过魔供额触发器(Trigger)系统为屠夫钩子技能添加回蓝效果。以下是兽争具体实现步骤:

1. 准备工作

  • 打开World Editor并加载地图
  • 确保地图中存在以下元素:
  • 使用钩子技能的单位(如:自定义的屠夫)

    需要补充魔法的目标英雄

    2. 触发器设置

    plaintext

    事件(Events):

  • 单位
  • 任意单位 发动技能效果
  • 条件(Conditions):

  • (施放技能) 等于 钩子(根据实际技能名称调整)
  • 动作(Actions)):

  • 设置 tempUnit = (触发单位) // 存储施法者
  • 设置 tempTarget = (技能释放目标) // 存储被钩中的目标
  • 如果所有条件成立:
  • 条件:((tempTarget) 是 英雄) 等于 TRUE
  • 条件:((tempTarget) 是 tempUnit 的盟友) 等于 TRUE
  • 则动作:
  • 单位
  • 设置 tempUnit 的魔法值 为 ((tempUnit 的当前魔法值) + 50.00) // 自定义数值
  • 漂浮文字
  • 创建漂浮文字: +50 魔法 在 tempUnit 头顶,字体大小 10,霸中颜色 (0.00%,为己外 0.00%, 100.00%)
  • 漂浮文字
  • 设置 最后创建的漂浮文字 的消失时间为 2.00 秒
  • 特殊效果
  • 在 tempUnit 的位置创建特效: AbilitiesSpellsHumanFeedbackSpellBreakerAttack.mdl
  • 特殊效果
  • 删除 最后创建的特效
  • 自定义脚本: call RemoveTemp // 清除临时变量
  • 3. 扩展功能建议

    plaintext

    // 动态数值计算(示例):

  • 设置 mana_to_add = ((触发单位) 的智力值(包括 加成)) x 2.00
  • // 添加技能等级影响:

  • 设置 skill_level = (触发单位 的 钩子 技能等级)
  • 设置 mana_to_add = 30.00 x (转换 skill_level 为实数)
  • // 添加冷却系统(防止多次触发):

  • 如果 (mana_cooldown[触发单位自定义值] 等于 FALSE) 则:
  • 设置 mana_cooldown[触发单位自定义值] = TRUE
  • 等待 10.00 秒(游戏时间)
  • 设置 mana_cooldown[触发单位自定义值] = FALSE
  • 4. 注意事项

  • 需要在变量编辑器中预先定义:
  • tempUnit (单位类型)

    tempTarget (单位类型)

    mana_cooldown (布尔数组)

    mana_to_add (实数)

  • 特效路径建议:
  • plaintext

    回蓝特效可选:

  • AbilitiesSpellsNightElfMoonWellMoonWellCasterArt.mdl
  • AbilitiesSpellsUndeadReplenishManaSpellCasterOverlayCaster.mdl
  • 平衡性调整建议:
  • 1. 根据技能等级设置不同回蓝量

    2. 添加最大回蓝限制(不超过法力上限)

    3. 设置触发概率(示例):

    plaintext

  • 设置 chance = (随机整数, 最小值: 1 最大值: 100)
  • 如果 chance ≤ (30 + (技能等级 x 10)) 则执行回蓝
  • 5. 进阶实现(需要JASS知识):

    jass

    function Trig_Hook_Mana_Conditions takes nothing returns boolean

    return GetSpellAbilityId == 'A000' // 替换为钩子技能ID

    endfunction

    function Trig_Hook_Mana_Actions takes nothing returns nothing

    local unit caster = GetTriggerUnit

    local unit target = GetSpellTargetUnit

    local real mana_add = 50.00

    if IsUnitAlly(target, GetOwningPlayer(caster)) and IsUnitType(target, UNIT_TYPE_HERO) then

    call SetUnitManaBJ(caster, GetUnitState(caster, UNIT_STATE_MANA) + mana_add)

    call DestroyEffect(AddSpecialEffectTarget("AbilitiesSpellsHumanFeedbackSpellBreakerAttack.mdl", caster, "origin"))

    endif

    set caster = null

    set target = null

    endfunction

    建议测试流程:

    1. 在地图中放置测试单位

    2. 使用钩子技能勾取友方英雄

    3. 观察是否触发以下效果:

  • 魔法值增加
  • 显示漂浮文字
  • 播放特效
  • 无友军误伤
  • 冷却系统正常运作
  • 常见问题排查:

  • 确保触发器已启用
  • 检查技能ID是否正确
  • 验证目标单位是否符合条件
  • 确认变量未被其他触发器覆盖
  • 检查特效路径是否正确
  • 通过以上设置,可以实现当使用钩子技能勾回友方英雄时,雄提为施法者提供魔法值回复的魔法效果。可根据实际需要调整数值和特效表现。何通

    过魔供额