PathOfBuilding 模组语法详解与实战指南

PathOfBuilding 模组语法详解与实战指南

PathOfBuilding Offline build planner for Path of Exile. PathOfBuilding 项目地址: https://gitcode.com/gh_mirrors/pa/PathOfBuilding

前言

PathOfBuilding(简称PoB)作为流放之路玩家必备的构建工具,其核心功能依赖于一套完善的模组(Mod)系统。本文将深入解析PoB中的模组语法结构,帮助开发者理解如何正确创建和配置各种游戏效果。

模组基础结构

PoB中的模组主要由7个核心参数构成,其标准格式如下:

mod(ModName, ModType, Value, source, modFlags, keywordFlags, extraTags)

对于技能相关的模组,系统会自动处理source参数,因此简化为:

mod(ModName, ModType, Value, modFlags, keywordFlags, extraTags)

核心参数详解

1. ModName(模组名称)

模组名称作为唯一标识符,用于在PoB中引用该模组。常见示例包括:

  • "Damage"(伤害)
  • "Life"(生命值)
  • "PhysicalDamageGainAsLightning"(物理伤害转化为闪电伤害)

最佳实践是参考现有代码库中的命名规范,保持一致性。

2. ModType(模组类型)

模组类型决定了数值的计算方式,主要有以下几种:

| 类型 | 说明 | 示例 | |------|------|------| | BASE | 基础值,直接相加 | 基础生命值、基础伤害 | | INC | 增减类,加法叠加 | 增加/减少伤害 | | MORE | 更多/较少类,乘法叠加 | 更多/较少伤害 | | OVERRIDE | 覆盖计算,直接使用指定值 | 固定抗性值 | | FLAG | 条件标记,值为布尔型 | 是否处于某种状态 |

特别提示:对于FLAG类型,推荐使用flag()函数简化代码,如:

flag("ZealotsOath", { type = "Condition", var = "UsingFlask" })

3. Value(数值)

表示模组的原始数值。在技能数据映射中通常为nil,因为数值会根据宝石等级自动获取。

4. Source(来源)

表示模组的来源,通常由系统自动填充。特殊格式"Tree:[nodeId]"可在鼠标悬停时显示天赋树节点。

5. Mod Flags(模组标志)

位标志,定义模组适用的对象。使用bit.borbor组合多个标志时,所有标志都必须匹配。如需任一匹配,需使用"ModFlagOr"标签。

常见标志包括武器类型、护甲类型等。

6. Keyword Flags(关键词标志)

类似于模组标志,但基于宝石本身的标志。组合多个标志时,只需任一匹配。如需全部匹配,需使用"KeywordFlagAnd"标签。

扩展标签系统

模组可以包含多个额外标签,用于定义特殊条件和效果。以下是主要标签类型:

条件类标签

  1. Condition:玩家状态条件

    { type = "Condition", var = "CritRecently" }  -- 近期暴击时生效
    
  2. ActorCondition:敌人或召唤物状态条件

    { type = "ActorCondition", actor = "enemy", var = "Bleeding" }  -- 敌人流血时生效
    

数值计算类标签

  1. Multiplier:基于变量乘数

    { type = "Multiplier", var = "PowerCharge", limit = 5 }  -- 每层能量球,最多5层
    
  2. PerStat:基于角色属性

    { type = "PerStat", stat = "Strength", div = 5 }  -- 每5点力量
    
  3. PercentStat:基于属性百分比

    { type = "PercentStat", stat = "Life", percent = 20 }  -- 生命值的20%
    

技能相关标签

  1. SkillType:影响特定类型技能

    { type = "SkillType", skillType = SkillType.Totem }  -- 影响所有图腾技能
    
  2. SkillName:影响特定名称技能

    { type = "SkillName", skillName = "Molten Strike" }  -- 影响熔岩之击
    

特殊效果标签

  1. GlobalEffect:全局效果(光环、诅咒等)

    { type = "GlobalEffect", effectType = "Aura", effectName = "Hatred" }
    
  2. DistanceRamp:距离渐变效果

    { type = "DistanceRamp", ramp = {{35,0},{70,1}} }  -- 35单位无效果,70单位完全生效
    

实战技巧

  1. 组合使用标签:一个模组可以包含多个标签,实现复杂条件

    mod("Damage", "MORE", 10, nil, nil, 
        { type = "Condition", var = "Combat" },
        { type = "Multiplier", var = "FrenzyCharge" })
    
  2. 性能优化:合理使用bor组合标志,减少模组数量

  3. 条件反转:使用neg = true反转条件判断

常见问题解答

Q:如何实现"当敌人被冰冻时增加伤害"? A:

mod("Damage", "INC", 20, { type = "ActorCondition", actor = "enemy", var = "Frozen" })

Q:如何实现"每10点智力增加1%能量护盾"? A:

mod("EnergyShield", "INC", 1, { type = "PerStat", stat = "Intelligence", div = 10 })

结语

掌握PoB的模组语法是进行高级构建和自定义计算的关键。通过合理组合各种模组类型和标签,可以精确模拟游戏中的各种复杂机制。建议在实际开发中多参考现有实现,保持代码风格一致。

PathOfBuilding Offline build planner for Path of Exile. PathOfBuilding 项目地址: https://gitcode.com/gh_mirrors/pa/PathOfBuilding

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郜逊炳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值