//---------------------------------------------------------------------------- /*! * @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; } }