소스 검색

mod: 关卡结算时根据类型做不同处理.

gwang 4 년 전
부모
커밋
6e602efc71
1개의 변경된 파일48개의 추가작업 그리고 4개의 파일을 삭제
  1. 48 4
      Gameserver/Amfphp/process/FightProc/SweepGatesProc.php

+ 48 - 4
Gameserver/Amfphp/process/FightProc/SweepGatesProc.php

@@ -127,14 +127,58 @@ class SweepGatesProc {
      * [6801] 关卡挑战1次 
      */
     public static function Arenas_Fight() {
-        list($gateId, $difficulty, $star, $TeamObj) = req()->paras;             # 提取参数: 挑战的关卡Id, 关卡难度(0,1,2), 几星, 队伍, 奖励字符串
+        $gateId = req()->paras[0];
+//        list($gateId, $difficulty, $star, $TeamObj) = req()->paras;             # 提取参数: 挑战的关卡Id, 关卡难度(0,1,2), 几星, 队伍, 奖励字符串
         my_Assert($gateId > 0, ErrCode::err_arenasgate_indexillegal);           # 关卡id非法
 //        $md5 = gMem()->get(MemKey_User::temp_arenas_pre_reward_md5_str($req->zoneid, $req->uid));
 //        $_md5 = md5($gateId . $difficulty . $rewardStr);
 //        my_Assert($md5 == $_md5, ErrCode::err_arenas_rewardIllegal);            # 奖励不匹配
-        $isFirst = false;                                                       # 是否首次通关
-        self::recordFight($gateId, $difficulty, $star, $isFirst);         # 更新挑战记录 
         $smGate = GameConfig::gate_getItem($gateId);                            # 关卡配置数据
+        switch ($smGate->battleType) { #(0普通 怪物全部创建 1Boss站 2引导剧情 3竞技场 4非战斗场景)
+            case 0:                                             # 普通关卡
+
+            case 1:                                             # boss战(结算时按击杀boss)
+                return self::_NormalGate();
+            case 2:                                             # 引导类
+                break;
+            case 3:                                             # pvp
+                break;
+            case 4:                                             # 大厅/主城/召唤之类的
+                break;
+            case 5:                                             # 材料副本
+                break;
+
+//            case 6: ...
+
+            default:
+                break;
+        }
+
+        $user = req()->userInfo->game;
+        $result = array(
+            'store' => $user->store,
+            'heros' => $user->heros,
+            'gates' => $user->gates,
+            'tili' => $user->base()->tili,
+            'time' => $user->privateState->TiliTime,
+            'gold' => $user->base()->gold,
+            'resPoint' => $user->base()->resPoint,
+            'cash' => $user->base()->cash,
+            'exp' => 0,
+//            'rewardstr' => implode(';', $rewardArr),
+            'isFirst' => false,
+        );
+        return Resp::ok($result);
+    }
+
+    /**
+     * 通关普通关卡 
+     */
+    private static function _NormalGate() {
+        list($gateId, $difficulty, $star, $TeamObj) = req()->paras;             # 提取参数: 挑战的关卡Id, 关卡难度(0,1,2), 几星, 队伍, 奖励字符串
+        $smGate = GameConfig::gate_getItem($gateId);                            # 关卡配置数据
+        $isFirst = false;                                                       # 是否首次通关
+        self::recordFight($gateId, $difficulty, $star, $isFirst);               # 更新挑战记录 
         $i = $difficulty + 1;                                                   # 按三个难度取不同的值. 
 //        $gold = self::getProperty_n($smGate, "gold", $i);
         $exp = self::getProperty_n($smGate, "exp", $i);
@@ -159,7 +203,7 @@ class SweepGatesProc {
             }
         }
         UserProc::updateUserInfo();                                             # 回写玩家数据.
-#
+
         TaskProc::OnPassGateN($gateId, $difficulty + 1);
         $user = req()->userInfo->game;
         $result = array(