//---------------------------------------------------------------------------- /*! @brief コンストラクタ */ //---------------------------------------------------------------------------- public UserDataFriendParam(UserDataFriendParam cSrc) { m_FriendUserName = cSrc.m_FriendUserName; // フレンド情報:ユーザー名称 m_FriendUserID = cSrc.m_FriendUserID; // フレンド情報:ユーザーID m_FriendUserRank = cSrc.m_FriendUserRank; // フレンド情報:ランク m_FriendPoint = cSrc.m_FriendPoint; // フレンド情報:フレンドポイント m_FriendState = cSrc.m_FriendState; // フレンド情報:ステータス m_FriendUnit = cSrc.m_FriendUnit; // フレンド情報:ユニット情報 }
public UserDataUnitParam m_FriendUnit = null; //!< フレンド情報:ユニット情報 /*==========================================================================*/ /* func */ /*==========================================================================*/ //---------------------------------------------------------------------------- /*! @brief コンストラクタ */ //---------------------------------------------------------------------------- public UserDataFriendParam() { m_FriendUserName = ""; // フレンド情報:ユーザー名称 m_FriendUserID = 0; // フレンド情報:ユーザーID m_FriendUserRank = 0; // フレンド情報:ランク m_FriendPoint = 0; // フレンド情報:フレンドポイント m_FriendState = 0; // フレンド情報:ステータス m_FriendUnit = null; // フレンド情報:ユニット情報 }
public void SetParam(int index, UserDataUnitParam v) { switch (index) { case 0: m_PartyChara0Param = v; break; case 1: m_PartyChara1Param = v; break; case 2: m_PartyChara2Param = v; break; case 3: m_PartyChara3Param = v; break; case 4: m_PartyChara4Param = v; break; } }
//---------------------------------------------------------------------------- /*! * @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 FixUnitAssign(ref UserDataUnitParam unit, GlobalDefine.PartyCharaIndex party_index, MasterDataQuestRequirement requirement_param) { MasterDataDefineLabel.BoolType fix_enable = MasterDataDefineLabel.BoolType.NONE; uint fix_unit_id; int fix_unit_lv; int fix_unit_lv_lbs; int fix_unit_lv_lo; int fix_unit_add_hp; int fix_unit_add_atk; MasterDataDefineLabel.BoolType fix_link_enable = MasterDataDefineLabel.BoolType.NONE; uint fix_unit_link_id; int fix_unit_link_lv; int fix_unit_link_add_hp; int fix_unit_link_add_atk; int fix_unit_link_point; int fix_unit_link_lv_lo; switch (party_index) { default: case GlobalDefine.PartyCharaIndex.LEADER: // 情報格納:リーダー fix_enable = requirement_param.fix_unit_00_enable; fix_unit_id = requirement_param.fix_unit_00_id; fix_unit_lv = requirement_param.fix_unit_00_lv; fix_unit_lv_lbs = requirement_param.fix_unit_00_lv_lbs; fix_unit_lv_lo = requirement_param.fix_unit_00_lv_lo; fix_unit_add_hp = requirement_param.fix_unit_00_plus_hp; fix_unit_add_atk = requirement_param.fix_unit_00_plus_atk; fix_link_enable = requirement_param.fix_unit_00_link_enable; fix_unit_link_id = requirement_param.fix_unit_00_link_id; fix_unit_link_lv = requirement_param.fix_unit_00_link_lv; fix_unit_link_add_hp = requirement_param.fix_unit_00_link_plus_hp; fix_unit_link_add_atk = requirement_param.fix_unit_00_link_plus_atk; fix_unit_link_point = requirement_param.fix_unit_00_link_point; fix_unit_link_lv_lo = requirement_param.fix_unit_00_link_lv_lo; break; case GlobalDefine.PartyCharaIndex.MOB_1: // 情報格納:サブ1 fix_enable = requirement_param.fix_unit_01_enable; fix_unit_id = requirement_param.fix_unit_01_id; fix_unit_lv = requirement_param.fix_unit_01_lv; fix_unit_lv_lbs = requirement_param.fix_unit_01_lv_lbs; fix_unit_lv_lo = requirement_param.fix_unit_01_lv_lo; fix_unit_add_hp = requirement_param.fix_unit_01_plus_hp; fix_unit_add_atk = requirement_param.fix_unit_01_plus_atk; fix_link_enable = requirement_param.fix_unit_01_link_enable; fix_unit_link_id = requirement_param.fix_unit_01_link_id; fix_unit_link_lv = requirement_param.fix_unit_01_link_lv; fix_unit_link_add_hp = requirement_param.fix_unit_01_link_plus_hp; fix_unit_link_add_atk = requirement_param.fix_unit_01_link_plus_atk; fix_unit_link_point = requirement_param.fix_unit_01_link_point; fix_unit_link_lv_lo = requirement_param.fix_unit_01_link_lv_lo; break; case GlobalDefine.PartyCharaIndex.MOB_2: // 情報格納:サブ2 fix_enable = requirement_param.fix_unit_02_enable; fix_unit_id = requirement_param.fix_unit_02_id; fix_unit_lv = requirement_param.fix_unit_02_lv; fix_unit_lv_lbs = requirement_param.fix_unit_02_lv_lbs; fix_unit_lv_lo = requirement_param.fix_unit_02_lv_lo; fix_unit_add_hp = requirement_param.fix_unit_02_plus_hp; fix_unit_add_atk = requirement_param.fix_unit_02_plus_atk; fix_link_enable = requirement_param.fix_unit_02_link_enable; fix_unit_link_id = requirement_param.fix_unit_02_link_id; fix_unit_link_lv = requirement_param.fix_unit_02_link_lv; fix_unit_link_add_hp = requirement_param.fix_unit_02_link_plus_hp; fix_unit_link_add_atk = requirement_param.fix_unit_02_link_plus_atk; fix_unit_link_point = requirement_param.fix_unit_02_link_point; fix_unit_link_lv_lo = requirement_param.fix_unit_02_link_lv_lo; break; case GlobalDefine.PartyCharaIndex.MOB_3: // 情報格納:サブ3 fix_enable = requirement_param.fix_unit_03_enable; fix_unit_id = requirement_param.fix_unit_03_id; fix_unit_lv = requirement_param.fix_unit_03_lv; fix_unit_lv_lbs = requirement_param.fix_unit_03_lv_lbs; fix_unit_lv_lo = requirement_param.fix_unit_03_lv_lo; fix_unit_add_hp = requirement_param.fix_unit_03_plus_hp; fix_unit_add_atk = requirement_param.fix_unit_03_plus_atk; fix_link_enable = requirement_param.fix_unit_03_link_enable; fix_unit_link_id = requirement_param.fix_unit_03_link_id; fix_unit_link_lv = requirement_param.fix_unit_03_link_lv; fix_unit_link_add_hp = requirement_param.fix_unit_03_link_plus_hp; fix_unit_link_add_atk = requirement_param.fix_unit_03_link_plus_atk; fix_unit_link_point = requirement_param.fix_unit_03_link_point; fix_unit_link_lv_lo = requirement_param.fix_unit_03_link_lv_lo; break; case GlobalDefine.PartyCharaIndex.FRIEND: // 情報格納:フレンド fix_enable = requirement_param.fix_unit_04_enable; fix_unit_id = requirement_param.fix_unit_04_id; fix_unit_lv = requirement_param.fix_unit_04_lv; fix_unit_lv_lbs = requirement_param.fix_unit_04_lv_lbs; fix_unit_lv_lo = requirement_param.fix_unit_04_lv_lo; fix_unit_add_hp = requirement_param.fix_unit_04_plus_hp; fix_unit_add_atk = requirement_param.fix_unit_04_plus_atk; fix_link_enable = requirement_param.fix_unit_04_link_enable; fix_unit_link_id = requirement_param.fix_unit_04_link_id; fix_unit_link_lv = requirement_param.fix_unit_04_link_lv; fix_unit_link_add_hp = requirement_param.fix_unit_04_link_plus_hp; fix_unit_link_add_atk = requirement_param.fix_unit_04_link_plus_atk; fix_unit_link_point = requirement_param.fix_unit_04_link_point; fix_unit_link_lv_lo = requirement_param.fix_unit_04_link_lv_lo; break; } // ベースユニット強制置き換え switch (fix_enable) { case MasterDataDefineLabel.BoolType.ENABLE: { // 上書き if (unit == null) { // ベースユニットに設定がない場合 if (fix_unit_id == 0) { break; } unit = new UserDataUnitParam(); } // ベースユニットに設定がある場合 if (fix_unit_id != 0) { unit.m_UnitDataID = fix_unit_id; unit.m_UnitParamLevel = fix_unit_lv; unit.m_UnitParamLimitBreakLV = fix_unit_lv_lbs; unit.m_UnitParamLimitOverLV = fix_unit_lv_lo; unit.m_UnitParamPlusHP = fix_unit_add_hp; unit.m_UnitParamPlusPow = fix_unit_add_atk; unit.m_UnitParamLinkPoint = fix_unit_link_point; } else { // リーダー、フレンドは空にしない if (party_index != GlobalDefine.PartyCharaIndex.LEADER && party_index != GlobalDefine.PartyCharaIndex.FRIEND) { // 空にする unit = null; } } } break; case MasterDataDefineLabel.BoolType.DISABLE: { // リーダー、フレンドは空にしない if (party_index != GlobalDefine.PartyCharaIndex.LEADER && party_index != GlobalDefine.PartyCharaIndex.FRIEND) { // 空にする unit = null; } } break; case MasterDataDefineLabel.BoolType.NONE: // 維持 break; } // パーティにベースユニットが設定されていない場合 if (unit == null) { return; } // リンクユニット強制置き換え switch (fix_link_enable) { case MasterDataDefineLabel.BoolType.ENABLE: // リンクユニットに設定がある場合 if (fix_unit_link_id != 0) { unit.m_UnitParamLinkID = fix_unit_link_id; unit.m_UnitParamLinkLv = fix_unit_link_lv; unit.m_UnitParamLinkPlusPow = fix_unit_link_add_hp; unit.m_UnitParamLinkPlusHP = fix_unit_link_add_atk; unit.m_UnitParamLinkPoint = fix_unit_link_point; unit.m_UnitParamLinkLimitOverLV = fix_unit_link_lv_lo; } else { unit.m_UnitParamLinkID = 0; unit.m_UnitParamLinkLv = 0; unit.m_UnitParamLinkPlusPow = 0; unit.m_UnitParamLinkPlusHP = 0; unit.m_UnitParamLinkPoint = 0; unit.m_UnitParamLinkLimitOverLV = 0; } break; case MasterDataDefineLabel.BoolType.DISABLE: unit.m_UnitParamLinkID = 0; unit.m_UnitParamLinkLv = 0; unit.m_UnitParamLinkPlusPow = 0; unit.m_UnitParamLinkPlusHP = 0; unit.m_UnitParamLinkPoint = 0; unit.m_UnitParamLinkLimitOverLV = 0; break; case MasterDataDefineLabel.BoolType.NONE: 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(); }