123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- namespace loyalsoft;
- require_once __DIR__ . '/FightProc/SweepGatesProc.php';
- require_once __DIR__ . '/FightProc/PVPProc.php';
- /**
- * 战斗业务逻辑分发
- * @author gwang
- */
- class FightProc {
- /**
- * 战斗逻辑分发
- * 所有的Proc中必须有这样一个方法
- */
- static function procMain() {
- switch (req()->cmd) {
- # 关卡-征战
- case CmdCode::cmd_fight_arenas_preFight: # 6800 关卡挑战 - 预先计算掉落
- return SweepGatesProc::Arenas_preFight();
- case CmdCode::cmd_fight_arenasfight: # 6801 挑战关卡
- return SweepGatesProc::Arenas_Fight();
- case CmdCode::cmd_fight_arenassweep: # [6802] 扫荡
- Err(ErrCode::function_notopen_msg); # 暂未开放扫荡功能. -gwang 2020.4.20
- return SweepGatesProc::Arenas_NewSweepFight();
- case CmdCode::cmd_fight_GetArenasActiveReward: # 6806 领取章节星级奖励
- return SweepGatesProc::DrawChapterStarsReward();
- // <editor-fold defaultstate="collapsed" desc=" 玩家挑战 ">
- case CmdCode::cmd_fight_GetChallengeAdversaryInfo: # 6803 获取挑战对手的信息
- return PVPProc::GetChallengeAdversaryInfo();
- case CmdCode::cmd_fight_LogChallengeResult: # 6804 记录挑战结果
- return PVPProc::LogChallengeInfo();
- case CmdCode::cmd_fight_GetChallengeLog: # 6805 拉取挑战记录
- return PVPProc::GetChagllengeLog();
- // </editor-fold>
- // <editor-fold defaultstate="collapsed" desc=" PVP 模块 681x ">
- case CmdCode::cmd_fight_pvp_maininfo: # [6810] 竞技场 主界面拉取信息
- return PVPProc::pvpMainInfo();
- case CmdCode::cmd_fight_pvp_refresh: # [6811] 竞技场 刷新对手列表
- return PVPProc::pvp_Refresh();
- case CmdCode::cmd_fight_pvp_pk: # [6812] 竞技场 挑战对手
- return PVPProc::pvp_PK();
- case CmdCode::cmd_fight_pvp_setTeam: # [6813] 竞技场 设定防守队伍
- return PVPProc::pvp_setTeam();
- case CmdCode::cmd_fight_pvp_buyTicket: # [6814] 竞技场 购买挑战票
- return PVPProc::pvp_buyticket();
- case CmdCode::cmd_fight_pvp_getrank: # [6815] 竞技场 查看排行榜
- return PVPProc::pvp_getRank();
- case CmdCode::cmd_fight_pvp_getLog: # [6816] 竞技场 查看挑战记录
- return PVPProc::pvp_getFightLogs();
- // </editor-fold>
- // <editor-fold defaultstate="collapsed" desc=" 竞技商店 682x ">
- case CmdCode::cmd_fight_pvpShop_getMainInfo: # [6820] 竞技场 竞技商店主界面
- return PVPProc::pvpShopMain();
- case CmdCode::cmd_fight_pvpShop_buy: # [6821] 竞技场 竞技商店购买道具
- return PVPProc::pvpShopBuy();
- case CmdCode::cmd_fight_pvpShop_refresh: # [6822] 竞技场 竞技商店刷新道具(扣钻)
- return PVPProc::pvpShopRefresh();
- // </editor-fold>
- case CmdCode::fight_worldBoss_refresh_rank : # 6834 查询世界boss伤害输出榜
- return self::GetWorldBossRank();
- case CmdCode::fight_endlessTower_Get: # 6841 查询无尽塔的进度
- return self::EndlessTower_Get();
- case CmdCode::fight_endlessTower_Up: # 6842 无尽塔升级
- return self::EndlessTower_Up();
- default:
- return Resp::err(ErrCode::cmd_err);
- }
- }
- /**
- * [6834] 查询世界boss伤害输出榜
- */
- static function GetWorldBossRank() {
- $dateHour = date('YmdH');
- $zoneid = req()->zoneid;
- $key = "gamerun-BossFight-byDateHour-zone$zoneid-$dateHour";
- $rank = gMem()->zrangebyscore($key, 0, 50, true);
- return Resp::ok(array('rank' => $rank));
- }
- /**
- * [6841] 查询无尽塔的进度
- */
- static function EndlessTower_Get() {
- return Resp::ok(array('index' => ctx()->privateData()->endlessTower));
- }
- /**
- * [6842] 无尽塔升级
- */
- static function EndlessTower_Up() {
- list( $index) = req()->paras;
- my_Assert($index == ctx()->privateData()->endlessTower, ErrCode::Fight_endlessTower_index);
- ctx()->privateData()->endlessTower++;
- UserProc::updateUserInfo();
- return Resp::ok(array('index' => ctx()->privateData()->endlessTower));
- }
- /**
- * 清理每日字段
- */
- static function ClearByDay() {
- SweepGatesProc::ClearGateTimes(); # 清理每个难度副本的每日战斗次数
- $pvp = new Info_UserPVP(req()->userInfo->game->pvp);
- $pvp->refreshDailyData();
- $pvp->sendRewardEmail(req()->zoneid, req()->uid, PVPProc::GetCurSeasonID());
- req()->userInfo->game->pvp = $pvp;
- }
- }
|