//---------------------------------------------------------------------------- /*! * @brief 固定パーティ情報で上書き */ //---------------------------------------------------------------------------- private void FixPartyAssign(ref UserDataUnitParam[] acUnitParam, uint unMissonID) { MasterDataQuest2 quest_param = MasterDataUtil.GetQuest2ParamFromID(unMissonID); if (quest_param == null) { return; } MasterDataQuestRequirement requirement_param = MasterDataUtil.GetMasterDataQuestRequirementFromID(quest_param.quest_requirement_id); if (requirement_param == null) { return; } // 書き換え:リーダーユニット FixUnitAssign(ref acUnitParam[(int)GlobalDefine.PartyCharaIndex.LEADER], GlobalDefine.PartyCharaIndex.LEADER, requirement_param); FixUnitAssign(ref acUnitParam[(int)GlobalDefine.PartyCharaIndex.MOB_1], GlobalDefine.PartyCharaIndex.MOB_1, requirement_param); FixUnitAssign(ref acUnitParam[(int)GlobalDefine.PartyCharaIndex.MOB_2], GlobalDefine.PartyCharaIndex.MOB_2, requirement_param); FixUnitAssign(ref acUnitParam[(int)GlobalDefine.PartyCharaIndex.MOB_3], GlobalDefine.PartyCharaIndex.MOB_3, requirement_param); FixUnitAssign(ref acUnitParam[(int)GlobalDefine.PartyCharaIndex.FRIEND], GlobalDefine.PartyCharaIndex.FRIEND, requirement_param); }
private void OnSelectButton() { #if BUILD_TYPE_DEBUG Debug.Log("select quest id=" + MainMenuParam.m_QuestSelectMissionID.ToString()); #endif var requirement_id = m_MasterDataQuest2.quest_requirement_id; MasterDataQuestRequirement quest_requirement = null; if (requirement_id != 0) { quest_requirement = MasterDataUtil.GetMasterDataQuestRequirementFromID(requirement_id); } //-------------------------------- // ユニット所持数が上限超えてるならクエスト不可 //-------------------------------- if (UserDataAdmin.Instance.m_StructPlayer.total_unit < UserDataAdmin.Instance.m_StructPlayer.unit_list.Length) { openDialogUnitOver(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (quest_requirement != null && quest_requirement.limit_rank > UserDataAdmin.Instance.m_StructPlayer.rank) { //-------------------------------- // ランク制限でクエストに入れない場合 //-------------------------------- openDialogRankLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max < m_MasterDataQuest2.consume_value * MainMenuParam.m_QuestStaminaAmend) { //-------------------------------- // スタミナのMAX値が足りずクエストに入れない場合 //-------------------------------- openDialogStaminaLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max >= m_MasterDataQuest2.consume_value && MainMenuParam.m_QuestStamina > UserDataAdmin.Instance.m_StructPlayer.stamina_now) { //-------------------------------- // スタミナが足りない場合、スタミナ回復ダイアログを表示 //-------------------------------- PacketStructUseItem item = useRecoverItem(); if (item != null) { openDialogUseItem(item); } else { //-------------------------------- // チップによる回復ルート //-------------------------------- openDialogUseStone(); } SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestTicket != 0 && MainMenuParam.m_QuestTicket > UserDataAdmin.Instance.m_StructPlayer.have_ticket) { //-------------------------------- // チケット対価不足 //-------------------------------- openDialogTicketLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestKey != 0 && MainMenuParam.m_QuestKey > GetQuestKeyCntFromAreaCategory(m_MasterDataAreaCategory)) { //-------------------------------- // キークエストの場合、クエストキー数チェッククエストキー不足 //-------------------------------- openDialogKeyLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else { //-------------------------------- // 特にエラーなし。次のフローへ //-------------------------------- if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_QUEST_SELECT_FRIEND, false, false); SoundUtil.PlaySE(SEID.SE_MENU_OK); } } }
/// <summary> /// OKボタン選択 /// </summary> /// <param name="data"></param> private void OnSelectOk(ChallengeSelect.EventData data) { var requirement_id = data.questMaster.quest_requirement_id; MasterDataQuestRequirement quest_requirement = null; if (requirement_id != 0) { quest_requirement = MasterDataUtil.GetMasterDataQuestRequirementFromID(requirement_id); } //-------------------------------- // ユニット所持数が上限超えてるならクエスト不可 //-------------------------------- if (UserDataAdmin.Instance.m_StructPlayer.total_unit < UserDataAdmin.Instance.m_StructPlayer.unit_list.Length) { openDialogUnitOver(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (quest_requirement != null && quest_requirement.limit_rank > UserDataAdmin.Instance.m_StructPlayer.rank) { //-------------------------------- // ランク制限でクエストに入れない場合 //-------------------------------- openDialogRankLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max < MainMenuParam.m_QuestStamina) { //-------------------------------- // スタミナのMAX値が足りずクエストに入れない場合 //-------------------------------- openDialogStaminaLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestTicket != 0 && MainMenuParam.m_QuestTicket > UserDataAdmin.Instance.m_StructPlayer.have_ticket) { //-------------------------------- // チケット対価不足 //-------------------------------- openDialogTicketLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max >= data.questMaster.consume_value && MainMenuParam.m_QuestStamina > UserDataAdmin.Instance.m_StructPlayer.stamina_now) { //-------------------------------- // スタミナが足りない場合、スタミナ回復ダイアログを表示 //-------------------------------- PacketStructUseItem item = useRecoverItem(); if (item != null) { openDialogUseItem(item); } else { //-------------------------------- // チップによる回復ルート //-------------------------------- openDialogUseStone(); } SoundUtil.PlaySE(SEID.SE_MENU_RET); } else { //-------------------------------- // 特にエラーなし。次のフローへ //-------------------------------- //成長ボス選択パラメータ設定 MainMenuParam.SetChallengeSelectParam(data.questMaster.fix_id, data.bSkip, (data.bSkip ? data.SkipLevel : data.info.challenge_level)); //成長ボスではMainMenuQuestSelectを経由しないのでAreaCategoryIDをここで設定 MasterDataArea area = MasterDataUtil.GetAreaParamFromID(data.questMaster.area_id); MainMenuParam.m_QuestSelectAreaCateID = (area != null ? area.area_cate_id : 0); MainMenuParam.m_QuestAreaAmendList = m_AreaAmendParam.m_AreaMasterDataAmendList; MainMenuParam.m_QuestSelectAreaID = data.questMaster.area_id; MainMenuParam.m_QuestSelectMissionID = data.questMaster.fix_id; if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_QUEST_SELECT_FRIEND, false, false); SoundUtil.PlaySE(SEID.SE_MENU_OK); } } }
//---------------------------------------------------------------------------- /*! * @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; } }
//---------------------------------------------------------------------------- /*! @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); } } }