Ejemplo n.º 1
0
    public void OnClickReceiveButton()
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("CALL OnClickReceiveButton:" + gameObject.name);
#endif
        //連打防止
        if (ServerApi.IsExists)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsPageClosing() == true)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsCangeTime())
        {
            return;
        }
        SoundUtil.PlaySE(SEID.SE_MENU_OK2);

        ServerDataUtilSend.SendPacketAPI_AchievementOpen(
            new uint[]
        {
            Achievement.fix_id
        },
            null).
        setSuccessAction(
            (_data) =>
        {
            //ユーザー情報更新
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvOpenAchievement>(UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result;
            MissionOneOpenResultMessage(result);
            MissionGroup.SetEnaleReceiveButtonAll(false);
            MissionGroup.Activate();

            // 開封した新規達成アチーブメントを削除
            ResidentParam.DelAchievementClear(result.achievement_opened);
#if BUILD_TYPE_DEBUG
            Debug.LogError("FINISH:" + ((result.achievement_opened != null) ? result.achievement_opened.Length : 0));
#endif
            MainMenuManager.Instance.UpdateUserStatusFromGlobalMenu();
        }).
        setErrorAction(
            (_data) =>
        {
            Debug.LogError("ERROR:" + _data.m_PacketCode);
            MissionGroup.SetEnaleReceiveButtonAll(true);
        }).
        SendStart();
    }
Ejemplo n.º 2
0
    //----------------------------------------------------------------------------

    /*!
     *  @brief  アチーブメント操作:新規達成アチーブメントから要素を削除
     */
    //----------------------------------------------------------------------------
    static public void DelAchievementClear(uint[] fix_ids)
    {
        if (fix_ids.IsNullOrEmpty() == false)
        {
            for (int i = 0; i < fix_ids.Length; ++i)
            {
                ResidentParam.DelAchievementClear(fix_ids[i]);
            }

            MainMenuHeader.SetupMissionClearMessage();
        }
    }
Ejemplo n.º 3
0
    public static IEnumerator PopupWebViewStart(PopupWebViewType type,
                                                uint id            = 0,
                                                Action callback    = null,
                                                Action closeAction = null)
    {
        if (TutorialManager.IsExists)
        {
            if (callback != null)
            {
                callback();
            }
        }
        else
        {
            WebViewDayCheck();

            List <uint>    webViewList = MainMenuWebViewShowChk.GetPopupWebViewList(type, id);
            WaitForSeconds wait        = new WaitForSeconds(0.5f);
            int            opencount   = 0;
            for (int i = 0; i < webViewList.Count; ++i)
            {
                MasterDataWebView master = MasterFinder <MasterDataWebView> .Instance.Find((int)webViewList[i]);

                if (master != null)
                {
                    WebView webView = WebView.OpenWebView(master.url_web,
                                                          closeAction,
                                                          master.fix_id);
                    while (webView.isOpen == true)
                    {
                        yield return(null);
                    }

                    ResidentParam.DelAchievementClear(master.webview_param_1);
                    opencount++;
                }

                yield return(wait);
            }

            if (callback != null)
            {
                callback();
            }

            if (opencount <= 0 &&
                closeAction != null)
            {
                closeAction();
            }
        }
    }
Ejemplo n.º 4
0
    protected override void PageSwitchSetting(bool bActive, bool bBack)
    {
        base.PageSwitchSetting(bActive, bBack);

        //--------------------------------
        // 以下は有効になったタイミングでの処理なので、
        // フェードアウト指示の場合にはスルー
        //--------------------------------
        if (bActive == false)
        {
            return;
        }

        //--------------------------------
        // 戻り処理の場合は再構築スルー
        //--------------------------------
        if (bBack == true)
        {
            return;
        }

        //ページ初期化処理
        if (m_Mission == null)
        {
            m_Mission = GetComponentInChildren <Mission>();
            m_Mission.SetPositionAjustStatusBar(new Vector2(0, -6), new Vector2(-20, -346));

            m_Mission.EmptyLabel = GameTextUtil.GetText("common_not_list");
        }

        // ナビゲーションバー
        //        string[] navi_text = {"デイリー","イベント","ノーマル","達成済み"};
        //
        //		m_Mission.NaviText0 = navi_text[0];
        //		m_Mission.NaviText1 = navi_text[1];
        //		m_Mission.NaviText2 = navi_text[2];
        //		m_Mission.NaviText3 = navi_text[3];

        // レコード
        //		int id = 0;
        //        for (int i = 0; i < 200; i++)
        //        {
        //            m_Mission.AddRecord(id++ ,i%3, id + ":title", id*3, new DateTime(2017,2,7), new DateTime(2017,2,28), i%30, 20, 1, i, false, true);
        //        }
        //
        // シーンの最後に呼び出す
        m_Mission.Initialize();

        // 新規発生アチーブメント情報を削除
        ResidentParam.DelAchievementNewCnt();
    }
Ejemplo n.º 5
0
    /// <summary>
    /// マーキーを選択したとき
    /// </summary>
    public void OnClickMessage()
    {
        if (m_ActiveHeaderTouch == false)
        {
            return;
        }

        if (m_CurrentMessageValue != null)
        {
            if (m_CurrentMessageValue.type == HeaderMessage.MESSAGE_TYPE.ACHIEVEMENT_CLEAR)
            {
                MainMenuParam.m_AchievementShowData = ResidentParam.GetAchievementClear(m_CurrentMessageValue.fix_id);
            }
            OpenGlobalMenu(GLOBALMENU_SEQ.MISSION);
        }
    }
Ejemplo n.º 6
0
    /*==========================================================================*/
    /*		func																*/
    /*==========================================================================*/
    //----------------------------------------------------------------------------

    /*!
     *          @brief	Unity固有処理:初期化処理	※初回のUpdateを呼び出す直前に呼出し
     */
    //----------------------------------------------------------------------------
    protected override void Start()
    {
        base.Start();

        //--------------------------------
        //	回転制御許可設定
        //--------------------------------
        Screen.orientation                    = ScreenOrientation.AutoRotation;
        Screen.autorotateToPortrait           = true;
        Screen.autorotateToPortraitUpsideDown = true;
        Screen.autorotateToLandscapeLeft      = false;
        Screen.autorotateToLandscapeRight     = false;

#if true
        //--------------------------------
        // ビルド情報をログ出力。
        //
        // マスター版で焼いた際にログが出なくて、
        // それぞれのシンボル情報の確証が得にくいので情報として出しておく
        //--------------------------------
        string strApplicationSymbolData = "BuildParam - ";

#if UNITY_IPHONE
        strApplicationSymbolData += " Platform:iOS , ";
#elif UNITY_ANDROID
        strApplicationSymbolData += " Platform:Android , ";
#else
        strApplicationSymbolData += " Platform:????? , ";
#endif

#if BUILD_TYPE_DEBUG
        strApplicationSymbolData += " BuildType:debug , ";
#else
        strApplicationSymbolData += "";
#endif

#if STORE_SIMULATION
        strApplicationSymbolData += " Store:disable , ";
#else
        strApplicationSymbolData += " Store:enable , ";
#endif

#if _MASTER_BUILD
        strApplicationSymbolData += " Master:On , ";
#else
        strApplicationSymbolData += " Master:Off , ";
#endif

        UnityEngine.Debug.Log(strApplicationSymbolData);
#endif

#if BUILD_TYPE_DEBUG && UNITY_EDITOR
        //--------------------------------
        //
        //--------------------------------
        Application.runInBackground = true;
#endif // #if BUILD_TYPE_DEBUG && UNITY_EDITOR


        //--------------------------------
        // staticパラメータのクリア
        //--------------------------------
        ResidentParam.ParamReset();

        //--------------------------------
        // マルチタッチ無効
        //--------------------------------
        Input.multiTouchEnabled = false;

        //--------------------------------
        // 負荷軽減モードの適用分岐
        //--------------------------------
        if (SystemUtil.GetLoadReductionMode() == true)
        {
            ResidentParam.m_OptionWorkLoadLevel = 1;
        }
        else
        {
            ResidentParam.m_OptionWorkLoadLevel = 0;
        }

#if BUILD_TYPE_DEBUG
#if DEBUG_LOG
        m_ManagerMemoryLog = MemoryLogManager.getInstance();
#endif // DEBUG_LOG
#endif

        //--------------------------------
        // ローカルのセーブ情報をユーザークラスに譲渡するためロード実行
        //--------------------------------
        if (LocalSaveManager.Instance != null)
        {
            // 2015/07/15 k_iida V280 招待機能先送りに伴い封印する V290復活予定.
            //			LocalSaveStorage.Instance.InitLocalSaveStorage( "DivineGate" );
            LocalSaveManager.SaveVersionSafety();
            LocalSaveManager.Instance.LoadFuncUUID();
            LocalSaveManager.Instance.LoadFuncLocalData();
            //			LocalSaveManager.Instance.LoadFuncRestore();
        }
        else
        {
            Debug.LogError("LocalSaveManager None!");
        }

        //--------------------------------
        // Prime31 PlayGameServices 初期化処理
        //--------------------------------
        PlayGameServiceUtil.InitPlayGameService();

        //--------------------------------
        // サーバープッシュ通知初期化
        // @add Developer 2016/10/31
        //--------------------------------
        RemoteNotificationManager.Init();
    }
Ejemplo n.º 7
0
    //一括受取ボタン
    public void OnClickReceiveAllButton()
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("CALLOnClickReceiveAllButton");
#endif

        if (GlobalMenuManager.Instance.IsPageClosing() == true)
        {
            return;
        }

        //連打防止
        if (ServerApi.IsExists)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsCangeTime())
        {
            return;
        }

        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        List <MasterDataAchievementConverted> tmpOpenCollection = CurrentMissionGroup.Collection.FindAll((v) => v.IsState_Achieve || v.IsState_AchieveEffect);
        List <MasterDataAchievementConverted> openCollection    = new List <MasterDataAchievementConverted>();

        //--------------------------------------
        // フィルター設定に該当するミッションを抽出する
        //--------------------------------------
        MasterDataDefineLabel.AchievementReceiveType filterType = MasterDataDefineLabel.AchievementReceiveType.NONE;
        if (m_FilterInfo != null)
        {
            filterType = m_FilterInfo.m_receive_type;
        }
        for (int i = 0; i < tmpOpenCollection.Count; ++i)
        {
            if (MasterDataUtil.CheckReceivePresentType(tmpOpenCollection[i].present_ids, filterType) == true)
            {
                openCollection.Add(tmpOpenCollection[i]);
            }
        }

        uint[] present = openCollection.Select((v) => v.fix_id).ToArray();  // 現在のタブで、報酬があるアチーブメントの配列

        // リクエスト
        ServerDataUtilSend.SendPacketAPI_AchievementOpen(present, new uint[]
        {
            (uint)CurrentMissionGroup.missionGroupType
        }).
        setSuccessAction((_data) =>
        {
            //ユーザー情報更新
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvOpenAchievement>(UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result;
            MissionAllOpenResultMessage(result);
#if BUILD_TYPE_DEBUG
            Debug.Log("FINISH:" + result.achievement_opened);
#endif
            CurrentMissionGroup.SetEnaleReceiveButtonAll(false);     // 開封したミッションリストのボタンを押せなくする
            CurrentMissionGroup.Activate();

            // 開封した新規達成アチーブメントを削除
            ResidentParam.DelAchievementClear(result.achievement_opened);

            MainMenuManager.Instance.UpdateUserStatusFromGlobalMenu();
        }).
        setErrorAction((_data) =>
        {
            Debug.LogError("ERROR:" + _data.m_PacketCode);
            CurrentMissionGroup.SetEnaleReceiveButtonAll(true);
        }).
        SendStart();
    }
Ejemplo n.º 8
0
    public static List <uint> GetPopupWebViewList(PopupWebViewType type, uint id)
    {
        List <uint> missionList = new List <uint>();

        MasterDataWebView[] masters = MasterFinder <MasterDataWebView> .Instance.GetAll();

        foreach (MasterDataWebView master in masters)
        {
            if (master.webview_type != (int)type)
            {
                if (type == PopupWebViewType.QuestClear)
                {
                    if (master.webview_type != (int)PopupWebViewType.Mission)
                    {
                        continue;
                    }
                }
                else
                {
                    continue;
                }
            }

            if (master.webview_type == (int)PopupWebViewType.Mission)
            {
                ServerDataDefine.PacketAchievement achievement = ResidentParam.GetAchievementClear(master.webview_param_1);
                if (achievement == null)
                {
                    continue;
                }
            }
            else
            {
                if (master.webview_param_1 != id)
                {
                    continue;
                }
            }

            if (master.timing_start != 0)
            {
                if (TimeManager.Instance.CheckWithinTime(master.timing_start, master.timing_end) == false)
                {
                    continue;
                }
            }

            uint rank_upper_limit = master.webview_param_3;
            if (rank_upper_limit == 0)
            {
                rank_upper_limit = rank_max;
            }

            if (UserDataAdmin.Instance.m_StructPlayer.rank < master.webview_param_2 ||
                UserDataAdmin.Instance.m_StructPlayer.rank > rank_upper_limit)
            {
                continue;
            }

            if (GetViewCheck(master.fix_id) == true)
            {
                continue;
            }
            missionList.Add(master.fix_id);
        }
        return(missionList);
    }
Ejemplo n.º 9
0
    /// <summary>
    /// API結果:成功:ユーザー削除
    /// </summary>
    void SendUserRenewSuccess(ServerApi.ResultData _data)
    {
        //----------------------------------------
        // 情報反映
        //----------------------------------------
#if BUILD_TYPE_DEBUG
        Debug.LogError("UUID Renew : " + m_RenewUUID);
#endif

        //----------------------------------------
        // ローカルセーブを破棄して再構築
        //----------------------------------------
        LocalSaveManager.LocalSaveRenew(false, false);

        //----------------------------------------
        // FoxSDKの仕様による進行不可回避
        //----------------------------------------
#if BUILD_TYPE_DEBUG
        Debug.Log("FoxSDK Safety");
#endif
        LocalSaveManager.Instance.SaveFuncInformationOK(LocalSaveManager.AGREEMENT.FOX_CALLED);

        //----------------------------------------
        // UUID記憶
        //----------------------------------------
        LocalSaveManager.Instance.SaveFuncUUID(m_RenewUUID);
        LocalSaveManager.Instance.SaveFuncTitleUUID();

        UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvRenewUser>(UserDataAdmin.Instance.m_StructPlayer);
        UserDataAdmin.Instance.m_StructSystem = _data.GetResult <RecvRenewUser>().result.system;
        UserDataAdmin.Instance.ConvertPartyAssing();

        //----------------------------------------
        // メインメニューパラメータクリア
        //----------------------------------------
        MainMenuParam.ParamReset();
        MainMenuHeader.ParamReset();
        ResidentParam.ParamResetUserRenew();

        //----------------------------------------
        // 共有パラメータクリア
        //----------------------------------------
        if (UserDataAdmin.Instance != null)
        {
            UserDataAdmin.Instance.ParamReset();
        }

        MainMenuManager.s_LastLoginTime = 0;

        // 完了ダイアログ
        Dialog newDialog = Dialog.Create(DialogType.DialogOK);
        newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "he179q_title");
        newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "he179q_content");
        newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
        newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() =>
        {
            LoadingManager.Instance.RequestLoadingStart(LOADING_TYPE.GUARD);

            StartCoroutine(SQLiteClient.Instance.LocalSqlite3ClearExec(() =>
            {
                LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.GUARD);
                //----------------------------------------
                // 初回起動時の動作を想定してタイトルに戻る
                //----------------------------------------
                SceneCommon.Instance.GameToTitle();
            }));
        }));
        newDialog.EnableFadePanel();
        newDialog.DisableCancelButton();
        newDialog.Show();
    }
Ejemplo n.º 10
0
    //----------------------------------------------------------------------------

    /*!
     *          @brief	API受信情報解析
     */
    //----------------------------------------------------------------------------
    static public ResultCodeType RecvPacketAPI(ref PacketData rcPacketData, string strRecvText, string strRecvError, bool bParse = true)
    {
        //--------------------------------
        // 送受信エラーを検出
        //--------------------------------
        if (strRecvError != null)
        {
            //--------------------------------
            // 再送指示。
            // そもそもこの関数に入る前に弾いているのでここに届くことはないはず。
            //--------------------------------
            return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_RETRY));
        }

        //--------------------------------
        // ヘッダ情報のみ抜出
        //--------------------------------
        RecvHeaderChecker cPacketHeader = CreateRecvHeader(strRecvText);

        //--------------------------------
        // セッションIDを更新
        // ヘッダが破損していてもデータがあれば適用するので先行して設定
        //--------------------------------
        if (cPacketHeader != null &&
            cPacketHeader.header.session_id != null &&
            cPacketHeader.header.session_id.Length > 0
            )
        {
            ServerDataParam.m_ServerSessionID = cPacketHeader.header.session_id;
        }

        //--------------------------------
        // サーバーから届いた現在時間を保持
        //--------------------------------
        if (cPacketHeader != null &&
            cPacketHeader.header != null
            )
        {
            //--------------------------------
            //
            //--------------------------------
            if (ServerDataParam.m_ServerTime != 0 &&
                cPacketHeader.header.server_time == 0
                )
            {
                //--------------------------------
                // サーバーから時間情報が返ってくるケースと返ってこないケースがあると処理が破綻する。
                // 返ってくるAPIと返ってこないAPIがあっても一応動作するようにセーフティを入れておく
                //--------------------------------
                Debug.LogError("ServerTime Error! - " + rcPacketData.m_PacketAPI);
                if (TimeManager.Instance != null)
                {
                    TimeUtil.ConvertLocalTimeToServerTime(TimeManager.Instance.m_TimeNow);
                }
            }
            else
            {
                //--------------------------------
                // サーバーから届いた時間情報を使用
                //--------------------------------
                ServerDataParam.m_ServerTime = cPacketHeader.header.server_time;
            }
        }

        //--------------------------------
        // セキュリティコードを更新
        //--------------------------------
        if (cPacketHeader != null &&
            cPacketHeader.header.csum != null &&
            cPacketHeader.header.csum.Length > 0
            )
        {
            ServerDataParam.m_ServerAPICheckSum = cPacketHeader.header.csum;
#if BUILD_TYPE_DEBUG
            Debug.Log("API CheckSum - Recv " + ServerDataParam.m_ServerAPICheckSum);
#endif
        }

        if (cPacketHeader != null &&
            cPacketHeader.header != null
            )
        {
            ServerDataParam.m_ServerAPICheckRandOtt = cPacketHeader.header.ott;
        }

        //--------------------------------
        // ヘッダ情報はフォーマット固定なのでヘッダの取得を行い不具合がないかチェックする
        //--------------------------------
        if (cPacketHeader == null)
        {
            Debug.LogError("RecvPacket Header Broken! : " + strRecvText);
            return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_PARSE_FAILED));
        }

        if (Enum.IsDefined(typeof(API_CODE), cPacketHeader.header.code) == false)
        {
            Debug.LogError("RecvPacket Header Broken! Error Code : " + strRecvText);
            return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_PARSE_FAILED_CODE));
        }

        //--------------------------------
        // リクエストに対する返信ではない場合、
        // 再送依頼してもう一度取り直す
        //--------------------------------
        if (rcPacketData.m_PacketUniqueNum != cPacketHeader.header.packet_unique_id)
        {
            Debug.LogError("RecvPacket UniqueID Not Match! " + "send:" + rcPacketData.m_PacketUniqueNum + " , recv:" + cPacketHeader.header.packet_unique_id);
            return(ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, API_CODE.API_CODE_CLIENT_RETRY));
        }

        //--------------------------------
        // リザルトデータが存在しない場合に
        // サーバー班が result = null を仕込むのが工数がかかるようなので、
        // ここで例外的にresultが0配列の場合にnullに置き換える。
        //
        // 基本的にエラー発生時にのみコレが引っかかるので、
        // 処理が発生する頻度自体は低いはず…
        //--------------------------------
        if (cPacketHeader.header.code != (int)API_CODE.API_CODE_SUCCESS &&
            strRecvText[strRecvText.Length - 3] == '[' &&
            strRecvText[strRecvText.Length - 2] == ']' &&
            strRecvText[strRecvText.Length - 1] == '}'
            )
        {
            Debug.LogError("Packet Result Format Safety!");
            strRecvText  = strRecvText.Substring(0, strRecvText.Length - 3);
            strRecvText += "null}";
        }

        //--------------------------------
        // 届いたリザルトコードがAPI呼び出し元に渡さないタイプならそのまま終了
        //--------------------------------
        ResultCodeType cResultCodeType = null;
        {
            //--------------------------------
            // APIとリザルトコードのペアからコードタイプを求める
            //--------------------------------
            cResultCodeType = ServerDataManager.Instance.ResultCodeToCodeType(rcPacketData.m_PacketAPI, (API_CODE)cPacketHeader.header.code);
        }

        if (cResultCodeType != null)
        {
            bool bError = false;
            switch (cResultCodeType.m_CodeType)
            {
            case API_CODETYPE.API_CODETYPE_USUALLY: bError = false; break;

            case API_CODETYPE.API_CODETYPE_INVALID_USER: bError = true; break;

            case API_CODETYPE.API_CODETYPE_VERSION_UP: bError = true; break;

            case API_CODETYPE.API_CODETYPE_RESTART: bError = true; break;

            case API_CODETYPE.API_CODETYPE_MENTENANCE: bError = true; break;

            case API_CODETYPE.API_CODETYPE_RETRY: bError = true; break;

            case API_CODETYPE.API_CODETYPE_AUTH_REQUIRED: bError = true; break;

            case API_CODETYPE.API_CODETYPE_TRANSFER_MOVED: bError = true; break;
            }

            if (bError == true)
            {
                return(cResultCodeType);
            }
        }
        else
        {
            Debug.LogError("Packet Result CodeType None! - " + cPacketHeader.header.code);
            return(null);
        }

        if (bParse)
        {
            //--------------------------------
            // APIタイプで分岐して解析処理へ
            //--------------------------------
            switch (rcPacketData.m_PacketAPI)
            {
            case SERVER_API.SERVER_API_USER_CREATE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvCreateUser>(strRecvText)); break;                      // APIタイプ:ユーザー管理:ユーザー新規生成

            case SERVER_API.SERVER_API_USER_AUTHENTICATION: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUserAuthentication>(strRecvText)); break;      // APIタイプ:ユーザー管理:ユーザー承認

            case SERVER_API.SERVER_API_USER_RENAME: RecvPacketAPIConvert(JsonMapper.ToObject <RecvRenameUser>(strRecvText)); break;                      // APIタイプ:ユーザー管理:ユーザー名称変更

            case SERVER_API.SERVER_API_USER_SELECT_DEF_PARTY: RecvPacketAPIConvert(JsonMapper.ToObject <RecvSelectDefParty>(strRecvText)); break;        // APIタイプ:ユーザー管理:ユーザー初期設定

            case SERVER_API.SERVER_API_USER_RENEW: RecvPacketAPIConvert(JsonMapper.ToObject <RecvRenewUser>(strRecvText)); break;                        // APIタイプ:ユーザー管理:ユーザー再構築

            case SERVER_API.SERVER_API_USER_RENEW_CHECK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvCheckRenewUser>(strRecvText)); break;             // APIタイプ:ユーザー管理:ユーザー再構築情報問い合わせ

            case SERVER_API.SERVER_API_MASTER_HASH_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetMasterHash>(strRecvText)); break;               // APIタイプ:マスターハッシュ情報取得

            case SERVER_API.SERVER_API_MASTER_DATA_GET_ALL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAll>(strRecvText)); break;           // APIタイプ:マスターデータ操作:マスターデータ実体取得

            case SERVER_API.SERVER_API_MASTER_DATA_GET_ALL2: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAll2>(strRecvText)); break;         // APIタイプ:マスターデータ操作:マスターデータ実体取得

            case SERVER_API.SERVER_API_GET_ACHIEVEMENT_GP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvAchievementGroup>(strRecvText)); break;         // APIタイプ:アチーブメント操作:アチーブメントグループ実体取得

            case SERVER_API.SERVER_API_GET_ACHIEVEMENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAchievement>(strRecvText)); break;       // APIタイプ:アチーブメント操作:アチーブメント実体取得

            case SERVER_API.SERVER_API_GET_LOGIN_PACK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvLoginPack>(strRecvText)); break;                    // APIタイプ:ログイン情報:ログインパック情報取得

            case SERVER_API.SERVER_API_GET_LOGIN_PARAM: RecvPacketAPIConvert(JsonMapper.ToObject <RecvLoginParam>(strRecvText)); break;                  // APIタイプ:ログイン情報:ログイン情報取得

            case SERVER_API.SERVER_API_FRIEND_LIST_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendListGet>(strRecvText)); break;               // APIタイプ:フレンド操作:フレンド一覧取得

            case SERVER_API.SERVER_API_FRIEND_REQUEST: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendRequest>(strRecvText)); break;                // APIタイプ:フレンド操作:フレンド申請

            case SERVER_API.SERVER_API_FRIEND_CONSENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendConsent>(strRecvText)); break;                // APIタイプ:フレンド操作:フレンド申請承認

            case SERVER_API.SERVER_API_FRIEND_REFUSAL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendRefusal>(strRecvText)); break;                // APIタイプ:フレンド操作:フレンド解除

            case SERVER_API.SERVER_API_FRIEND_SEARCH: RecvPacketAPIConvert(JsonMapper.ToObject <RecvFriendSearch>(strRecvText)); break;                  // APIタイプ:フレンド操作:フレンドユーザー検索

            case SERVER_API.SERVER_API_UNIT_PARTY_ASSIGN: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitPartyAssign>(strRecvText)); break;           // APIタイプ:ユニット操作:ユニットパーティ編成設定

            case SERVER_API.SERVER_API_UNIT_SALE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitSale>(strRecvText)); break;                          // APIタイプ:ユニット操作:ユニット売却

            case SERVER_API.SERVER_API_UNIT_BLEND_BUILDUP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitBlendBuildUp>(strRecvText)); break;         // APIタイプ:ユニット操作:ユニット強化合成

            case SERVER_API.SERVER_API_UNIT_BLEND_EVOL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitBlendEvol>(strRecvText)); break;               // APIタイプ:ユニット操作:ユニット進化合成

            case SERVER_API.SERVER_API_UNIT_LINK_CREATE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitLink>(strRecvText)); break;                   // APIタイプ:ユニット操作:ユニットリンク実行

            case SERVER_API.SERVER_API_UNIT_LINK_DELETE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvUnitLink>(strRecvText)); break;                   // APIタイプ:ユニット操作:ユニットリンク解除

            case SERVER_API.SERVER_API_QUEST_HELPER_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestHelperGet>(strRecvText)); break;             // APIタイプ:クエスト操作:助っ人一覧取得

            case SERVER_API.SERVER_API_QUEST_HELPER_GET_EVOL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestHelperGetEvol>(strRecvText)); break;    // APIタイプ:クエスト操作:助っ人一覧取得(進化合成向き)

            case SERVER_API.SERVER_API_QUEST_HELPER_GET_BUILD: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestHelperGetBuild>(strRecvText)); break;  // APIタイプ:クエスト操作:助っ人一覧取得(強化合成向き)

            case SERVER_API.SERVER_API_QUEST_START: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestStart>(strRecvText)); break;                      // APIタイプ:クエスト操作:クエスト開始

            case SERVER_API.SERVER_API_QUEST_CLEAR: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestClear>(strRecvText)); break;                      // APIタイプ:クエスト操作:クエストクリア

            case SERVER_API.SERVER_API_QUEST_RETIRE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestRetire>(strRecvText)); break;                    // APIタイプ:クエスト操作:クエストリタイア

            case SERVER_API.SERVER_API_QUEST_ORDER_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestOrderGet>(strRecvText)); break;               // APIタイプ:クエスト操作:クエスト受託情報取得

            case SERVER_API.SERVER_API_QUEST_CONTINUE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestContinue>(strRecvText)); break;                // APIタイプ:インゲーム中:コンティニュー

            case SERVER_API.SERVER_API_QUEST_RESET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvQuestReset>(strRecvText)); break;                      // APIタイプ:インゲーム中:リセット

            case SERVER_API.SERVER_API_EVOL_QUEST_START: RecvPacketAPIConvert(JsonMapper.ToObject <RecvEvolQuestStart>(strRecvText)); break;             // APIタイプ:クエスト操作:進化クエスト開始

            case SERVER_API.SERVER_API_EVOL_QUEST_CLEAR: RecvPacketAPIConvert(JsonMapper.ToObject <RecvEvolQuestClear>(strRecvText)); break;             // APIタイプ:クエスト操作:進化クエストクリア

            case SERVER_API.SERVER_API_INJUSTICE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvInjustice>(strRecvText)); break;                         // APIタイプ:不正検出関連:不正検出送信

            case SERVER_API.SERVER_API_TUTORIAL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvTutorialStep>(strRecvText)); break;                       // APIタイプ:チュートリアル関連:進行集計

            case SERVER_API.SERVER_API_STONE_USE_UNIT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStoneUsedUnit>(strRecvText)); break;                // APIタイプ:魔法石使用:ユニット枠増設

            case SERVER_API.SERVER_API_STONE_USE_FRIEND: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStoneUsedFriend>(strRecvText)); break;            // APIタイプ:魔法石使用:フレンド枠増設

            case SERVER_API.SERVER_API_STONE_USE_STAMINA: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStoneUsedStamina>(strRecvText)); break;          // APIタイプ:魔法石使用:スタミナ回復

            case SERVER_API.SERVER_API_GACHA_PLAY: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGachaPlay>(strRecvText)); break;                        // APIタイプ:ガチャ操作:ガチャ実行

            case SERVER_API.SERVER_API_GACHA_TICKET_PLAY: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGachaTicketPlay>(strRecvText)); break;           // APIタイプ:ガチャ操作:ガチャチケット実行

            case SERVER_API.SERVER_API_STONE_PAY_PREV_IOS: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePayPrev_ios>(strRecvText)); break;         // APIタイプ:課金操作:魔法石購入直前処理( iOS … AppStore )

            case SERVER_API.SERVER_API_STONE_PAY_PREV_ANDROID: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePayPrev_android>(strRecvText)); break; // APIタイプ:課金操作:魔法石購入直前処理( Android … GooglePlay )

            case SERVER_API.SERVER_API_STONE_PAY_IOS: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePay_ios>(strRecvText)); break;                  // APIタイプ:課金操作:魔法石購入反映処理( iOS … AppStore )

            case SERVER_API.SERVER_API_STONE_PAY_ANDROID: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePay_android>(strRecvText)); break;          // APIタイプ:課金操作:魔法石購入反映処理( Android … GooglePlay )

            case SERVER_API.SERVER_API_REVIEW_PRESENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvReviewPresent>(strRecvText)); break;                // APIタイプ:ユーザーレビュー関連:レビュー遷移報酬

            case SERVER_API.SERVER_API_PRESENT_LIST_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPresentListGet>(strRecvText)); break;             // APIタイプ:プレゼント関連:プレゼント一覧取得

            case SERVER_API.SERVER_API_PRESENT_OPEN: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPresentOpen>(strRecvText)); break;                    // APIタイプ:プレゼント関連:プレゼント開封

            case SERVER_API.SERVER_API_TRANSFER_ORDER: RecvPacketAPIConvert(JsonMapper.ToObject <RecvTransferOrder>(strRecvText)); break;                // APIタイプ:セーブ移行関連:パスワード発行

            case SERVER_API.SERVER_API_TRANSFER_EXEC: RecvPacketAPIConvert(JsonMapper.ToObject <RecvTransferExec>(strRecvText)); break;                  // APIタイプ:セーブ移行関連:移行実行

#if BUILD_TYPE_DEBUG
            case SERVER_API.SERVER_API_DEBUG_EDIT_USER: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugEditUser>(strRecvText)); break;                // APIタイプ:デバッグ機能関連:ユーザーデータ更新

            case SERVER_API.SERVER_API_DEBUG_UNIT_GET: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugUnitGet>(strRecvText)); break;                  // APIタイプ:デバッグ機能関連:ユニット取得

            case SERVER_API.SERVER_API_DEBUG_QUEST_CLEAR: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugQuestClear>(strRecvText)); break;            // APIタイプ:デバッグ機能関連:クエストクリア情報改変

            case SERVER_API.SERVER_API_DEBUG_SEND_BATTLE_LOG: RecvPacketAPIConvert(JsonMapper.ToObject <RecvDebugBattleLog>(strRecvText)); break;         // APIタイプ:デバッグ機能関連:バトルログアップロード

            case SERVER_API.SERVER_API_DEBUG_MASTER_DATA_GET_ALL2: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMasterDataAll2>(strRecvText)); break;    // APIタイプ:マスターデータ操作:マスターデータ実体取得
#endif
            case SERVER_API.SERVER_API_GET_STORE_EVENT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetStoreProductEvent>(strRecvText)); break;         // APIタイプ:イベントストア一覧取得

            case SERVER_API.SERVER_API_STORE_PAY_CANCEL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvStorePayCancel>(strRecvText)); break;              // APIタイプ:課金操作:魔法石購入キャンセル

            case SERVER_API.SERVER_API_ACHIEVEMENT_OPEN: RecvPacketAPIConvert(JsonMapper.ToObject <RecvOpenAchievement>(strRecvText)); break;             // APIタイプ:アチーブメント開封

            case SERVER_API.SERVER_API_CHECK_SNS_LINK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvCheckSnsLink>(strRecvText)); break;                  //!< APIタイプ:SNSIDとの紐付け確認

            case SERVER_API.SERVER_API_SET_SNS_LINK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvSetSnsLink>(strRecvText)); break;                      //!< APIタイプ:SNSIDとの紐付け

            case SERVER_API.SERVER_API_MOVE_SNS_SAVE_DATA: RecvPacketAPIConvert(JsonMapper.ToObject <RecvMoveSnsSaveData>(strRecvText)); break;           //!< APIタイプ:SNSIDを使用したデータ移行

            case SERVER_API.SERVER_API_TUTORIAL_SKIP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvSkipTutorial>(strRecvText)); break;                   //!< APIタイプ:チュートリアルスキップ

            case SERVER_API.SERVER_API_GET_SNS_ID: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetSnsID>(strRecvText)); break;                          //!< APIタイプ:SNSID作成

            case SERVER_API.SERVER_API_GET_POINT_SHOP_PRODUCT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetPointShopProduct>(strRecvText)); break;   //!< APIタイプ:ポイントショップ:ショップ商品情報を取得		get_point_shop_product

            case SERVER_API.SERVER_API_POINT_SHOP_PURCHASE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPointShopPurchase>(strRecvText)); break;        //!< APIタイプ:ポイントショップ:商品購入					point_shop_purchase

            case SERVER_API.SERVER_API_POINT_SHOP_LIMITOVER: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPointShopLimitOver>(strRecvText)); break;      //!< APIタイプ:ポイントショップ:限界突破

            case SERVER_API.SERVER_API_POINT_SHOP_EVOL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPointShopEvol>(strRecvText)); break;                //!< APIタイプ:ポイントショップ:進化

            case SERVER_API.SERVER_API_USE_ITEM: RecvPacketAPIConvert(JsonMapper.ToObject <RecvItemUse>(strRecvText)); break;                             //!< APIタイプ:消費アイテム:アイテム使用

            case SERVER_API.SERVER_API_GET_BOX_GACHA_STOCK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetBoxGachaStock>(strRecvText)); break;         //!< APIタイプ:BOXガチャ在庫状況取得

            case SERVER_API.SERVER_API_RESET_BOX_GACHA_STOCK: RecvPacketAPIConvert(JsonMapper.ToObject <RecvResetBoxGachaStock>(strRecvText)); break;     //!< APIタイプ:BOXガチャ在庫状況リセット

            case SERVER_API.SERVER_API_EVOLVE_UNIT: RecvPacketAPIConvert(JsonMapper.ToObject <RecvEvolveUnit>(strRecvText)); break;                       // APIタイプ:クエスト操作:進化クエスト開始

            case SERVER_API.SERVER_API_GET_GUERRILLA_BOSS_INFO: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetGuerrillaBossInfo>(strRecvText)); break; //!< APIタイプ:ゲリラボス情報

            case SERVER_API.SERVER_API_GET_GACHA_LINEUP: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetGachaLineup>(strRecvText)); break;              // APIタイプ:ガチャ:ガチャラインナップ詳細

            case SERVER_API.SERVER_API_RENEW_TUTORIAL: RecvPacketAPIConvert(JsonMapper.ToObject <RecvRenewTutorialStep>(strRecvText)); break;             // APIタイプ:チュートリアル関連:進行集計

            case SERVER_API.SERVER_API_GET_TOPIC_INFO: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetTopicInfo>(strRecvText)); break;                  // APIタイプ:ホームページのトピック : ニュース情報取得

            case SERVER_API.SERVER_API_PERIODIC_UPDATE: RecvPacketAPIConvert(JsonMapper.ToObject <RecvPeriodicUpdate>(strRecvText)); break;               //!< APIタイプ:定期データ更新(デバイストークン)

            case SERVER_API.SERVER_API_GET_PRESENT_OPEN_LOG: RecvPacketAPIConvert(JsonMapper.ToObject <RecvGetPresentOpenLog>(strRecvText)); break;       // APIタイプ:ホームページのトピック : ニュース情報取得
            }
        }

        //--------------------------------
        // アチーブメントの共通情報を加算しておく
        //--------------------------------
        if (cPacketHeader != null)
        {
            ResidentParam.AddAchievementClear(cPacketHeader.header.achievement_clear_data);
            // 値が0以上の場合のみバッチの値を更新
            if (cPacketHeader.header.achievement_reward_count >= 0)
            {
                ResidentParam.m_AchievementRewardCnt = cPacketHeader.header.achievement_reward_count;
            }

            // 新規アチーブメントカウント数を更新
            ResidentParam.AddAchievementNewCnt(cPacketHeader.header.achievement_new_count);
        }

        return(cResultCodeType);
    }