public void OnSelectFriend(FriendDataItem _unit) { if (!m_FixFriendUnit || m_FixFriendLinkUnit) { int _index = UserDataAdmin.Instance.SearchHelperIndex(_unit.FriendData.user_id); if (_index == -1) { return; } } SoundUtil.PlaySE(SEID.SE_MENU_OK2); m_SelectFriend = _unit.FriendData; Dialog dlg = Dialog.Create(DialogType.DialogUnit); dlg.setUnitInfo(m_SelectFriend); dlg.SetDialogText(DialogTextType.Title, m_SelectFriend.user_name); dlg.SetDialogText(DialogTextType.SubTitle, string.Format(GameTextUtil.GetText("questfriend_text1"), m_SelectFriend.user_rank.ToString())); dlg.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button7"); dlg.SetDialogEvent(DialogButtonEventType.YES, () => { startQuest(); }); dlg.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button1"); dlg.Show(); }
private void startQuest() { if (m_SelectFriend == null) { return; } #if BUILD_TYPE_DEBUG Debug.Log("startQuest"); #endif //ヘルパー設定 PacketStructFriend helper = new PacketStructFriend(); helper.user_id = m_SelectFriend.user_id; helper.user_name = m_SelectFriend.user_name; helper.user_rank = m_SelectFriend.user_rank; helper.friend_state = m_SelectFriend.friend_state; helper.last_play = m_SelectFriend.last_play; helper.unit = new PacketStructUnit(); helper.unit.Copy(m_SelectFriend.unit); helper.unit_link.Copy(m_SelectFriend.unit_link); #if BUILD_TYPE_DEBUG //フレンドユニット置き換え処理 if (ForceFriendUnitParam.Enable && !m_FixFriendUnit && !m_FixFriendLinkUnit) { bool replace = false; if (ForceFriendUnitParam.BaseUnit != null) { helper.unit.Copy(ForceFriendUnitParam.BaseUnit); replace = true; } if (ForceFriendUnitParam.LinkUnit != null) { helper.unit_link.Copy(ForceFriendUnitParam.LinkUnit); if (ForceFriendUnitParam.BaseUnit == null) { helper.unit.link_info = (int)CHARALINK_TYPE.CHARALINK_TYPE_BASE; helper.unit.link_point = ForceFriendUnitParam.LinkUnit.link_point; } replace = true; } if (replace) { helper.user_name = "user"; helper.friend_state = (int)FRIEND_STATE.FRIEND_STATE_SUCCESS; } } #endif MainMenuParam.m_QuestHelper = helper; //クエスト開始 MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_QUEST_SELECT_PARTY, false, false); }
//---------------------------------------------------------------------------- /*! * @brief パラメータ操作:ユニット詳細用データ設定:フレンド情報からの構築版 * @note フレンド情報の場合。ベースユニットと小ユニットが明確に判別されて送られるので、別処理で用意 */ //---------------------------------------------------------------------------- static public void SetCharaDetailParam(PacketStructFriend cFriend) { m_CharaDetailCharaID = cFriend.unit.id; //!< キャラ詳細:選択キャラID m_CharaDetailCharaLevel = cFriend.unit.level; //!< キャラ詳細:選択キャラレベル m_CharaDetailCharaExp = cFriend.unit.exp; //!< キャラ詳細:選択キャラ経験値 m_CharaDetailCharaAddPow = cFriend.unit.add_pow; //!< キャラ詳細:選択キャラパラメータ補正値:攻撃力 m_CharaDetailCharaAddHP = cFriend.unit.add_hp; //!< キャラ詳細:選択キャラパラメータ補正値:体力 m_CharaDetailCharaLBSkillLV = cFriend.unit.limitbreak_lv; //!< キャラ詳細:選択キャラリミットブレイクスキルレベル m_CharaDetailCharaLOverLV = cFriend.unit.limitover_lv; //!< キャラ詳細:選択キャラ限界突破レベル // リンクポイントはベースユニットの情報を用いる m_CharaDetailCharaLinkPoint = cFriend.unit.link_point; //!< キャラ詳細:選択キャラ:リンク:ポイント(リンクスキル発動率に影響) m_CharaDetailCharaLinkTYPE = cFriend.unit_link.link_info; //!< キャラ詳細:選択キャラ:リンク:親か子か m_CharaDetailCharaLinkID = cFriend.unit_link.id; //!< キャラ詳細:選択キャラ:リンク:キャラID m_CharaDetailCharaLinkLv = cFriend.unit_link.level; //!< キャラ詳細:選択キャラ:リンク:キャラレベル m_CharaDetailCharaLinkAddPow = cFriend.unit_link.add_pow; //!< キャラ詳細:選択キャラ:リンク:パラメータ補正値:攻撃力 m_CharaDetailCharaLinkAddHP = cFriend.unit_link.add_hp; //!< キャラ詳細:選択キャラ:リンク:パラメータ補正値:体力 m_CharaDetailCharaLinkLimitOver = cFriend.unit_link.limitover_lv; //!< キャラ詳細:選択キャラ:リンク:限界突破 }
private void requestSuccess(PacketStructFriend friend) { Dialog _newDialog = Dialog.Create(DialogType.DialogFriend).SetStrongYes(); _newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "fr163q_title"); _newDialog.SetFriendInfo(friend); _newDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4"); _newDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5"); _newDialog.SetDialogObjectEnabled(DialogObjectType.UnderText, true); _newDialog.SetDialogTextFromTextkey(DialogTextType.UnderText, "fr163q_content"); _newDialog.SetDialogEvent(DialogButtonEventType.YES, () => { sendFriendRequest(); }); _newDialog.SetDialogEvent(DialogButtonEventType.NO, () => { resetSearchUserId(); }); _newDialog.EnableFadePanel(); _newDialog.Show(); }
/// <summary> /// ソートパラメータ設定(フレンド) /// </summary> /// <param name="_friend"></param> public void setSortParamFriend( PacketStructFriend _friend, CharaOnce _baseChara, MasterDataParamChara _master ) { PacketStructUnit _sub = null; if (_friend.unit.link_info == (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE) { _sub = _friend.unit_link; } int _cost = _master.party_cost; if (_sub != null) { _cost += CharaLinkUtil.GetLinkUnitCost(_sub.id); } UnitParam = new UnitGridParam(); UnitParam.draw_id = (int)_master.draw_id; UnitParam.level = (int)_friend.unit.level; UnitParam.hp = _baseChara.m_CharaHP; UnitParam.pow = _baseChara.m_CharaPow; UnitParam.plus = _baseChara.m_CharaPlusHP + _baseChara.m_CharaPlusPow; UnitParam.cost = _cost; UnitParam.rare = (int)_master.rare; UnitParam.element_int = SortUtil.GetSortNumElement(_master.element); UnitParam.kind_int = SortUtil.GetSortNumKind(_master.kind); UnitParam.sub_kind_int = SortUtil.GetSortNumKind(_master.sub_kind); UnitParam.limitover_lv = (int)_friend.unit.limitover_lv; UnitParam.charm = _baseChara.m_CharaCharm; UnitParam.rank = (int)_friend.user_rank; UnitParam.login_time = SortUtil.GetSortNumLoginTime(_friend.last_play); UnitParam.favorite = MainMenuUtil.ChkFavoridFriend(_friend.user_id); UnitParam.friend_state = (int)_friend.friend_state; }
//---------------------------------------------------------------------------- /*! * @brief 基底継承:MainMenuSeq:ページ切り替えにより有効化された際に呼ばれる関数 * @note ページのレイアウト再構築を兼ねる */ //---------------------------------------------------------------------------- protected override void PageSwitchSetting(bool initalize) { base.PageSwitchSetting(initalize); //---------------------------------------- // ゲリラボス情報を取得 //---------------------------------------- m_GuerrillaBoss = MasterDataUtil.GetGuerrillaBossParamFromQuestID(MainMenuParam.m_QuestSelectMissionID); //---------------------------------------- // ゲーム本編に引き渡す情報を色々設定 //---------------------------------------- { //---------------------------------------- // 選択されている助っ人を取得 //---------------------------------------- PacketStructFriend cHelper = MainMenuParam.m_QuestHelper; if (cHelper == null) { Debug.LogError("SelectFriendNone"); } //---------------------------------------- // //---------------------------------------- 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 }; // @add Developer 2015/09/07 ver300 PacketStructUnit cLinkUnitStruct = null; UserDataUnitParam[] acUnitParam = new UserDataUnitParam[acUnitStruct.Length]; for (int i = 0; i < acUnitStruct.Length; i++) { if (acUnitStruct[i] == null) { continue; } acUnitParam[i] = new UserDataUnitParam(); 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; // @add Developer 2015/09/07 ver300 // リンクユニットを取得 if (i != acUnitStruct.Length - 1) { cLinkUnitStruct = CharaLinkUtil.GetLinkUnit(acUnitStruct[i].link_unique_id); } else { cLinkUnitStruct = cHelper.unit_link; } // リンクユニットのパラメータ設定 if (cLinkUnitStruct == null) { continue; } acUnitParam[i].m_UnitParamLinkID = cLinkUnitStruct.id; acUnitParam[i].m_UnitParamLinkLv = (int)cLinkUnitStruct.level; acUnitParam[i].m_UnitParamLinkPlusPow = (int)cLinkUnitStruct.add_pow; acUnitParam[i].m_UnitParamLinkPlusHP = (int)cLinkUnitStruct.add_hp; acUnitParam[i].m_UnitParamLinkPoint = (int)acUnitStruct[i].link_point; acUnitParam[i].m_UnitParamLinkLimitOverLV = (int)cLinkUnitStruct.limitover_lv; } //---------------------------------------- // 固定パーティ情報でパーティ情報を上書き //---------------------------------------- FixPartyAssign(ref acUnitParam, MainMenuParam.m_QuestSelectMissionID); { SceneGoesParamToQuest2 cSceneGoesParamToQuest2 = new SceneGoesParamToQuest2(); cSceneGoesParamToQuest2.m_QuestAreaID = MainMenuParam.m_QuestSelectAreaID; cSceneGoesParamToQuest2.m_QuestAreaAmendCoin = MainMenuParam.m_QuestSelectAreaAmendCoin; // ※パーセント表記 cSceneGoesParamToQuest2.m_QuestAreaAmendDrop = MainMenuParam.m_QuestSelectAreaAmendDrop; // ※パーセント表記 cSceneGoesParamToQuest2.m_QuestAreaAmendExp = MainMenuParam.m_QuestSelectAreaAmendEXP; // ※パーセント表記 cSceneGoesParamToQuest2.m_QuestMissionID = MainMenuParam.m_QuestSelectMissionID; cSceneGoesParamToQuest2.m_QuestRandSeed = RandManager.GetRand(); cSceneGoesParamToQuest2.m_IsUsedAutoPlay = false; cSceneGoesParamToQuest2.m_QuestGuerrillaBoss = m_GuerrillaBoss; cSceneGoesParamToQuest2.m_PartyFriend = cHelper; cSceneGoesParamToQuest2.m_PartyChara0Param = acUnitParam[0]; cSceneGoesParamToQuest2.m_PartyChara1Param = acUnitParam[1]; cSceneGoesParamToQuest2.m_PartyChara2Param = acUnitParam[2]; cSceneGoesParamToQuest2.m_PartyChara3Param = acUnitParam[3]; cSceneGoesParamToQuest2.m_PartyChara4Param = acUnitParam[4]; cSceneGoesParamToQuest2.m_NextAreaCleard = MainMenuUtil.ChkActiveNextArea(MainMenuParam.m_QuestSelectAreaID); SceneGoesParam.Instance.m_SceneGoesParamToQuest2 = cSceneGoesParamToQuest2; //---------------------------------------- // ゲーム開始情報をローカル保存。 // // 通信前に保存しているため、通信中にアプリを終了させるとサーバー側の諸々消費を飛ばして次回起動時に開始情報が残ってしまう。 // そのままクエストに入られるとサーバー上でコスト消費が行われずにクエストに移行する可能性があるがので、 // タイトル画面で「サーバーにクエスト開始が届いているか」をチェックするAPIを投げて届いている場合のみ適用することで対応する。 //---------------------------------------- if (LocalSaveManager.Instance != null) { LocalSaveManager.Instance.SaveFuncGoesToMenuResult(null); LocalSaveManager.Instance.SaveFuncGoesToMenuRetire(null); LocalSaveManager.Instance.SaveFuncGoesToQuest2Restore(null); LocalSaveManager.Instance.SaveFuncGoesToQuest2Start(cSceneGoesParamToQuest2); LocalSaveManager.Instance.SaveFuncInGameContinue(null); LocalSaveManager.Instance.SaveFuncInGameReset(null); } } } //---------------------------------------- // 通信発行 //---------------------------------------- ServerCommunicate(); }
//---------------------------------------------------------------------------- /*! * @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; } }
static public bool[] m_AmendFlagCheckResult = null; //!< エリア補間フラグチェックリザルト /*==========================================================================*/ /* func */ /*==========================================================================*/ //---------------------------------------------------------------------------- /*! * @brief パラメータ操作:完全リセット */ //---------------------------------------------------------------------------- static public void ParamReset() { m_QuestSelectAreaCateID = 0; m_QuestSelectAreaID = 0; m_QuestSelectMissionID = 0; m_QuestHelper = null; m_QuestEventFP = 0; m_BuildupBaseUnitUniqueId = 0; //!< 強化ベースユニットユニークID m_BlendBuildUpUnitPrev = null; // 強化合成発行関連:強化前パラメータ m_BlendBuildUpUnitAfter = null; // 強化合成発行関連:強化後パラメータ m_BlendBuildUpParts = new TemplateList <PacketStructUnit>(); // 強化合成発行関連:パーツ m_BlendBuildEventSLV = 0; m_EvolveBaseUnitUniqueId = 0; m_EvolveBaseAfter = null; m_EvolveBaseBefore = null; m_EvolveParts = new TemplateList <PacketStructUnit>(); m_LinkBaseUnitUniqueId = 0; m_LinkTargetUnitUniqueId = 0; m_LinkBaseBefore = null; // リンク発行関連:ベースユニット:リンク前パラメータ m_LinkBaseAfter = null; // リンク発行関連:ベースユニット:リンク後パラメータ m_LinkParts = new TemplateList <PacketStructUnit>(); // リンク発行関連:素材ユニット m_LinkUnit = null; // リンク発行関連:リンクユニット // ユニット詳細用データクリア ClearCharaDetailParam(); // ユニット詳細用データ(リンク用データ)クリア ClearCharaDetailLinkParam(); m_PageBack = new Stack <MAINMENU_SEQ>(); m_PageBack.Clear(); m_ResultParamActive = 0; m_ResultTicket = 0; m_ResultExp = 0; m_ResultMoney = 0; m_ResultFriendPt = 0; m_ResultUnit = null; m_ResultQuestID = 0; m_ResultAreaID = 0; m_ResultFloorBonus = null; m_ResultRewardLimit = null; m_ResultScores = null; m_LoginActive = false; // ログイン情報:ログイン情報有効 m_LoginTotal = 0; // ログイン情報:総合ログイン日数 m_LoginChain = 0; // ログイン情報:連続ログイン日数 m_LoginBonus = null; // ログイン情報:ログインボーナス m_LoginFriendPointNow = 0; // ログイン情報:フレンド:フレンドポイント:現在値 m_LoginFriendPointGet = 0; // ログイン情報:フレンド:フレンドポイント:今回取得分 m_LoginFriendHelpCt = 0; // ログイン情報:フレンド:助っ人として助けた人数 m_BeginnerBoost = null; m_QuestStamina = 0; m_BoxGachaStock = null; //!< BOXガチャのストック情報 m_BoxGachaStockID = 0; //!< m_BoxGachaStockのガチャID m_PartyAssignPrevPage = 0; m_BannerLastIndexHome = 0; m_BannerLastIndexQuest = 0; m_PartySelectShowedLinkUnit = false; m_ChallengeQuestLevel = 0; m_bChallengeQuestSkip = false; m_challengeQuestMissionID = 0; m_IsEnableQuestFriendReload = true; m_AmendFlagCheckTime = new int[4]; m_AmendFlagCheckResult = new bool[4]; for (int i = 0; i < 4; i++) { m_AmendFlagCheckTime[i] = -1; m_AmendFlagCheckResult[i] = false; } }
//---------------------------------------------------------------------------- /*! @brief フレンドリストの生成処理 */ //---------------------------------------------------------------------------- private void CreateFriendList(ref List<FriendDataSetting> friend_list, uint requirement_id) { if (friend_list == null) { return; } m_FixFriendUnit = false; m_FixFriendLinkUnit = false; //-------------------------------- // フレンド固定の指定があれば処理 //-------------------------------- PacketStructUnit unit = null; PacketStructUnit linkUnit = null; MasterDataQuestRequirement quest_requirement = null; uint unLinkPoint = 0; //bool bLinkUnitOnlyFix = false; if (requirement_id != 0) quest_requirement = MasterDataUtil.GetMasterDataQuestRequirementFromID(requirement_id); if (quest_requirement != null) { // リンクポイントを取得 unLinkPoint = (uint)quest_requirement.fix_unit_04_link_point; // ベースユニット強制置き換え if (quest_requirement.fix_unit_04_enable == MasterDataDefineLabel.BoolType.ENABLE) { if (quest_requirement.fix_unit_04_id != 0) { unit = MainMenuUtil.CreateDummyFriendUnit(quest_requirement.fix_unit_04_id, (uint)quest_requirement.fix_unit_04_lv, (uint)quest_requirement.fix_unit_04_plus_atk, (uint)quest_requirement.fix_unit_04_plus_hp, 0, (uint)quest_requirement.fix_unit_04_lv_lbs, (uint)quest_requirement.fix_unit_04_lv_lo, unLinkPoint); m_FixFriendUnit = true; } } // リンクユニット強制置き換え switch (quest_requirement.fix_unit_04_link_enable) { case MasterDataDefineLabel.BoolType.ENABLE: if (quest_requirement.fix_unit_04_link_id != 0) { linkUnit = MainMenuUtil.CreateDummyUnit(quest_requirement.fix_unit_04_link_id, (uint)quest_requirement.fix_unit_04_link_lv, 0, (uint)quest_requirement.fix_unit_04_link_lv_lo, (uint)quest_requirement.fix_unit_04_link_plus_atk, (uint)quest_requirement.fix_unit_04_link_plus_hp, 0, (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_LINK); } // 強制リンク外し else { linkUnit = MainMenuUtil.CreateDummyUnit(0, 0, 0, 0, 0, 0, 0); } // ベースユニットも固定の場合 if (unit != null) { if (linkUnit != null) { unit.link_info = (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE; unit.link_unique_id = 1; } else { unit.link_info = (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_NONE; unit.link_unique_id = 0; } } // リンクユニットのみ固定の場合 else { m_FixFriendLinkUnit = true; } break; // 強制リンク外し case MasterDataDefineLabel.BoolType.DISABLE: linkUnit = MainMenuUtil.CreateDummyUnit(0, 0, 0, 0, 0, 0, 0); // ベースユニットが固定の場合 if (unit != null) { unit.link_info = (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_NONE; unit.link_unique_id = 0; } // リンクユニットのみ固定の場合 else { m_FixFriendLinkUnit = true; } break; case MasterDataDefineLabel.BoolType.NONE: break; } } //-------------------------------- // 現在のフレンドリストを削除 //-------------------------------- m_SelectFriend = null; friend_list.Clear(); List<MasterDataParamChara> charaMasterList = MasterFinder<MasterDataParamChara>.Instance.FindAll(); //-------------------------------- // 新しいフレンドリストの作成 //-------------------------------- if (unit == null) { //-------------------------------- // 固定フレンドの指定がない //-------------------------------- // 助っ人の総数を取得 int nFriendListTotal = 0; if (UserDataAdmin.Instance.m_StructHelperList != null) { nFriendListTotal += UserDataAdmin.Instance.m_StructHelperList.Length; } if (UserDataAdmin.Instance.m_StructFriendList != null) { nFriendListTotal += UserDataAdmin.Instance.m_StructFriendList.Length; } // フレンド登録ユーザーリストの取得 TemplateList<uint> cFavoriteFriendList = LocalSaveManager.Instance.LoadFuncAddFavoriteFriend(); #region ==== 助っ人をフレンドリストに追加 ===== // 助っ人をフレンドリストに追加 // friend_list.Alloc( nFriendListTotal ); if (UserDataAdmin.Instance.m_StructHelperList != null) { for (int i = 0; i < UserDataAdmin.Instance.m_StructHelperList.Length; i++) { if (UserDataAdmin.Instance.m_StructHelperList[i] == null) { continue; } FriendDataSetting cFriendParam = new FriendDataSetting(); if (m_FixFriendLinkUnit == false) { cFriendParam.FriendData = UserDataAdmin.Instance.m_StructHelperList[i]; } // リンクユニットのみ固定の場合 else { // ヘルパーデータをコピー cFriendParam.FriendData = new PacketStructFriend(); cFriendParam.FriendData.user_id = UserDataAdmin.Instance.m_StructHelperList[i].user_id; cFriendParam.FriendData.user_name = UserDataAdmin.Instance.m_StructHelperList[i].user_name; cFriendParam.FriendData.user_rank = UserDataAdmin.Instance.m_StructHelperList[i].user_rank; cFriendParam.FriendData.last_play = UserDataAdmin.Instance.m_StructHelperList[i].last_play; cFriendParam.FriendData.friend_point = UserDataAdmin.Instance.m_StructHelperList[i].friend_point; cFriendParam.FriendData.friend_state = UserDataAdmin.Instance.m_StructHelperList[i].friend_state; cFriendParam.FriendData.friend_state_update = UserDataAdmin.Instance.m_StructHelperList[i].friend_state_update; unit = UserDataAdmin.Instance.m_StructHelperList[i].unit; // リンク固定がある場合 if (linkUnit != null) { cFriendParam.FriendData.unit = MainMenuUtil.CreateDummyFriendUnit(unit.id, unit.level, unit.add_pow, unit.add_hp, 0, unit.limitbreak_lv, unit.limitover_lv, unLinkPoint, (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE); cFriendParam.FriendData.unit_link = linkUnit; } else { cFriendParam.FriendData.unit = MainMenuUtil.CreateDummyFriendUnit(unit.id, unit.level, unit.add_pow, unit.add_hp, 0, unit.limitbreak_lv, unit.limitover_lv, unLinkPoint, (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_NONE); } } cFriendParam.MasterData = charaMasterList.Find((v) => v.fix_id == cFriendParam.FriendData.unit.id); friend_list.Add(cFriendParam); } } #endregion #region ==== フレンド登録をしたフレンドを追加 ===== // フレンド登録をしたフレンドを追加 if (UserDataAdmin.Instance.m_StructFriendList != null) { for (int i = 0; i < UserDataAdmin.Instance.m_StructFriendList.Length; i++) { if (UserDataAdmin.Instance.m_StructFriendList[i] == null) { continue; } FriendDataSetting cFriendParam = new FriendDataSetting(); if (m_FixFriendLinkUnit == false) { cFriendParam.FriendData = UserDataAdmin.Instance.m_StructFriendList[i]; } // リンクユニット固定の場合 else { // フレンドデータをコピー cFriendParam.FriendData = new PacketStructFriend(); cFriendParam.FriendData.user_id = UserDataAdmin.Instance.m_StructFriendList[i].user_id; cFriendParam.FriendData.user_name = UserDataAdmin.Instance.m_StructFriendList[i].user_name; cFriendParam.FriendData.user_rank = UserDataAdmin.Instance.m_StructFriendList[i].user_rank; cFriendParam.FriendData.last_play = UserDataAdmin.Instance.m_StructFriendList[i].last_play; cFriendParam.FriendData.friend_point = UserDataAdmin.Instance.m_StructFriendList[i].friend_point; cFriendParam.FriendData.friend_state = UserDataAdmin.Instance.m_StructFriendList[i].friend_state; cFriendParam.FriendData.friend_state_update = UserDataAdmin.Instance.m_StructFriendList[i].friend_state_update; unit = UserDataAdmin.Instance.m_StructFriendList[i].unit; if (linkUnit != null) { cFriendParam.FriendData.unit = MainMenuUtil.CreateDummyFriendUnit(unit.id, unit.level, unit.add_pow, unit.add_hp, 0, unit.limitbreak_lv, unLinkPoint, (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_BASE); cFriendParam.FriendData.unit_link = linkUnit; } else { cFriendParam.FriendData.unit = MainMenuUtil.CreateDummyFriendUnit(unit.id, unit.level, unit.add_pow, unit.add_hp, 0, unit.limitbreak_lv, unLinkPoint, (uint)ServerDataDefine.CHARALINK_TYPE.CHARALINK_TYPE_NONE); } } cFriendParam.MasterData = charaMasterList.Find((v) => v.fix_id == cFriendParam.FriendData.unit.id); if (cFavoriteFriendList != null) { cFriendParam.IsActiveLock = cFavoriteFriendList.ChkInside(TemplateListSort.ChkInsideUint, cFriendParam.FriendData.user_id); } else { cFriendParam.IsActiveLock = false; } friend_list.Add(cFriendParam); } } #endregion // フレンドのメンバーを条件で間引き friend_list = FriendListThinning(friend_list); } else { //-------------------------------- // 固定フレンドの指定があった //-------------------------------- MasterDataParamChara param_chara = charaMasterList.Find((v) => v.fix_id == unit.id); if (param_chara != null) { PacketStructFriend friend = new PacketStructFriend(); friend.unit = unit; friend.user_id = 0; friend.user_name = param_chara.name; friend.user_rank = 999; friend.last_play = unit.get_time; friend.friend_point = 0; friend.friend_state = (uint)FRIEND_STATE.FRIEND_STATE_SUCCESS; // リンク固定がある場合 if (linkUnit != null) { friend.unit_link = linkUnit; } FriendDataSetting param_friend = new FriendDataSetting(); param_friend.FriendData = friend; param_friend.MasterData = param_chara; friend_list.Add(param_friend); } } }
// 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; } }
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(); }