public void OnBtnReSendClicked() { if (timeCanPressReSend > System.DateTime.Now) { return; } timeCanPressReSend = System.DateTime.Now.AddSeconds(0.5f); SubServerDetail _serverDetail = GetGoldScreenController.instance.GetServerDetail(); LoadingCanvasController.instance.Show(-1, true); purchaseReceiptDetail.SendMessageToServer(_serverDetail, (_listRewarDetails) => { PopupManager.Instance.CreatePopupReward(_listRewarDetails); GetGoldScreenController.instance.RefreshMyGoldInfo(false); if (HomeManager.instance != null && HomeManager.instance.myCallbackManager != null && HomeManager.instance.myCallbackManager.onLoadDataGoldGemFinished != null) { HomeManager.instance.myCallbackManager.onLoadDataGoldGemFinished(); } }, () => { LoadingCanvasController.instance.Hide(); }); }
void SendMessageGetGoldDaily() { SubServerDetail _serverDetail = GetGoldScreenController.instance.GetServerDetail(); OneHitAPI.GetGoldDaily(_serverDetail, (_messageReceiving, _error) => { if (_messageReceiving != null) { DataManager.instance.dailyRewardData.RecieveReward(_messageReceiving, (_caseCheck) => { if (_caseCheck == -2) { DataManager.instance.dailyRewardData.hadCheckSv = true; ShowEffCanNotGetReward(); } else if (_caseCheck == 1) { DataManager.instance.dailyRewardData.hadCheckSv = true; GetGoldScreenController.instance.RefreshMyGoldInfo(false); if (HomeManager.instance != null && HomeManager.instance.myCallbackManager != null && HomeManager.instance.myCallbackManager.onLoadDataGoldGemFinished != null) { HomeManager.instance.myCallbackManager.onLoadDataGoldGemFinished(); } } }); RefreshData(); } else { #if TEST Debug.LogError("GetGoldDaily Error: " + _error); #endif } } ); }
public void OnChooseServer(SubServerDetail _serverDetail) { if (!canTouch) { return; } if (currentSubGameDetail == null) { #if TEST Debug.LogError("currentGameDetail is null"); #endif return; } if (myCurrentState != MyState.ChooseServer) { return; } #if TEST Debug.Log("Chọn server: " + _serverDetail.subServerName); #endif currentSubGameDetail.currentServerDetail = _serverDetail; // SceneLoaderManager.instance.LoadScene(MyConstant.SCENE_SUBGAMEPLAY); LoadingCanvasController.instance.Show(-1, false, null, () => { NetworkGlobal.instance.StopRealTime(); }); SetProcessPlayNowFromHomeScene(); NetworkGlobal.instance.RunRealTime(currentSubGameDetail.currentServerDetail, OnCreateConnectionError, OnPlayNowCreateConnectionSuccess, OnDisconnect, OnServerFull); }
public SubServerDetail GetServerDetail() { SubServerDetail _serverDetail = null; if (isSceneGame) { if (CoreGameManager.instance.currentSceneManager.mySceneType == IMySceneManager.Type.SubGamePlayScene) { if (DataManager.instance.miniGameData.currentSubGameDetail == null) { #if TEST Debug.LogError("Bug Logic (0)"); #endif } else { _serverDetail = DataManager.instance.miniGameData.currentSubGameDetail.currentServerDetail; } } else { if (DataManager.instance.miniGameData.currentMiniGameDetail == null) { #if TEST Debug.LogError("Bug Logic (1)"); #endif } else { _serverDetail = DataManager.instance.miniGameData.currentMiniGameDetail.currentServerDetail; } } } return(_serverDetail); }
public bool IsEqual(SubServerDetail _other) { if (subServerId == _other.subServerId) { return(true); } return(false); }
public static void IAP_Android(SubServerDetail _serverDetail, byte _screenPurchase, string _productId, string _tokenPurchase, System.Action <MessageReceiving, int> _onFinished) { if (CoreGameManager.instance.giaLapNgatKetNoi) { if (_onFinished != null) { _onFinished(null, 1); } return; } if (CoreGameManager.instance.giaLapMangChapChon) { if (Random.Range(0, 100) < CoreGameManager.instance.giaLapTyLeRotMang) { if (_onFinished != null) { _onFinished(null, 1); } return; } } if (messageIAP_Android == null) { messageIAP_Android = new MessageSending(CMD_ONEHIT.GamePurchase_inapp_android); } else { messageIAP_Android.ClearData(); } messageIAP_Android.writeByte((byte)DataManager.instance.userData.databaseId); messageIAP_Android.writeLong(DataManager.instance.userData.userId); messageIAP_Android.writeByte(_screenPurchase); messageIAP_Android.writeString(Application.identifier); messageIAP_Android.writeString(_productId); messageIAP_Android.writeString(_tokenPurchase); #if TEST string _tmp = DataManager.instance.userData.databaseId + "|" + DataManager.instance.userData.userId + "|" + _screenPurchase + "|" + Application.identifier + "|" + _productId + "|" + _tokenPurchase; Debug.Log(">>>CMD IAP_Android : " + messageIAP_Android.getCMD() + "|" + _tmp); #endif if (_serverDetail == null) { NetworkGlobal.instance.StartOnehit(messageIAP_Android, _onFinished); } else { NetworkGlobal.instance.StartOnehit(messageIAP_Android, _serverDetail, _onFinished); } }
void SetListSubServerDetailDefaultData() { listSubServerDetail = new List <SubServerDetail>(); SubServerDetail _subServerDetail = new SubServerDetail(); _subServerDetail.subServerId = 0; _subServerDetail.subServerName = "Global"; _subServerDetail.version = 20181122; _subServerDetail.countryCode = "VN"; IpDetail _tmpIpDetail = new IpDetail(); _tmpIpDetail.ipId = -1; _tmpIpDetail.ipType = IpDetail.Type.IPv4; _tmpIpDetail.ip = "subv4.bigxuonline.com"; _tmpIpDetail.port_onehit = 2598; _tmpIpDetail.port_realtime = 2589; _tmpIpDetail.port_test = 2704; _subServerDetail.listIpDetail.Add(_tmpIpDetail); _tmpIpDetail = new IpDetail(); _tmpIpDetail.ipId = -2; _tmpIpDetail.ipType = IpDetail.Type.IPv6; _tmpIpDetail.ip = "subv6.bigxuonline.com"; _tmpIpDetail.port_onehit = 2598; _tmpIpDetail.port_realtime = 2589; _tmpIpDetail.port_test = 2704; _subServerDetail.listIpDetail.Add(_tmpIpDetail); _tmpIpDetail = new IpDetail(); _tmpIpDetail.ipId = -3; _tmpIpDetail.ipType = IpDetail.Type.IPv4; _tmpIpDetail.ip = "subv4.battleoflegend.com"; _tmpIpDetail.port_onehit = 2598; _tmpIpDetail.port_realtime = 2589; _tmpIpDetail.port_test = 2704; _subServerDetail.listIpDetail.Add(_tmpIpDetail); _tmpIpDetail = new IpDetail(); _tmpIpDetail.ipId = -4; _tmpIpDetail.ipType = IpDetail.Type.IPv6; _tmpIpDetail.ip = "subv6.battleoflegend.com"; _tmpIpDetail.port_onehit = 2598; _tmpIpDetail.port_realtime = 2589; _tmpIpDetail.port_test = 2704; _subServerDetail.listIpDetail.Add(_tmpIpDetail); listSubServerDetail.Add(_subServerDetail); }
public static void TESTIAP(SubServerDetail _serverDetail, System.Action <MessageReceiving, int> _onFinished) { // gửi sbyte databaseid // long userid if (CoreGameManager.instance.giaLapNgatKetNoi) { if (_onFinished != null) { _onFinished(null, 1); } return; } if (CoreGameManager.instance.giaLapMangChapChon) { if (Random.Range(0, 100) < CoreGameManager.instance.giaLapTyLeRotMang) { if (_onFinished != null) { _onFinished(null, 1); } return; } } if (messageTestIAP_Android == null) { messageTestIAP_Android = new MessageSending(CMD_ONEHIT.TEST_ADD_GOLD); } else { messageTestIAP_Android.ClearData(); } messageTestIAP_Android.writeByte((byte)DataManager.instance.userData.databaseId); messageTestIAP_Android.writeLong(DataManager.instance.userData.userId); #if TEST string _tmp = DataManager.instance.userData.databaseId + "|" + DataManager.instance.userData.userId; Debug.Log(">>>CMD IAP_Android : " + messageTestIAP_Android.getCMD() + "|" + _tmp); #endif if (_serverDetail == null) { NetworkGlobal.instance.StartOnehit(messageTestIAP_Android, _onFinished); } else { NetworkGlobal.instance.StartOnehit(messageTestIAP_Android, _serverDetail, _onFinished); } }
public void RunRealTime(SubServerDetail _subServerDeail, Action <int> onCreateConnectionError, Action onCreateConnectionSuccess, Action onDisconnect, Action onServerFull) { if (instanceRealTime != null) { instanceRealTime.onDisconnect = null; instanceRealTime.closeConnection(); } instanceRealTime = new RealTimeGame(_subServerDeail, instance); instanceRealTime.onConnectSuccess = onCreateConnectionSuccess; instanceRealTime.onNetworkError = onCreateConnectionError; instanceRealTime.onDisconnect = onDisconnect; instanceRealTime.onServerFull = onServerFull; instanceRealTime.Start(); }
public void InitDataAgain(SubServerDetail _otherServer) { beingError = _otherServer.beingError; countConnectionError = _otherServer.countConnectionError; for (int i = 0; i < listIpDetail.Count; i++) { for (int j = 0; j < _otherServer.listIpDetail.Count; j++) { if (listIpDetail[i].IsEqual(_otherServer.listIpDetail[j])) { listIpDetail[i].InitDataAgain(_otherServer.listIpDetail[j]); break; } } } }
void InitListSubServer(MessageReceiving _mess) { short _numberSubServer = _mess.readShort(); List <SubServerDetail> _tmpListSubSv = new List <SubServerDetail>(); if (_numberSubServer > 0) { SubServerDetail _tmpSubSvDetail = null; for (int i = 0; i < _numberSubServer; i++) { _tmpSubSvDetail = new SubServerDetail(_mess); _tmpListSubSv.Add(_tmpSubSvDetail); } } DataManager.instance.subServerData.LoadSubServerDataFromSv(_tmpListSubSv); }
public static void GetGoldSubsidy(SubServerDetail _serverDetail, System.Action <MessageReceiving, int> _onFinished) { if (CoreGameManager.instance.giaLapNgatKetNoi) { if (_onFinished != null) { _onFinished(null, 1); } return; } if (CoreGameManager.instance.giaLapMangChapChon) { if (Random.Range(0, 100) < CoreGameManager.instance.giaLapTyLeRotMang) { if (_onFinished != null) { _onFinished(null, 1); } return; } } if (messageGetGoldSubsidy == null) { messageGetGoldSubsidy = new MessageSending(CMD_ONEHIT.GameBonus_Get_Gold_Subsidy); } else { messageGetGoldSubsidy.ClearData(); } messageGetGoldSubsidy.writeByte((byte)DataManager.instance.userData.databaseId); messageGetGoldSubsidy.writeLong(DataManager.instance.userData.userId); #if TEST string _tmp = DataManager.instance.userData.databaseId + "|" + DataManager.instance.userData.userId; Debug.Log(">>>CMD GetGoldSubsidy : " + messageGetGoldSubsidy.getCMD() + "|" + _tmp); #endif if (_serverDetail == null) { NetworkGlobal.instance.StartOnehit(messageGetGoldSubsidy, _onFinished); } else { NetworkGlobal.instance.StartOnehit(messageGetGoldSubsidy, _serverDetail, _onFinished); } }
public static void InviteFriend_SearchParentInfo(SubServerDetail _serverDetail, short _parentSessionId, System.Action <MessageReceiving, int> _onFinished) { if (CoreGameManager.instance.giaLapNgatKetNoi) { if (_onFinished != null) { _onFinished(null, 1); } return; } if (CoreGameManager.instance.giaLapMangChapChon) { if (Random.Range(0, 100) < CoreGameManager.instance.giaLapTyLeRotMang) { if (_onFinished != null) { _onFinished(null, 1); } return; } } if (messageInviteFriend_SearchParentInfo == null) { messageInviteFriend_SearchParentInfo = new MessageSending(CMD_ONEHIT.GameGlobal_GetMiniInfo_BySessionid); } else { messageInviteFriend_SearchParentInfo.ClearData(); } messageInviteFriend_SearchParentInfo.writeshort(_parentSessionId); #if TEST string _tmp = _parentSessionId.ToString(); Debug.Log(">>>CMD InviteFriend_SearchParentInfo : " + messageInviteFriend_SearchParentInfo.getCMD() + "|" + _tmp); #endif if (_serverDetail == null) { NetworkGlobal.instance.StartOnehit(messageInviteFriend_SearchParentInfo, _onFinished); } else { NetworkGlobal.instance.StartOnehit(messageInviteFriend_SearchParentInfo, _serverDetail, _onFinished); } }
// public void InitData(ChooseTable_PanelListServer_Controller _panelListSvController, RoomServerDetail _roomDetail){ // panelListSvController = _panelListSvController; // initDataError = false; // roomDetail = _roomDetail; // if(roomDetail.subServerDetail == null){ // initDataError = true; // }else{ // txt_RoomName.text = roomDetail.subServerDetail.subServerName; // txt_RoomId.text = string.Format("{0:00}", roomDetail.subServerDetail.subServerId) + "-" + roomDetail.subServerDetail.country.ToUpper(); // glow.SetActive(false); // particleLoading.Stop(); // } // } public void InitData(ChooseTable_PanelListServer_Controller _panelListSvController, SubServerDetail _serverDetail) { panelListSvController = _panelListSvController; initDataError = false; serverDetail = _serverDetail; if (serverDetail == null) { initDataError = true; } else { txt_RoomName.text = serverDetail.subServerName; txt_RoomId.text = string.Format("{0:00}", serverDetail.subServerId) + "-" + serverDetail.countryCode.ToUpper(); glow.SetActive(false); } panelLoading.gameObject.SetActive(false); panelLoading.fillAmount = 0f; }
public void LoadAllTablesFromSever(SubServerDetail _serverDetail, System.Action _onSuccess = null, System.Action <int> _onError = null) { short _totalTables = (short)numTableDefault; for (int i = 0; i < _serverDetail.listRoomDetail.Count; i++) { if (DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameId == _serverDetail.listRoomDetail[i].gameId) { _totalTables = _serverDetail.listRoomDetail[i].numberTable; break; } } panelLoadingListTable.SetActive(true); OneHitAPI.GetListTableByGameID(DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameId, 0, _totalTables, _serverDetail, (_messageReceiving, _error) => { panelLoadingListTable.SetActive(false); SetUpTableData(true, _serverDetail, _messageReceiving, _error, _onSuccess, _onError); }); }
public void FocusRoom(SubServerDetail _serverDetail, bool _moveList) { if (_serverDetail == null) { return; } bool _findSuccess = false; for (int i = 0; i < listRoom.Count; i++) { if (listRoom[i].serverDetail.IsEqual(_serverDetail)) { currentRoom.SetUnFocus(); listRoom[i].SetFocus(); currentRoom = listRoom[i]; _findSuccess = true; break; } } if (_findSuccess) { if (_moveList) { MyConstant.ScrollRectHorizontalFocusCenterItem(scrollRectOfList, currentRoom.gameObject); } } else { #if TEST SubServerDetail _tmpServerDetail = DataManager.instance.subServerData.GetSubServerDetail(_serverDetail.subServerId); if (_tmpServerDetail != null) { Debug.LogError("Không tìm thấy ServerDetail (0) : " + _serverDetail.subServerName + "|" + _serverDetail.subServerId + "|" + _tmpServerDetail.subServerName + "|" + _tmpServerDetail.subServerId); } else { Debug.LogError("Không tìm thấy ServerDetail (1) : " + _serverDetail.subServerName + "|" + _serverDetail.subServerId); } #endif } }
public void StartOnehit(MessageSending _messageSending, SubServerDetail _serverDetail, Action <MessageReceiving, int> _onFinished) { OneHitGame clientOnehit = new OneHitGame(_serverDetail, _messageSending); clientOnehit.onNetworkError = (n) => { if (_onFinished != null) { _onFinished(null, n); } }; if (_onFinished != null) { clientOnehit.onReceiveMessage = (messageReceiving) => { if (_onFinished != null) { _onFinished(messageReceiving, -1); } }; } StartCoroutine(clientOnehit.runNetwork()); }
public RealTimeGame(SubServerDetail _subServerDeail, MonoBehaviour mono) { listIpConnect = _subServerDeail.listIpDetail; monoBehaviour = mono; timeStart = currentTimeMillis; sessionId = -1; isProcessReceive = true; listWait = null; isRelease = false; lockSend = new System.Object(); dataServer = new byte[4]; onConnectSuccess = null; onServerFull = null; onReconnect = null; onDisconnect = null; onNetworkError = null; lockSend = new System.Object(); actionRunNetwork = runNetwork(); }
void InitData(SubServerDetail _serverDetail) { serverDetail = _serverDetail; txtRoomName.text = serverDetail.subServerName + " " + string.Format("{0:00}", serverDetail.subServerId) + " - " + serverDetail.countryCode; }
public override void ResetData() { StopAllCoroutines(); serverDetail = null; }
public void SendMessageToServer(SubServerDetail _serverDetail, System.Action <List <RewardDetail> > _onSucceed, System.Action _onFinished, bool _sendInSilent = false) { if (isDone) { return; } #if UNITY_ANDROID OneHitAPI.IAP_Android(_serverDetail, screenPurchase, productId, tokenPurchase, (_messageReceiving, _error) => { if (_messageReceiving != null) { sbyte _caseCheck = _messageReceiving.readByte(); if (_caseCheck == 1 || _caseCheck < -100) { if (_caseCheck == 1) { long _goldAdd = _messageReceiving.readLong(); DataManager.instance.userData.gold = _messageReceiving.readLong(); if (_onSucceed != null) { IAPProductDetail _productDetail = DataManager.instance.IAPProductData.GetProductDetail(productId); if (_productDetail == null) { #if TEST Debug.LogError(">>> productDetail is null in data: " + productId); #endif } List <RewardDetail> _tmplistRewardDetail = new List <RewardDetail>(); RewardDetail _rewardDetail = new RewardDetail(IItemInfo.ItemType.Gold, _goldAdd); _tmplistRewardDetail.Add(_rewardDetail); _onSucceed(_tmplistRewardDetail); } } else { #if TEST Debug.LogError(">>> IAP_Android Trường hợp check case = " + _caseCheck); #endif } isDone = true; } else { // #if TEST // Debug.LogError(">>> IAP_Android can not Purchase: " + _caseCheck); // #endif // private static final byte STATUS_PURCHASE_OK=1; // private static final byte STATUS_REFUND=-122; // private static final byte STATUS_ERROR_PURCHASE_PROCESSED_DaXuLyRoi=-125; // private static final byte STATUS_DATABASE_ERROR_1=-21; // private static final byte STATUS_VERIFY_PURCHASE_GOOGLE_API_ERROR=-22; // private static final byte STATUS_ERROR_GOLD_MAIN=-23; // private static final byte STATUS_VALIDATE_ERROR=-24; // private static final byte STATUS_PLAYER_ERROR=-25; if (_caseCheck == -22) { string _tmp = _messageReceiving.readString(); #if TEST Debug.LogError(">>> Error IAP_Android: STATUS_VERIFY_PURCHASE_GOOGLE_API_ERROR - " + _tmp); #endif } if (!_sendInSilent) { PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kError) , MyLocalize.GetString("Error/IAP_CanNotPurchase") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); } else { #if TEST Debug.LogError(">>> Error IAP_Android: " + MyLocalize.GetString("Error/IAP_CanNotPurchase") + " - " + _caseCheck); #endif } } } else { // #if TEST // Debug.LogError(">>> IAP_Android Error Code: " + _error); // #endif /* 1/ Thông báo : lỗi network --> show nut refresh * 2/ Thông báo : hông được clear dữ liệu + nếu tắt ứng dụng ngay lúc này thì : lần kết nối sau sẽ tự động cộng tiền khi có kết nối với server */ if (!_sendInSilent) { PopupManager.Instance.CreatePopupDialog(MyLocalize.GetString(MyLocalize.kError) , MyLocalize.GetString("Error/IAP_PurchaseUnsuccessful") , _error.ToString() , MyLocalize.GetString(MyLocalize.kTryAgain) , MyLocalize.GetString(MyLocalize.kOk) , () => { SendMessageToServer(_serverDetail, _onSucceed, _onFinished); } , () => { // IAP_Warning_CloseConnectToSv PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("System/IAP_Warning_CloseConnectToSv") , string.Empty , MyLocalize.GetString(MyLocalize.kOk)); }); } else { #if TEST Debug.LogError(">>> Error IAP_Android: " + MyLocalize.GetString("Error/IAP_PurchaseUnsuccessful") + " - " + _error); #endif } } if (_onFinished != null) { _onFinished(); } }); #elif UNITY_IOS //TODO: Chưa làm cho IOS Debug.Log("Chưa làm"); #endif }
void ApplyIAPPackage(string _productId, IPurchaseReceipt _productReceipt = null) { Debug.Log(">>> ApplyIAPPackage " + _productId); if (_productReceipt == null) { Debug.LogError(">>> _productReceipt is null"); return; } string _tokenPurchase = string.Empty; GooglePlayReceipt _google = _productReceipt as GooglePlayReceipt; if (_google != null) { _tokenPurchase = _google.purchaseToken; // Debug.Log(google.purchaseState); // Debug.Log(google.purchaseToken); } AppleInAppPurchaseReceipt _apple = _productReceipt as AppleInAppPurchaseReceipt; if (_apple != null) { // Debug.Log(_apple.originalTransactionIdentifier); // Debug.Log(_apple.subscriptionExpirationDate); // Debug.Log(_apple.cancellationDate); // Debug.Log(_apple.quantity); _tokenPurchase = _google.purchaseToken; } if (!string.IsNullOrEmpty(_tokenPurchase)) { byte _screenPurchase = (byte)IMySceneManager.Type.Home; if (CoreGameManager.instance.currentSceneManager != null) { _screenPurchase = (byte)CoreGameManager.instance.currentSceneManager.mySceneType; } PurchaseReceiptDetail _purchaseReceiptDetail = new PurchaseReceiptDetail(_screenPurchase, _productReceipt.transactionID, _productId, _tokenPurchase, _productReceipt.purchaseDate); DataManager.instance.purchaseReceiptData.AddNewPurchaseReceiptDetail(_purchaseReceiptDetail); SubServerDetail _serverDetail = GetGoldScreenController.instance.GetServerDetail(); LoadingCanvasController.instance.Show(-1f, true); _purchaseReceiptDetail.SendMessageToServer(_serverDetail, (_listRewarDetails) => { PopupManager.Instance.CreatePopupReward(_listRewarDetails); GetGoldScreenController.instance.RefreshMyGoldInfo(false); // StartCoroutine(CreatePopUpRewards(_listRewarDetails, null)); if (GetGoldScreenController.instance.currentState == UIHomeScreenController.State.Show && GetGoldScreenController.instance.currentTab == GetGoldScreenController.Tab.BuyGold) { ((GetGoldScreen_PanelBuyGold_Controller)GetGoldScreenController.instance.currentPanel).SetActiveIconWarningHasNewPurchase(true); } if (HomeManager.instance != null && HomeManager.instance.myCallbackManager != null && HomeManager.instance.myCallbackManager.onLoadDataGoldGemFinished != null) { HomeManager.instance.myCallbackManager.onLoadDataGoldGemFinished(); } }, () => { LoadingCanvasController.instance.Hide(); }); } else { Debug.LogError(">>> _tokenPurchase is null"); } }
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { Debug.Log("Purchase OK: " + args.purchasedProduct.definition.id); Debug.Log("Receipt: " + args.purchasedProduct.receipt); // var unifiedReceipt = JsonUtility.FromJson<UnifiedReceipt>(args.purchasedProduct.receipt); // if (unifiedReceipt != null && !string.IsNullOrEmpty(unifiedReceipt.Payload)) // { // var purchaseReceipt = JsonUtility.FromJson<UnityChannelPurchaseReceipt>(unifiedReceipt.Payload); // Debug.LogFormat( // "UnityChannel receipt: storeSpecificId = {0}, transactionId = {1}, orderQueryToken = {2}", // unifiedReceipt.Store, unifiedReceipt.TransactionID, purchaseReceipt.orderQueryToken); // } //Cheat for Editor #if UNITY_EDITOR purchasingProductId = string.Empty; SubServerDetail _serverDetail = GetGoldScreenController.instance.GetServerDetail(); LoadingCanvasController.instance.Show(-1f, true); OneHitAPI.TESTIAP(_serverDetail, (_messageReceiving, _error) => { LoadingCanvasController.instance.Hide(); if (_messageReceiving != null) { bool _isSuccess = _messageReceiving.readBoolean(); if (_isSuccess) { DataManager.instance.userData.gold = _messageReceiving.readLong(); GetGoldScreenController.instance.RefreshMyGoldInfo(false); } else { #if TEST Debug.LogError("TESTIAP false"); #endif } } else { #if TEST Debug.LogError("Error code: " + _error); #endif } }); // ApplyIAPPackage (args.purchasedProduct.definition.id); return(PurchaseProcessingResult.Complete); #endif #if UNITY_ANDROID || UNITY_IOS || UNITY_STANDALONE_OSX CrossPlatformValidator validator = new CrossPlatformValidator(GooglePlayTangle.Data(), AppleTangle.Data(), Application.identifier); string receipt = args.purchasedProduct.receipt; try { // On Google Play, result has a single product ID. // On Apple stores, receipts contain multiple products. var result = validator.Validate(receipt); foreach (IPurchaseReceipt productReceipt in result) { ApplyIAPPackage(productReceipt.productID, productReceipt); } } catch (IAPSecurityException e) { PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kError) , MyLocalize.GetString("Error/IAP_FailedToVerifyReceipt") , string.Empty , MyLocalize.GetString(MyLocalize.kOk)); if (onPurchaseFailed != null) { onPurchaseFailed(PurchaseFailureReason.SignatureInvalid); } } #endif purchasingProductId = string.Empty; return(PurchaseProcessingResult.Complete); }
public void SendMessageSearchParent(short _parentSessionId) { // panelConfirm.InitData(parentInfo); // panelConfirm.Show(); SubServerDetail _serverDetail = GetGoldScreenController.instance.GetServerDetail(); OneHitAPI.InviteFriend_SearchParentInfo(_serverDetail, _parentSessionId, (_messageReceiving, _error) => { if (_messageReceiving != null) { sbyte _caseCheck = _messageReceiving.readByte(); if (_caseCheck == 1) { // byte databaseid // long userid // byte avatarid // String nameShow // ***nếu databaseid là facebook thì đọc thêm kiểu long : facebookid --> lấy avatar // ***nếu databaseid là google thì đọc thêm kiểu string : link_icon UserData.DatabaseType _databaseId = (UserData.DatabaseType)_messageReceiving.readByte(); long _userid = _messageReceiving.readLong(); sbyte _avatarid = _messageReceiving.readByte(); string _nameShow = _messageReceiving.readString(); long _facebookId = -1; if (_databaseId == UserData.DatabaseType.DATABASEID_FACEBOOK) { _facebookId = _messageReceiving.readLong(); } else if (_databaseId == UserData.DatabaseType.DATABASEID_GOOGLE) { string _linkIcon = _messageReceiving.readString(); } else { #if TEST Debug.LogError("DatabaseID khác : " + _databaseId); #endif } parentInfo = new UserData(); parentInfo.InitData(); parentInfo.sessionId = _parentSessionId; parentInfo.databaseId = (UserData.DatabaseType)_databaseId; parentInfo.userId = _userid; parentInfo.avatarid = _avatarid; parentInfo.nameShowInGame = _nameShow; parentInfo.facebookId = _facebookId; PopupManager.Instance.CreatePopupConfirmInviteFriend(parentInfo , MyLocalize.GetString(MyLocalize.kYes) , MyLocalize.GetString(MyLocalize.kNo) , () => { if (parentInfo.sessionId == DataManager.instance.userData.sessionId) { PopupManager.Instance.CreateToast(MyLocalize.GetString("InviteFriend/InvalidCode")); } else { GlobalRealTimeSendingAPI.SendMessageSetParent(parentInfo.sessionId); } }, null); } else { parentInfo = new UserData(); PopupManager.Instance.CreateToast(MyLocalize.GetString("InviteFriend/CouldNotFound")); } } else { #if TEST Debug.LogError("InviteFriend_SearchParentInfo Error: " + _error); #endif } } ); }
public static void GetListTableByGameID(short _gameId, short _indexBegin, short _numberTableGet, SubServerDetail _serverDetail, System.Action <MessageReceiving, int> _onFinished) { if (CoreGameManager.instance.giaLapNgatKetNoi) { if (_onFinished != null) { _onFinished(null, 1); } return; } if (CoreGameManager.instance.giaLapMangChapChon) { if (Random.Range(0, 100) < CoreGameManager.instance.giaLapTyLeRotMang) { if (_onFinished != null) { _onFinished(null, 1); } return; } } if (messageGetListTableByGameId == null) { messageGetListTableByGameId = new MessageSending(CMD_ONEHIT.Game_RoomTable_GetListTable_By_gameid); } else { messageGetListTableByGameId.ClearData(); } messageGetListTableByGameId.writeshort(_gameId); messageGetListTableByGameId.writeshort(_indexBegin); messageGetListTableByGameId.writeshort(_numberTableGet); #if TEST string _tmp = string.Empty; _tmp += _gameId + "|" + _indexBegin + "|" + _numberTableGet; Debug.Log(">>>CMD GetListTableByGameID : " + messageGetListTableByGameId.getCMD() + "|" + _tmp); #endif NetworkGlobal.instance.StartOnehit(messageGetListTableByGameId, _serverDetail, _onFinished); }
public OneHitGame(SubServerDetail _subServerDeail, MessageSending _messageSending) { // #if TEST // Debug.Log(">>> Kết nối SubServerDetail: " + _subServerDeail.subServerName); // #endif serverName = _subServerDeail.subServerName; listIpConnect = new List <IpDetail>(); List <IpDetail> _newListIpConnect = new List <IpDetail>(); for (int i = 0; i < _subServerDeail.listIpDetail.Count; i++) { _newListIpConnect.Add(_subServerDeail.listIpDetail[i]); } _newListIpConnect.Sort(delegate(IpDetail _ipDetailSau, IpDetail _ipDetailTruoc) // y.CompareTo(x) = -1 là dịch về phía sau { // -1 là dịch về phía trước if (_ipDetailTruoc.timeDelay == -1) { return(1); } if (_ipDetailSau.timeDelay > _ipDetailTruoc.timeDelay) { return(1); } else if (_ipDetailSau.timeDelay == _ipDetailTruoc.timeDelay) { if (_ipDetailSau.countConnectionError > _ipDetailTruoc.countConnectionError) { return(1); } else if (_ipDetailSau.countConnectionError == _ipDetailTruoc.countConnectionError) { return(0); } else { return(-1); } } else { return(-1); } }); for (int i = 0; i < _newListIpConnect.Count; i++) { if (!_newListIpConnect[i].beingError) { // Debug.Log(">>> Khong Loi: " + _newListIpConnect[i][i].ip + ":" + _newListIpConnect[i].port_onehit); listIpConnect.Add(_newListIpConnect[i]); } } for (int i = 0; i < _newListIpConnect.Count; i++) { if (_newListIpConnect[i].beingError) { // Debug.Log(">>> Loi: " + _newListIpConnect[i][i].ip + ":" + _newListIpConnect[i].port_onehit); listIpConnect.Add(_newListIpConnect[i]); } } messageSending = _messageSending; }
void OnFindTableClicked(string _id, string _pass) { SubServerDetail _serverDetail = DataManager.instance.miniGameData.currentMiniGameDetail.currentServerDetail; if (_serverDetail == null) { #if TEST Debug.LogError(">>> currentServerDetail is NULL"); #endif return; } RoomDetail _roomDetail = null; for (int i = 0; i < _serverDetail.listRoomDetail.Count; i++) { if (_serverDetail.listRoomDetail[i].gameId == DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameId) { _roomDetail = _serverDetail.listRoomDetail[i]; break; } } if (_roomDetail == null) { #if TEST Debug.LogError("_roomDetail is null: " + DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameType.ToString()); #endif return; } if (_roomDetail.versionRoom > DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.versionFeature) { #if TEST Debug.Log("<color=green> RoomOutOfDate: " + DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.versionFeature + " - " + _roomDetail.versionRoom + " </color>"); #endif PopupManager.Instance.CreatePopupDialog(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("ChooseTable/RoomOutOfDate") , string.Empty , MyLocalize.GetString(MyLocalize.kUpdate) , MyLocalize.GetString(MyLocalize.kCancel) , () => { //TODO : xử lý khi bấm nút update Application.OpenURL(MyConstant.linkApp); }, null); return; } if (DataManager.instance.userData.databaseId == UserData.DatabaseType.DATABASEID_FACEBOOK && !FacebookAPI.IsLoggedIn()) { #if TEST Debug.LogError(">>> Chưa Login FB mà"); #endif if (actionLoginFbAgain == null) { actionLoginFbAgain = FacebookAPI.DoActionLoginFb(null, () => { actionLoginFbAgain = null; }); StartCoroutine(actionLoginFbAgain); } return; } TableDetail _tableDetail = null; for (int i = 0; i < DataManager.instance.miniGameData.currentMiniGameDetail.tableData.listTableDetail.Count; i++) { if (DataManager.instance.miniGameData.currentMiniGameDetail.tableData.listTableDetail[i].tableId == short.Parse(_id)) { _tableDetail = DataManager.instance.miniGameData.currentMiniGameDetail.tableData.listTableDetail[i]; break; } } if (_tableDetail != null) { DataManager.instance.miniGameData.currentMiniGameDetail.tableData.currentTableDetail = _tableDetail; LoadingCanvasController.instance.Show(-1, false, null, () => { NetworkGlobal.instance.StopRealTime(); }); SetProcessJoinToTable(); System.Action _onConnectionSuccess = () => { GlobalRealTimeSendingAPI.SendMessageJoinToTable(DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameId , DataManager.instance.miniGameData.currentMiniGameDetail.tableData.currentTableDetail.tableId, _pass); }; NetworkGlobal.instance.RunRealTime(_serverDetail, OnCreateConnectionError, _onConnectionSuccess, null, OnServerFull); } }
public void OnButtonPlayNowClicked() { MyAudioManager.instance.PlaySfx(GameInformation.instance.globalAudioInfo.sfx_Click); SubServerDetail _serverDetail = DataManager.instance.miniGameData.currentMiniGameDetail.currentServerDetail; if (_serverDetail == null) { #if TEST Debug.LogError(">>> currentServerDetail is NULL"); #endif return; } RoomDetail _roomDetail = null; for (int i = 0; i < _serverDetail.listRoomDetail.Count; i++) { if (_serverDetail.listRoomDetail[i].gameId == DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameId) { _roomDetail = _serverDetail.listRoomDetail[i]; break; } } if (_roomDetail == null) { #if TEST Debug.LogError("_roomDetail is null: " + DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameType.ToString()); #endif return; } if (_roomDetail.versionRoom > DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.versionFeature) { #if TEST Debug.Log("<color=green> RoomOutOfDate: " + DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.versionFeature + " - " + _roomDetail.versionRoom + " </color>"); #endif PopupManager.Instance.CreatePopupDialog(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("ChooseTable/RoomOutOfDate") , string.Empty , MyLocalize.GetString(MyLocalize.kUpdate) , MyLocalize.GetString(MyLocalize.kCancel) , () => { //TODO : xử lý khi bấm nút update Application.OpenURL(MyConstant.linkApp); }, null); return; } if (DataManager.instance.userData.databaseId == UserData.DatabaseType.DATABASEID_FACEBOOK && !FacebookAPI.IsLoggedIn()) { #if TEST Debug.LogError(">>> Chưa Login FB mà"); #endif if (actionLoginFbAgain == null) { actionLoginFbAgain = FacebookAPI.DoActionLoginFb(null, () => { actionLoginFbAgain = null; }); StartCoroutine(actionLoginFbAgain); } return; } LoadingCanvasController.instance.Show(-1, false, null, () => { NetworkGlobal.instance.StopRealTime(); }); SetProcessPlayNow(); NetworkGlobal.instance.RunRealTime(_serverDetail, OnCreateConnectionError, OnPlayNowCreateConnectionSuccess, null, OnServerFull); }
void SetUpTableData(bool _isGetAll, SubServerDetail _serverDetail, MessageReceiving _messageReceiving, int _error, System.Action _onSuccess = null, System.Action <int> _onError = null) { if (_messageReceiving != null) { bool _checkCase = _messageReceiving.readBoolean(); if (_checkCase) { long _versionRoom = _messageReceiving.readLong(); RoomDetail _roomDetail = null; for (int i = 0; i < _serverDetail.listRoomDetail.Count; i++) { if (_serverDetail.listRoomDetail[i].gameId == DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameId) { _roomDetail = _serverDetail.listRoomDetail[i]; break; } } if (_roomDetail == null) { #if TEST Debug.LogError("_roomDetail is null: " + DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.gameType.ToString()); #endif } else { _roomDetail.versionRoom = _versionRoom; } // if(_roomDetail.myOriginalDetail != null){ // _roomDetail.myOriginalDetail.versionServer = _versionServer; // } TableData _tableData = new TableData(); string _gameNameRecieve = _messageReceiving.readString(); short _maxNumberTable = _messageReceiving.readShort(); _tableData.numberPlaying = _messageReceiving.readInt(); //số người đang chơi _tableData.maxViewer = _messageReceiving.readByte(); _tableData.maxPlayer = _messageReceiving.readByte(); short _numberTableGet = _messageReceiving.readShort(); // GAMEID_UNO|59|0|8|4|20 // Debug.Log(_gameNameRecieve + "|" + _maxNumberTable + "|" + _tableData.numberPlaying + "|" + _tableData.maxViewer + "|" + _tableData.maxPlayer + "|" + _numberTableGet); List <TableDetail> _listTableDetail = new List <TableDetail>(); for (int i = 0; i < _numberTableGet; i++) { TableDetail _tableDetail = new TableDetail(); _tableDetail.tableId = _messageReceiving.readShort(); _tableDetail.isLockByPass = _messageReceiving.readBoolean(); _tableDetail.status = _messageReceiving.readByte(); _tableDetail.bet = _messageReceiving.readLong(); _tableDetail.countViewer = _messageReceiving.readByte(); _tableDetail.countPlaying = _messageReceiving.readByte(); _listTableDetail.Add(_tableDetail); } if (DataManager.instance.miniGameData.currentMiniGameDetail.myInfo.versionFeature < _versionRoom) { _serverDetail.beingError = false; if (currentState == State.Show) { if (_onError != null) { _onError(-98); // RoomOutOfDate } } } else { if (_isGetAll) { List <TableDetail> _tableDetailCollection = new List <TableDetail>(); for (int i = 0; i < _listTableDetail.Count; i++) { if (_tableData.CanTableBeEnable(_listTableDetail[i])) { _tableDetailCollection.Add(_listTableDetail[i]); if (_tableDetailCollection.Count >= numTableDefault) { break; } } } _tableData.listTableDetail = _tableDetailCollection; } else { _tableData.listTableDetail = _listTableDetail; } DataManager.instance.miniGameData.currentMiniGameDetail.tableData = _tableData; _serverDetail.beingError = false; if (currentState == State.Show) { panelListTable.InitDataAgain(); if (_onSuccess != null) { _onSuccess(); } } } } else { #if TEST Debug.LogError("Lỗi sever trả về rỗng"); #endif _serverDetail.beingError = true; _serverDetail.countConnectionError++; if (currentState == State.Show) { if (_onError != null) { _onError(-99); // RoomIsNotAvailable } } } } else { #if TEST Debug.LogError("Room is not available"); #endif _serverDetail.beingError = true; _serverDetail.countConnectionError++; if (currentState == State.Show) { if (_onError != null) { _onError(_error); } } } }