===== 竞技场/天梯/挑战 =====
===== 策划案 =====
[[挑战]]
===== 相关存档表 =====
====character_challenge_info 挑战表 新增表 ====
[[generated:character_challenge_info]]
对手信息为 base64格式压缩信息,存放匹配时的角色基础信息,装备,宠物,技能,等其他战斗信息。我们可以称之为"人物快照"
对手信息填充到dict_*_info。
每周一 0点结算后清除对手,排名,场次信息。
====character_info 新增字段 ====
^ 字段名 ^ 描述 ^ 类型 ^ 默认值 ^
| **best_battle_power** | 本转最高战力(匹配用) | int | 0 |
====character_daily_info新增字段 ====
^ 字段名 ^ 描述 ^ 类型 ^ 默认值 ^
| **task_ladder_score** | 今日挑战积分(每日奖励) | int | 0 |
===== 相关配置表 =====
====ladder_level_config 天梯等级表 新增表 ====
[[generated:ladder_level_config ]]
condition (竞技场积分,100)
condition (竞技场积分,200)
condition (竞技场积分,300)
condition (竞技场积分,300),(竞技场排名<4)
====ladder_award_config 结算奖励表 新增表 ====
[[generated:ladder_award_config]]
====ladder_shop_config 竞技场商城 新增表 ====
[[generated:ladder_shop_config ]]
====ladder_search_match_config 搜索匹配规则表 新增表 ====
[[generated:ladder_search_match_config]]
condition (我和对手战力比>=0.9),(我和对手战力比<=1.1)
condition (我和对手战力比<0.6)
=====相关枚举=====
DailyCount 竞技场挑战次数 1016 daily_arena
dailycost_config 配置每日额外购买
dailyrefresh_config 配置免费
DailyTask 竞技场战斗次数 1104 task_arena_fight_count
每日任务完成条件
=====新增条件枚举=====
竞技场积分 character_challenge_info ladder_score
每日竞技场积分 character_daily_info task_ladder_score
竞技场排名 character_challenge_info rank
竞技场等级 character_challenge_info ladder_level
=====新增复杂条件枚举=====
暂无
=====相关协议=====
[[generated:ArenaGetMatch]] 获得对手信息
返回 character_challenge_info 和 对手战斗数据
[[generated:ArenaBuyRuneReel]] 购买符文卷轴
[[generated:BuyDailyLimit]] 购买挑战次数 module=1104
character_daily_info->arena_count--
character_daily_buy_info->arena_count++
返回 character_challenge_info 和 对手战斗数据
[[generated:CompleteTask]] 领取每日奖励
[[generated:OpenEmail]] 领取结算奖励
[[generated:GetTopLeaderBoard ]]取得全部排行榜名次
[[generated:StartBattle]] 开始挑战
character_daily_info->arena_count++
=====服务器逻辑接口=====
function ArenaRefreshMatch()//刷新对手
function ArenaStart()//单场开始,扣除挑战此时,刷新对手
function ArenaEnd($match_index,$iswin)//单场结算
function ArenaGetSeasonAward()//领取赛季奖励,OpenEmail type 为 6 特殊处理
function ArenaSeasonCalculate()//赛季结算
ArenaSeasonCalculate 结算
{{:pasted:20161207-173835.png}}
结算本场天梯
改写last_ladder_award_id 字段
重置积分,等级,胜场等
插入一个条 global_mail_info 有效期至下周一5点 ,type 为 6 的全局邮件
=====常用比较变量=====
每日首刷
if(!in_the_same_cycle(5,1,time(),character_challenge_info->last_refresh_time))
//character_daily_info->task_arena_fight_count=0 (DailyTaskEnum 1104)
剩余挑战次数
dailyrefresh_config[1016] - character_daily_info->arena_count
剩余购买挑战次数
dailycost_config[1016] - character_daily_buy_info->arena_count
=====领取结算奖励=====
读到 type=6 的邮件
客户端需要根据自己的character_challenge_info->last_ladder_award_id,
从ladder_award_config找出具体的奖励,补全邮件内容
=====每日累积积分奖励=====
初步设想:通过添加 task 类型,及配置任务的形式
=====发起战斗外参数=====
GameManager.Instance.SetNextGameMode(GameModeType.PVPArena, 400001, 907 ,"ArenaStart,1");
//ArenaStart + , + 对手index