Beispiel #1
0
    /// <summary>
    /// 単品受取したときのメーッセージ
    /// </summary>
    private void MissionOneOpenResultMessage(RecvOpenAchievementValue result)
    {
        if (result == null)
        {
            return;
        }

        string result_msg = "";

        //--------------------------------------------------------------
        // エラーテキストの取得
        // 1: 受け取りアイテム(ユニット)が上限に到達 2: クエストキー期限切れ 3:開封有効期限切れ
        //--------------------------------------------------------------
        if (result.error != null)
        {
            for (int i = 0; i < result.error.Length; ++i)
            {
                switch ((PRESENT_OPEN_ERROR_TYPE)result.error[i])
                {
                case PRESENT_OPEN_ERROR_TYPE.COUNT_LIMIT:
                    result_msg += Environment.NewLine + GameTextUtil.GetText("mt37q_content1");
                    break;

                case PRESENT_OPEN_ERROR_TYPE.QUEST_KEY_EXPIRED:
                    result_msg += Environment.NewLine + GameTextUtil.GetText("mt37q_content2");
                    break;

                case PRESENT_OPEN_ERROR_TYPE.RECEIVE_EXPIRED:
                    result_msg += Environment.NewLine + GameTextUtil.GetText("mt37q_content3");
                    break;
                }
            }
        }

        int rewardOpenCount = (result.achievement_opened != null) ? result.achievement_opened.Length : 0; // 開封個数

        if (rewardOpenCount > 0)
        {
            // 先頭に受け取りメッセージを追加
            result_msg = GameTextUtil.GetText("mt37q_content0") + Environment.NewLine + result_msg;
        }
        else
        {
            // 先頭の改行を消す
            if (!result_msg.IsNullOrEmpty())
            {
                result_msg = result_msg.Remove(0, Environment.NewLine.Length);
            }
        }

        Dialog newDialog = Dialog.Create(DialogType.DialogOK);

        newDialog.SetDialogText(DialogTextType.Title, GameTextUtil.GetText("mm36q_title"));
        newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("mt37q_content"), result_msg));
        newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
        newDialog.Show();
    }
Beispiel #2
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();
    }
 public void OnSendAchievementOpen()
 {
     ServerDataUtilSend.SendPacketAPI_AchievementOpen(aunAchievementOpen, aunAchievementGroupOpen).
     setSuccessAction((_data) =>
     {
         Debug.LogError("FINISH");
         RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result;
     }).
     setErrorAction((_data) =>
     {
         Debug.LogError("ERROR:" + _data.m_PacketCode);
     }).
     SendStart();
 }
Beispiel #4
0
    /// <summary>
    /// 全部受け取りした時のメッセージ
    /// </summary>
    void MissionAllOpenResultMessage(RecvOpenAchievementValue result)
    {
        if (result == null)
        {
            return;
        }

        //--------------------------------------------------------------
        // 受取エラーの数を取得
        // 1: 受け取りアイテム(ユニット)が上限に到達 2: クエストキー期限切れ 3:開封有効期限切れ
        //--------------------------------------------------------------
        int error_num_1 = 0;
        int error_num_2 = 0;
        int error_num_3 = 0;

        if (result.error != null)
        {
            for (int i = 0; i < result.error.Length; ++i)
            {
                switch ((PRESENT_OPEN_ERROR_TYPE)result.error[i])
                {
                case PRESENT_OPEN_ERROR_TYPE.COUNT_LIMIT:
                    ++error_num_1;
                    break;

                case PRESENT_OPEN_ERROR_TYPE.QUEST_KEY_EXPIRED:
                    ++error_num_2;
                    break;

                case PRESENT_OPEN_ERROR_TYPE.RECEIVE_EXPIRED:
                    ++error_num_3;
                    break;
                }
            }
        }

        //--------------------------------------
        // エラーテキストの取得
        //--------------------------------------
        string error_msg_1 = ""; // 所持上限テキスト
        string error_msg_2 = ""; // 有効期限切れテキスト
        string error_msg_3 = ""; // 受取期限超過テキスト

        if (error_num_1 > 0)
        {
            error_msg_1 = Environment.NewLine + string.Format(GameTextUtil.GetText("mt36q_content1"), error_num_1) + Environment.NewLine;
        }
        if (error_num_2 > 0)
        {
            error_msg_2 = Environment.NewLine + string.Format(GameTextUtil.GetText("mt36q_content2"), error_num_2) + Environment.NewLine;
        }
        if (error_num_3 > 0)
        {
            error_msg_3 = Environment.NewLine + string.Format(GameTextUtil.GetText("mt36q_content3"), error_num_3) + Environment.NewLine;
        }

        int rewardOpenCount = (result.achievement_opened != null) ? result.achievement_opened.Length : 0; // 開封個数

        //--------------------------------------
        // ダイアログの表示
        //--------------------------------------
        if (rewardOpenCount > 0)
        {
            // n個のプレゼントを受け取りました。
            Dialog newDialog = Dialog.Create(DialogType.DialogOK);
            newDialog.SetDialogText(DialogTextType.Title, GameTextUtil.GetText("mm36q_title"));
            newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("mm36q_content"), rewardOpenCount, error_msg_1, error_msg_2, error_msg_3));
            newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
            newDialog.Show();
        }
        else
        {
            // 全て受け取れませんでした。
            Dialog newDialog = Dialog.Create(DialogType.DialogOK);
            newDialog.SetDialogText(DialogTextType.Title, GameTextUtil.GetText("mm36q_title"));
            newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("mt36q_content0"), error_msg_1, error_msg_3));
            newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
            newDialog.Show();
        }
    }
Beispiel #5
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();
    }