掠夺
原型
rob_setting 掠夺设置
pvp_rank_config 杯的设置
robot_config 机器人配置表
robot_rate_config 机器人出现几率
ITEM_USE_TYPE 增加了21 枚局,直接增加PVP保护时间(item_function_config.extra)为时间(单位是分)
需要填写 item_config 和 item_function_config
存档
player_info 增加
字段 | 说明 | 枚举 |
---|---|---|
pvp_group | 战场组 | 109 |
pvp_trophy | pvp奖杯 | 107 |
pvp_rank | pvp等级 | 108 |
pvp_protect_time | pvp保护时间 |
rob_target_info 掠夺目标
rob_result_info 掠夺结果
协议
RobSync 掠夺信息同步 获得新log/结算未完成的战斗
RobRefresh 掠夺搜索对手
RobRevenage 掠夺复仇搜索对手
RobGetLog 掠夺获取Log 最多获得50条log
GMRobRefresh GM指定搜索目标
要点说明
1机器人
玩家开始搜索时,如果奖杯小于rob_setting.robot_trophy_max 则需要判断是否需要机器人
首先从robot_rate_config 中匹配到所在的档次,然后roll出自己是否需要匹配机器人
如果不需要匹配,则正常逻辑下去。需要匹配则 按规则 随机一个奖杯区间,在这个区间找到一个机器人,作为结果。
2保护
需要道具进行配置,并且作为立即使用的道具,特殊逻辑去修改 player_info.pvp_protect
如果pvp_protect 小于当前时间,则从当前时间开始加,否则从pvp_protect的时间开始加
3搜索
如果玩家需要匹配真人,需要根据自己的 trophy 划定范围 rob_setting search_score_min/search_score_max
然后在数据库进行匹配, 规则需要包含
1/ pvp_protect < now
2/ trophy 的范围
3/ pvp_group一致
4/ last_online > now + rob_setting offline_time
5/ 不能是自己
搜索失败给出提示信息
4生成目标
根据目标当时的数据,计算他的watch tower 有效值(TODO)
根据 rob_setting loot_win_rate/loot_lost_rate 分别计算攻守方收益
然后根据双方奖杯,计算得失分数
胜利获得奖杯=30+(对方奖杯-自己奖杯)*0.075
失败失去奖杯=30-(对方奖杯-自己奖杯)*0.075
结果保存到 rob_target_info
5战斗
BattleStart 如果输入的关卡是pvp的 stage_config.type==3
则认为就是以当前rob_target_info 为目标的掠夺战斗
在BattleEnd,对战斗结果进行结算,给予攻方奖励,并记录rob_result_info
同一个对手的挑战次数由 rob_target_info.attempt_count 和 rob_setting.attempt_max 进行比较
战斗细则
战斗超时 和 逃跑
PlayerLogin 或者 RobSync 需要对正在攻击的战斗进行判负
超时时间为5分钟,由 rob_setting.battle_max_time
并且rob_target_info.attack_time + 5分钟,就要视为超时。战斗立刻失败(需要一些倒计时等表现)
战斗中的30回合变强规则暂缓制作(统一的战场技能规则)
6守方结算
守方在上线的那一刻 PlayerLogin 或者 RobSync 进行结算
RobSync 可以获得之前的全部战斗记录,并且扣除loot_lost 到瞭望塔的收益。(先扣除再计算时间)
有synced标记为
奖杯应该在rob 完成的时候就修改。
7复仇
rob_result_info 里的 revenged 字段表示是否复仇过
rob_target_info.revenge_id 和 rob_result_info.revenge_id都指向了对应的条目
复仇搜索不需要消耗肉
8回放
BattleLoad 指向 rob_result_info.replay_id
作弊校验
在本地回放的时候,会检查每一个action是否可以执行。(比如在没有魔法的时候释放技能)
也会校验每个action之后的分数,如果分数不吻合也视为作弊。
分数的计算包含 场面 血量 魔法 等
如果发现作弊,会通过 BattleReport 提交到服务器,记录在cheat_info, 每个replay只能提交一次
聊天分享 待定
9战场分组
目前用 pvp_group ,枚举id 109控制