更新日期:2020-8-26
Version 1.00 last saved by:朱兴韬
创建文档
1. 设计目的
优化战令功能交互,重构战令任务系统,强化功能可玩性。
2. 流程图
3. 功能简述
将战令任务拆分为龙宠条件与模式条件,在任务链中抓取了对应任务后,服务端需对其赋予龙宠条件与模式条件限制。
重构后战令任务实例的组成变为:龙宠/模式(选其一)限制条件+任务条件+完成条件;战令购买条件+龙宠/模式(选其一)限制条件+任务条件+完成条件。
平台简述:
ruleType=4
,resetRule=2
时,表示该任务实例为战令每日任务ruleType=4
,resetRule=3
时,表示该任务实例为战令赛季任务(常规任务)ruleType=5
,resetRule=3
时,表示该任务实例为战令赛季任务(需购买战令才可进行并完成)
4. 具体设计
4.1 平台相关
4.1.1 新增任务链选取规则与字段
- 在
task_base
中新增以下字段,用于控制战令任务规则,当ruleType=4/5
时,成功读取chainId
后,进入该字段进行任务链处理。
字段 | 类型 | 释义 |
---|---|---|
battlePassPetLimit | Int | 0=不进行限制 1=在玩家已拥有龙宠中随机1只,作为限制龙宠(概率平均) |
battlePassModeLimit | Int | 0=不进行限制 1=在玩家已解锁模式中随机1个作为限制模式(概率平均) |
以上两个字段都配置为1时,随机取其一作为限制条件(概率平均)
- 有一者为0,取另一字段作为限制条件。
- 都为0则不抽取该条信息。
抽取方式:
在
randomNum
中取得抽取次数,在对应chainId
中抓取等额次数的任务,不存在抓空。概率:概率在对应
chainId
的task_base
中的probability
字段体现。
4.1.2 新增任务规则
task_control
配置表新增ruleType=4
,表示在龙宠与模式中进行随机限制。表示随机任务,去指定
chainId
中抽取任务时,需进行以下操作:根据battlePassPetLimit字段,查询玩家目前已拥有龙宠,在已拥有龙宠中选定1只(概率平均),限制玩家仅使用该龙宠才可完成任务。
根据battlePassModeLimit字段,查询玩家目前已解锁模式,在已解锁模式中选定1个(概率平均),限制玩家仅使用该模式才可完成任务。
任务限制模式、龙宠信息需形成消息下发客户端。
task_control
配置表新增ruleType=5
,表示战令限制随机任务,去chainId
中抽取任务时,需进行以下操作:查询玩家是否已购买战令,已拥有战令才可进行任务(任务会先下发,但需购买战令才可进行并完成)。
4.1.3 新增重置规则与字段
- task_control配置表字段
randomDays#int
,表示每X(配置天数)自然日可读取randomNum#int
进行任务抽取,当ruleType=4/5
时才读取该字段信息。
字段 | 类型 | 释义 |
---|---|---|
randomDays | Int | 每X自然日可去randomNum中执行抽取,也表示1个赛季内该实例任务每X自然日刷新一次 |
当
ruleType=4/5
时,进行以下处理:- 到
randomDays
读取自然日信息,判断当前赛季经过的自然日天数,以此为基准执行抽取。- 例:
randomDays
的配置值为5
,randomNum
配置值为4
,当前赛季已进行了16个自然日。玩家(当日注册新号)此时登录游戏触发了战令任务抽取业务,则执行4次(包含跨赛季第1次)抽取流程,下发数量共16个任务给玩家。
- 例:
- 到
在1个赛季内,ruleType=4/5的任务都可完成,跨赛季后任务清零,并执行1次抽取(跨赛季后第1次抽取无需满足配置的自然日条件)。
4.1.4 新增任务条件
- 根据战服传出数据,新增以下任务类型
任务条件id | 任务类型描述 | target数量 |
---|---|---|
100240 | 恢复生命 | 数量 |
100250 | 造成伤害 | 数量 |
4.1.5 逐级解锁
task_control
配置表中的levelLimit#int
字段将配置任务的生成等级,玩家只有达到了配置值,才可生成任务实例。
4.1.6 数据下发
服务端需下发以下信息,供客户端维护:
ruleType=4
,resetRule=2
时(战令每日任务)- 下发
ruleType
与resetRule
值 - 下发任务条件、任务奖励、任务限制信息(龙宠或模式)
- 下发任务刷新时间戳
- 下发
ruleType=4
,resetRule=3
时(战令赛季任务)下发
ruleType
与resetRule
值下发任务条件、任务奖励、任务限制信息(龙宠或模式)
下发任务刷新时间戳
ruleType=5
,resetRule=3
时(战令赛季任务)- 下发
ruleType
与resetRule
值 - 下发任务条件、任务奖励、任务限制信息(龙宠或模式)
- 下发任务刷新时间戳
- 下发
4.3 战服相关
4.3.1 数据下发
统计战局内以下数据,向平台下发:
恢复生命(使用治疗类技能,恢复他人生命也计算在内)。
造成伤害(仅对敌方角色造成伤害计算在内,吃鸡模式宝箱、其他玩家的召唤物不计算在内)。
4.4 客户端相关
4.4.1 数据处理
处理服务端下发的任务消息中的数据,判断任务类型,根据不同任务类型做差异表现。
以下
chainId
在客户端为taskType
:chainId=5000
,表示战令每日任务。chainId=5011/5012
,ruleType=4
,表示战令赛季任务。chainId=5011/5012
,ruleType=5
,表示战令赛季任务(需购买战令才可进行并完成)。
处理每个任务的限制条件,条件分为:龙宠、模式。
4.4.2 任务界面-任务排序规则
根据平台下发消息,对任务进行排序,规则如下:
任务(收起):
优先1:可领取态优先展示(包含每日与赛季),后方跟随相同龙宠或限制模式任务(如果有),若玩家此时执行了领取任务操作,不会进行重新排序。
优先2:完成进度最高的任务(进行态,包含每日与赛季),后方跟随相同龙宠或限制模式任务(如果有)。
优先3:同一限制条件(相同限制龙宠或相同限制模式)的进行态任务,自动对齐(卡片归类到同一处);若玩家解锁了战令,战令赛季任务也可参与对齐。
优先4:没有其他可进行任务时,展示未解锁的战令专属任务。
例:收起态有3个slot,玩家未解锁战令,目前玩家剩余1个赛季任务与若干个赛季战令任务,slot1展示赛季任务,slot2/3展示未解锁态的战令专属任务。
优先5:客户端作假维护的待刷新态卡片。
任务(展开),展开时会根据任务类型分类,每日任务不参与下列排序:
优先1:同一限制条件(相同限制龙宠或相同限制模式)的任务,自动对齐(卡片归类到同一处);若玩家解锁了战令,战令专属任务也可参与对齐。
优先2:玩家未解锁战令时,所有已下发但不可完成的战令专属任务,始终显示在展开态的末尾。
优先3:客户端作假维护的待刷新态卡片。
4.4.3 任务界面交互-收起态
- 任务为收起状态时,交互如下图所示:
收起态时,任务界面内由上到下有3个slot,为slot1、slot2、slot3,分别展示收起态排序前3的任务。
其中slot内含有任务卡片,卡片主要包含以下2个状态;(待刷新态与战令专属态在下文:展开态中描述)。
可领取态(根据上文排序,优先级最高),包含以下内容:
- 主题图标(根据平台下发的限制条件去
item_base
或mode_sty
索引)。 - 任务文本(
task_base
)。 - 可领取蒙版、底板。
- 主题图标(根据平台下发的限制条件去
玩家点击了可领取态slot的卡片,按顺序执行以下动效:
动效1:经验图标从卡片处飞向左上角,左上角进度条组件执行增加表现,战令主进度条执行增加表现。
- 若增加过程中经过了对应节点圆形图标,节点需从未解锁态变为解锁态并播放光效。
- 对应节点的奖励(免费奖励、战令奖励)需从未解锁态变为解锁可领取态,可领取态需展示太阳花光效。
动效2:卡片播放透明度由100%到0%消失的0.35秒先慢后快弹性动画。
动效3:列表推进动画:若玩家点击的是slot1的可领取卡片,slot2的卡片向上移变为slot1,slot3的卡片向上移变为slot2,通过排序新增一张卡片从下方移入界面填充slot3;动画为持续1秒的慢(100%)→快(150%)→慢(100%)的弹性移动动画。
- 若玩家点击的是slot2的可领取卡片,slot3的卡片向上移变为slot2,通过排序新增一张卡片从下方移入界面填充slot3。
- 若玩家点击的是slot3,通过排序新增一张卡牌从下方移入界面填充slot3。
已领取的任务卡片不再展示
进行态包含以下内容:
- 主题图标(根据平台下发的限制条件去
item_base
或mode_sty
索引)。 - 任务文本(
task_base
)+限定龙宠/模式 :%s(具体索引id见字符串配置处)。 - 任务目标与进度条(
task_base
)。 - 任务奖励(task_base)。
- 玩家点击了进行态的卡片,执行以下操作
- 若该任务的限制条件为指定龙宠,返回主界面切换为对应龙宠;玩家在房间内时队伍内有相同龙宠则展示code=104010
- 若该任务的限制条件为指定模式,返回主界面切换为对应模式;玩家在房间内且不为队长时展示code=21101
- 主题图标(根据平台下发的限制条件去
点击红框内热区,将任务界面变为:展开态,按顺序执行以下动效:
动效1:3个slot内的卡片播放大小由100%到0%的0.35秒先慢后快弹性动画。
动效2:任务展开态由屏幕右侧至左以先慢后快弹性动画形式进入界面,参照聊天功能抽屉动画。
4.4.4 任务界面交互-展开态
- 任务为展开状态时,交互如下图所示
任务主题1(展示每日任务卡片):
主题文本:“每日任务”(UI层已有,直接复用)。
倒计时文本:“刷新倒计时:”(UI层发布,需翻译)。
需程序自行换行后展示倒计时,附带倒计时图标,倒计时根据平台下发的该任务链刷新时间戳展示,每日任务倒计时跟随主题文本形成组件,会随界面拖动移动。
具体倒计时显示规则复用上层战令功能。
任务主题2(展示赛季任务、战令专属任务卡片):
- 主题文本:“赛季任务”(UI层已有,直接复用)。
- 倒计时文本:“新任务解锁:”(UI层发布,需翻译)。
- 需程序自行换行后展示倒计时,附带倒计时图标,倒计时根据平台下发的该任务链刷新时间戳展示,赛季任务倒计时固定在屏幕右侧,不会随界面拖动移动。
- 具体倒计时显示规则复用上层战令功能。
展开态可左右拖动查看更多卡片:
- 初始展开界面时,每日任务标题与卡片组件定位最左侧,此时界面不可向右拖动。
- 初始向左拖动时,每日任务组件跟随卡片可根据拖动移出到界面外,赛季任务标题组件与卡片可随拖动移动到左侧,如图。
- 赛季任务标题到左侧时不会移动到屏幕外,继续拖动将只移动赛季任务的卡片部分。
- 此时向右拖动到底每日任务组件可回到界面内。
展开态时,任务界面内由左到右有若干个slot,按上文(任务排序规则)提到的排序展示任务。
其中slot内含有任务卡片,卡片主要包含可领取态与进行态(样式复用4.4.3收起态的描述),及以下状态:
可领取态:
- 在界面展开状态点击可领取态的任务时,展开态关闭为收起态,播放领取已完成任务的相关动效(4.4.3可领取态动效)。
- 此时同时进行收起态的slot维护,不会将点击完成的任务填充进收起态的slot1。
- 已领取的赛季任务卡片不再展示,在展开态中需判断任务类型。
- 若为每日任务,则领取完后需在对应slot处展示待刷新态卡片。
进行态:点击进行态的任务,执行4.4.3进行态中相同的描述。
战令专属态(未解锁态):卡片任务进度条与奖励处盖有蒙版,蒙版上方展示文字:“战令专属任务”
待刷新态
- 作假表现,客户端自行维护展示,如下图展示,该卡片无点击事件
- 如图该卡片有两种样式,根据config(全局变量表)的key=300控制两种样式的生成数量
- Data1=等待刷新卡片的数量。
- Data2=等待刷新(战令专属)卡片的数量。
根据排序,一般展示在其他形态卡片末尾,在没有其他可进行任务时,展示待刷新态卡片。
等待刷新(包含等待刷新 战令专属)的卡片符合对齐条件,应归类展示,但等待刷新 战令专属卡片,应展示在该类型卡片的末尾。