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);
    }
Example #3
0
    //----------------------------------------------------------------------------

    /*!
     *  @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; //!< キャラ詳細:選択キャラ:リンク:限界突破
    }
Example #4
0
    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();
    }
Example #5
0
    /// <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;
    }
Example #6
0
    //----------------------------------------------------------------------------

    /*!
     *          @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();
    }
Example #7
0
    //----------------------------------------------------------------------------

    /*!
     *          @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;
        }
    }
Example #8
0
    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);
            }
        }
    }
Example #10
0
    // 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;
        }
    }
Example #11
0
    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();
    }