/// <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(); }
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(); }
/// <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(); } }
//一括受取ボタン 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(); }