void BuildTopCreateSceneByDifficult(long build_top_scene_group_id_) { long scene_id = FindObjSceneDataManager.LoadSceneIDForBuildTop(build_top_scene_group_id_); var temp_group_data = FindObjSceneDataManager.Instance.GetDataBySceneGroupID(build_top_scene_group_id_); if (null != temp_group_data) { m_group_data = temp_group_data; } if (scene_id < 0) { long scene_difficult_id = FindObjSceneDataManager.GetSceneDifficultID(build_top_scene_group_id_, m_group_data.m_lvl); long[] sceneid4random = ConfSceneDifficulty.Get(scene_difficult_id).sceneIds; int[] weights4random = ConfSceneDifficulty.Get(scene_difficult_id).sceneWeights; List <RateScene> scenes4rdm = new List <RateScene>(); for (int i = 0; i < sceneid4random.Length; ++i) { RateScene rs = new RateScene() { SceneID = sceneid4random[i], Rate = weights4random[i], }; scenes4rdm.Add(rs); } int idx = randomGetIdex(scenes4rdm); if (idx >= 0) { RateScene selected_scene = scenes4rdm[idx]; scene_id = selected_scene.SceneID; FindObjSceneDataManager.SaveSceneIDForBuildTop(build_top_scene_group_id_, scene_id); } } if (scene_id > 0) { this.m_scene_id = scene_id; m_s_info = ConfScene.Get(m_scene_id); m_time_cost_value = m_s_info.secondGain; m_vit_cost_value = m_s_info.vitConsume; } else { m_s_info = null; m_time_cost_value = 0; m_vit_cost_value = 0; } }
public void Refresh(WinFailData data_) { if (ENUM_SEARCH_MODE.E_SEARCH_ROOM == data_.m_mode) { SCSceneRewardResponse msg = data_.m_msg as SCSceneRewardResponse; long m_scene_group_id = FindObjSceneDataManager.ConvertSceneIdToSceneGroupId(msg.SceneId); var m_group_data = new FindObjSceneData(m_scene_group_id, 1, 0); var temp_data = FindObjSceneDataManager.Instance.GetDataBySceneGroupID(m_scene_group_id); if (null != temp_data) { m_group_data = temp_data; } long scene_difficult_id = FindObjSceneDataManager.GetSceneDifficultID(m_scene_group_id, m_group_data.m_lvl); ConfSceneDifficulty difficult_data = ConfSceneDifficulty.Get(scene_difficult_id); m_lvl_icon.Sprite = ConfPoliceRankIcon.Get(m_group_data.m_lvl).icon; m_lvl_name.Text = LocalizeModule.Instance.GetString(difficult_data.name); m_lvl_exp_slider.Value = (float)m_group_data.m_exp / (float)m_group_data.m_full_exp; m_lvl_exp_txt.Text = $"{m_group_data.m_exp}/{m_group_data.m_full_exp}"; } }
void TaskCreateSceneByDifficult(long tsk_id_) { long scene_id = FindObjSceneDataManager.LoadSceneIDForTask(tsk_id_); if (scene_id < 0) { long scene_difficult_id = FindObjSceneDataManager.GetSceneDifficultID(m_scene_group_id, m_group_data.m_lvl); long[] sceneid4random = ConfSceneDifficulty.Get(scene_difficult_id).sceneIds; int[] weights4random = ConfSceneDifficulty.Get(scene_difficult_id).sceneWeights; FindObjSceneData my_difficult_data = FindObjSceneDataManager.Instance.GetDataBySceneGroupID(m_scene_group_id); int?my_difficult_lvl = my_difficult_data?.m_lvl; int?my_difficult_exp = my_difficult_data?.m_exp; if ((1 == my_difficult_lvl || 0 == my_difficult_lvl) && 0 == my_difficult_exp) { //首次使用普通玩法 scene_id = sceneid4random[0]; } else { //二次随机 List <RateScene> scenes4rdm = new List <RateScene>(); for (int i = 0; i < sceneid4random.Length; ++i) { RateScene rs = new RateScene() { SceneID = sceneid4random[i], Rate = weights4random[i], }; scenes4rdm.Add(rs); } int idx = randomGetIdex(scenes4rdm); if (idx >= 0) { RateScene selected_scene = scenes4rdm[idx]; scene_id = selected_scene.SceneID; FindObjSceneDataManager.SaveSceneIDForTask(tsk_id_, scene_id); if (1 == ConfTask.Get(tsk_id_).type) { //主线任务,影响bulid top的场景id FindObjSceneDataManager.SaveSceneIDForBuildTop(FindObjSceneDataManager.ConvertSceneIdToSceneGroupId(scene_id), scene_id); } } } } if (scene_id > 0) { this.m_scene_id = scene_id; m_s_info = ConfScene.Get(m_scene_id); m_time_cost_value = m_s_info.secondGain; m_vit_cost_value = m_s_info.vitConsume; } else { m_s_info = null; m_time_cost_value = 0; m_vit_cost_value = 0; } }
public override void OnShow(object param) { base.OnShow(param); GameEvents.UIEvents.UI_GameEntry_Event.OnMaskBGVisible.SafeInvoke(true); GameEvents.UIEvents.UI_GameEntry_Event.OnInfiniteVit += OnInfiniteVit; MessageHandler.RegisterMessageHandler(MessageDefine.SCSceneEnterResponse, OnScResponse); this.m_action_btn.AddClickCallBack(OnBtnStartGameClick); this.m_exp_reward_icon.AddPressDownCallBack(OnSceneGroupGiftPressDown); this.m_exp_reward_icon.AddPressUpCallBack(OnSceneGroupGiftPressUp); EnterSceneData enterSceneData = null; m_scene_id = -1; m_scene_group_id = -1; m_enter_msg = null; if (null != param) { enterSceneData = param as EnterSceneData; //this.m_scene_id = (int)enterSceneData.SceneID; this.m_taskConfID = enterSceneData.taskConfID; } if (-1 == m_taskConfID) { //不是从任务展示界面来的,不用翻转 BgShowAlpha(false); PanelDelayShowAlpha(0.0f); PanelDelayShowScale(0.0f); PanelTurnToOne(false); PanelGoDown(true); } else { //需要翻转 BgShowAlpha(true); PanelDelayShowAlpha(0.2f); PanelDelayShowScale(0.5f); PanelGoDown(false); PanelTurnToZero(false); PanelTurnToOne(true); } ConfTask task = null; if (this.m_taskConfID < 0) { //build top 进入 this.m_scene_group_id = FindObjSceneDataManager.ConvertSceneIdToSceneGroupId(enterSceneData.SceneID); m_group_data = new FindObjSceneData(this.m_scene_group_id, 1, 0); BuildTopCreateSceneByDifficult(this.m_scene_group_id); } else { task = ConfTask.Get(m_taskConfID); long tsk_scene_id = null != task ? task.conditionSceneId : enterSceneData.SceneID; m_special_scene_id = 0; //初始化一个默认的group data; m_group_data = new FindObjSceneData(FindObjSceneDataManager.ConvertSceneIdToSceneGroupId(tsk_scene_id), 1, 0); this.m_scene_group_id = FindObjSceneDataManager.ConvertSceneIdToSceneGroupId(tsk_scene_id); var temp_data = FindObjSceneDataManager.Instance.GetDataBySceneGroupID(m_scene_group_id); if (null != temp_data) { m_group_data = temp_data; } if (tsk_scene_id > 99999) { //配置的场景id if (1 == ConfScene.Get(tsk_scene_id).keyExhibit) { //关键证据关卡 CreateSceneBySpecial(tsk_scene_id); } else { //非关键关卡 //读取难度表 TaskCreateSceneByDifficult(this.m_taskConfID); } } else { //配置的场景组id,一定是非关键线索关卡 TaskCreateSceneByDifficult(this.m_taskConfID); } } m_play_mode_img.Sprite = this.GetModeIconName(m_scene_id); m_scene_tex.TextureName = m_s_info.thumbnail; m_scene_name_label.Text = LocalizeModule.Instance.GetString(m_s_info.name); this.ShowOutPut(m_s_info.outputExp, m_s_info.outputMoney, m_s_info.outputCash, m_s_info.outputVit); List <long> ids = CommonHelper.GetDropOuts(m_s_info.dropId); var props = from id in ids select new DropWrapper() { DropType = ENUM_DROP_TYPE.PROP, ItemID = id, ItemNum = 0, Icon = ConfProp.Get(id).icon, }; List <DropWrapper> totalToShow = new List <DropWrapper>(); if (null != task && task.conditionExhibits.Length > 0) { var exhibits = from id in task.conditionExhibits select new DropWrapper() { DropType = ENUM_DROP_TYPE.EXHABIT, ItemID = id, ItemNum = 0, Icon = Confexhibit.Get(id).iconName, }; totalToShow.AddRange(exhibits); } //DropWrapper te = new DropWrapper() //{ // DropType = ENUM_DROP_TYPE.EXHABIT, // ItemID = 10972, // ItemNum = 0, // Icon = Confexhibit.Get(10972).iconName, //}; //totalToShow.Add(te); totalToShow.AddRange(props); m_drop_grid.EnsureSize <DropItemIconEffect>(totalToShow.Count); for (int i = 0; i < m_drop_grid.ChildCount; ++i) { var show = totalToShow[i]; DropItemIconEffect di = m_drop_grid.GetChild <DropItemIconEffect>(i); m_drop_grid.GetChild <DropItemIconEffect>(i).InitSprite(show.Icon, show.ItemNum, show.ItemID, ENUM_DROP_TYPE.EXHABIT == show.DropType); if (ENUM_DROP_TYPE.PROP == show.DropType) { m_drop_grid.GetChild <DropItemIconEffect>(i).EnableTips(true); m_drop_grid.GetChild <DropItemIconEffect>(i).InitToolTipOffset(new Vector2(-280.0f, 0.0f)); } else { m_drop_grid.GetChild <DropItemIconEffect>(i).EnableTips(false); } m_drop_grid.GetChild <DropItemIconEffect>(i).Visible = true; } m_drop_grid.Visible = false; long scene_difficult_id = FindObjSceneDataManager.GetSceneDifficultID(m_scene_group_id, m_group_data.m_lvl); ConfSceneDifficulty difficult_data = ConfSceneDifficulty.Get(scene_difficult_id); m_gifts = new List <GroupToolTipsData>(); for (int i = 0; i < difficult_data.rewards.Length; ++i) { GroupToolTipsData reward = new GroupToolTipsData() { ItemID = difficult_data.rewards[i], CurCount = difficult_data.rewardNums[i], }; m_gifts.Add(reward); } m_difficult_icon.Sprite = ConfPoliceRankIcon.Get(m_group_data.m_lvl).icon; m_difficlut_step.Text = LocalizeModule.Instance.GetString(difficult_data.name); m_exp_progress.Value = (float)m_group_data.m_exp / (float)m_group_data.m_full_exp; m_exp_txt.Text = $"{m_group_data.m_exp}/{m_group_data.m_full_exp}"; Debug.Log($"关卡进入 关卡组id{m_group_data.m_scene_group_id}"); m_cost_time_num_label.Text = CommonTools.SecondToStringMMSS(this.m_time_cost_value); SetVitLabel(); m_is_action_btn_touched = false; this.m_action_btn.Enable = true; Dictionary <UBSParamKeyName, object> _params = new Dictionary <UBSParamKeyName, object>() { { UBSParamKeyName.Success, 1 }, { UBSParamKeyName.SceneID, this.m_scene_id }, }; UserBehaviorStatisticsModules.Instance.LogEvent(UBSEventKeyName.game_start, null, _params); }