fix:1、删除上一个sdk,更换新的。2、删除了max广告

This commit is contained in:
2026-05-27 09:28:34 +08:00
parent 978797b678
commit 69c818e992
1039 changed files with 99687 additions and 94871 deletions
+101 -101
View File
@@ -1,102 +1,102 @@
using System;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace BallKingdomCrush
{
public class Rescrypt
{
// 魔法字节标记
private static readonly byte[] Magic = Encoding.UTF8.GetBytes("SGENCRY");
// 解密文件:从 src 读出,解密后写到 dst
public static void DecryptFile(string src, string dst)
{
var key = ConfigSystem.GetCommonConf().ResVersion;
var data = File.ReadAllBytes(src);
// 检查魔法字节
if (data.Length < Magic.Length || !data.Take(Magic.Length).SequenceEqual(Magic)) throw new InvalidDataException("文件未加密或格式错误");
// 去掉魔法字节
var raw = data.Skip(Magic.Length).ToArray();
// 使用 MD5.Create() 计算 MD5
byte[] rawHash;
using (var md5 = MD5.Create())
{
rawHash = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
}
// 转成 32 字节十六进制 ASCII,与 Go 端 hex.EncodeToString 对应
var keyBytes = Encoding.ASCII.GetBytes(BitConverter.ToString(rawHash).Replace("-", "").ToLower());
// 解密
var dec = KeyReverseDecryptData(raw, keyBytes);
// 写出解密后的文件
File.WriteAllBytes(dst, dec);
// 删除临时源文件(加密的)
File.Delete(src);
}
public static byte[] DecryptFileToBytes(string src)
{
var data = File.ReadAllBytes(src);
var key = ConfigSystem.GetCommonConf().ResVersion;
// 检查魔法字节
if (data.Length < Magic.Length || !data.Take(Magic.Length).SequenceEqual(Magic))
throw new InvalidDataException("文件未加密或格式错误");
// 去掉魔法字节
var raw = data.Skip(Magic.Length).ToArray();
// 使用 MD5.Create() 计算 MD5
byte[] rawHash;
using (var md5 = MD5.Create())
{
rawHash = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
}
// 转成 32 字节十六进制 ASCII,与 Go 端 hex.EncodeToString 对应
var keyBytes = Encoding.ASCII.GetBytes(BitConverter.ToString(rawHash).Replace("-", "").ToLower());
// 解密并返回
return KeyReverseDecryptData(raw, keyBytes);
}
public static byte[] DecryptVideoToBytes(string src)
{
var key = ConfigSystem.GetCommonConf().ResVersion;
var data = File.ReadAllBytes(src);
if (data.Length < Magic.Length || !data.Take(Magic.Length).SequenceEqual(Magic))
throw new InvalidDataException("视频未加密或格式错误");
var raw = data.Skip(Magic.Length).ToArray();
// 使用 MD5.Create() 计算 MD5
byte[] rawHash;
using (var md5 = MD5.Create())
{
rawHash = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
}
// 转成 32 字节十六进制 ASCII,与 Go 端 hex.EncodeToString 对应
var keyBytes = Encoding.ASCII.GetBytes(BitConverter.ToString(rawHash).Replace("-", "").ToLower());
return KeyReverseDecryptData(raw, keyBytes);
}
// 基础解密:XOR + 反序
private static byte[] KeyReverseDecryptData(byte[] data, byte[] key)
{
var keyLen = key.Length;
// XOR
for (var i = 0; i < data.Length; i++)
data[i] ^= key[i % keyLen];
// 反序
for (int i = 0, j = data.Length - 1; i < j; i++, j--)
(data[i], data[j]) = (data[j], data[i]);
return data;
}
}
using System;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace BallKingdomCrush
{
public class Rescrypt
{
// 魔法字节标记
private static readonly byte[] Magic = Encoding.UTF8.GetBytes("SGENCRY");
// 解密文件:从 src 读出,解密后写到 dst
public static void DecryptFile(string src, string dst)
{
var key = ConfigSystem.GetConfigResVersion();
var data = File.ReadAllBytes(src);
// 检查魔法字节
if (data.Length < Magic.Length || !data.Take(Magic.Length).SequenceEqual(Magic)) throw new InvalidDataException("文件未加密或格式错误");
// 去掉魔法字节
var raw = data.Skip(Magic.Length).ToArray();
// 使用 MD5.Create() 计算 MD5
byte[] rawHash;
using (var md5 = MD5.Create())
{
rawHash = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
}
// 转成 32 字节十六进制 ASCII,与 Go 端 hex.EncodeToString 对应
var keyBytes = Encoding.ASCII.GetBytes(BitConverter.ToString(rawHash).Replace("-", "").ToLower());
// 解密
var dec = KeyReverseDecryptData(raw, keyBytes);
// 写出解密后的文件
File.WriteAllBytes(dst, dec);
// 删除临时源文件(加密的)
File.Delete(src);
}
public static byte[] DecryptFileToBytes(string src)
{
var data = File.ReadAllBytes(src);
var key = ConfigSystem.GetConfigResVersion();
// 检查魔法字节
if (data.Length < Magic.Length || !data.Take(Magic.Length).SequenceEqual(Magic))
throw new InvalidDataException("文件未加密或格式错误");
// 去掉魔法字节
var raw = data.Skip(Magic.Length).ToArray();
// 使用 MD5.Create() 计算 MD5
byte[] rawHash;
using (var md5 = MD5.Create())
{
rawHash = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
}
// 转成 32 字节十六进制 ASCII,与 Go 端 hex.EncodeToString 对应
var keyBytes = Encoding.ASCII.GetBytes(BitConverter.ToString(rawHash).Replace("-", "").ToLower());
// 解密并返回
return KeyReverseDecryptData(raw, keyBytes);
}
public static byte[] DecryptVideoToBytes(string src)
{
var key = ConfigSystem.GetConfigResVersion();
var data = File.ReadAllBytes(src);
if (data.Length < Magic.Length || !data.Take(Magic.Length).SequenceEqual(Magic))
throw new InvalidDataException("视频未加密或格式错误");
var raw = data.Skip(Magic.Length).ToArray();
// 使用 MD5.Create() 计算 MD5
byte[] rawHash;
using (var md5 = MD5.Create())
{
rawHash = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
}
// 转成 32 字节十六进制 ASCII,与 Go 端 hex.EncodeToString 对应
var keyBytes = Encoding.ASCII.GetBytes(BitConverter.ToString(rawHash).Replace("-", "").ToLower());
return KeyReverseDecryptData(raw, keyBytes);
}
// 基础解密:XOR + 反序
private static byte[] KeyReverseDecryptData(byte[] data, byte[] key)
{
var keyLen = key.Length;
// XOR
for (var i = 0; i < data.Length; i++)
data[i] ^= key[i % keyLen];
// 反序
for (int i = 0, j = data.Length - 1; i < j; i++, j--)
(data[i], data[j]) = (data[j], data[i]);
return data;
}
}
}
+33 -339
View File
@@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using AppsFlyerSDK;
using ASMhQ45fSDK;
using DG.Tweening;
using IgnoreOPS;
using Newtonsoft.Json;
@@ -13,31 +14,18 @@ using SGModule.NetKit;
// using AppsFlyerSDK;
using UnityEngine;
using UnityEngine.Events;
using ZrZYFo6bYXYM71YyLSDK;
namespace BallKingdomCrush
{
public class MaxADKit
{
public static string SDKKey =
"oXM0CzVDi7P1HstOpKvFMInPMOzpQ9uA6t3x75q5f5wQvsEy9vuiiiM94ZJCJSV7PcZGroSSInQCTGsu04QEiE";
public static string interstitialADUnitID = "450445216a84fb16";
public static string rewardedADUnitID = "b979e20045011cb6";
private const float RevenueThreshold = 0;
public static void Init()
{
#if !UNITY_EDITOR
// 注册 ab事件,0或1,0为自然量版本,1为激励版本
ZrZYFo6bYXYM71YyLSDKCONTROLLER.Instance.RegistIosParam((i =>
ASMhQ45fSDKUTILITY.Instance.RegistIosParam((i =>
{
SuperApplication.Instance.attribution = i == 0 ? "organic" : "non_organic";
Debug.Log($"ios ab param : {i} attribution=== {SuperApplication.Instance.attribution}");
@@ -50,45 +38,18 @@ namespace BallKingdomCrush
Debug.Log($"************* game config result : {result}, config : {config}");
}
// SDK初始化方法
ZrZYFo6bYXYM71YyLSDKCONTROLLER.Instance.Init(null, null, GameConfig);
ASMhQ45fSDKUTILITY.Instance.Init(null, null, GameConfig);
#endif
// MaxSdkCallbacks.OnSdkInitializedEvent += sdkConfiguration =>
// {
// InitializeRewardedAds();
// InitializeInterstitialAds();
// };
//
//
// MaxSdk.SetSdkKey(SDKKey);
//
// // var loginModel = GameHelper.GetLoginModel();
// // user_id = loginModel.uid.ToString();
// // MaxSdk.SetUserId(loginModel.uid.ToString());
// // MaxSdk.SetIsAgeRestrictedUser(false);
// MaxSdk.SetHasUserConsent(true);
// MaxSdk.SetDoNotSell(false);
//
// MaxSdk.InitializeSdk();
// MaxSdk.ShowMediationDebugger();
// #if !UNITY_EDITOR
// MBridgeSDKManager.initialize("368295", "fc0155e8f6e8bda23b06d22414379609");
// #endif
}
public static void SetUserID(string userID)
{
user_id = userID;
MaxSdk.SetUserId(user_id);
}
#region 广
public static UnityAction<bool> onInterstitialAdCompleted = null;
public static bool CheckInterstitialReady()
{
return ZrZYFo6bYXYM71YyLSDKCONTROLLER.Instance.IsInterReady();
return ASMhQ45fSDKUTILITY.Instance.IsInterReady();
}
public static void ShowInterstitial(string placement = "DefaultInterstitial",
UnityAction<bool> onCompleted = null)
@@ -96,15 +57,21 @@ namespace BallKingdomCrush
if (CheckInterstitialReady())
{
Debug.Log($"广告已经准备好,播放");
ZrZYFo6bYXYM71YyLSDKCONTROLLER.Instance.ShowInter(placement, () =>
ASMhQ45fSDKUTILITY.Instance.ShowInter(placement, () =>
{
onCompleted?.Invoke(true);
DOVirtual.DelayedCall(0.1f, () =>
{
onCompleted?.Invoke(true);
});
});
}
else
{
Debug.Log($"广告未准备好,不播放");
onCompleted?.Invoke(false);
DOVirtual.DelayedCall(0.1f, () =>
{
onCompleted?.Invoke(false);
});
}
// if (MaxSdk.IsInterstitialReady(interstitialADUnitID))
@@ -122,74 +89,15 @@ namespace BallKingdomCrush
// }
}
static int retryAttemptInterstitial;
public static void InitializeInterstitialAds()
{
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialLoadedEvent;
MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialLoadFailedEvent;
MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialDisplayedEvent;
MaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterstitialClickedEvent;
MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialHiddenEvent;
MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdFailedToDisplayEvent;
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnInterstitialAdRevenueEvent;
LoadInterstitial();
}
private static void LoadInterstitial()
{
MaxSdk.LoadInterstitial(interstitialADUnitID);
// BIManager.Instance.TrackAdEvent(BIEvent.AD_REQUEST, "Interstitial");
}
private static void OnInterstitialLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
retryAttemptInterstitial = 0;
// BIManager.Instance.TrackAdEvent(BIEvent.AD_INVENTORY, "Interstitial", adInfo.Placement, adInfo.NetworkName);
}
private static void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
{
retryAttemptInterstitial++;
double retryDelay = Math.Pow(2, Math.Min(6, retryAttemptInterstitial));
CrazyAsyKit.StartAction("LoadInterstitial", LoadInterstitial, (float)retryDelay);
}
private static void OnInterstitialDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
// BIManager.Instance.TrackAdEvent(BIEvent.AD_IMP, "Interstitial", adInfo.Placement, adInfo.NetworkName,
// adInfo.Revenue, _placement);
}
private static void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo,
MaxSdkBase.AdInfo adInfo)
{
LoadInterstitial();
}
private static void OnInterstitialClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
// BIManager.Instance.TrackAdEvent(BIEvent.AD_CLICK, "Interstitial", adInfo.Placement, adInfo.NetworkName);
}
private static void OnInterstitialHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
LoadInterstitial();
onInterstitialAdCompleted?.Invoke(true);
onInterstitialAdCompleted = null;
}
#endregion
#region 广
public static bool CheckRewardedReady()
{
return ZrZYFo6bYXYM71YyLSDKCONTROLLER.Instance.IsVideoReady();
return ASMhQ45fSDKUTILITY.Instance.IsVideoReady();
}
public static UnityAction<bool> onVideoAdCompleted = null;
@@ -207,23 +115,32 @@ namespace BallKingdomCrush
if (CheckRewardedReady())
{
ZrZYFo6bYXYM71YyLSDKCONTROLLER.Instance.ShowRewardVideo(_placement, b =>
ASMhQ45fSDKUTILITY.Instance.ShowRewardVideo(_placement, b =>
{
onVideoAdCompleted?.Invoke(b);
DOVirtual.DelayedCall(0.1f, () =>
{
onVideoAdCompleted?.Invoke(b);
});
}, ()=>
{
Debug.Log($"激励广告关闭");
if (GameHelper.IsGiftSwitch() && !SaveData.GetSaveObject().is_get_removead && (UnityEngine.Random.Range(0, 100) < GameHelper.GetCommonModel().rewardinsertion))
DOVirtual.DelayedCall(0.2f, () =>
{
TrackKit.SendEvent(ADEventTrack.AD_Event, ADEventTrack.Property.afterRewardAdShow);
Debug.Log($"激励广告关闭");
if (GameHelper.IsGiftSwitch() && !SaveData.GetSaveObject().is_get_removead && (UnityEngine.Random.Range(0, 100) < GameHelper.GetCommonModel().rewardinsertion))
{
TrackKit.SendEvent(ADEventTrack.AD_Event, ADEventTrack.Property.afterRewardAdShow);
GameHelper.ShowInterstitial("AfterReward");
}
GameHelper.ShowInterstitial("AfterReward");
}
});
});
}
else
{
onVideoAdCompleted?.Invoke(false);
DOVirtual.DelayedCall(0.1f, () =>
{
onVideoAdCompleted?.Invoke(false);
});
}
// if (MaxSdk.IsRewardedAdReady(rewardedADUnitID))
// {
@@ -240,229 +157,6 @@ namespace BallKingdomCrush
#endif
}
private static IEnumerator WaitForVideoAd()
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PayloadingUI_Open);
var count = 0;
var result = false;
while (count < 6)
{
if (MaxSdk.IsRewardedAdReady(rewardedADUnitID))
{
result = true;
MaxSdk.ShowRewardedAd(rewardedADUnitID, _placement);
break;
}
count++;
yield return new WaitForSeconds(0.5f);
}
if (!result)
{
onVideoAdCompleted?.Invoke(result);
}
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PayloadingUI_Close);
_waitForVideoAd = null;
}
static int retryAttempt;
public static void InitializeRewardedAds()
{
MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent;
MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent;
MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent;
MaxSdkCallbacks.Rewarded.OnAdClickedEvent += OnRewardedAdClickedEvent;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardedAdRevenuePaidEvent;
MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHiddenEvent;
MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdFailedToDisplayEvent;
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardedAdRevenueEvent;
LoadRewardedAd();
}
private static void LoadRewardedAd()
{
MaxSdk.LoadRewardedAd(rewardedADUnitID);
// BIManager.Instance.TrackAdEvent(BIEvent.AD_REQUEST, "RewardedVideo");
}
private static void OnInterstitialAdRevenueEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
DOVirtual.DelayedCall(0.01f, () =>
{
OnAdRevenuePaidEvent(adUnitId, adInfo, 2);
});
}
private static void OnRewardedAdRevenueEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
DOVirtual.DelayedCall(0.01f, () =>
{
OnAdRevenuePaidEvent(adUnitId, adInfo, 1);
});
}
public static string user_id = "";
private static void OnAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo, int adType)
{
//string countryCode = MaxSdk.GetSdkConfiguration().CountryCode; // "US" for the United States, etc - Note: Do not confuse this with currency code which is "USD"
// //string networkName = adInfo.NetworkName; // Display name of the network that showed the ad
// // string adUnitIdentifier = adInfo.AdUnitIdentifier; // The MAX Ad Unit ID
// //string placement = adInfo.Placement; // The placement this ad's postbacks are tied to
//广告收益上传(用户收益,每次上传)
double revenue = adInfo.Revenue;
if (revenue > 0)
{
GameHelper.AdOverRevenueEvent(adType,(float)revenue);
}
Debug.Log($"[OnAdRevenuePaidEvent] revenue: {revenue} \n adInfo.Revenue: {JsonConvert.SerializeObject(adInfo)}");
if (revenue >= RevenueThreshold)
{
var adCallbackInfo = new Dictionary<string, string>
{
{ "af_revenue", revenue.ToString(CultureInfo.InvariantCulture) }
};
AppsFlyer.sendEvent("af_ad_revenue", adCallbackInfo);
PlayerPrefs.SetString($"adInfoRevenue_{user_id}", "0");
FireBaseManger.OnAdRevenuePaid(adUnitId, adInfo);
}
int highSend;
if (!PlayerPrefs.HasKey($"sendHighRevenue_{user_id}"))
{
highSend = 0; // 如果不存在,则初始化为 0
}
else
{
highSend = PlayerPrefs.GetInt($"sendHighRevenue_{user_id}", 0); // 从 PlayerPrefs 中获取
}
// 判断是否需要发送高收入事件
// Debug.Log($"highSend=====: {highSend}");
if (highSend == 0)
{
float limitNum = GameHelper.GetCommonModel().afSendLimit;
var totalNum = Convert.ToDouble(PlayerPrefs.GetString($"adRevenueTotal_{user_id}", "0"));
totalNum += adInfo.Revenue;
// Debug.Log($"totalNum=====: {totalNum} {limitNum}");
if (totalNum >= limitNum)
{
GameHelper.sendHighRevenueToAF(); // 发送高收入事件
PlayerPrefs.SetInt($"sendHighRevenue_{user_id}", 1); // 标记已发送
}
else
{
PlayerPrefs.SetString($"adRevenueTotal_{user_id}", totalNum.ToString());
}
}
/*
ATTRIBUTION_PLATFORM_APPSFLYER = "AppsFlyer";
ATTRIBUTION_PLATFORM_ADJUST = "Adjust";
ATTRIBUTION_PLATFORM_TENJIN = "Tenjin";
ATTRIBUTION_PLATFORM_SINGULAR = "Singular";
ATTRIBUTION_PLATFORM_KOCHAVA = "Kochava";
ATTRIBUTION_PLATFORM_BRANCH = "Branch";
ATTRIBUTION_PLATFORM_REYUN = "Reyun";
ATTRIBUTION_PLATFORM_SOLAR_ENGINE = "SolarEngine";
...
...
*/
//这里需要改成自己的归因平台名称,这里以Adjust为例,"userid"替换为归因平台UID
// MBridgeRevenueParamsEntity mBridgeRevenueParamsEntity = new MBridgeRevenueParamsEntity(MBridgeRevenueParamsEntity.ATTRIBUTION_PLATFORM_ADJUST, PlayerPrefs.GetString("adjust_adid", "default"));
///MaxSdkBase.AdInfo类型的adInfo
// mBridgeRevenueParamsEntity.SetMaxAdInfo(adInfo);
// MBridgeRevenueManager.Track(mBridgeRevenueParamsEntity);
}
private static void OnRewardedAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
retryAttempt = 0;
TrackKit.SendEvent(ADEventTrack.AD_Event, $"{ADEventTrack.Property.ad_load_code}Succeed");
// BIManager.Instance.TrackAdEvent(BIEvent.AD_INVENTORY, "RewardedVideo", adInfo.Placement,
// adInfo.NetworkName);
}
private static void OnRewardedAdLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
{
retryAttempt++;
double retryDelay = Math.Pow(2, Math.Min(3, retryAttempt));
TrackKit.SendEvent(ADEventTrack.AD_Event, $"{ADEventTrack.Property.ad_load_code}{errorInfo.Code}");
CrazyAsyKit.StartAction("LoadRewardedAd", LoadRewardedAd, (float)retryDelay);
}
private static void OnRewardedAdDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
TrackKit.SendEvent(ADEventTrack.AD_Event, $"{ADEventTrack.Property.ad_show_code}Succeed");
// BIManager.Instance.TrackAdEvent(BIEvent.AD_IMP, "RewardedVideo", adInfo.Placement, adInfo.NetworkName,
// adInfo.Revenue, _placement);
}
private static void OnRewardedAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo,
MaxSdkBase.AdInfo adInfo)
{
TrackKit.SendEvent(ADEventTrack.AD_Event, $"{ADEventTrack.Property.ad_show_code}{errorInfo.Code}");
LoadRewardedAd();
}
private static void OnRewardedAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
// BIManager.Instance.TrackAdEvent(BIEvent.AD_CLICK, "RewardedVideo", adInfo.Placement, adInfo.NetworkName);
}
private static void OnRewardedAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
LoadRewardedAd();
if (_hasReceivedReward && onVideoAdCompleted != null)
{
onVideoAdCompleted(true);
}
onVideoAdCompleted = null;
_hasReceivedReward = false;
if (GameHelper.IsGiftSwitch() && !SaveData.GetSaveObject().is_get_removead && (UnityEngine.Random.Range(0, 100) < GameHelper.GetCommonModel().rewardinsertion))
{
TrackKit.SendEvent(ADEventTrack.AD_Event, ADEventTrack.Property.afterRewardAdShow);
GameHelper.ShowInterstitial("AfterReward");
}
}
private static bool _hasReceivedReward = false;
private static void OnRewardedAdReceivedRewardEvent(string adUnitId, MaxSdk.Reward reward,
MaxSdkBase.AdInfo adInfo)
{
_hasReceivedReward = true;
#if !GAME_RELEASE
GameHelper.AdOverRevenueEvent(1,0.1f);
#endif
}
private static void OnRewardedAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
}
#endregion
}
}