private void openScoreInfo() { if (m_ScoreDialog != null || ServerApi.IsExists) { return; } SoundUtil.PlaySE(SEID.SE_MENU_OK); m_ScoreDialog = ScoreEventDialog.Create(SceneObjReferMainMenu.Instance.m_MainMenuGroupCamera.GetComponent <Camera>()); int[] event_ids = new int[scoreEventList.Count]; for (int i = 0; i < scoreEventList.Count; i++) { event_ids[i] = (int)scoreEventList[i].event_id; } ServerDataUtilSend.SendPacketAPI_GetUserScoreInfo(event_ids) .setSuccessAction((data) => { RecvGetUserScoreInfo scoreInfo = data.GetResult <RecvGetUserScoreInfo>(); if (scoreInfo != null && scoreInfo.result != null && scoreInfo.result.score_infos != null) { for (int i = 0; i < scoreInfo.result.score_infos.Length; i++) { PacketStructUserScoreInfo Info = scoreInfo.result.score_infos[i]; if (Info == null) { continue; } MasterDataScoreEvent scoreEventMaster = scoreEventList.Find((m) => m.event_id == Info.event_id); if (scoreEventMaster == null) { continue; } m_ScoreDialog.addScoreInfo(Info, scoreEventMaster); } bool isTutorial = (LocalSaveManagerRN.Instance.GetIsShowTutorialDialog(TutorialDialog.FLAG_TYPE.SCORE) == false); if (isTutorial) { #if BUILD_TYPE_DEBUG Debug.LogError(string.Format("チュートリアルを表示する FLAG_TYPE:{0}", TutorialDialog.FLAG_TYPE.SCORE.ToString())); #endif TutorialDialog.Create().SetTutorialType(TutorialDialog.FLAG_TYPE.SCORE).Show(() => { isTutorial = false; }); } m_HomeMenu.IsViewScoreInfo = false; m_ScoreDialog.Show(() => { m_ScoreDialog = null; m_HomeMenu.IsViewScoreInfo = true; }); } else { DestroyObject(m_ScoreDialog.gameObject); m_ScoreDialog = null; Dialog errorDialog = Dialog.Create(DialogType.DialogOK); errorDialog.SetDialogText(DialogTextType.Title, "警告"); errorDialog.SetDialogText(DialogTextType.MainText, "スコアイベントは開催されていません。"); errorDialog.SetDialogText(DialogTextType.OKText, "閉じる"); errorDialog.SetDialogEvent(DialogButtonEventType.OK, () => { m_HomeMenu.IsViewScoreInfo = false; }); errorDialog.Show(); } }) .setErrorAction((data) => { DestroyObject(m_ScoreDialog.gameObject); m_ScoreDialog = null; }) .SendStart(); }
private void sendMissionGet(System.Action callback = null) { m_QuestDetailMission.MissionList.Clear(); ServerDataUtilSend.SendPacketAPI_GetMasterDataAchievement(4, 0, 0, MainMenuParam.m_QuestSelectMissionID) .setSuccessAction(_data => { RecvMasterDataAchievementValue _result = _data.GetResult <RecvMasterDataAchievement>().result; MasterDataAchievementConverted[] achievementArray = _result.master_array_achievement; // 未達成と達成済みを分ける List <MasterDataAchievementConverted> notAchievedList = new List <MasterDataAchievementConverted>(); List <MasterDataAchievementConverted> achievedList = new List <MasterDataAchievementConverted>(); for (int i = 0; i < achievementArray.Length; ++i) { if (achievementArray[i].IsState_Achieve) { achievedList.Add(achievementArray[i]); } else { notAchievedList.Add(achievementArray[i]); } } // 未達成と達成済みを結合する notAchievedList.AddRange(achievedList); achievementArray = notAchievedList.ToArray(); int clearCount = 0; for (int i = 0; i < achievementArray.Length; i++) { MasterDataAchievementConverted _master = achievementArray[i]; QuestMissionContext newMission = new QuestMissionContext(); newMission.Title = _master.draw_msg; newMission.ItemName = _master.PresentName; newMission.Count = (int)_master.ProgressCount; newMission.CountMax = (int)_master.TotalCount; _master.GetPresentIcon(sprite => { newMission.IconImage = sprite; }); newMission.IsActiveLeftTime = false; newMission.ItemValue = (_master.PresentCount > 0) ? _master.PresentCount.ToString() : ""; if (_master.event_id != 0) { uint unTimingEnd = MainMenuUtil.GetEventTimingEnd(_master.event_id); if (unTimingEnd != 0) { DateTime endTime = TimeUtil.GetDateTime(unTimingEnd); DateTime nowTime = TimeManager.Instance.m_TimeNow; TimeSpan leftTime = endTime - nowTime; newMission.LeftValue = GameTextUtil.GetRemainStr(leftTime, GameTextUtil.GetText("general_time_01")); newMission.IsActiveLeftTime = true; } } if (_master.IsState_Achieve) { newMission.Count = newMission.CountMax; clearCount++; } m_QuestDetailMission.MissionList.Add(newMission); } m_QuestDetailMission.Count = clearCount; m_QuestDetailMission.CountMax = achievementArray.Length; if (callback != null) { callback(); } }) .setErrorAction(_data => { if (callback != null) { callback(); } }) .SendStart(); }
//---------------------------------------------------------------------------- /*! * @brief 通信処理 */ //---------------------------------------------------------------------------- private void ServerCommunicate() { //-------------------------------- // サーバーに送る情報を構築 //-------------------------------- uint unQuestID = (uint)MainMenuParam.m_QuestSelectMissionID; uint unQuestState = 0; if (MainMenuParam.m_QuestSelectAreaAmendStamina != 100) { unQuestState = (int)MasterDataDefineLabel.AmendType.STAMINA; } // エリア補正タイプ:補正:スタミナ半減 else if (MainMenuParam.m_QuestSelectAreaAmendEXP != 100) { unQuestState = (int)MasterDataDefineLabel.AmendType.EXP; } // エリア補正タイプ:補正:経験値アップ else if (MainMenuParam.m_QuestSelectAreaAmendCoin != 100) { unQuestState = (int)MasterDataDefineLabel.AmendType.MONEY; } // エリア補正タイプ:補正:コイン else if (MainMenuParam.m_QuestSelectAreaAmendDrop != 100) { unQuestState = (int)MasterDataDefineLabel.AmendType.DROP; } // エリア補正タイプ:補正:ドロップ率 else if (MainMenuParam.m_QuestSelectAreaAmendTicket != 100) { unQuestState = (int)MasterDataDefineLabel.AmendType.TICKET; } // エリア補正タイプ:補正:チケット //---------------------------------------- // 選択されている助っ人を取得 //---------------------------------------- // PacketStructFriend cHelper = UserDataAdmin.Instance.SearchHelper( MainMenuParam.m_QuestHelperUserID ); PacketStructFriend cHelper = MainMenuParam.m_QuestHelper; if (cHelper == null) { Debug.LogError("SelectFriendNone"); return; } //---------------------------------------- // フレンド使用のサイクルをもとにFP発生判定。 // ここでも使用宣言が走るので使用情報を書き込んでおく //---------------------------------------- // 指定のフレンドがフレンドポイント取得可能かどうか // bugweb3907対応、以前はクエストの取得可能情報も得ていたが、サーバーサイドに移動し、フレンドのみ見るように bool bFriendPointActive = (LocalSaveManager.Instance.GetLocalSaveUseFriend(cHelper.user_id) == null); //---------------------------------------- // フレンドポイント付与情報をセーブ。 //---------------------------------------- uint unGetFriendPt = 0; if (bFriendPointActive == true) { // フレンドポイントを取得 unGetFriendPt = MainMenuUtil.GetSelectFriendPoint(cHelper, MainMenuParam.m_QuestEventFP); } LocalSaveManager.Instance.SaveFuncQuestFriendPointActive(unGetFriendPt, UserDataAdmin.Instance.m_StructPlayer.have_friend_pt); //---------------------------------------- //エリア補正リストを取得 //---------------------------------------- TemplateList <MasterDataAreaAmend> AreaAmendList = MainMenuParam.m_QuestAreaAmendList; uint[] aunAreaAmendID = new uint[AreaAmendList.m_BufferSize]; for (int cnt = 0; cnt < AreaAmendList.m_BufferSize; cnt++) { aunAreaAmendID[cnt] = AreaAmendList[cnt].fix_id; } bool is_auto_play = false; MasterDataQuest2 master = MasterDataUtil.GetQuest2ParamFromID(unQuestID); if (master.enable_autoplay != MasterDataDefineLabel.BoolType.ENABLE) { LocalSaveOption cOption = LocalSaveManager.Instance.LoadFuncOption(); is_auto_play = (cOption.m_OptionAutoPlayEnable == (int)LocalSaveDefine.OptionAutoPlayEnable.ON); } //-------------------------------- // API通信リクエスト発行 //-------------------------------- switch (MasterDataUtil.GetQuestType(unQuestID)) { case MasterDataDefineLabel.QuestType.NORMAL: { ServerDataUtilSend.SendPacketAPI_Quest2Start( unQuestID , unQuestState , cHelper.user_id , cHelper.unit , bFriendPointActive , UserDataAdmin.Instance.m_StructPlayer.unit_party_current , MainMenuParam.m_QuestEventFP , (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0 , aunAreaAmendID , is_auto_play , cHelper.unit_link ) .setSuccessAction(_data => { requestSuccessQuest2(_data); }) .setErrorAction(_data => { requestError(_data); }) .SendStart(); } break; case MasterDataDefineLabel.QuestType.CHALLENGE: { ServerDataUtilSend.SendPacketAPI_ChallengeQuestStart( unQuestID , (uint)MainMenuParam.m_ChallengeQuestLevel , MainMenuParam.m_bChallengeQuestSkip , unQuestState , cHelper.user_id , cHelper.unit , bFriendPointActive , UserDataAdmin.Instance.m_StructPlayer.unit_party_current , MainMenuParam.m_QuestEventFP , (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0 , aunAreaAmendID , is_auto_play , cHelper.unit_link ) .setSuccessAction(_data => { requestSuccessChallengeQuest(_data); }) .setErrorAction(_data => { requestError(_data); }) .SendStart(); } break; case MasterDataDefineLabel.QuestType.NONE: break; default: break; } }
/// <summary> /// 成長ボス情報取得API呼び出し /// </summary> private void sendGetUserChallenge() { List <MasterDataChallengeEvent> eventList = MasterDataUtil.GetActiveChallengeEvent(); if (eventList == null || eventList.Count == 0) { //有効なデータがない openReturnHomeDialog(); return; } int[] event_ids = new int[eventList.Count]; for (int i = 0; i < eventList.Count; i++) { event_ids[i] = (int)eventList[i].event_id; } ServerDataUtilSend.SendPacketAPI_GetChallengeInfo(event_ids) .setSuccessAction((data) => { // m_ChallengeSelect.ClearAll(); RecvGetChallengeInfo challengeInfo = data.GetResult <RecvGetChallengeInfo>(); if (challengeInfo != null && challengeInfo.result != null && challengeInfo.result.challenge_infos != null) { for (int i = 0; i < challengeInfo.result.challenge_infos.Length; i++) { PacketStructChallengeInfo info = challengeInfo.result.challenge_infos[i]; if (info == null) { continue; } MasterDataChallengeEvent master = eventList.Find((m) => m.event_id == info.event_id); if (master == null) { continue; } m_ChallengeSelect.AddEventData(master, info); } } if (m_ChallengeSelect.Events.Count != 0) { uint select_event_id = m_ChallengeSelect.Events[0].eventMaster.event_id; // if (MainMenuParam.m_ChallengeQuestMissionID != 0 && MasterDataUtil.GetQuestType(MainMenuParam.m_ChallengeQuestMissionID) == MasterDataDefineLabel.QuestType.CHALLENGE) { MasterDataChallengeQuest master = (MasterDataChallengeQuest)MasterDataUtil.GetQuest2ParamFromID(MainMenuParam.m_ChallengeQuestMissionID); if (master != null) { select_event_id = (uint)master.event_id; } } m_ChallengeSelect.setup(select_event_id); } else { //有効なデータがない openReturnHomeDialog(); } }) .setErrorAction((data) => { //エラー }) .SendStart(); }
/// <summary> /// API開始:フレンド一覧取得 /// </summary> void SendGetFriendList() { ServerDataUtilSend.SendPacketAPI_FriendListGet().setSuccessAction(ReceiveGetFriendListSuccess).setErrorAction(ReceiveGetFriendListError).SendStart(); }
// Update is called once per frame void Update() { if (DebugOptionInGame.Instance == null) { return; } if (m_TestGameManager == null) { return; } switch (m_Status) { case eStatus.API_QUEST_START: { if (DebugOptionInGame.Instance.inGameDebugDO.m_UseAPI == true) { m_HelperIndex = RandManager.GetRand(0, (uint)(UserDataAdmin.Instance.m_StructHelperList.Length - 1)); PacketStructFriend cHelper = null; if (UserDataAdmin.Instance.m_StructFriendList.Length > 0 && UserDataAdmin.Instance.m_StructFriendList[0] != null) { cHelper = UserDataAdmin.Instance.m_StructFriendList[0]; } else if (UserDataAdmin.Instance.m_StructHelperList.Length > 0) { cHelper = UserDataAdmin.Instance.m_StructHelperList[m_HelperIndex]; } { ServerDataUtilSend.SendPacketAPI_Quest2Start( DebugOptionInGame.Instance.inGameDebugDO.m_QuestId, 0, cHelper.user_id, cHelper.unit, false, UserDataAdmin.Instance.m_StructPlayer.unit_party_current, 0, 0, null, false ) .setSuccessAction(_data => { if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build == null) { SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build(); } SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = _data.GetResult <RecvQuest2Start>().result.quest; m_Status = eStatus.DATA_CREATE; }) .setErrorAction(data => { Debug.LogErrorFormat("[TestGameMain] Quest2Start API Error [{0}] : QuestId = {1}", data.m_PacketCode.ToString(), DebugOptionInGame.Instance.inGameDebugDO.m_QuestId.ToString()); m_TestGameManager.Message_text = "API Error\r\n [" + data.m_PacketCode.ToString() + "]"; }) .SendStart(); m_Status = eStatus.NONE; } } else { if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build == null) { SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build(); } { MasterDataQuest2 masterDataQuest2 = MasterDataUtil.GetQuest2ParamFromID(DebugOptionInGame.Instance.inGameDebugDO.m_QuestId); PacketStructQuest2Build cQuestBuild = new PacketStructQuest2Build(); int floor_size = 2; //---------------------------------------- // 最終的な構築情報を格納する領域を確保 //---------------------------------------- TemplateList <PacketStructQuest2BuildBattle> acQuestBuildBattle = new TemplateList <PacketStructQuest2BuildBattle>(); TemplateList <PacketStructQuest2BuildDrop> acQuestBuildDrop = new TemplateList <PacketStructQuest2BuildDrop>(); acQuestBuildBattle.Alloc(64); int nFloorDataAccess = 0; cQuestBuild.boss = new int[floor_size]; for (int i = 0; i < floor_size; i++) { nFloorDataAccess = (i - 1); if (nFloorDataAccess < 0) { continue; } //---------------------------------------- // 0番目要素ダミーデータの入力 //---------------------------------------- PacketStructQuest2BuildBattle build_param_battle = new PacketStructQuest2BuildBattle(); if (build_param_battle != null) { build_param_battle.unique_id = 0; build_param_battle.enemy_list = null; build_param_battle.drop_list = null; build_param_battle.chain = 0; build_param_battle.chain_turn_offset = 0; build_param_battle.bgm_id = 0; acQuestBuildBattle.Add(build_param_battle); } //---------------------------------------- // 戦闘情報を設定 //---------------------------------------- int battle_num = MasterDataUtil.GetQuest2BattleNum(masterDataQuest2.fix_id); for (int j = 0; j < battle_num; j++) { uint enemy_group_id = MasterDataUtil.GetQuest2EnemyGroup(masterDataQuest2.fix_id, j); if (enemy_group_id == 0) { continue; } MasterDataEnemyGroup acMasterGroupEnemy = ServerFogery_GetEnemyGroupFromID(enemy_group_id); if (acMasterGroupEnemy == null) { Debug.LogError("EnemyGroup not found id = " + enemy_group_id); continue; } CreateQuestBuildBattle( i , ref acQuestBuildBattle , ref acQuestBuildDrop , acMasterGroupEnemy ); } //---------------------------------------- // ボス戦闘情報を設定 //---------------------------------------- cQuestBuild.boss[i] = 0; if (masterDataQuest2.boss_group_id > 0) { MasterDataEnemyGroup cBossEnemyGroup = ServerFogery_GetEnemyGroupFromID(masterDataQuest2.boss_group_id); if (cBossEnemyGroup != null) { cQuestBuild.boss[i] = CreateQuestBuildBattle( i , ref acQuestBuildBattle , ref acQuestBuildDrop , cBossEnemyGroup ); } else { Debug.LogError("EnemyGroup not found Boss id = " + masterDataQuest2.boss_group_id); } } } TemplateList <MasterDataParamEnemy> e_param_list = new TemplateList <MasterDataParamEnemy>(); TemplateList <MasterDataEnemyActionParam> e_act_param_list = new TemplateList <MasterDataEnemyActionParam>(); TemplateList <MasterDataEnemyActionTable> e_act_table_list = new TemplateList <MasterDataEnemyActionTable>(); for (int i = 0; i < acQuestBuildBattle.m_BufferSize; i++) { if (acQuestBuildBattle[i] == null) { continue; } if (acQuestBuildBattle[i].enemy_list == null) { continue; } for (int j = 0; j < acQuestBuildBattle[i].enemy_list.Length; j++) { if (acQuestBuildBattle[i].enemy_list[j] == 0) { continue; } MasterDataParamEnemy enemy_param = ServerForgery_GetEnemyParamFromID(acQuestBuildBattle[i].enemy_list[j]); e_param_list.Add(enemy_param); int[] table_id = { enemy_param.act_table1, enemy_param.act_table2, enemy_param.act_table3, enemy_param.act_table4, enemy_param.act_table5, enemy_param.act_table6, enemy_param.act_table7, enemy_param.act_table8 }; for (int k = 0; k < table_id.Length; k++) { if (table_id[k] == 0) { continue; } MasterDataEnemyActionTable table = ServerFogery_GetEnemyActionTable(table_id[k]); e_act_table_list.Add(table); int[] action_id = { table.action_param_id1, table.action_param_id2, table.action_param_id3, table.action_param_id4, table.action_param_id5, table.action_param_id6, table.action_param_id7, table.action_param_id8 }; for (int l = 0; l < action_id.Length; l++) { e_act_param_list.Add(GetEnemyActionParam(action_id[l])); } } } } //---------------------------------------- // 構築した動的要素を配列化して受け渡し //---------------------------------------- cQuestBuild.list_drop = acQuestBuildDrop.ToArray(); cQuestBuild.list_battle = acQuestBuildBattle.ToArray(); cQuestBuild.list_e_param = e_param_list.ToArray(); cQuestBuild.list_e_actparam = e_act_param_list.ToArray(); cQuestBuild.list_e_acttable = e_act_table_list.ToArray(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = cQuestBuild; } m_Status = eStatus.DATA_CREATE; } } break; case eStatus.DATA_CREATE: { { MasterDataQuest2 masterDataQuest = MasterDataUtil.GetQuest2ParamFromID(DebugOptionInGame.Instance.inGameDebugDO.m_QuestId); //---------------------------------------- // ダミーパラメータを設定 //---------------------------------------- if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2 == null) { SceneGoesParam.Instance.m_SceneGoesParamToQuest2 = new SceneGoesParamToQuest2(); } SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_QuestAreaID = masterDataQuest.area_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_QuestMissionID = masterDataQuest.fix_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_QuestRandSeed = RandManager.GetRand(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_IsUsedAutoPlay = false; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param = new UserDataUnitParam(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param = new UserDataUnitParam(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param = new UserDataUnitParam(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param = new UserDataUnitParam(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param = new UserDataUnitParam(); if (DebugOptionInGame.Instance.inGameDebugDO.m_DebugParty == false && UserDataAdmin.Instance != null && UserDataAdmin.Instance.m_StructHelperList.IsNullOrEmpty() != true && UserDataAdmin.Instance.m_StructPartyAssign.IsNullOrEmpty() != true) { PacketStructFriend cHelper = UserDataAdmin.Instance.m_StructHelperList[m_HelperIndex]; int nPartyCurrent = UserDataAdmin.Instance.m_StructPlayer.unit_party_current; PacketStructUnit[] acUnitStruct = { UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][0] , UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][1] , UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][2] , UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][3] , cHelper.unit }; UserDataUnitParam[] acUnitParam = { SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param, SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param, SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param, SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param, SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param, }; for (int i = 0; i < acUnitStruct.Length; i++) { if (acUnitStruct[i] != null) { acUnitParam[i].m_UnitDataID = acUnitStruct[i].id; acUnitParam[i].m_UnitParamLevel = (int)acUnitStruct[i].level; acUnitParam[i].m_UnitParamEXP = (int)acUnitStruct[i].exp; acUnitParam[i].m_UnitParamUniqueID = acUnitStruct[i].unique_id; acUnitParam[i].m_UnitParamLimitBreakLV = (int)acUnitStruct[i].limitbreak_lv; acUnitParam[i].m_UnitParamLimitOverLV = (int)acUnitStruct[i].limitover_lv; acUnitParam[i].m_UnitParamPlusPow = (int)acUnitStruct[i].add_pow; acUnitParam[i].m_UnitParamPlusHP = (int)acUnitStruct[i].add_hp; } } } else { SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitDataID = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara0_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitDataID = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara1_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitDataID = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara2_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitDataID = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara3_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitDataID = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara4_id; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara0_level; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara1_level; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara2_level; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara3_level; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara4_level; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitParamEXP = 100; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitParamEXP = 100; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitParamEXP = 100; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitParamEXP = 100; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitParamEXP = 100; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitParamUniqueID = 1; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitParamUniqueID = 2; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitParamUniqueID = 3; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitParamUniqueID = 4; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitParamUniqueID = 5; } LocalSaveManager.Instance.SaveFuncGoesToQuest2Start(SceneGoesParam.Instance.m_SceneGoesParamToQuest2); LocalSaveManager.Instance.SaveFuncGoesToQuest2Restore(null); DebugOptionInGame.Instance.m_Quest2Build = SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild; SceneCommon.Instance.ChangeScene(SceneType.SceneQuest2); } m_Status = eStatus.NONE; } break; case eStatus.DATA_RESTORE: { { SceneGoesParam.Instance.m_SceneGoesParamToQuest2 = LocalSaveManager.Instance.LoadFuncGoesToQuest2Start(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2Restore = LocalSaveManager.Instance.LoadFuncGoesToQuest2Restore(); if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build == null) { SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build(); } SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = DebugOptionInGame.Instance.m_Quest2Build; SceneCommon.Instance.ChangeScene(SceneType.SceneQuest2); } m_Status = eStatus.NONE; } break; default: break; } }
// ダイアログの初期化 public void Create(EventRecordListItemContex contex, bool _future) { EventId = contex.EventId; FixId = contex.FixId; IsFuture = _future; QuestType = contex.questType; if (IsFuture) { LocalSaveEventNotification cEventNotification = LocalSaveManager.Instance.CheckFuncNotificationRequest((uint)FixId); if (cEventNotification != null) { IsOnNotif = cEventNotification.m_Push; } } MasterDataEvent eventMaster = MasterFinder <MasterDataEvent> .Instance.Find(FixId); if (eventMaster == null) { #if BUILD_TYPE_DEBUG Debug.LogError("Eventがみつかりません fix_id: " + FixId); #endif return; } // テキスト Title0 = "開催期間"; Title1 = eventMaster.head_titel_1; Title2 = eventMaster.head_titel_2; OverviewText = eventMaster.head_text; //サイクルタイプで終了が設定されていない場合、規定文字列を表示 if (eventMaster.period_type == MasterDataDefineLabel.PeriodType.CYCLE && eventMaster.timing_end == 0) { DateText = GameTextUtil.GetText("schedule_text"); } else { DateText = string.Format("{0}~{1}", EventSchedule.TimingFormat(eventMaster.timing_start), ((eventMaster.timing_end != 0 ? EventSchedule.TimingFormat(eventMaster.timing_end, true) : ""))); // イベント開催~終了まで } // メインイメージを読み込み MainImage = null; string bannerUrl = eventMaster.banner_img_url; if (bannerUrl.IsNullOrEmpty() == false) { bannerUrl = GlobalDefine.GetEventScheduleBannerUrl() + bannerUrl; WebResource.Instance.GetSprite(bannerUrl, (Sprite sprite) => { MainImage = sprite; }, () => { }); } // 通知情報 var notification = MasterDataUtil.GetMasterDataNotification(eventMaster.fix_id, ServerDataDefine.NOTIFICATION_TYPE.EVENT); if (notification == null) { notificationTitle = null; notificationBody = null; notificationdelay = 0; } else { notificationTitle = notification.notification_title; notificationBody = notification.notification_body; var delay = TimeUtil.GetDateTime(notification.timing_start) - TimeManager.Instance.m_TimeNow; notificationdelay = delay.Milliseconds; } // デバッグ用 //OverviewText += "\n"; // エリア情報 AreaId = (uint)eventMaster.area_id; var areaMaster = MasterFinder <MasterDataArea> .Instance.FindAll(); var areaCateId = areaMaster.Where(x => x.fix_id == AreaId).Select(x => x.area_cate_id).ToList(); AreaCateId = areaCateId.Count() != 0 ? areaCateId[0] : 0; List <uint> bossUnits = new List <uint>(); switch (QuestType) { case MasterDataDefineLabel.QuestType.NORMAL: { var questMaster = MasterFinder <MasterDataQuest2> .Instance.FindAll(); bossUnits = questMaster.Where(x => x.area_id == AreaId).Select(x => x.boss_chara_id).ToList(); } break; case MasterDataDefineLabel.QuestType.CHALLENGE: { var challengeMaster = MasterFinder <MasterDataChallengeQuest> .Instance.FindAll(); bossUnits = challengeMaster.Where(x => x.area_id == AreaId).Select(x => x.boss_chara_id).ToList(); } break; default: break; } // ゲリラボスユニット(複数) var guerrillaUnits = new List <uint>(); var area_id_list = new int[] { (int)AreaId }; var serverApi = ServerDataUtilSend.SendPacketAPI_GetGuerrillaBossInfo(area_id_list); // ゲリラボスユニット取得成功時の振る舞い serverApi.setSuccessAction(_data => { var guerrilla = _data.GetResult <ServerDataDefine.RecvGetGuerrillaBossInfo>().result.guerrilla_boss_list; if (guerrilla != null) { for (int i = 0; i < guerrilla.Length; i++) { for (int j = 0; j < guerrilla[i].boss_id_list.Length; j++) { guerrillaUnits.Add((uint)guerrilla[i].boss_id_list[j]); } } } // 出現ユニット List <uint> units = new List <uint>(); // ボス・ゲリラボスIDの結合 units.AddRange(bossUnits); units.AddRange(guerrillaUnits); // ソート units.Sort(); // 重複を削除 List <uint> unique = units.Distinct().ToList(); // バトルが無いクエストはユニットが出現しないので削除(設定:UnitID=0) unique.RemoveAll(x => x == 0); // 該当ユニットの追加 for (int i = 0; i < unique.Count; i++) { var icon = new CircleButtonListItemContex(i, unique[i]); icon.IsEnableSelect = false; Icons.Add(icon); // デバッグ用 //OverviewText += i + ":" + "出現ユニットID[" + unique[i] + "]" + "\n"; // レイアウト再構成 m_LastUpdateCount = 5; } }); // SendStartの失敗時の振る舞い serverApi.setErrorAction(_date => { #if BUILD_TYPE_DEBUG Debug.Log("MASTER_HASH_GET:Error"); #endif }); // ゲリラボス取得API serverApi.SendStart(); }
/// <summary> /// API送信:ユニットパーティ編成設定 /// </summary> void SendUnitPartyAssign(Action <bool> finishAction = null) { PacketStructUnit leader = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.LEADER).UnitData; PacketStructUnit mob_1 = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_1).UnitData; PacketStructUnit mob_2 = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_2).UnitData; PacketStructUnit mob_3 = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_3).UnitData; PacketStructUnit[][] partys = UserDataAdmin.Instance.m_StructPartyAssign; PacketStructPartyAssign[] partyAssigns = new PacketStructPartyAssign[partys.Length]; // パーティアサイン情報配列 for (int i = 0; i < partys.Length; ++i) { partyAssigns[i] = new PacketStructPartyAssign(); if (i == m_CurrentSelectPartyIndex) { partyAssigns[i].unit0_unique_id = leader != null ? leader.unique_id : 0; partyAssigns[i].unit1_unique_id = mob_1 != null ? mob_1.unique_id : 0; partyAssigns[i].unit2_unique_id = mob_2 != null ? mob_2.unique_id : 0; partyAssigns[i].unit3_unique_id = mob_3 != null ? mob_3.unique_id : 0; } else { partyAssigns[i].unit0_unique_id = partys[i][0] != null ? partys[i][0].unique_id : 0; partyAssigns[i].unit1_unique_id = partys[i][1] != null ? partys[i][1].unique_id : 0; partyAssigns[i].unit2_unique_id = partys[i][2] != null ? partys[i][2].unique_id : 0; partyAssigns[i].unit3_unique_id = partys[i][3] != null ? partys[i][3].unique_id : 0; } } ServerDataUtilSend.SendPacketAPI_UnitPartyAssign(partyAssigns, m_CurrentSelectPartyIndex) .setSuccessAction(_data => { UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvUnitPartyAssign>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer); UserDataAdmin.Instance.ConvertPartyAssing(); m_IsPartyMemberChange = false; // ダイアログの表示 Dialog newDialog = Dialog.Create(DialogType.DialogOK); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "un72q_title"); newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "un72q_content"); newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1"); newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() => { if (finishAction != null) { finishAction(true); } })); newDialog.Show(); }) .setErrorAction(_data => { m_IsPartyMemberChange = false; if (finishAction != null) { finishAction(false); } }) .SendStart(); }
//---------------------------------------------------------------------------- /*! * @brief 基底継承:MainMenuSeq:ページ切り替えにより有効化された際に呼ばれる関数 * @note ページのレイアウト再構築を兼ねる */ //---------------------------------------------------------------------------- protected override void PageSwitchSetting(bool initalize) { base.PageSwitchSetting(initalize); //-------------------------------- // ゲームからメインメニューに渡されたリザルトをサーバーに送るクラスなので、 // ここで情報が存在しないことはあり得ない。 // //-------------------------------- if (SceneGoesParam.Instance == null || SceneGoesParam.Instance.m_SceneGoesParamToMainMenu == null ) { Debug.LogError("SceneGoesParam.Instance.m_SceneGoesParamToMainMenu Instance None!"); return; } m_QuestID = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_QuestID; m_AreaID = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_AreaID; //-------------------------------- // リザルト情報を反映する前に項目を記録しておく //-------------------------------- #if BUILD_TYPE_DEBUG Debug.Log("MainMenuResultServerSend - SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_Quest2:" + SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_Quest2); Debug.Log("MainMenuResultServerSend - SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_PartyFriend:" + SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_PartyFriend); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.unit_list:" + UserDataAdmin.Instance.m_StructPlayer.unit_list); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.rank:" + UserDataAdmin.Instance.m_StructPlayer.rank); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.exp:" + UserDataAdmin.Instance.m_StructPlayer.exp); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_money:" + UserDataAdmin.Instance.m_StructPlayer.have_money); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_stone:" + UserDataAdmin.Instance.m_StructPlayer.have_stone); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_ticket:" + UserDataAdmin.Instance.m_StructPlayer.have_ticket); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_friend_pt:" + UserDataAdmin.Instance.m_StructPlayer.have_friend_pt); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.flag_unit_get:" + UserDataAdmin.Instance.m_StructPlayer.flag_unit_get); Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.getCurrentHero():" + UserDataAdmin.Instance.getCurrentHero()); #endif MainMenuParam.m_ResultQuest2 = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_Quest2; MainMenuParam.m_ResultPrevFriend = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_PartyFriend; MainMenuParam.m_ResultPrevUnit = UserDataAdmin.Instance.m_StructPlayer.unit_list; MainMenuParam.m_ResultPrevRank = UserDataAdmin.Instance.m_StructPlayer.rank; MainMenuParam.m_ResultPrevExp = UserDataAdmin.Instance.m_StructPlayer.exp; MainMenuParam.m_ResultPrevMoney = UserDataAdmin.Instance.m_StructPlayer.have_money; MainMenuParam.m_ResultPrevStone = UserDataAdmin.Instance.m_StructPlayer.have_stone; MainMenuParam.m_ResultPrevTicket = UserDataAdmin.Instance.m_StructPlayer.have_ticket; MainMenuParam.m_ResultPrevFriendPoint = UserDataAdmin.Instance.m_StructPlayer.have_friend_pt; MainMenuParam.m_ResultPrevUnitGetFlag = UserDataAdmin.Instance.m_StructPlayer.flag_unit_get; MainMenuParam.m_ResultPrevHero = UserDataAdmin.Instance.getCurrentHero(); MainMenuParam.m_ResultNextArea = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_NextAreaCleard; if (TutorialManager.IsExists && TutorialManager.PP.IsNewUser) { MainMenuParam.m_ResultPrevRank = 1; MainMenuParam.m_ResultPrevExp = 0; } { SendEnemyKill[] enemy_kill_list = null; bool no_damage = false; int max_damage = 0; SendSkillExecCount[] active_skill_execute_count = null; int hero_skill_execute_count = 0; ServerDataDefine.PlayScoreInfo play_score_info = new PlayScoreInfo(); bool is_auto_play = false; if (!TutorialManager.IsExists) { SceneGoesParamToMainMenu _data = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu; //プレイ情報を設定 no_damage = _data.m_NoDamagePlayer; max_damage = _data.m_MaxDamageToEnemy; hero_skill_execute_count = _data.m_HeroSkillUseCount; enemy_kill_list = new SendEnemyKill[_data.m_EnemyKillCountList.Length]; for (int i = 0; i < _data.m_EnemyKillCountList.Length; i++) { enemy_kill_list[i] = new SendEnemyKill(); enemy_kill_list[i].enemy_id = (uint)_data.m_EnemyKillCountList[i].m_EnemyFixID; enemy_kill_list[i].value = (uint)_data.m_EnemyKillCountList[i].m_KillCount; } active_skill_execute_count = new SendSkillExecCount[_data.m_LimitBreakUseList.Length]; for (int i = 0; i < _data.m_LimitBreakUseList.Length; i++) { active_skill_execute_count[i] = new SendSkillExecCount(); active_skill_execute_count[i].skill_id = (uint)_data.m_LimitBreakUseList[i].m_LimitBreakSkillID; active_skill_execute_count[i].value = (uint)_data.m_LimitBreakUseList[i].m_UseCount; } //スコア情報を設定 play_score_info = _data.m_PlayScoreInfo; is_auto_play = _data.m_IsUsedAutoPlay; } //-------------------------------- // API通信リクエスト発行 //-------------------------------- switch (MasterDataUtil.GetQuestType(m_QuestID)) { case MasterDataDefineLabel.QuestType.NORMAL: { //-------------------------------- // 新クエスト用のリザルトAPIを発行 //-------------------------------- ServerDataUtilSend.SendPacketAPI_Quest2Clear( m_QuestID, enemy_kill_list, no_damage, max_damage, active_skill_execute_count, hero_skill_execute_count, play_score_info, is_auto_play ) .setSuccessAction(_data => { quest2ClearSuccess(_data); }) .setErrorAction(_data => { requestError(_data); }) .SendStart(); } break; case MasterDataDefineLabel.QuestType.CHALLENGE: { //-------------------------------- // 成長ボスクエスト用のリザルトAPIを発行 //-------------------------------- ServerDataUtilSend.SendPacketAPI_ChallengeQuestClear( m_QuestID, enemy_kill_list, no_damage, max_damage, active_skill_execute_count, hero_skill_execute_count, play_score_info, is_auto_play ) .setSuccessAction(_data => { challengeQuestClearSuccess(_data); }) .setErrorAction(_data => { requestError(_data); }) .SendStart(); } break; } } m_PageSwitchResultInfo = false; //-------------------------------- // 一度発行したらもう不要なので削除 //-------------------------------- SceneGoesParam.Instance.m_SceneGoesParamToMainMenu = null; }
public void setup(MasterDataGacha gachaMaster, MasterDataStepUpGachaManage stepUpManageMaster, uint assgin_id, bool usedTip, string title) { if (gachaMaster == null) { return; } MasterDataGacha _master = gachaMaster; if (_master.type != MasterDataDefineLabel.GachaType.STEP_UP && _master.rainbow_decide == assgin_id) { // 確定ラインナップの場合 _master = MasterFinder <MasterDataGacha> .Instance.Find(_master.rainbow_decide); if (_master == null) { return; } } TitleText = title; uint startTimeU = _master.timing_start; uint endTimeU = _master.timing_end; // 販売日程(終了日が無期限のときは表示しない) DateText = ""; if (endTimeU != 0) { string dateFormat = GameTextUtil.GetText("scratch_display2"); DateTime startTime = TimeUtil.GetDateTime(startTimeU); DateTime endTime = TimeUtil.GetDateTime(endTimeU).SubtractAMinute(); DateText = String.Format(dateFormat, startTime.ToString("yyyy/MM/dd(HH:mm)"), endTime.ToString("yyyy/MM/dd(HH:mm)")); } var guide_master_type = EMASTERDATA_SERVER.GACHA_GROUP; var gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NONE; uint gacha_fix_id = 0; uint _step_id = 0; uint _assgin_id = 0; if (_master.type == MasterDataDefineLabel.GachaType.STEP_UP) { guide_master_type = EMASTERDATA_SERVER.STEP_UP_GACHA; var _stepUpGachaMaster = MasterDataUtil.GetMasterDataStepUpGachaFromGachaID(_master.fix_id); if (_stepUpGachaMaster != null) { gacha_fix_id = _stepUpGachaMaster.fix_id; } else { #if BUILD_TYPE_DEBUG string text = String.Format("StepUpGachaMaster.gacha_idに\n「{0}」が未定義です", _master.fix_id); DialogManager.Open1B_Direct("ScratchLineUpDialog", text, "common_button7", true, true). SetOkEvent(() => { }); #endif } _step_id = stepUpManageMaster.fix_id; _assgin_id = assgin_id; if (stepUpManageMaster.normal1_assign_id == assgin_id) { gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NOMAL1_RATE_URL; } else if (stepUpManageMaster.normal2_assign_id == assgin_id) { gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NOMAL2_RATE_URL; } else if (stepUpManageMaster.special_assign_id == assgin_id) { gachatextreftype = MasterDataDefineLabel.GachaTextRefType.SPECIAL_RATE_URL; } if (gachatextreftype != MasterDataDefineLabel.GachaTextRefType.NONE) { m_ProbabilityUrl = MasterDataUtil.GetGachaText(EMASTERDATA_SERVER.STEP_UP_GACHA_MANAGE, _step_id, gachatextreftype); } } else { guide_master_type = EMASTERDATA_SERVER.GACHA_GROUP; gacha_fix_id = _master.gacha_group_id; gachatextreftype = MainMenuParam.m_GachaRainbowDecide == assgin_id ? MasterDataDefineLabel.GachaTextRefType.SPECIAL_RATE_URL : MasterDataDefineLabel.GachaTextRefType.NOMAL1_RATE_URL; m_ProbabilityUrl = MasterDataUtil.GetGachaText(guide_master_type, gacha_fix_id, gachatextreftype); } //ガイドライン m_GuidLineText = MasterDataUtil.GetGachaText(guide_master_type, gacha_fix_id, MasterDataDefineLabel.GachaTextRefType.GUIDLINE); //確率URL if (m_ProbabilityUrl.Length > 0) { ProbabilityText = GameTextUtil.GetText("Gacha_step_05"); IsProbability = true; } else { IsProbability = false; } // ガイドラインボタン表示フラグ IsUsedTip = usedTip; // 排出ユニット一覧 ServerDataUtilSend.SendPacketAPI_GetGachaLineup((int)_master.fix_id, _step_id, _assgin_id) .setSuccessAction(_data => { SortList <LineUpListItemContex> tmpLineup = new SortList <LineUpListItemContex>(); PacketStructGachaLineup[] lineup = _data.GetResult <RecvGetGachaLineup>().result.gacha_assign_unit_list; for (int i = 0; i < lineup.Length; i++) { LineUpListItemContex newItem = new LineUpListItemContex(i, lineup[i]); //newItem.DidSelectItem += OnSelectItem; tmpLineup.Body.Add(newItem); } tmpLineup.AddSortInfo(SORT_PARAM.RATIO_UP, SORT_ORDER.DESCENDING); tmpLineup.AddSortInfo(SORT_PARAM.LIMITED, SORT_ORDER.DESCENDING); tmpLineup.AddSortInfo(SORT_PARAM.GROUP_ID, SORT_ORDER.ASCENDING); tmpLineup.AddSortInfo(SORT_PARAM.RARITY, SORT_ORDER.DESCENDING); tmpLineup.AddSortInfo(SORT_PARAM.ID, SORT_ORDER.ASCENDING); m_RecvGachaLineup = tmpLineup.Exec(SORT_OBJECT_TYPE.LINUP_LIST); scrollContent.Initialize(this); }) .setErrorAction(_date => { Close(); }) .SendStart(); //BackKey設定 AndroidBackKeyManager.Instance.StackPush(gameObject, OnCloseButton); }
void OnGoBattle() { DestroyStoryView(); uint unAreaID = GlobalDefine.TUTORIAL_AREA_1; uint unQuestID = GlobalDefine.TUTORIAL_QUEST_1; uint unQuestState = 0; uint unHelperUserID = 0; PacketStructUnit sHelperUnit = null; bool bHelperPointActive = false; int nBeginnerBoostID = 0; uint[] aunareaAmendID = null; Debug.LogError("USER:"******"guest"; friend.user_rank = 999; friend.last_play = friendUnit.get_time; friend.friend_point = 0; friend.friend_state = (uint)FRIEND_STATE.FRIEND_STATE_SUCCESS; SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyFriend = friend; } ServerDataUtilSend.SendPacketAPI_Quest2StartTutorial( unQuestID, unQuestState, unHelperUserID, sHelperUnit, bHelperPointActive, UserDataAdmin.Instance.m_StructPlayer.unit_party_current, MainMenuParam.m_QuestEventFP, (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0, null //aunAreaAmendID ). setSuccessAction( _data => { //---------------------------------------- // サーバーで求めたクエスト開始情報を反映 //---------------------------------------- SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build(); SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = _data.GetResult <RecvQuest2Start>().result.quest; //---------------------------------------- // BGM停止処理:暫定対応 //---------------------------------------- SoundUtil.StopBGM(false); //---------------------------------------- // サーバーに受理されたのでゲームへ移行 //---------------------------------------- SoundUtil.PlaySE(SEID.SE_MENU_OK2); SceneCommon.Instance.ChangeScene(SceneType.SceneQuest2, false); TutorialFSM.Instance.SendFsmNextEvent(); }). setErrorAction( _data => { Debug.LogError("ERROR:" + _data); }). SendStart(); }
void OnShowDialog_ScratchInitial() { new SerialProcess().Add( (System.Action next) => { TutorialDialog.Create().SetTutorialType(TutorialDialog.FLAG_TYPE.GACHA).Show(() => { next(); }); }).Add( (System.Action next) => { Dialog.Create(DialogType.DialogOK). SetTitleFromTextKey(("TUTORIAL_SCRATCH_RESULT01_TITLE").ToLower()). SetMainFromTextKey(("TUTORIAL_SCRATCH_RESULT01_MAIN").ToLower()). SetOkEvent( () => { next(); }).Show(); }).Add( (System.Action next) => { Dialog.Create(DialogType.DialogOK). SetTitleFromTextKey(("TUTORIAL_SCRATCH_RESULT02_TITLE").ToLower()). SetMainFromTextKey(("TUTORIAL_SCRATCH_RESULT02_MAIN").ToLower()). SetOkEvent( () => { next(); }).Show(); }) .Add(next => { ServerDataUtilSend.SendPacketAPI_UserAuthentication(). setSuccessAction(_data => { next(); }). setErrorAction(_data => { //authError(_data.m_PacketCode, _data.m_PacketUniqueNum); next(); }). SendStart(); }) .Add( (System.Action next) => { InputLock(true); TutorialManager.SendStep( 601, () => { InputLock(false); TutorialFSM.Instance.SendFsmNextEvent(); next(); }); }).Flush(); }
// ガチャ実行 // fix_id: count:回数 tutorial:チュートリアルフラグ private void SendScratch(int count) { //連打防止 if (ServerApi.IsExists) { return; } //スクラッチのリザルトが終わるまでHomeに戻るバックキー無効 if (MainMenuManager.HasInstance) { MainMenuManager.Instance.DisableBackKey(); } //ユニット取得フラグ保存 MainMenuParam.m_GachaPrevUnitGetFlag = UserDataAdmin.Instance.m_StructPlayer.flag_unit_get; #if BUILD_TYPE_DEBUG Debug.Log("Scratch Send"); #endif int tutorial = (TutorialManager.IsExists) ? 1 : 0; var serverApi = ServerDataUtilSend.SendPacketAPI_GachaPlay(Context.gachaMaster.fix_id, (uint)count, (uint)tutorial); // SendStartの成功時の振る舞い serverApi.setSuccessAction(_data => { #if BUILD_TYPE_DEBUG Debug.Log("Scratch Send Success"); #endif // DG0-2733 Tutorial時、StructPlayer.renew_tutorial_step == 602 に更新される UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvGachaPlay>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer); UserDataAdmin.Instance.ConvertPartyAssing(); RecvGachaPlayValue result = _data.GetResult <RecvGachaPlay>().result; //---------------------------------------- // ガチャの結果表示画面で使う情報入力 //---------------------------------------- MainMenuParam.m_GachaUnitUniqueID = result.unit_unique_id; MainMenuParam.m_GachaBlankUnitID = result.blank_unit_id; MainMenuParam.m_GachaOmakeID = result.gacha_bonus_data; MainMenuParam.m_GachaGetUnitNum = MainMenuParam.m_GachaUnitUniqueID.Length; if (result.gacha_status != null) { UserDataAdmin.Instance.UpdateGachaStatusList(result.gacha_status); } if (result.result_present != null) { UserDataAdmin.Instance.m_StructPresentList = UserDataAdmin.PresentListClipTimeLimit(result.result_present.present); } Context.m_IsMoveScratchResult = true; if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_GACHA_RESULT, false, false); } }); // SendStartの失敗時の振る舞い serverApi.setErrorAction(_data => { // ステップが更新された if (_data.m_PacketCode == API_CODE.API_CODE_STEP_UP_GACHA_REST_TIME_NOW) { RecvGachaPlayValue result = _data.GetResult <RecvGachaPlay>().result; if (result.gacha_status != null) { UserDataAdmin.Instance.UpdateGachaStatusList(result.gacha_status); } MainMenuManager.Instance.SetResetSubTabFlag(); MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_GACHA_MAIN, false, false); } #if BUILD_TYPE_DEBUG Debug.Log("Scratch Send Error"); #endif }); serverApi.SendStart(); }
/// <summary> /// API送信:ユニットパーティ編成設定 /// </summary> void SendUnitPartyAssign(Action finishedSendAction = null) { Action endAction = () => { m_UnitPartyCurrent = DefaultUnitPartyCurrent; }; if (UserDataAdmin.Instance.m_StructPlayer.unit_party_current != m_PartyParamPanel.m_CurrentIndex) { // 選択パーティが変わっている場合 PacketStructPartyAssign[] partyAssigns = new PacketStructPartyAssign[UserDataAdmin.Instance.m_StructPartyAssign.Length]; // パーティアサイン情報配列 // パーティアサイン情報設定 for (int i = 0; i < UserDataAdmin.Instance.m_StructPartyAssign.Length; ++i) { PartySelectGroupUnitContext party = m_PartySelectGroup.GetParty(i); partyAssigns[i] = new PacketStructPartyAssign(); if (party != null) { partyAssigns[i].unit0_unique_id = party.PartyData[0] != null ? party.PartyData[0].unique_id : 0; partyAssigns[i].unit1_unique_id = party.PartyData[1] != null ? party.PartyData[1].unique_id : 0; partyAssigns[i].unit2_unique_id = party.PartyData[2] != null ? party.PartyData[2].unique_id : 0; partyAssigns[i].unit3_unique_id = party.PartyData[3] != null ? party.PartyData[3].unique_id : 0; } else { var partyAssign = UserDataAdmin.Instance.m_StructPartyAssign; partyAssigns[i].unit0_unique_id = (partyAssign[i][0] != null) ? partyAssign[i][0].unique_id : 0; partyAssigns[i].unit1_unique_id = (partyAssign[i][1] != null) ? partyAssign[i][1].unique_id : 0; partyAssigns[i].unit2_unique_id = (partyAssign[i][2] != null) ? partyAssign[i][2].unique_id : 0; partyAssigns[i].unit3_unique_id = (partyAssign[i][3] != null) ? partyAssign[i][3].unique_id : 0; } } // 送信開始 ServerDataUtilSend.SendPacketAPI_UnitPartyAssign(partyAssigns, m_PartyParamPanel.m_CurrentIndex) .setSuccessAction(_data => { UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvUnitPartyAssign>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer); UserDataAdmin.Instance.ConvertPartyAssing(); m_IsSendApi = false; endAction(); if (finishedSendAction != null) { finishedSendAction(); } }) .setErrorAction(_data => { m_IsSendApi = false; endAction(); if (finishedSendAction != null) { finishedSendAction(); } }) .SendStart(); m_IsSendApi = true; } else { endAction(); if (finishedSendAction != null) { finishedSendAction(); } } }
//---------------------------------------------------------------------------- /*! * @brief 基底継承:MainMenuSeq:ページ切り替えにより有効化された際に呼ばれる関数 * @note ページのレイアウト再構築を兼ねる */ //---------------------------------------------------------------------------- protected override void PageSwitchSetting(bool initalize) { base.PageSwitchSetting(initalize); m_Dialog = null; m_bReturnHome = false; switch (MainMenuParam.m_DateChangeType) { case DATE_CHANGE_TYPE.RETURN_TITLE: { //-------------------------------- // タイトルへ //-------------------------------- m_Dialog = DialogManager.Open1B("CHANGE_DAY", "CHANGE_DAY_DETAIL", "common_button1", true, false); } break; case DATE_CHANGE_TYPE.LOGIN: { //ローカルに保存してあるWebリソースを全削除 WebResource.Instance.RemoveAll(); //ログインボーナスシーケンスへ MainMenuManagerFSM.Instance.SendFsmEvent("REQUEST_LOGIN_BONUS", 1.0f); } break; case DATE_CHANGE_TYPE.DAY_STRADDLE: { //次の日跨ぎ通信の時間を設定 MainMenuParam.m_DayStraddleTime = MainMenuParam.m_DayStraddleTime.AddDays(1); //日またぎ通信 ServerDataUtilSend.SendPacketAPI_DayStraddle() .setSuccessAction((data) => { RecvDayStraddleValue result = data.GetResult <RecvDayStraddle>().result; if (result != null) { //プレイヤー情報更新 UserDataAdmin.Instance.m_StructPlayer = data.UpdateStructPlayer <RecvDayStraddle>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer); UserDataAdmin.Instance.ConvertPartyAssing(); //ガチャ情報更新 if (result.gacha_status != null) { UserDataAdmin.Instance.UpdateGachaStatusList(result.gacha_status); } //Homeへ m_bReturnHome = true; } }) .setErrorAction((data) => { //Homeへ m_bReturnHome = true; }) .SendStart(); } break; default: //ここに来ることはないはず //Homeへ m_bReturnHome = true; break; } }
public void Decision(MasterDataHero master, Action finishDecision = null, Action cancelAction = null) { m_decision = true; TutorialManager.SendStep((int)TutorialStep.HERO_SELECT, () => { Dialog newDialog = Dialog.Create(DialogType.DialogYesNo).SetStrongYes(); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "tutorial_master_result_02_title"); newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("tutorial_master_result_02_main"), master.name)); newDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4"); newDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5"); newDialog.SetDialogEvent(DialogButtonEventType.YES, new System.Action(() => { ServerDataUtilSend.SendPacketAPI_SelectDefParty((uint)master.default_party_id). setSuccessAction(_data => { // DG0-2733 Tutorial時、StructPlayer.renew_tutorial_step == 100 に更新される UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvSelectDefParty>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer); UserDataAdmin.Instance.m_StructHeroList = _data.GetResult <RecvSelectDefParty>().result.hero_list; UserDataAdmin.Instance.ConvertPartyAssing(); if (finishDecision != null) { finishDecision(); } m_finishDecision = true; //旧チュートリアルでパーティ選択しているか PacketStructPlayer player = UserDataAdmin.Instance.m_StructPlayer; if (player.first_select_num == TutorialManager.FirstSelectNone) { //選択していない [新規ユーザー] TutorialManager.PP.TutorialUserType = TutorialUserType.NEW; } else { //選択している [既存ユーザー] TutorialManager.PP.TutorialUserType = TutorialUserType.ALREADY; } TutorialManager.PP.Save(); TutorialHeroSelectFSM.Instance.SendFsmPositiveEvent(); }). setErrorAction(data => { if (cancelAction != null) { cancelAction(); } SoundUtil.PlaySE(SEID.SE_MENU_NG); //---------------------------------------- // ここでエラーが発生すると // シャーディングの都合上サーバー側のセーブデータが使用不可能になるらしい。 // // 例外対応として、UUIDを破棄して最初からゲームをやり直すようにする。 // ダイアログを出してボタン待ちとかやるとユーザーの操作で抜けが発生するので、 // そのままセーブ破棄してQuitを呼んでアプリを強制的に落とす //---------------------------------------- DialogManager.Open1B("ERROR_MSG_USER_TITLE", "ERROR_MSG_USER", "common_button7", true, true). SetOkEvent(() => { PacketStructPlayer player = UserDataAdmin.Instance.m_StructPlayer; if (player.first_select_num == TutorialManager.FirstSelectNone) { //選択していない [新規ユーザー] LocalSaveManager.Instance.SaveFuncUUID(""); } Application.Quit(); }); }). SendStart(); })); newDialog.SetDialogEvent(DialogButtonEventType.NO, new System.Action(() => { if (cancelAction != null) { cancelAction(); } m_decision = false; TutorialHeroSelectFSM.Instance.SendFsmNegativeEvent(); })); newDialog.EnableFadePanel(); newDialog.DisableCancelButton(); newDialog.Show(); TutorialHeroSelectFSM.Instance.SendFsmPositiveEvent(); }); }
/*==========================================================================*/ /* var */ /*==========================================================================*/ /*==========================================================================*/ /* prototype */ /*==========================================================================*/ /*==========================================================================*/ /* func */ /*==========================================================================*/ //---------------------------------------------------------------------------- /*! * @brief APIパケット送信リトライ: * @note この処理は通信の結果「端末とサーバーの関連切れてるからユーザー認証しなおしてね」が発生した際に送りなおすことに特化している。 * 再送元のパケットは一度サーバーに届いて正式に拒否られているので、パケットユニークIDを別にしてから再度送りなおすことで受理を期待する */ //---------------------------------------------------------------------------- static public uint SendPacketAPIRetry(SERVER_API eAPIType, string strAPIData, uint unPacketUniqueID) { #if true //------------------------- // 再送時にパケットにユニークIDを変えない方がサーバー側が対応しやすいらしい。 // そのまま前に送ったものをもう一度送る形で対応する //------------------------- Debug.LogError("Packet Retry - " + eAPIType); #else //------------------------- // 再送時にはヘッダのパケットユニークIDだけを更新してから送る //------------------------- PacketStructHeaderSend cSendHeader = ServerDataUtilSend.CreateStructHeader(); switch (eAPIType) { //------------------------- // APIタイプ:ユーザー管理:ユーザー新規生成 //------------------------- case SERVER_API.SERVER_API_USER_CREATE: { SendCreateUser cSendPacket = JsonMapper.ToObject <SendCreateUser>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユーザー管理:ユーザー承認 //------------------------- case SERVER_API.SERVER_API_USER_AUTHENTICATION: { SendUserAuthentication cSendPacket = JsonMapper.ToObject <SendUserAuthentication>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユーザー管理:ユーザー名称変更 //------------------------- case SERVER_API.SERVER_API_USER_RENAME: { SendRenameUser cSendPacket = JsonMapper.ToObject <SendRenameUser>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユーザー管理:ユーザー初期設定 //------------------------- case SERVER_API.SERVER_API_USER_SELECT_DEF_PARTY: { SendSelectDefParty cSendPacket = JsonMapper.ToObject <SendSelectDefParty>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユーザー管理:ユーザー再構築 //------------------------- case SERVER_API.SERVER_API_USER_RENEW: { SendRenewUser cSendPacket = JsonMapper.ToObject <SendRenewUser>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:マスターデータ操作:マスターデータ実体取得(全種) //------------------------- case SERVER_API.SERVER_API_MASTER_DATA_GET_ALL: { SendGetMasterDataAll cSendPacket = JsonMapper.ToObject <SendGetMasterDataAll>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ログイン情報:ログインパック情報取得 //------------------------- case SERVER_API.SERVER_API_GET_LOGIN_PACK: { SendLoginPack cSendPacket = JsonMapper.ToObject <SendLoginPack>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ログイン情報:ログイン情報取得 //------------------------- case SERVER_API.SERVER_API_GET_LOGIN_PARAM: { SendLoginParam cSendPacket = JsonMapper.ToObject <SendLoginParam>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:フレンド操作:フレンド一覧取得 //------------------------- case SERVER_API.SERVER_API_FRIEND_LIST_GET: { SendFriendListGet cSendPacket = JsonMapper.ToObject <SendFriendListGet>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:フレンド操作:フレンド申請 //------------------------- case SERVER_API.SERVER_API_FRIEND_REQUEST: { SendFriendRequest cSendPacket = JsonMapper.ToObject <SendFriendRequest>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:フレンド操作:フレンド申請承認 //------------------------- case SERVER_API.SERVER_API_FRIEND_CONSENT: { SendFriendConsent cSendPacket = JsonMapper.ToObject <SendFriendConsent>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:フレンド操作:フレンド解除 //------------------------- case SERVER_API.SERVER_API_FRIEND_REFUSAL: { SendFriendRefusal cSendPacket = JsonMapper.ToObject <SendFriendRefusal>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:フレンド操作:フレンドユーザー検索 //------------------------- case SERVER_API.SERVER_API_FRIEND_SEARCH: { SendFriendSearch cSendPacket = JsonMapper.ToObject <SendFriendSearch>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユニット操作:ユニットパーティ編成設定 //------------------------- case SERVER_API.SERVER_API_UNIT_PARTY_ASSIGN: { SendUnitPartyAssign cSendPacket = JsonMapper.ToObject <SendUnitPartyAssign>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユニット操作:ユニット売却 //------------------------- case SERVER_API.SERVER_API_UNIT_SALE: { SendUnitSale cSendPacket = JsonMapper.ToObject <SendUnitSale>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユニット操作:ユニット強化合成 //------------------------- case SERVER_API.SERVER_API_UNIT_BLEND_BUILDUP: { SendUnitBlendBuildUp cSendPacket = JsonMapper.ToObject <SendUnitBlendBuildUp>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユニット操作:ユニット進化合成 //------------------------- case SERVER_API.SERVER_API_UNIT_BLEND_EVOL: { SendUnitBlendEvol cSendPacket = JsonMapper.ToObject <SendUnitBlendEvol>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:助っ人一覧取得 //------------------------- case SERVER_API.SERVER_API_QUEST_HELPER_GET: { SendQuestHelperGet cSendPacket = JsonMapper.ToObject <SendQuestHelperGet>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:助っ人一覧取得(進化合成用) //------------------------- case SERVER_API.SERVER_API_QUEST_HELPER_GET_EVOL: { SendQuestHelperGetEvol cSendPacket = JsonMapper.ToObject <SendQuestHelperGetEvol>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:助っ人一覧取得(強化合成用) //------------------------- case SERVER_API.SERVER_API_QUEST_HELPER_GET_BUILD: { SendQuestHelperGetBuild cSendPacket = JsonMapper.ToObject <SendQuestHelperGetBuild>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:クエスト開始 //------------------------- case SERVER_API.SERVER_API_QUEST_START: { SendQuestStart cSendPacket = JsonMapper.ToObject <SendQuestStart>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:クエストクリア //------------------------- case SERVER_API.SERVER_API_QUEST_CLEAR: { SendQuestClear cSendPacket = JsonMapper.ToObject <SendQuestClear>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- //------------------------- // APIタイプ:クエスト操作:クエストリタイア //------------------------- //------------------------- case SERVER_API.SERVER_API_QUEST_RETIRE: { SendQuestRetire cSendPacket = JsonMapper.ToObject <SendQuestRetire>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:クエスト受託情報取得 //------------------------- case SERVER_API.SERVER_API_QUEST_ORDER_GET: { SendQuestOrderGet cSendPacket = JsonMapper.ToObject <SendQuestOrderGet>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:インゲーム中:コンティニュー //------------------------- case SERVER_API.SERVER_API_QUEST_CONTINUE: { SendQuestContinue cSendPacket = JsonMapper.ToObject <SendQuestContinue>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:インゲーム中:リセット //------------------------- case SERVER_API.SERVER_API_QUEST_RESET: { SendQuestReset cSendPacket = JsonMapper.ToObject <SendQuestReset>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:進化クエスト開始 //------------------------- case SERVER_API.SERVER_API_EVOL_QUEST_START: { SendEvolQuestStart cSendPacket = JsonMapper.ToObject <SendEvolQuestStart>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:クエスト操作:進化クエストクリア //------------------------- case SERVER_API.SERVER_API_EVOL_QUEST_CLEAR: { SendEvolQuestClear cSendPacket = JsonMapper.ToObject <SendEvolQuestClear>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:不正検出関連:不正検出送信 //------------------------- case SERVER_API.SERVER_API_INJUSTICE: { SendInjustice cSendPacket = JsonMapper.ToObject <SendInjustice>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- //------------------------- //------------------------- // APIタイプ:チュートリアル関連:進行集計 //------------------------- case SERVER_API.SERVER_API_TUTORIAL: { SendTutorialStep cSendPacket = JsonMapper.ToObject <SendTutorialStep>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:魔法石使用:ユニット枠増設 //------------------------- case SERVER_API.SERVER_API_STONE_USE_UNIT: { SendStoneUsedUnit cSendPacket = JsonMapper.ToObject <SendStoneUsedUnit>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:魔法石使用:フレンド枠増設 //------------------------- case SERVER_API.SERVER_API_STONE_USE_FRIEND: { SendStoneUsedFriend cSendPacket = JsonMapper.ToObject <SendStoneUsedFriend>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:魔法石使用:スタミナ回復 //------------------------- case SERVER_API.SERVER_API_STONE_USE_STAMINA: { SendStoneUsedStamina cSendPacket = JsonMapper.ToObject <SendStoneUsedStamina>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ガチャ操作:ガチャ実行 //------------------------- case SERVER_API.SERVER_API_GACHA_PLAY: { SendGachaPlay cSendPacket = JsonMapper.ToObject <SendGachaPlay>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:課金操作:魔法石購入直前処理( iOS … AppStore ) //------------------------- case SERVER_API.SERVER_API_STONE_PAY_PREV_IOS: { SendStorePayPrev_ios cSendPacket = JsonMapper.ToObject <SendStorePayPrev_ios>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:課金操作:魔法石購入直前処理( Android … GooglePlay ) //------------------------- case SERVER_API.SERVER_API_STONE_PAY_PREV_ANDROID: { SendStorePayPrev_android cSendPacket = JsonMapper.ToObject <SendStorePayPrev_android>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:課金操作:魔法石購入反映処理( iOS … AppStore ) //------------------------- case SERVER_API.SERVER_API_STONE_PAY_IOS: { SendStorePay_ios cSendPacket = JsonMapper.ToObject <SendStorePay_ios>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:課金操作:魔法石購入反映処理( Android … GooglePlay ) //------------------------- case SERVER_API.SERVER_API_STONE_PAY_ANDROID: { SendStorePay_android cSendPacket = JsonMapper.ToObject <SendStorePay_android>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:ユーザーレビュー関連:レビュー遷移報酬 //------------------------- case SERVER_API.SERVER_API_REVIEW_PRESENT: { SendReviewPresent cSendPacket = JsonMapper.ToObject <SendReviewPresent>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:プレゼント関連:プレゼント一覧取得 //------------------------- case SERVER_API.SERVER_API_PRESENT_LIST_GET: { SendPresentListGet cSendPacket = JsonMapper.ToObject <SendPresentListGet>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:プレゼント関連:プレゼント開封 //------------------------- case SERVER_API.SERVER_API_PRESENT_OPEN: { SendPresentOpen cSendPacket = JsonMapper.ToObject <SendPresentOpen>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:デバッグ機能関連:ユーザーランクアップ //------------------------- #if BUILD_TYPE_DEBUG case SERVER_API.SERVER_API_DEBUG_RANKUP: { SendDebugUserRankUp cSendPacket = JsonMapper.ToObject <SendDebugUserRankUp>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; #endif //------------------------- // APIタイプ:デバッグ機能関連:ユニット取得 //------------------------- #if BUILD_TYPE_DEBUG case SERVER_API.SERVER_API_DEBUG_UNIT_GET: { SendDebugUnitGet cSendPacket = JsonMapper.ToObject <SendDebugUnitGet>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; //------------------------- // APIタイプ:デバッグ機能関連:クエストクリア情報改変 //------------------------- #endif #if BUILD_TYPE_DEBUG case SERVER_API.SERVER_API_DEBUG_QUEST_CLEAR: { SendDebugQuestClear cSendPacket = JsonMapper.ToObject <SendDebugQuestClear>(strAPIData); cSendPacket.header = cSendHeader; strAPIData = JsonMapper.ToJson(cSendPacket); } break; #endif //------------------------- // //------------------------- } #endif //-------------------------------- // API送信リクエスト発行 //-------------------------------- return(ServerDataManager.Instance.AddCommunicateRequest( eAPIType , strAPIData , unPacketUniqueID )); }
//一括受取ボタン 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(); }
public void Activate(int pageNo = 1, Action finishAction = null) { #if BUILD_TYPE_DEBUG Debug.Log("Call MissionGroup#Activate:" + missionGroupType + ":" + pageNo); #endif if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED) { mission.filterButton.SetActive(false); mission.receivedItemDisplayLimtText.gameObject.SetActive(true); mission.receivedItemDisplayLimtText.text = GameTextUtil.GetText("RECEIVED_ITEM_DISPLAY_LIMIT"); } else { mission.filterButton.SetActive(true); mission.receivedItemDisplayLimtText.gameObject.SetActive(false); } Pager.onClickLeftArrow = () => { Prev(); }; Pager.onClickRightArrow = () => { Next(); }; //--------------------------------------- // 一括受け取りボタンの表示設定 //--------------------------------------- if (CheckViewRecevieAllButtonType(missionGroupType) == false) { SetEnableRecevieAllButton(MasterDataDefineLabel.BoolType.NONE); } else { SetEnableRecevieAllButton((m_isReword) ? MasterDataDefineLabel.BoolType.ENABLE : MasterDataDefineLabel.BoolType.DISABLE); } uint p = (uint)missionGroupType; if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED) { p = (uint)ACHIEVEMENT_CATEGORY_TYPE.NORMAL; } uint filterType = (uint)MasterDataDefineLabel.AchievementFilterType.ALL; if (mission.m_FilterInfo != null) { filterType = (uint)mission.m_FilterInfo.m_filter_type; } StartCoroutine(WaitSentStart(() => { ServerDataUtilSend.SendPacketAPI_GetMasterDataAchievement(p, (uint)pageNo, 0, 0, filterType). setSuccessAction(_data => { #if BUILD_TYPE_DEBUG Debug.Log("FINISH"); #endif mission.CurrentMissionGroup = this; RecvMasterDataAchievementValue response = (RecvMasterDataAchievementValue)_data.GetResult <RecvMasterDataAchievement>().result; if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED) { Collection = response.clear_array_achievement.ToList(); } else { Collection = response.master_array_achievement.ToList(); } UpdateGetReword(); //タブについているバッジの更新 mission.SetBadgeNum(response.achievement_category_clear_num.clear_num_1, response.achievement_category_clear_num.clear_num_2, response.achievement_category_clear_num.clear_num_3); if (Collection.Count == 0) { emptyMessage.enabled = true; Pager.Refresh(0, 0); return; } //Pagerの更新 if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED) { Pager.Refresh(pageNo, REWARDED_COUNT_MAX); } else { Pager.Refresh(pageNo, response.achievement_all_num); } }). setErrorAction(_data => { Debug.LogError("ERROR:" + _data.m_PacketCode); SetEnaleReceiveButtonAll(true); }). SendStart(); })); }