cyzhao 4 rokov pred
rodič
commit
c3485fd884

+ 1 - 3
Gameserver/Amfphp/base/OpeCode.php

@@ -75,10 +75,8 @@ class OpeCode {
      * 
      */
     const College = 613;
-//
-//
-    // <editor-fold defaultstate="collapsed" desc="反射方法">
 
+    // <editor-fold defaultstate="collapsed" desc="反射方法">
     //
 
     /**

+ 4 - 1
Gameserver/Amfphp/model/User/Ins_TaskCard.php

@@ -69,8 +69,11 @@ class Ins_TaskCard extends Object_ext {
      * @return boolean 分析任务卡是否已经完成所有步骤
      */
     public function IsFinish() {
+        if ($this->state >= Enum_TaskCardStateType::finish) {                   # 已经完成
+            return true;
+        }
         $isFinish = true;
-        foreach ($this->curSteps as &$tsp) {                                   # 初期里面只有一个任务
+        foreach ($this->curSteps as &$tsp) {                                    # 初期里面只有一个任务
             $tsp = new Ins_TaskStep($tsp);
             if (!$tsp->isFinish()) {
                 $isFinish = false;

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

@@ -158,7 +158,9 @@ class EmailProc {
         my_Assert(ErrCode::ok == $err, $err);                                   # 发奖成功
         $mail->drawedts = now();                                                # 更新领取时间戳
         self::updateMail($zoneid, $uid, $mail);                                 # 回写邮件数据
-        TaskProc::OnDrawSysMail($mail->mailId);
+        if ($mail->sender_name == '系统') {
+            TaskProc::OnDrawSysMail($mail->sender_uid);
+        }
         self::logMailDrawed(array($mailId), $uid, $zoneid);                     # 更新数据库中邮件的领取记录 
         UserProc::updateUserInfo();
         return Resp::ok(array(#                                                 # 同步数据        
@@ -197,7 +199,9 @@ class EmailProc {
                 }
                 $arr[] = $m->appendix;
                 $rewardEmailIds[] = $m->mailId;
-                TaskProc::OnDrawSysMail($m->mailId);
+                if ($m->sender_name == '系统') {
+                    TaskProc::OnDrawSysMail($m->sender_uid);
+                }
             } //  else                                                          # 无附件的邮件不管
         }
         $asocMails = array();
@@ -516,9 +520,10 @@ class EmailProc {
                 if ($ts < $sysMail->startts) {
                     continue;                                                   # 系统邮件尚未生效, 跳过
                 }                                                               # else => 有效期内,继续处理
-                $mail = new Ins_Email($sysMail);                               # 创建邮件
+                $mail = new Ins_Email($sysMail);                                # 创建邮件
                 $mail->type = enum_Mail_Type::SysTemMail;                       # 设置邮件类型为系统邮件
-                $mail->sender_uid = $mail->sender_name = "系统";                # 设置发送者昵称和uid为系统
+                $mail->sender_uid = $sysMail->id;                               # 设置uid为系统邮件id
+                $mail->sender_name = "系统";                                    #  设置发送者昵称为系统
                 self::InsertMail($zoneid, $uid, $mail);                         # 插入邮件
                 $mem->sadd($key, $sysId);                                       # 记录已经领取此邮件
             }

+ 8 - 5
Gameserver/Amfphp/process/StoreProc.php

@@ -501,7 +501,7 @@ class StoreProc {
     }
 
     /**
-     * [6417] 给英雄装上言灵
+     * [6416] 给英雄装上言灵
      * @param req $req
      * @return type
      */
@@ -535,16 +535,18 @@ class StoreProc {
             $user->store->yanling->$oldYLid->herouid = 0;                       # 清理旧言灵的
         }
         $collectHeros->$herouid->yanling->$itemtype->itemuid = $yanling_uid;    # 英雄身上添加言灵记录
-        TaskProc::OnHeroWearWeapon($collectHeros->$herouid->typeId, $user->store->yanling->$yanling_uid->typeId);
+//        var_dump("装备言灵.");
+        TaskProc::OnHeroWearYanling($collectHeros->$herouid->typeId, $user->store->yanling->$yanling_uid->typeId);
         UserProc::updateUserInfo();                                             # 5.回写数据
-        $ret = array('resp' => "succeed!");
+        $ret = array('resp' => "succeed!",
+            'store' => $user->store);
         $resp = Resp::ok($ret);                                                 // 返回 
         HeroProc::CalcUserFightPower($req->zoneid, $req->uid, $user);           # 更新总战力榜
         return $resp;
     }
 
     /**
-     * [6416] 给英雄卸下言灵
+     * [6417] 给英雄卸下言灵
      * @param req $req
      * @return type
      * @deprecated since version 无法卸下,只能更换
@@ -617,7 +619,8 @@ class StoreProc {
 //        StoreProc::CheckItemNum($req);
         TaskProc::OnHeroWearWeapon($collectHeros->$herouid->typeId, $user->store->equipment->$equipuid->typeId);
         HeroProc::CalcUserFightPower($req->zoneid, $req->uid, $user);           # 更新总战力榜
-        return Resp::ok(array('resp' => "succeed!"));                           // 返回 
+        return Resp::ok(array('resp' => "succeed!",
+                    'store' => $user->store));                           // 返回 
     }
 
     /**

+ 5 - 4
Gameserver/Amfphp/process/TaskProc.php

@@ -353,19 +353,19 @@ class TaskProc {
                 $ok = StoreProc::removeItemFromStore($store, $tsp->mo()->paras, $tsp->mo()->num);
                 my_Assert(ErrCode::ok == $ok, ErrCode::taskCard_gainItem_no);
             }
-        }              
+        }
         if (strlen($taskCard->mo()->reward) > 0) {                              # 防御奖励串为空
             StoreProc::AddMultiItemInStore($req, $taskCard->mo()->reward);      # 发放奖励
-        }               
+        }
         if ($taskCard->mo()->exp > 0) {                                         # 任务卡增加了指挥官经验
             Data_UserGame::Add_Exp($req->userInfo->game->baseInfo, $taskCard->mo()->exp);
         }
-        $taskCard->state = Enum_TaskCardStateType::drawed;                      
+        $taskCard->state = Enum_TaskCardStateType::drawed;
         //2021-3-4
         $college = new Info_College($req->userInfo->game->college);
         $college->modifyTaskCardState($taskCard->typeId, Enum_TaskCardStateType::drawed);
         $req->userInfo->game->college = $college;
-        
+
         $store->taskcards->$taskCardUID = $taskCard;                            # 回写任务数据
         NormalEventProc::OnTaskCard_Reward($taskCard->mo()->reward, null);      # 带入事件
         self::OnFinishTaskCard();                                               # 触发检查任务卡的任务卡[・_・?]
@@ -839,6 +839,7 @@ class TaskProc {
             if ($task->state != Enum_TaskCardStateType::ing) {
                 continue;
             }
+
             foreach ($task->curSteps as &$tsp) {                                # 初期里面只有一个任务
                 $tsp = new Ins_TaskStep($tsp);
 //                var_dump($tsp);