当前位置: 首页 > news >正文

物品奖励系统介绍

目录

涉及的数据表介绍

ItemBonus.db2

ItemBonusListGroupEntry.db2

ItemBonusListLevelDelta.db2

ItemBonusTree.db2

ItemBonusTreeNode.db2

ItemXBonusTree.db2

工作流程


以下六个数据表共同构建了一个分层物品奖励系统,其核心思想是通过树状结构和分组机制来动态地为物品分配属性和奖励。这种设计允许游戏根据不同的上下文(如副本难度、玩家等级、PvP/PvE 等)为同一物品提供不同的属性。

涉及的数据表介绍

ItemBonus.db2

使用场景

它定义了物品的各种属性加成,包括属性值、类型、顺序等信息。主要用于为物品添加额外的属性值,通过不同的奖励列表实现物品升级

  • 物品属性加成: 为物品添加额外的属性值
  • 物品升级系统: 通过不同的奖励列表实现物品升级
  • 随机属性物品: 为物品添加随机生成的属性
  • 装备套装效果: 为套装中的物品添加额外属性
  • 特殊效果: 为物品添加特殊效果或功能

字段说明

  • ID: 奖励条目的唯一标识符
  • Value[0-3]: 4个整数值,具体含义取决于奖励类型(Type)
  • ParentItemBonusListID: 指向ItemBonusList的ID,表示这个奖励属于哪个奖励列表
  • Type: 奖励类型,决定了Value字段的具体用途,以下介绍主要的ItemBonusType类型及其Value字段用途
类型名称Type值Value[0]Value[1]Value[2]Value[3]功能说明
ITEM_BONUS_ITEM_LEVEL1物品等级增加值未使用未使用未使用增加物品的等级
ITEM_BONUS_STAT2属性类型 (参考ItemModType)属性值增量未使用未使用增加指定属性值
ITEM_BONUS_QUALITY3物品品质 (ITEM_QUALITY)未使用未使用未使用设置物品品质
ITEM_BONUS_NAME_SUBTITLE4ItemNameDescription ID未使用未使用未使用设置物品副标题
ITEM_BONUS_SUFFIX5后缀ID优先级 (数值越小优先级越高)未使用未使用设置物品名称后缀
ITEM_BONUS_SOCKET6插槽数量插槽颜色 (1=Meta, 2=Red, 4=Yellow, 8=Blue等)未使用未使用添加插槽到物品
ITEM_BONUS_APPEARANCE7外观ID优先级 (数值越小优先级越高)未使用未使用设置物品外观
ITEM_BONUS_REQUIRED_LEVEL8所需等级未使用未使用未使用设置使用物品所需等级
ITEM_BONUS_DISPLAY_TOAST_METHOD9显示方式未使用未使用未使用控制物品获得时的提示方式
ITEM_BONUS_REPAIR_COST_MULTIPLIER10修理费用倍数(百分比形式)未使用未使用未使用设置修理费用倍数
ITEM_BONUS_SCALING_STAT_DISTRIBUTION11ScalingStatDistribution ID优先级未使用未使用设置缩放属性分布
ITEM_BONUS_DISENCHANT_LOOT_ID12DisenchantLoot ID未使用未使用未使用设置分解物品获得的奖励
ITEM_BONUS_SCALING_STAT_DISTRIBUTION_FIXED13ScalingStatDistribution ID优先级未使用未使用固定缩放属性分布
ITEM_BONUS_ITEM_LEVEL_CAN_INCREASE14标志位未使用未使用未使用标记物品等级可以增加(显示"+"号)
ITEM_BONUS_RANDOM_ENCHANTMENT15随机附魔ID未使用未使用未使用随机附魔属性
ITEM_BONUS_BONDING16绑定类型 (0=无, 1=装备绑定, 2=拾取绑定等)未使用未使用未使用设置物品绑定类型
ITEM_BONUS_RELIC_TYPE17圣物类型未使用未使用未使用设置圣物类型
ITEM_BONUS_OVERRIDE_REQUIRED_LEVEL18覆盖所需等级未使用未使用未使用覆盖物品所需等级
ITEM_BONUS_AZERITE_TIER_UNLOCK_SET19AzeriteTierUnlockSet ID未使用未使用未使用解锁Azerite等级
ITEM_BONUS_SCRAPPING_LOOT_ID20ScrappingLoot ID未使用未使用未使用设置拆解物品获得的奖励
ITEM_BONUS_OVERRIDE_CAN_DISENCHANT21可否分解标志未使用未使用未使用覆盖物品是否可以分解
ITEM_BONUS_OVERRIDE_CAN_SCRAP22可否拆解标志未使用未使用未使用覆盖物品是否可以拆解
ITEM_BONUS_ITEM_EFFECT_ID23ItemEffect ID未使用未使用未使用添加物品效果
ITEM_BONUS_MODIFIED_CRAFTING_STAT25ModifiedCraftingItem ID未使用未使用未使用修改制造属性
ITEM_BONUS_REQUIRED_LEVEL_CURVE27Curve ID未使用未使用未使用基于曲线设置所需等级
ITEM_BONUS_DESCRIPTION_TEXT30描述文本ID未使用未使用未使用物品描述文本
ITEM_BONUS_OVERRIDE_NAME31名称覆盖ID未使用未使用未使用覆盖物品名称
ITEM_BONUS_ITEM_BONUS_LIST_GROUP34BonusListGroup ID未使用未使用未使用设置奖励列表组
ITEM_BONUS_ITEM_LIMIT_CATEGORY35ItemLimitCategory ID未使用未使用未使用设置物品限制类别
ITEM_BONUS_ITEM_CONVERSION37ItemConversion ID未使用未使用未使用物品转换
ITEM_BONUS_ITEM_HISTORY_SLOT38历史槽位ID未使用未使用未使用物品历史槽位
  • OrderIndex: 排序索引,决定应用奖励的顺序

ItemBonusListGroupEntry.db2

使用场景

用于管理物品奖励列表组的数据库文件。主要用途是将多个物品奖励列表(ItemBonusList)组织成组,以便在不同的游戏情境下选择适当的奖励列表。

  • 不同难度的内容: 根据玩家所处的副本难度选择不同的奖励
  • 赛季奖励: 根据当前赛季选择不同的奖励列表
  • 玩家条件: 根据玩家的等级、成就或其他条件选择奖励
  • 序列化奖励: 通过SequenceValue控制奖励的逐步解锁
  • 副本奖励系统: 根据副本难度或或挑战模式等级提供不同的物品奖励
  • PvP奖励: 根据玩家的竞技场等级或战场表现提供奖励
  • 物品升级系统: 通过不同的奖励列表实现物品的逐步升级

字段说明

  • ID(uint32)条目的唯一标识符

  • ItemBonusListGroupID(uint32)物品奖励列表组的ID,用于将多个奖励列表组织在一起

  • ItemBonusListID(int32)物品奖励列表的ID,指向 ItemBonus.db2 中的奖励列表

  • ItemLevelSelectorID(int32)物品等级选择器ID,用于确定物品的等级

  • SequenceValue(int32)序列值,用于确定奖励列表的选择顺序或优先级

  • ItemExtendedCostID(int32)物品扩展消耗ID,指向物品购买时需要的额外消耗

  • PlayerConditionID(int32)玩家条件ID,用于检查玩家是否满足特定条件

  • Flags(int32)标志位,用于控制条目的行为

  • ItemLogicalCostGroupID(int32)物品逻辑消耗组ID,用于分组管理消耗


ItemBonusListLevelDelta.db2

使用场景

用于管理物品等级增量与物品奖励列表之间映射关系的数据库文件。它主要用于根据物品等级的变化来查找相应的物品奖励列表。这个文件在以下情况下被使用:

  • 当物品需要根据等级变化应用不同属性时,系统会根据等级增量查找对应的奖励列表
  • 在物品升级或降级时,通过等级差值找到相应的属性调整列表
  • 支持物品的动态属性变化,例如装备的随机属性或升级属性
  • 物品升级系统:当物品通过某种方式升级时,根据等级增量应用相应的属性提升
  • 装备随机属性:为不同等级的同种装备生成适当的随机属性
  • 装备降级:当装备被降级时,应用相应的属性削减
  • 动态物品属性调整:根据游戏进程或玩家行为动态调整物品属性

字段说明

  • ItemLevelDelta(int16)物品等级增量值,表示相对于基础物品等级的变化量

  • ID(uint32)物品奖励列表的ID,指向具体的物品奖励列表

ItemBonusTree.db2

使用场景

定义物品奖励树的根节点和基本条件,它与 ItemBonusTreeNode.db2 和 ItemXBonusTree.db2 一起,构成了一个完整的物品奖励树系统,用于根据不同的条件和上下文为物品应用适当的奖励。

  • 不同副本或难度下的物品奖励差异化
  • 根据玩家等级或进度调整物品属性
  • 为不同职业或专精提供特定的物品奖励
  • 赛季物品奖励系统
  • Mythic+ 地城的等级相关奖励

字段说明

  • ID(uint32)奖励树的唯一标识符

  • Flags(int32)奖励树的标志位,用于控制奖励树的行为和条件

    • 常见取值:
      • 0x4: 允许应用奖励
      • 0x8: 仅适用于施法者武器
      • 0x10: 不适用于施法者武器
      • 0x20: 适用于控制型饰品
      • 0x40: 不适用于控制型饰品
  • InventoryTypeSlotMask(int32)物品栏位掩码,用于指定该奖励树适用于哪些物品栏位

    • 通过位运算与物品的 InventoryType 进行匹配

ItemBonusTreeNode.db2

使用场景

用于定义物品奖励树节点结构的数据库文件。它与 ItemBonusTree.db2 和 ItemXBonusTree.db2 协同工作,构成完整的物品奖励系统。主要作用是定义物品奖励树的具体节点和分支逻辑。每个节点可以有以下几种类型的子节点:

  • 指向另一个奖励树 (ChildItemBonusTreeID)
  • 指向一个奖励列表 (ChildItemBonusListID)
  • 指向一个物品等级选择器 (ChildItemLevelSelectorID)
  • 指向一个奖励列表组 (ChildItemBonusListGroupID)
  • 不同难度副本的物品奖励差异化
  • Mythic+ 地城根据钥匙等级提供不同奖励
  • 根据玩家职业或专精提供特定物品奖励
  • 赛季物品奖励系统
  • 任务奖励的上下文相关性
  • PvP 和 PvE 版本的物品差异化

字段说明

  • ID(uint32)节点的唯一标识符

  • ItemContext(uint8)物品上下文,用于指定该节点适用于哪种物品上下文环境

    • 常见取值:
      • 0: NONE (无特定上下文)
      • 1: Dungeon Normal (地下城普通难度)
      • 2: Dungeon Heroic (地下城英雄难度)
      • 3: Dungeon Mythic (地下城史诗难度)
      • 4: Raid Normal (团队副本普通难度)
      • 5: Raid Heroic (团队副本英雄难度)
      • 6: Raid Mythic (团队副本史诗难度)
      • 7: PvP (玩家对战)
      • 8: World vs World (世界对战)
      • 9: Quest (任务奖励)
      • 10: Vendor (商人购买)
      • 11: Trade (交易获得)
      • 12: Achievement (成就奖励)
      • 13: Profession (专业技能制作)
      • 14: Challenge Mode (挑战模式)
      • 15: Force_to_NONE (强制无上下文)
  • ChildItemBonusTreeID(uint16)子奖励树ID,指向另一个 ItemBonusTree.db2 的ID,用于构建树状结构

  • ChildItemBonusListID(uint16)子奖励列表ID,指向 ItemBonus.db2 中的奖励列表

  • ChildItemLevelSelectorID(uint16)子物品等级选择器ID,指向 ItemLevelSelector.db2 中的等级选择器

  • ChildItemBonusListGroupID(int32子奖励列表组ID,指向 ItemBonusListGroupEntry.db2 中的奖励列表组

  • IblGroupPointsModSetID(int32奖励列表组点数修改集ID,用于调整奖励列表组的选择权重

  • MinMythicPlusLevel(int32最小 Mythic+ 等级要求,仅在 Mythic+ 地城中使用

  • MaxMythicPlusLevel(int32最大 Mythic+ 等级限制,仅在 Mythic+ 地城中使用

  • ParentItemBonusTreeID(uint32父奖励树ID,指向 ItemBonusTree.db2 中的奖励树

ItemXBonusTree.db2

使用场景

用于关联物品和物品奖励树的数据库文件。它作为物品系统和奖励树系统之间的桥梁,将具体的物品与相应的奖励树结构关联起来。

  • 将物品与奖励树关联,使物品能够根据不同的游戏情境获得不同的属性
  • 支持同一物品在不同副本、难度或活动中的属性差异化
  • 实现物品的动态属性系统,使物品属性可以根据玩家条件或游戏进度进行调整
  • 支持 Mythic+ 地城中根据钥匙等级提供不同的物品奖励

字段说明

  • ID(uint32条目的唯一标识符

  • ItemBonusTreeID(uint16物品奖励树ID,指向 ItemBonusTree.db2 中的奖励树记录

  • ItemID(uint32)物品ID,指向 ItemSparse.db2 中的物品记录

工作流程

  1. 物品初始化

    • 当需要为物品生成奖励属性时,首先通过 ItemID 在 ItemXBonusTree.db2 中查找对应的 ItemBonusTreeID
  2. 奖励树遍历

    • 使用 ItemBonusTreeID 在 ItemBonusTree.db2 中找到奖励树的根节点
    • 遍历 ItemBonusTreeNode.db2 中的节点,根据上下文和条件筛选合适的节点
  3. 奖励列表选择

    • 根据节点类型(奖励列表、奖励列表组、等级选择器等)进行相应的处理
    • 可能需要查询 ItemBonusListGroupEntry.db2 来获取奖励列表组的条目
    • 根据等级差异查询 ItemBonusListLevelDelta.db2 获取相应奖励
  4. 奖励应用

    • 最终从 ItemBonus.db2 获取具体的奖励条目
    • 将这些奖励应用到物品上,完成物品属性的构建
http://www.dtcms.com/a/428350.html

相关文章:

  • 广州站西手表公司彩页设计制作
  • sat4j中参数作用
  • 网站建设课程有哪些收获西安注册公司虚拟地址
  • 哪家做网站性价比高朋友圈自己做的网站
  • 建设网站需要掌握什么编程语言川菜餐馆网站建设模板美食餐厅企业建站php源码程序
  • 网上商城公司网站建设方案被网上教开网店的骗了怎么办
  • 网站域名无法访问国外建站工具
  • SurfaceFlinger BufferQueue(三) DequeueBuffer
  • AI智能体(Agent)大模型入门【4】--下载训练好的大模型部署到本地上
  • 网站tkd怎么做学做烘培的网站
  • 肇庆网站制作费用wordpress 开源主题
  • 【开题答辩全过程】以 NBA球星管理系统为例,包含答辩的问题和答案
  • asp.net中文官方网站江门市网站建设公司
  • 网站开发费用报价单硬件开发学什么专业
  • 网站外链怎么购买建设网站基本步骤
  • 临沧网站建设公司佛山网站建设公司价格
  • 惠海 48V 60V 80V 降 3.3V 5V 9V 12V电动车/摩托车整车芯片解决方案(下)
  • 做网站用小动画网络公司 建站 官方网站
  • 储卡器底部塑料壳外部细节建模实战分享|附完整视频教程
  • android源码下载网站宁波seo关键词费用
  • 福州做网站哪家最好不利于优化网站的因素
  • 矩阵运算:深度学习的数学基石与手工实现解析
  • 自己做的网站网站搜索潍坊程序设计网站建设公司
  • 修改网站照片需要怎么做电子商务网站前台业务系统主要是
  • 河南洛阳网站建设做个网站上百度怎么做
  • 公司品牌营销策划龙岗网站优化培训
  • 成都做营销型网站wordpress s3插件
  • html5网站正在建设中模板下载建设企业网站个人网银
  • 提高wordpress网站母婴的网站建设
  • 网站搜索引擎优化诊断公司网站开发费用济南兴田德润o评价