好的,我们来对这次沟通和实现的功能进行一个清晰的总结。
功能实现总结
本次主要实现了一个 “精英地图” 或 “Boss挑战” 系统,其核心逻辑是玩家消耗特定道具进入一个专属的镜像地图,系统根据玩家勋章的等级,随机生成一个对应难度的Boss。击杀Boss后,玩家可以获得积分奖励。
1. 核心功能点
- 进入条件与消耗:
- 玩家需要持有道具 “伏魔令” (ItemID: 74)。
- 点击NPC进入时,会检测并扣除一个“伏魔令”。
- 难度生成机制:
- 系统会读取玩家身上 勋章的等级。
- 难度等级 = 随机数(1 ~ (勋章等级 * 10))。
- 例如:1级勋章随机1-10层,10级勋章随机1-100层,30级勋章随机1-300层。
- 进入地图后,系统会提示玩家本次的挑战难度(层数)。
- Boss生成与属性增强:
- Boss池:设置了多个Boss列表,具有不同的出现概率。
- 列表1(大概率Boss):100% 出现
- 列表2(稀有Boss):20% 概率出现
- 列表3(非常稀有Boss):10% 概率出现
- 列表4(福利怪):1% 概率出现
- 动态属性:根据生成的难度(层数),为Boss动态添加属性(生命值和攻击力)。
- 原计划通过Buff表实现,但在测试中发现怪物反伤机制导致问题。
- 最终解决方案:改为直接通过脚本给怪物增加 固定属性值(
AddValue
),成功实现属性提升。
- 数量与位置:根据随机结果,在地图内随机位置生成1到多个Boss。
- 击杀奖励(积分系统):
- 成功击杀Boss后,系统会根据该Boss的难度层数奖励积分。
- 规则:每1层难度 = 1点积分。
- 击杀后,系统会发送提示消息,告知玩家获得的积分数量。
- 镜像地图:
- 每个玩家进入的都是独立的个人镜像地图,不同玩家之间互不干扰。
2. 遇到的问题与解决方案
- Boss属性增强失效:
- 问题:最初通过
AddBuff
方式为怪物增加百分比属性,测试中发现怪物攻击玩家时,玩家身上的反伤技能(如“暗黑属性”、“张无忌”技能)会将巨额伤害反弹给怪物,导致怪物“自杀”。 - 解决:摒弃Buff思路,改用
AddValue
命令直接为怪物增加固定的生命值和攻击力值,完美解决。
- 获取Boss难度信息:
- 问题:在击杀触发脚本中,无法直接获取到为该Boss随机生成的难度层数。
- 解决:利用了引擎最新支持的怪物变量(MobVar) 功能。在Boss生成时,将它的难度层数作为一个变量存储在该Boss对象上。击杀时,再读取这个变量,从而正确计算应奖励的积分。
3. 未完成/待讨论的细节
- 积分的使用:目前实现了积分的获取,但积分如何消费(例如兑换奖励)需要后续设计。
- Boss提示:精英Boss出现时,是否需要在全服或地图内进行特效或文字提示,可以后续优化。
- 更复杂的属性公式:当前是简单的每层增加固定数值的属性,后续可以设计更复杂的成长公式(如指数增长)。
总结
本次开发成功实现了从进入条件、动态难度生成、Boss生成与强化到积分奖励的一整套流程。过程中解决了怪物属性增强和数据传递的关键技术问题,为后续类似功能的开发提供了重要参考。整个功能模块已可进行基本测试。