소스 검색

【bug】修改弹窗时候还可以自动玩游戏问题,修改广告返回时候的逻辑

mojunshou 7 달 전
부모
커밋
5f9dd43f7f

+ 41 - 24
assets/script/game/common/manager/ADHandler.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-04-11 10:14:44
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-04-25 19:12:53
+ * @LastEditTime: 2025-04-27 11:00:14
  * @Description: 
  */
 // ADHandler.ts
@@ -112,9 +112,7 @@ export class ADHandler {
         oops.gui.waitClose();
         smc.game.GameModel.isShowAd = false;
         smc.game.GameModel.viewType = "";
-        if (smc.game.GameModel.viewType != "" && smc.game.GameModel.viewType != "pass_reward") {
-            oops.message.dispatchEvent(GameEvent.updateGameState, "playing");
-        }
+        oops.message.dispatchEvent(GameEvent.updateGameState, "playing");
         //展示失败
         if (smc.game.GameModel.viewType === "revive_reward") {
             oops.message.dispatchEvent(GameEvent.RestartGame);
@@ -124,32 +122,51 @@ export class ADHandler {
     adRewardClose = (state: boolean) => {
         oops.gui.waitClose();
         smc.game.GameModel.isShowAd = false;
-        console.log("[广告] 激励视频关闭", state)
+        console.log("[广告] 激励视频关闭", state);
         oops.message.dispatchEvent(GameEvent.updateGameState, "playing");
+        const viewType = smc.game.GameModel.viewType;
+        // 重置视图类型
+        const resetViewType = () => {
+            smc.game.GameModel.viewType = "";
+        };
         if (state) {
-            //看完了可以领取奖励
-            if (smc.game.GameModel.viewType === "speed_reward") {
-                console.log("自动放置奖励发放成功")
-                oops.message.dispatchEvent(GameEvent.DoubleSpeedOpenSuccess);
-                smc.game.GameModel.viewType = "";
-            } else {
-                ServerHandler.inst.getVideorReward();
-            }
-            //如果是复活,分数不减
-            if (smc.game.GameModel.viewType === "revive_reward") {
-                smc.game.GameModel.viewType = "";
-                oops.message.dispatchEvent(GameEvent.RestartGame);
+            // 广告观看完成,发放奖励
+            switch (viewType) {
+                case "double_reward":  //翻倍奖励
+                    ServerHandler.inst.getVideorReward();
+                    resetViewType();
+                    break;
+                case "pass_reward":    //通关奖励
+                    ServerHandler.inst.getVideorReward();
+                    resetViewType();
+                    ServerHandler.inst.getNextLevel();
+                    break;
+                case "speed_reward":   //加速奖励
+                    oops.message.dispatchEvent(GameEvent.DoubleSpeedOpenSuccess);
+                    resetViewType();
+                    break;
+                case "revive_reward":  //复活奖励
+                    resetViewType();
+                    oops.message.dispatchEvent(GameEvent.RestartGame);
+                    break;
             }
         } else {
-            //通关奖励,没看完也能过下一关
-            if (smc.game.GameModel.viewType == "pass_reward") {
-                smc.game.GameModel.viewType = "";
-                ServerHandler.inst.getNextLevel();
-            } else if (smc.game.GameModel.viewType === "revive_reward") {
-                smc.game.GameModel.viewType = "";
-                ServerHandler.inst.RestartGame();
+            // 广告未完成观看
+            switch (viewType) {
+                case "pass_reward":
+                    resetViewType();
+                    ServerHandler.inst.getNextLevel();
+                    break;
+                case "revive_reward":
+                    resetViewType();
+                    ServerHandler.inst.RestartGame();
+                    break;
+                case "double_reward":
+                    ServerHandler.inst.getLittleRewards();
+                    break;
             }
         }
     };
 }
+// @ts-ignore
 window["ADHandler"] = ADHandler;

+ 3 - 4
assets/script/game/common/manager/ProtocolEvent.ts

@@ -2,14 +2,13 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-04-07 10:17:16
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-04-25 19:35:54
+ * @LastEditTime: 2025-04-27 10:34:18
  * @Description: 消息定义
  */
 
-const server_url = "http://192.168.10.103:8880";
+// const server_url = "http://192.168.10.103:8880";
 // https://central-test.atmob.com
-
-// const server_url = "https://central-test.atmob.com";
+const server_url = "https://central-test.atmob.com";
 export enum ProtocolEvent {
     /**微信登录*/
     WechatLogin = server_url + "/project/playlet/v1/user/login",

+ 1 - 0
assets/script/game/common/manager/ServerHandler.ts

@@ -554,6 +554,7 @@ export class ServerHandler {
             },
         }
         this.sendMsgToServer(param);
+        oops.message.dispatchEvent(GameEvent.updateGameState, "playing");
     }
 
     onUpdatePopupState(str: string) {

+ 1 - 1
assets/script/game/common/tips/KindTipsView.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-03-19 18:02:51
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-04-25 18:53:36
+ * @LastEditTime: 2025-04-27 09:58:58
  * @Description: 温馨提示弹窗
  */
 import { _decorator } from 'cc';

+ 1 - 2
assets/script/game/common/tips/RetentionView.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-03-19 18:02:51
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-04-25 18:53:48
+ * @LastEditTime: 2025-04-27 09:53:39
  * @Description: 隐私挽留弹窗
  */
 import { _decorator, game } from 'cc';
@@ -11,7 +11,6 @@ import { DeviceUtil } from 'db://oops-framework/core/utils/DeviceUtil';
 import { GameComponent } from 'db://oops-framework/module/common/GameComponent';
 import { AD_TYPE } from '../config/GameDefine';
 import { UIID } from '../config/GameUIConfig';
-import { CocosHandler } from '../manager/CocosHandler';
 import { ADHandler } from '../manager/ADHandler';
 import { LoginHandler } from '../manager/LoginHandler';
 import { DCHandler } from '../manager/DCHandler';

+ 21 - 1
assets/script/game/view/EliminateViewComp.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-03-20 15:01:09
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-04-25 19:54:59
+ * @LastEditTime: 2025-04-27 10:46:23
  * @Description: 消除游戏主场景
  */
 import { _decorator, Button, Color, EventTouch, instantiate, JsonAsset, v3, Label, Node, Prefab, randomRangeInt, Sprite, tween, UITransform, Vec2, Vec3, Widget } from "cc";
@@ -1547,6 +1547,10 @@ export class EliminateViewComp extends CCComp {
                 }
 
                 if (DeviceUtil.isAndroid && DeviceUtil.isNative) {
+                    //需要欧安的是否通关了,当前通关了就不要弹了
+                    if (this.score >= this.targetScore) {
+                        return;
+                    }
                     if (this.eliminateInterval.length > 0) {
                         const minNum = this.eliminateInterval[0]
                         const maxNum = this.eliminateInterval[1]
@@ -1560,6 +1564,8 @@ export class EliminateViewComp extends CCComp {
                                 }
                                 if (smc.game.GameModel.skipAdConfig != -1) {
                                     if (smc.game.GameModel.skipAdCount > 0 && smc.game.GameModel.skipAdCount % smc.game.GameModel.skipAdConfig == 0) {
+                                        console.log("skipAdCount>>>>>>>>>>>>>>>", smc.game.GameModel.skipAdCount);
+                                        console.log("skipAdConfig>>>>>>>>>>>>>>", smc.game.GameModel.skipAdConfig);
                                         smc.game.GameModel.viewType = "double_reward";
                                         ADHandler.inst.showAd(AD_TYPE.Double_Receive);
                                     } else {
@@ -2315,6 +2321,8 @@ export class EliminateViewComp extends CCComp {
     private updateWelfarePoint() {
         const showState = smc.game.GameModel.popupShow
         if (!showState) {
+            //展示这些的时候,游戏要暂停
+            this.gameState = GameState.PAUSED;
             switch (this.popupType) {
                 case "weal_1":
                     oops.gui.open(UIID.WarmReminder);
@@ -2440,4 +2448,16 @@ export class EliminateViewComp extends CCComp {
             [arr[i], arr[j]] = [arr[j], arr[i]];
         }
     }
+
+
+
+    //用导演直接冻结游戏或者恢复游戏
+    updateGameStatus() {
+
+
+
+    }
+
+
+
 }