需求实例:
当玩家推掉了副本 1 号 BOSS,此时记录队伍的副本进度并存盘。玩家队伍此时离开副本,经过
KeepTime 之后副本被清除。然后玩家队伍重新进入副本,我们需求 1 号 BOSS、1 号 BOSS 之前的所有
小怪、doodad 不再创建出来,trap 也不再有效。
为了满足上述需求,我们需要新的机制来定义我们的副本进度与场景初始化方法。
名词概念:
副本进度标志:用来标记一个队伍在一个特定副本中的游戏进度,有效范围:0~255。一共 256 个 bit,
互相独立,初始值全部为 0。
可交互场景资源:在场景上能够跟玩家交互的对象,包括:npc,doodad。巡逻路径不属于可交互场景资
源,巡逻路径是 npc 使用的,玩家不直接与其交互。trap 不作为可交互场景资源,为了满足上述需求实例,
由脚本通过场景变量来处理。
场景初始化组:一个资源容器,包括两种类型的资源:npc、doodad。所有置 0 的副本进度标志所对应的
场景初始化组,在场景初始化时将被创建。
功能需求:
游戏逻辑:
1. 实现副本进度标志、场景初始化组、场景初始化方法。
2. 提供如下脚本接口:
设置当前副本的第 nIndex 号副本进度标志:
scene.SetProgress(nIndex, nValue)
取当前副本的第 nIndex 号副本进度标志:
scene.GetProgress(nIndex)
场景编辑器:
1. 设置 npc, doodad 的初始化组,支持单个对象设置、对象组批量设置。
评论0