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