Example #1
0
    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();
        });
    }
Example #2
0
    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
            }
        }
                               );
    }
Example #3
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
 public bool IsEqual(SubServerDetail _other)
 {
     if (subServerId == _other.subServerId)
     {
         return(true);
     }
     return(false);
 }
Example #6
0
    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);
        }
    }
Example #7
0
    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);
    }
Example #8
0
    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);
        }
    }
Example #9
0
    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();
    }
Example #10
0
 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;
             }
         }
     }
 }
Example #11
0
    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);
    }
Example #12
0
    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);
        }
    }
Example #13
0
    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);
        }
    }
Example #14
0
    // 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;
    }
Example #15
0
    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);
        });
    }
Example #16
0
    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
        }
    }
Example #17
0
    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());
    }
Example #18
0
    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();
    }
Example #19
0
 void InitData(SubServerDetail _serverDetail)
 {
     serverDetail     = _serverDetail;
     txtRoomName.text = serverDetail.subServerName + " " + string.Format("{0:00}", serverDetail.subServerId) + " - " + serverDetail.countryCode;
 }
Example #20
0
 public override void ResetData()
 {
     StopAllCoroutines();
     serverDetail = null;
 }
Example #21
0
    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
    }
Example #22
0
    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");
        }
    }
Example #23
0
    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);
    }
Example #24
0
    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
            }
        }
                                                );
    }
Example #25
0
    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);
    }
Example #26
0
    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;
    }
Example #27
0
    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);
        }
    }
Example #28
0
    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);
    }
Example #29
0
    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);
                }
            }
        }
    }