Prechádzať zdrojové kódy

整理活动相关代码.

gwang 4 rokov pred
rodič
commit
6edbd0f674

+ 33 - 33
Gameserver/Amfphp/base/CmdCode.php

@@ -489,16 +489,16 @@ class CmdCode {
 // </editor-fold>
 // </editor-fold>
     //
     //
     // <editor-fold defaultstate="collapsed" desc="活动操作码 - 65xx">
     // <editor-fold defaultstate="collapsed" desc="活动操作码 - 65xx">
-
-    /**
-     * 开服七日活动 - 刷新任务列表
-     */
-    const active_day7_gettasklist = 6500;
-
-    /**
-     * 开服7日活动 - 完成任务
-     */
-    const active_day7_completetask = 6501;
+//    /**
+//     * 开服七日活动 - 刷新任务列表
+//     */
+//    const active_day7_gettasklist = 6500;
+//
+//    /**
+//     * 开服7日活动 - 完成任务
+//     */
+//    const active_day7_completetask = 6501;
+//
 
 
     /**
     /**
      * 开服七日活动 - 领取奖励
      * 开服七日活动 - 领取奖励
@@ -510,35 +510,35 @@ class CmdCode {
      */
      */
     const active_getzonePublicTs = 6503;
     const active_getzonePublicTs = 6503;
 
 
-    /**
-     * 普通任务 - 完成任务
-     */
-    const Task_completetask = 6506;
-
-    /**
-     * 普通任务 - 领取奖励
-     */
-    const Task_drawreward = 6507;
+//    /**
+//     * 普通任务 - 完成任务
+//     */
+//    const Task_completetask = 6506;
+//
+//    /**
+//     * 普通任务 - 领取奖励
+//     */
+//    const Task_drawreward = 6507;
 
 
     /**
     /**
      * 领取体力,间隔领取体力
      * 领取体力,间隔领取体力
      */
      */
     const Task_Tili = 6508;
     const Task_Tili = 6508;
 
 
-    /**
-     * 活动 - 抽奖
-     */
-    const lottery = 6509;
-
-    /**
-     * 新手引导 - 活动-抽奖
-     */
-    const lottery_demo = 6510;
-
-    /**
-     * 活动 - 抽奖 领取保底奖励
-     */
-    const lottery_baodi = 6511;
+//    /**
+//     * 活动 - 抽奖
+//     */
+//    const lottery = 6509;
+//
+//    /**
+//     * 新手引导 - 活动-抽奖
+//     */
+//    const lottery_demo = 6510;
+//
+//    /**
+//     * 活动 - 抽奖 领取保底奖励
+//     */
+//    const lottery_baodi = 6511;
 
 
     /**
     /**
      * 活动 - 凭兑换码领取礼包
      * 活动 - 凭兑换码领取礼包

+ 9 - 96
Gameserver/Amfphp/model/User/PrivateStateModel.php

@@ -7,24 +7,10 @@ namespace loyalsoft;
  * 私有状态标志字
  * 私有状态标志字
  */
  */
 class PrivateStateModel extends Object_ext {
 class PrivateStateModel extends Object_ext {
-// ------------字段声明-------------
-//    tian添加7日活动的数据结构
+// ------------字段声明------------- 
 
 
     /**
     /**
-     * "day7": {  // 初始化user的时候,初始化好day7模块的数据.
-      "tasks":{
-      "401101": {
-      "state": 1, // 1.待完成,2.已完成,待领奖,3.已领奖.
-      },
-      "dianshu":11
-     * }
-     * @var object 7日活动数据
-     */
-    public $day7;
-
-    /**
-     *
-     * @var int 武器的uid,递增
+     * @var int 武器/言灵的uid,递增
      */
      */
     public $currentId = 0;
     public $currentId = 0;
 
 
@@ -38,62 +24,7 @@ class PrivateStateModel extends Object_ext {
      *
      *
      * @var int 物品背包格子的数量.
      * @var int 物品背包格子的数量.
      */
      */
-    public $ItemNum;
-
-    /**
-     *
-     * @var int 当天英雄升级次数
-     */
-    public $heroshengji;
-
-    /**
-     *
-     * @var int 当天英雄升阶次数
-     */
-    public $heroshengjie;
-
-    /**
-     *
-     * @var int 当天英雄技能升级的次数
-     */
-    public $herojinhua;
-
-    /**
-     *
-     * @var int 当天英雄升星次数
-     */
-    public $heroshengxing;
-
-    /**
-     *
-     * @var int 当天装备升级次数
-     */
-    public $ItemUpgrage;
-
-    /**
-     *
-     * @var int 当天宝石升级次数
-     */
-    public $GemUpgrage;
-
-    /**
-     * "tasks":{
-     * "401101": {
-     * "state": 1, // 1.待完成,2.已完成,待领奖,3.已领奖.
-     * }
-     * @var object 任务数据
-     */
-    public $Tasks;
-
-    /**
-     * "tasks":{
-     * "401101": {
-     * "state": 1, // 1.待完成,2.已完成,待领奖,3.已领奖.
-     * "extData": NULL
-     * }
-     * @var object 成就任务数据
-     */
-    public $AchiTasks;
+    public $ItemNum = 0;
 
 
     /**
     /**
      * 上次获取体力的时间戳
      * 上次获取体力的时间戳
@@ -103,15 +34,14 @@ class PrivateStateModel extends Object_ext {
 
 
     /**
     /**
      * 登录天数
      * 登录天数
-     * @var array
+     * @var array[12345,12347,...]
      */
      */
-    public $LoginDays;
+    public $LoginDays = array();
 
 
     /**
     /**
-     * 是否领取过每次登录任务
-     * @var int是1的话就领取过,0的话就没有领取
+     * @var array[1,2,3,4,5,6,7] 7日签到领取数据
      */
      */
-    public $LoginTaskComplete;
+    public $day7_drawed = array();
 
 
     /**
     /**
      * @var array 兑换码使用记录
      * @var array 兑换码使用记录
@@ -164,28 +94,11 @@ class PrivateStateModel extends Object_ext {
 // <editor-fold defaultstate="collapsed" desc="    初始化    ">
 // <editor-fold defaultstate="collapsed" desc="    初始化    ">
 
 
     /**
     /**
-     * 玩家注册时初始化
+     * 玩家注册时初始化, 用于给各个字段赋默认初始值 
      */
      */
     public function initialize() {
     public function initialize() {
-// 用于给各个字段赋默认初始值
-        $this->day7 = JsonUtil::decode(JsonUtil::encode(array('tasks' => ObjectInit(), 'dianshu' => 0)));
-        $this->Tasks = ObjectInit();
-        $this->AchiTasks = ObjectInit();
-        $this->maxItemNum = GameConfig::primordial_data()->User_Private_MaxItem_num; //100;
-        $this->currentId = 0;
-        $this->ItemNum = 0;
-        $this->GemUpgrage = 0;
-        $this->ItemUpgrage = 0;
-        $this->herojinhua = 0;
-        $this->heroshengji = 0;
-        $this->heroshengjie = 0;
-        $this->heroshengxing = 0;
+        $this->maxItemNum = GameConfig::primordial_data()->User_Private_MaxItem_num; # Ps.默认100; 
         $this->TiliTime = now();
         $this->TiliTime = now();
-
-        $this->LoginDays = ArrayInit();
-        $this->LoginTaskComplete = 0;
-
-        $this->usedTokens = ArrayInit();
     }
     }
 
 
 // </editor-fold>
 // </editor-fold>

+ 37 - 245
Gameserver/Amfphp/process/ActiveProc.php

@@ -2,10 +2,7 @@
 
 
 namespace loyalsoft;
 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) {
     public static function procMain($req) {
         switch ($req->cmd) {
         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 领取奖励
             case CmdCode::active_day7_drawreward:                               # 6502 领取奖励
-                return Day7Tasks::Day7_DrawReward($req);
+                return self::Day7_DrawReward($req);
             case CmdCode::active_getzonePublicTs:                               # 6503 查询开服时间戳
             case CmdCode::active_getzonePublicTs:                               # 6503 查询开服时间戳
                 return ActiveProc::GetZonePublicTS($req);
                 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 体力变化
             case CmdCode::Task_Tili:                                            # 6508 体力变化
                 return ActiveProc::RecoveryTili($req);
                 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 兑换码礼包
             case CmdCode::active_token_drawReward:                              # 6512 兑换码礼包
                 return self::drawActivePackageByCode($req);
                 return self::drawActivePackageByCode($req);
             case CmdCode::active_draw_onlinegift:                               # 6513 领取在线礼包
             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="    赠送体力    ">
 // <editor-fold defaultstate="collapsed" desc="    赠送体力    ">
 
 
     /**
     /**
@@ -224,7 +215,7 @@ class ActiveProc {
         $codePlatStr = GameConstants::GetPlatStringByActivteCode($activeCode);  # platstr
         $codePlatStr = GameConstants::GetPlatStringByActivteCode($activeCode);  # platstr
         if (GameConstants::AllPlatStr !== $codePlatStr                          # 忽略全平台礼包
         if (GameConstants::AllPlatStr !== $codePlatStr                          # 忽略全平台礼包
                 && $req->userInfo->getPlatStr() !== $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
         if (!is_int($activeCode->number)                                        # 检查 兑换码的编号范围0~50000
                 || $activeCode->number < 1 || $activeCode->number > 50000) {
                 || $activeCode->number < 1 || $activeCode->number > 50000) {
@@ -253,7 +244,7 @@ class ActiveProc {
         if (!$ok) {
         if (!$ok) {
             return Resp::err(ErrCode::err_db, daoInst()->getError(TRUE)); #     # 数据库操作失败- 重试
             return Resp::err(ErrCode::err_db, daoInst()->getError(TRUE)); #     # 数据库操作失败- 重试
         }
         }
-        UserProc::updateUserInfo();                                         # 回存玩家数据
+        UserProc::updateUserInfo();                                             # 回存玩家数据
         $ret = array(#                                                          # 返回值
         $ret = array(#                                                          # 返回值
             "plat" => $codePlatStr,
             "plat" => $codePlatStr,
             "packageId" => $activeCode->package,
             "packageId" => $activeCode->package,
@@ -296,25 +287,6 @@ class ActiveProc {
 
 
 // </editor-fold>
 // </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
      * @param Req $req
@@ -324,167 +296,7 @@ class ActiveProc {
         return Resp::ok($zoneInfo->publicTs);
         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;
         return $resp;
     }
     }
 
 
+    /**
+     * 清理每天的赠送体力领取记录
+     * @param Req $req
+     */
+    private static function ClearDailyTiliGift($req) {
+        $req->userInfo->game->privateState->dailyDrawedTiliGift = ArrayInit();
+    }
+
     /**
     /**
      * 修改玩家体力
      * 修改玩家体力
      * @param int $useTili $useTili>0代表增加体力,   $useTili<0代表消耗体力
      * @param int $useTili $useTili>0代表增加体力,   $useTili<0代表消耗体力
@@ -539,60 +359,32 @@ class ActiveProc {
         return ErrCode::ok;
         return ErrCode::ok;
     }
     }
 
 
+// </editor-fold>
+// 
+// 
+// <editor-fold defaultstate="collapsed" desc="    7日签到   ">
+
     /**
     /**
-     * 重置每日任务相关计数器
+     * 重置7日签到相关计数器
      * @param Req $req
      * @param Req $req
      */
      */
-    static function DailyResetTaskAccountNum($req) {
+    static function DailyResetDay7Task($req) {
         $req->userInfo->game->gates->Times = 0;
         $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) {
         if (count($req->userInfo->game->privateState->LoginDays) < 7) {
             $req->userInfo->game->privateState->LoginDays[] = tsDay();
             $req->userInfo->game->privateState->LoginDays[] = tsDay();
         }
         }
     }
     }
 
 
     /**
     /**
-     * 清理每日任务,每天都会将每日任务置为未完成状态
+     * [6502] 领取七日签到奖励
      * @param req $req
      * @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>
+//    
 }
 }

+ 0 - 168
Gameserver/Amfphp/process/ActiveProc/Day7Tasks.php

@@ -1,168 +0,0 @@
-<?php
-
-namespace loyalsoft;
-
-/**
- * 活动 - 七日任务
- * @version
- *          1.0.0 Created at 2017-11-3. by --gwang
- * @author gwang (mail@wanggangzero.cn)
- * @copyright ? 2017-11-3, SJZ LoyalSoft Corporation & gwang. All rights reserved.
- */
-class Day7Tasks {
-//put your code here
-
-    /**
-     * 开服七日活动 - 领取奖励
-     * @param Req $req
-     */
-    static function Day7_DrawReward($req) {
-        $day7 = $req->userInfo->game->privateState->day7;
-        $taskId = $req->paras[0];                                               # 任务ID or "final"
-        if ($taskId == "final") {                                               # 最终奖励 -- 哈哈,magic code
-            if (CommUtil::isPropertyExists($day7, "final")) {                   # 已经领过了
-                return Resp::err(ErrCode::active_hasgetted);
-            }
-// 检查总共完成的任务点数(记录到day7上,每完成一个任务就更新点数)
-            $g = glc();
-            if (count($req->userInfo->game->privateState->LoginDays) < 7) {     # 对比终极奖励所需点数   谷城亮已经改动这里的需求,不是按照点数来判断是否完成任务,而是按照登录天数,超过7天即可
-                return Resp::err(ErrCode::active_day7_totaldianshu);
-            }
-            $err = StoreProc::AddMultiItemInStore($req, $g->day7_reward, 2);    # 发放奖励
-            if (ErrCode::ok != $err) {
-                return Resp::err($err);
-            }
-            $day7->final = 1;                                                   # 添加领取记录
-            UserProc::updateUserInfo();                                     # 回存数据
-            $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);
-        } else {                                                                # 普通任务奖励
-            $task = $day7->tasks->$taskId;                                      # 取任务数据
-            if (!$task) {                                                       # 找不到任务数据
-                return Resp::err(ErrCode::active_day7_taskno_err);
-            }
-            if ($task->state == 1) {                                            # 看任务状态,如果是未完成状态,则报错
-                return Resp::err(ErrCode::active_day7_taskstate_err);
-            }
-            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::day7_getItem($taskId);                     # 取任务常量
-            if (!$taskModel) {
-                return Resp::err(ErrCode::active_day7_const_no_err);
-            }
-            $task->state = 3;                                                   # 修改任务状态
-            if (!CommUtil::isPropertyExists($day7, "dianshu")) {
-                $day7->dianshu = 0;
-            }
-            $day7->dianshu += $taskModel->dianshu;                              #
-            echo var_dump($taskModel);
-            $err = StoreProc::AddMultiItemInStore($req, $taskModel->reward, 2);
-            if (ErrCode::ok != $err) {
-                return Resp::err($err);
-            }
-            UserProc::updateUserInfo();                                     # 回存数据
-            $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 Req $req
-     */
-    static function Day7_CompleteTask($req) {
-        $taskId = $req->paras[0];                                               # 任务ID
-        $day7 = $req->userInfo->game->privateState->day7;
-        $tasks = $day7->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::day7_getItem($taskId);
-        if (!$taskModel) {
-            return Resp::err(ErrCode::active_day7_const_no_err);
-        }
-
-        if (self::CheckDay7TaskComplete($taskModel, $req)) {                    # 下面该检测了,检测客户端发来的完成任务请求是否准确
-            $tasks->$taskId->state = 2;                                         # 更新任务状态 
-            UserProc::updateUserInfo();                                     # 回写玩家数据
-        }
-        return Resp::ok(array("ret" => "ok"));
-    }
-
-    /**
-     * 开服七日活动 - 刷新任务状态
-     * @param Req $req
-     */
-    static function Day7_RefreshTaskList($req) {                             // 无参数
-        $tasks = $req->userInfo->game->privateState->day7->tasks;
-        return Resp::ok(array('tasks' => $tasks));
-    }
-
-    /**
-     * 检测七日任务的完成
-     * @param sm_task $taskModel  任务数据
-     * @param Req $req
-     */
-    static function CheckDay7TaskComplete($taskModel, $req) {
-////下面该检测了,检测客户端发来的完成任务请求是否准确
-////数据库还没改好,不知道会用什么,暂时用老办法
-        return true; ///////因为数据量太大,先这样测试
-        switch ($taskModel->tasktype) {
-            case 5: // 七日任务里面的登录任务,这个任务需要判断条件,需要判断登录够多少次
-                return $taskModel->canshu <= count($req->userInfo->game->privateState->LoginDays);
-            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 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;
-        }
-    }
-
-}

+ 4 - 2
Gameserver/Amfphp/process/EmailProc.php

@@ -187,9 +187,11 @@ class EmailProc {
 //            isEditor() and $mm = new EmailModel;
 //            isEditor() and $mm = new EmailModel;
             $asocMails[$mm->mailId] = $mm;
             $asocMails[$mm->mailId] = $mm;
         }
         }
-        self::updateMails($zoneid, $uid, $asocMails);                           # 批量更新邮件 
-        self::logMailDrawed($rewardEmailIds, $uid, $zoneid);                    # 更新数据库中邮件的领取记录
         $n = count($rewardEmailIds);                                            # 计数,领取邮件数量
         $n = count($rewardEmailIds);                                            # 计数,领取邮件数量
+        if ($n > 0) {
+            self::updateMails($zoneid, $uid, $asocMails);                       # 批量更新邮件 
+            self::logMailDrawed($rewardEmailIds, $uid, $zoneid);                # 更新数据库中邮件的领取记录
+        }
         $reward = implode(';', $arr);                                           # 拼接下奖励字符串
         $reward = implode(';', $arr);                                           # 拼接下奖励字符串
         UserProc::updateUserInfo();
         UserProc::updateUserInfo();
         return Resp::ok(array(#                                                 # 同步数据
         return Resp::ok(array(#                                                 # 同步数据