|
@@ -2,10 +2,7 @@
|
|
|
|
|
|
namespace loyalsoft;
|
|
|
|
|
|
-//require_once __DIR__ . '/ActiveProc/Lotterys.php';
|
|
|
-//require_once __DIR__ . '/ActiveProc/Boxes.php';
|
|
|
-require_once __DIR__ . '/ActiveProc/Day7Tasks.php';
|
|
|
-require_once __DIR__ . '/ActiveProc/CipheredBase32.php';
|
|
|
+require_once __DIR__ . '/ActiveProc/CipheredBase32.php'; # 算法库
|
|
|
|
|
|
/**
|
|
|
* 活动模块
|
|
@@ -24,28 +21,12 @@ class ActiveProc {
|
|
|
*/
|
|
|
public static function procMain($req) {
|
|
|
switch ($req->cmd) {
|
|
|
- case CmdCode::active_day7_gettasklist: # 6500 刷新任务状态
|
|
|
- return Day7Tasks::Day7_RefreshTaskList($req);
|
|
|
- case CmdCode::active_day7_completetask: # 6501 完成任务
|
|
|
- return Day7Tasks:: Day7_CompleteTask($req);
|
|
|
case CmdCode::active_day7_drawreward: # 6502 领取奖励
|
|
|
- return Day7Tasks::Day7_DrawReward($req);
|
|
|
+ return self::Day7_DrawReward($req);
|
|
|
case CmdCode::active_getzonePublicTs: # 6503 查询开服时间戳
|
|
|
return ActiveProc::GetZonePublicTS($req);
|
|
|
- case CmdCode::Task_completetask: # 6506 完成任务
|
|
|
- return ActiveProc::Tasks_CompleteTask($req);
|
|
|
- case CmdCode::Task_drawreward: # 6507 领取奖励
|
|
|
- return ActiveProc::Tasks_DrawReward($req);
|
|
|
case CmdCode::Task_Tili: # 6508 体力变化
|
|
|
return ActiveProc::RecoveryTili($req);
|
|
|
-// case CmdCode::lottery: # 6509 抽奖
|
|
|
-// return Boxes::OpenBox($req); # 宝箱
|
|
|
-// return Lotterys::Lottery($req);
|
|
|
-// return Lotterys::Lottery_Hero($req);
|
|
|
-// case CmdCode::lottery_demo: # 6510 新手引导: 抽奖
|
|
|
-// return Lotterys::demoLottery($req);
|
|
|
-// case CmdCode::lottery_baodi: # 6511 抽奖 - 保底奖励
|
|
|
-// return Lotterys::baodiLottery($req);
|
|
|
case CmdCode::active_token_drawReward: # 6512 兑换码礼包
|
|
|
return self::drawActivePackageByCode($req);
|
|
|
case CmdCode::active_draw_onlinegift: # 6513 领取在线礼包
|
|
@@ -62,6 +43,16 @@ class ActiveProc {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 每天重置
|
|
|
+ * @param type $req
|
|
|
+ */
|
|
|
+ static function DailyReset($req) {
|
|
|
+ self::DailyResetDay7Task($req);
|
|
|
+ self::ClearOnlineGiftTs($req);
|
|
|
+ self::ClearDailyTiliGift($req);
|
|
|
+ }
|
|
|
+
|
|
|
// <editor-fold defaultstate="collapsed" desc=" 赠送体力 ">
|
|
|
|
|
|
/**
|
|
@@ -224,7 +215,7 @@ class ActiveProc {
|
|
|
$codePlatStr = GameConstants::GetPlatStringByActivteCode($activeCode); # platstr
|
|
|
if (GameConstants::AllPlatStr !== $codePlatStr # 忽略全平台礼包
|
|
|
&& $req->userInfo->getPlatStr() !== $codePlatStr) { # 平台字符串必须相符
|
|
|
- return Resp::err(ErrCode::active_activecode_plat, $codePlatStr); # # 平台错误
|
|
|
+ return Resp::err(ErrCode::active_activecode_plat, $codePlatStr); # # 平台错误
|
|
|
}
|
|
|
if (!is_int($activeCode->number) # 检查 兑换码的编号范围0~50000
|
|
|
|| $activeCode->number < 1 || $activeCode->number > 50000) {
|
|
@@ -253,7 +244,7 @@ class ActiveProc {
|
|
|
if (!$ok) {
|
|
|
return Resp::err(ErrCode::err_db, daoInst()->getError(TRUE)); # # 数据库操作失败- 重试
|
|
|
}
|
|
|
- UserProc::updateUserInfo(); # 回存玩家数据
|
|
|
+ UserProc::updateUserInfo(); # 回存玩家数据
|
|
|
$ret = array(# # 返回值
|
|
|
"plat" => $codePlatStr,
|
|
|
"packageId" => $activeCode->package,
|
|
@@ -296,25 +287,6 @@ class ActiveProc {
|
|
|
|
|
|
// </editor-fold>
|
|
|
|
|
|
- /**
|
|
|
- * 每天重置
|
|
|
- * @param type $req
|
|
|
- */
|
|
|
- static function DailyReset($req) {
|
|
|
-// self::DailyResetTaskAccountNum($req);
|
|
|
-// self::ResetEverydayTask($req);
|
|
|
- self::ClearOnlineGiftTs($req);
|
|
|
- self::ClearDailyTiliGift($req);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 清理每天的赠送体力领取记录
|
|
|
- * @param Req $req
|
|
|
- */
|
|
|
- private static function ClearDailyTiliGift($req) {
|
|
|
- $req->userInfo->game->privateState->dailyDrawedTiliGift = ArrayInit();
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 查询当前分区开放时间戳
|
|
|
* @param Req $req
|
|
@@ -324,167 +296,7 @@ class ActiveProc {
|
|
|
return Resp::ok($zoneInfo->publicTs);
|
|
|
}
|
|
|
|
|
|
-//
|
|
|
-// <editor-fold defaultstate="collapsed" desc=" 每日任务 ">
|
|
|
-//
|
|
|
-
|
|
|
- /**
|
|
|
- * 普通任务 完成任务
|
|
|
- * @param Req $req
|
|
|
- */
|
|
|
- private static function Tasks_CompleteTask($req) {
|
|
|
- $taskId = $req->paras[0]; // 任务ID
|
|
|
- $tasks = $req->userInfo->game->privateState->Tasks;
|
|
|
- if (!$tasks) {
|
|
|
- return Resp::err(ErrCode::user_data_broken_err);
|
|
|
- }
|
|
|
- if ($tasks->$taskId->state == 3) {
|
|
|
- return Resp::err(ErrCode::active_day7_taskstate_err);
|
|
|
- }
|
|
|
- $taskModel = GameConfig::task_getItem($taskId);
|
|
|
- if (!$taskModel) {
|
|
|
- return Resp::err(ErrCode::active_day7_const_no_err);
|
|
|
- }
|
|
|
- if (ActiveProc::CheckTaskComplete($taskModel, $req)) { //下面该检测了,检测客户端发来的完成任务请求是否准确
|
|
|
- $tasks->$taskId->state = 2; // 更新任务状态
|
|
|
- UserProc::updateUserInfo(); // 回写玩家数据
|
|
|
- }
|
|
|
- return Resp::ok(array("ret" => "ok"));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 普通任务 - 领取奖励
|
|
|
- * @param Req $req
|
|
|
- */
|
|
|
- private static function Tasks_DrawReward($req) {
|
|
|
- $taskId = $req->paras[0]; // 任务ID
|
|
|
- $task = $req->userInfo->game->privateState->Tasks->$taskId; // 取任务数据
|
|
|
- if (!$task) { // 找不到任务数据
|
|
|
- return Resp::err(ErrCode::active_day7_taskno_err);
|
|
|
- }
|
|
|
- if ($task->state == 1) { // 看任务状态,如果是未完成状态,则报错
|
|
|
- return Resp::err(ErrCode::active_day7_taskstate_err);
|
|
|
- }
|
|
|
- $baseInfo = $req->userInfo->game->baseInfo;
|
|
|
- if ($task->state != 2) { // 看任务状态,如果是已领取状态,则直接返回当前数据
|
|
|
- $result = array(
|
|
|
- 'store' => $req->userInfo->game->store,
|
|
|
- 'heros' => $req->userInfo->game->heros,
|
|
|
- 'cash' => $req->userInfo->game->baseInfo->cash,
|
|
|
- 'tili' => $req->userInfo->game->baseInfo->tili,
|
|
|
- 'time' => $req->userInfo->game->privateState->TiliTime,
|
|
|
- 'gold' => $req->userInfo->game->baseInfo->gold
|
|
|
- );
|
|
|
- return Resp::ok($result);
|
|
|
- }
|
|
|
- $taskModel = GameConfig::task_getItem($taskId); // 取任务常量
|
|
|
- if (!$taskModel) {
|
|
|
- return Resp::err(ErrCode::active_day7_const_no_err);
|
|
|
- }
|
|
|
-
|
|
|
- $task->state = 3; // 修改任务状态
|
|
|
- $err = StoreProc::AddMultiItemInStore($req, $taskModel->reward, 2);
|
|
|
-
|
|
|
- if (ErrCode::ok != $err) {
|
|
|
- return Resp::err($err);
|
|
|
- }
|
|
|
- $result = array(
|
|
|
- 'store' => $req->userInfo->game->store,
|
|
|
- 'heros' => $req->userInfo->game->heros,
|
|
|
- 'cash' => $req->userInfo->game->baseInfo->cash,
|
|
|
- 'tili' => $req->userInfo->game->baseInfo->tili,
|
|
|
- 'time' => $req->userInfo->game->privateState->TiliTime,
|
|
|
- 'gold' => $req->userInfo->game->baseInfo->gold
|
|
|
- );
|
|
|
- return Resp::ok($result);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 普通任务的完成
|
|
|
- * @param sm_task $taskModel 任务的数据
|
|
|
- * @param Req $req
|
|
|
- */
|
|
|
- private static function CheckTaskComplete($taskModel, $req) {
|
|
|
-////下面该检测了,检测客户端发来的完成任务请求是否准确
|
|
|
-////数据库还没改好,不知道会用什么,暂时用老办法
|
|
|
- return true; ///////因为数据量太大,先这样测试
|
|
|
- switch ($taskModel->tasktype) {
|
|
|
- case 5://每日登录任务,只要能发送这个消息就说明他完成了登录任务,只需要判断当天是否已经领取过
|
|
|
-// 建议改法: return $req->userInfo->game->privateState->LoginTaskComplete = 1;
|
|
|
- if ($req->userInfo->game->privateState->LoginTaskComplete == 0) {
|
|
|
- $req->userInfo->game->privateState->LoginTaskComplete = 1;
|
|
|
- return true;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 11: // 战斗力是否达到要求,战斗力暂时不检测,
|
|
|
-// 因为目前即使服务器验证也是客服端计算的上传结果. 20170311
|
|
|
- return true;
|
|
|
- case 12: //如果是英雄升级任务
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->privateState->heroshengji;
|
|
|
- case 13://如果是英雄升阶任务
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->privateState->heroshengjie;
|
|
|
- case 14: //如果是英雄技能升级任务
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->privateState->herojinhua;
|
|
|
- case 15: //如果是英雄升星任务
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->privateState->heroshengxing;
|
|
|
- case 21: //如果是通关任务普通
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->gates->normal->highest;
|
|
|
- case 22://如果是通关任务困难
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->gates->hard->highest;
|
|
|
- case 23://如果是通关任务精英
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->gates->elite->highest;
|
|
|
- case 24://如果是通关任务次数
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->gates->Times;
|
|
|
- case 25: # pvp 挑战次数
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->pvp->dailyPkCnt;
|
|
|
- case 31: //如果是装备升级任务
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->privateState->ItemUpgrage;
|
|
|
- case 32: //如果是宝石合成任务
|
|
|
- return $taskModel->canshu <= $req->userInfo->game->privateState->GemUpgrage;
|
|
|
-// case 41: //如果是好友任务
|
|
|
-// return $taskModel->canshu <= FriendProc::getCurrentFriendsCount($req);
|
|
|
-
|
|
|
- default :
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 更新任务计数
|
|
|
- * @param Req $req
|
|
|
- */
|
|
|
- public static function ChangeTaskCount($req) {
|
|
|
- switch ($req->cmd) {
|
|
|
- case CmdCode::cmd_hero_levelup: # 英雄升级
|
|
|
- $req->userInfo->game->privateState->heroshengji++;
|
|
|
- break;
|
|
|
- case CmdCode::cmd_hero_strength: # 英雄强化
|
|
|
- $req->userInfo->game->privateState->heroshengjie++;
|
|
|
- break;
|
|
|
- case CmdCode::cmd_hero_upstar: # 英雄升星
|
|
|
- $req->userInfo->game->privateState->heroshengxing++;
|
|
|
- break;
|
|
|
- case CmdCode::cmd_hero_buyCollectHeroLimtCount: # 扩展英雄数量上限
|
|
|
- break;
|
|
|
- case CmdCode::cmd_hero_upgradeSkillLevel: # 升级技能
|
|
|
- $req->userInfo->game->privateState->herojinhua++;
|
|
|
- break;
|
|
|
- case CmdCode::cmd_store_ItemUpgrade: # 升级装备
|
|
|
- $req->userInfo->game->privateState->ItemUpgrage++;
|
|
|
- break;
|
|
|
- case CmdCode::cmd_store_GemCompose: # 宝石合成
|
|
|
- $req->userInfo->game->privateState->GemUpgrage++;
|
|
|
- break;
|
|
|
- }
|
|
|
- UserProc::updateUserInfo();
|
|
|
- }
|
|
|
-
|
|
|
- public static function AddEverydayTask() {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-// </editor-fold>
|
|
|
-//
|
|
|
+// <editor-fold defaultstate="collapsed" desc=" 体力 ">
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -504,6 +316,14 @@ class ActiveProc {
|
|
|
return $resp;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 清理每天的赠送体力领取记录
|
|
|
+ * @param Req $req
|
|
|
+ */
|
|
|
+ private static function ClearDailyTiliGift($req) {
|
|
|
+ $req->userInfo->game->privateState->dailyDrawedTiliGift = ArrayInit();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 修改玩家体力
|
|
|
* @param int $useTili $useTili>0代表增加体力, $useTili<0代表消耗体力
|
|
@@ -539,60 +359,32 @@ class ActiveProc {
|
|
|
return ErrCode::ok;
|
|
|
}
|
|
|
|
|
|
+// </editor-fold>
|
|
|
+//
|
|
|
+//
|
|
|
+// <editor-fold defaultstate="collapsed" desc=" 7日签到 ">
|
|
|
+
|
|
|
/**
|
|
|
- * 重置每日任务相关计数器
|
|
|
+ * 重置7日签到相关计数器
|
|
|
* @param Req $req
|
|
|
*/
|
|
|
- static function DailyResetTaskAccountNum($req) {
|
|
|
+ static function DailyResetDay7Task($req) {
|
|
|
$req->userInfo->game->gates->Times = 0;
|
|
|
- $req->userInfo->game->privateState->GemUpgrage = 0;
|
|
|
- $req->userInfo->game->privateState->ItemUpgrage = 0;
|
|
|
- $req->userInfo->game->privateState->herojinhua = 0;
|
|
|
- $req->userInfo->game->privateState->heroshengji = 0;
|
|
|
- $req->userInfo->game->privateState->heroshengjie = 0;
|
|
|
- $req->userInfo->game->privateState->heroshengxing = 0;
|
|
|
- $req->userInfo->game->privateState->LoginTaskComplete = 0;
|
|
|
if (count($req->userInfo->game->privateState->LoginDays) < 7) {
|
|
|
$req->userInfo->game->privateState->LoginDays[] = tsDay();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 清理每日任务,每天都会将每日任务置为未完成状态
|
|
|
+ * [6502] 领取七日签到奖励
|
|
|
* @param req $req
|
|
|
*/
|
|
|
- public static function ResetEverydayTask($req) {
|
|
|
- $tasks = $req->userInfo->game->privateState->Tasks;
|
|
|
- $conTasks = GameConfig::task();
|
|
|
- $arrTask = ArrayInit();
|
|
|
- // var_dump($conTasks);
|
|
|
- foreach ($conTasks as $s_taskid => $s_task) {
|
|
|
-
|
|
|
- if ($s_task->ban == 1) { # 每日任务
|
|
|
- if (CommUtil::isPropertyExists($tasks, $s_taskid)) {
|
|
|
- unset($tasks->$s_taskid);
|
|
|
- }
|
|
|
- $val = explode(",", $s_task->taskrank);
|
|
|
- $lowlevel = $val[0];
|
|
|
- $highlevel = $val[1];
|
|
|
- if ($req->userInfo->game->baseInfo->level > $lowlevel && $req->userInfo->game->baseInfo->level <= $highlevel) {
|
|
|
- $tasks->$s_taskid = json_decode('{"state":1}');
|
|
|
- // $arrTask[] = $s_taskid;
|
|
|
- // var_dump($arrTask);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if ($s_task->ban == 5) { # pvp任务
|
|
|
- $tasks->$s_taskid = json_decode('{"state":1}');
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // $rand_keys = array_rand($arrTask, 5); # 每日任务随机出现5个
|
|
|
-// foreach ($rand_keys as $index) {
|
|
|
-// $s_taskid = $arrTask[$index];
|
|
|
-// $tasks->$s_taskid->state = 1;
|
|
|
-// }
|
|
|
-// $req->userInfo->game->privateState->LoginCount = 1;
|
|
|
- $req->userInfo->game->privateState->Tasks = $tasks;
|
|
|
+ static function Day7_DrawReward($req) {
|
|
|
+ // 设计7日数据结构
|
|
|
+ // 检查领取条件
|
|
|
+ // 结束
|
|
|
}
|
|
|
|
|
|
+// </editor-fold>
|
|
|
+//
|
|
|
}
|