Merge remote-tracking branch 'origin/master' into LuaOrgan
Conflicts:
System/KnapSack/New/RoleEquipWin.cs
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: Fish |
| | | // [ Date ]: Tuesday, June 11, 2019 |
| | | // [ Date ]: Thursday, July 04, 2019 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System.Collections.Generic; |
| | |
| | | public readonly int jump;
|
| | | public readonly string[] funcTitles;
|
| | | public readonly string failFuncs;
|
| | | public readonly int[] onlyOneFunc;
|
| | | public readonly string[] remind; |
| | | |
| | | public TaskFeedbackConfig() |
| | |
| | |
|
| | | failFuncs = tables[10];
|
| | |
|
| | | remind = tables[11].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | string[] onlyOneFuncStringArray = tables[11].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | onlyOneFunc = new int[onlyOneFuncStringArray.Length]; |
| | | for (int i=0;i<onlyOneFuncStringArray.Length;i++) |
| | | { |
| | | int.TryParse(onlyOneFuncStringArray[i],out onlyOneFunc[i]); |
| | | }
|
| | |
|
| | | remind = tables[12].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | fileFormatVersion: 2 |
| | | guid: b80a883f246077d46ab59d6938182ec9 |
| | | timeCreated: 1560244941 |
| | | timeCreated: 1562231068 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | |
| | | if (hero != null)
|
| | | {
|
| | | hero.SwitchSuit();
|
| | | hero.ReqLingGenEffect((int)(baseData.equipShowSwitch / 1000 % 1000));
|
| | | }
|
| | | break;
|
| | | case PlayerDataType.LuckValue:
|
| | |
| | | // C0 02 查看跨服玩家信息 #tagCGViewCrossPlayerInfo
|
| | |
|
| | | public class CC002_tagCGViewCrossPlayerInfo : GameNetPackBasic {
|
| | | public uint PlayerID; // 跨服玩家ID
|
| | | public uint PlayerID; // 跨服玩家ID
|
| | | public byte EquipClassLV; //大于0为查看指定境界阶装备信息,0为查看默认信息
|
| | |
|
| | | public CC002_tagCGViewCrossPlayerInfo () {
|
| | | combineCmd = (ushort)0x1801;
|
| | |
| | | }
|
| | |
|
| | | public override void WriteToBytes () {
|
| | | WriteBytes (PlayerID, NetDataType.DWORD);
|
| | | WriteBytes (PlayerID, NetDataType.DWORD);
WriteBytes(EquipClassLV, NetDataType.BYTE);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | _skill = CanCast(skillList);
|
| | | }
|
| | |
|
| | | if (_skill == null && _hero.CanCommonAtk())
|
| | | if (_skill != null)
|
| | | {
|
| | | return _skill;
|
| | | }
|
| | |
|
| | | if (_hero.CanCommonAtk())
|
| | | {
|
| | | int _index = _hero.nextComAtkIndex;
|
| | | if (_index == -1)
|
| | |
| | | }
|
| | | int _comSkillID = _hero.GetCommonSkillID(_index);
|
| | |
|
| | | _skill = _hero.SkillMgr.Get(_comSkillID);
|
| | |
|
| | | if (_skill != null && _skill.skillInfo != null && _skill.skillInfo.config != null)
|
| | | {
|
| | | bool _forceCast = false;
|
| | |
|
| | | SkillHelper.EffectValue _effectValue;
|
| | | if (SkillHelper.Instance.TryGetExpertSkillEvByMainSkillID(_skill.id, 4093, out _effectValue))
|
| | | {
|
| | | _forceCast = true;
|
| | | }
|
| | |
|
| | | // 判断是否是被封禁的技能
|
| | | if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config) && !_forceCast)
|
| | | {
|
| | | return _skill;
|
| | | }
|
| | | }
|
| | | return _hero.SkillMgr.Get(_comSkillID);
|
| | | }
|
| | |
|
| | | return _skill;
|
| | | return null;
|
| | | }
|
| | |
|
| | | protected Skill CanCast(int[] skillList)
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | bool _canCast = true;
|
| | |
|
| | | bool _forceCast = false;
|
| | |
|
| | | SkillHelper.EffectValue _effectValue;
|
| | | if (SkillHelper.Instance.TryGetExpertSkillEvByMainSkillID(skillID, 4093, out _effectValue))
|
| | | {
|
| | | _forceCast = true;
|
| | | }
|
| | | var _skillConfig = SkillConfig.Get(skillID);
|
| | | // 判断是否是被封禁的技能
|
| | | if (!StatusMgr.Instance.CanAttack(PlayerDatas.Instance.PlayerId, _skillConfig) && !_forceCast)
|
| | | {
|
| | | _canCast = false;
|
| | | }
|
| | |
|
| | | if (skillID == xpSkillID)
|
| | | {
|
| | | GA_Hero _hero = PlayerDatas.Instance.hero;
|
| | |
| | | || GeneralDefine.NoXpDungeons.Contains(PlayerDatas.Instance.baseData.MapID)
|
| | | || (_hero.SelectTarget != null && _hero.SelectTarget is GActorPlayerBase)) && !userClick)
|
| | | {
|
| | | return false;
|
| | | _canCast = false;
|
| | | }
|
| | | }
|
| | |
|
| | | return true;
|
| | | return _canCast;
|
| | | }
|
| | |
|
| | | protected GActorFight DecideAttackTarget(Vector3 searchCenter, float range, int lockNpcID = -1)
|
| | |
| | | m_CalculAutoFightTime = Time.realtimeSinceStartup;
|
| | |
|
| | | m_LastSyncTickTime = Time.realtimeSinceStartup;
|
| | |
|
| | | ModelCenter.Instance.GetModel<ReikiRootModel>().onReikiRootEffectRefresh += OnReikiEffectRefresh;
|
| | | }
|
| | |
|
| | | private void OnReikiEffectRefresh()
|
| | | {
|
| | | ReqLingGenEffect((int)(PlayerDatas.Instance.baseData.equipShowSwitch / 1000 % 1000));
|
| | | }
|
| | |
|
| | | private List<SFXController> m_SuitEffectList = new List<SFXController>();
|
| | |
| | |
|
| | | protected sealed override void OnUnit()
|
| | | {
|
| | | Object.Destroy(m_BhvFindEnemy);
|
| | | UnityEngine.Object.Destroy(m_BhvFindEnemy);
|
| | | m_BhvFindEnemy = null;
|
| | | RlsSuitEffect();
|
| | | OnPathFinding -= MapTransferUtility.Instance.OnHeroPathFinding;
|
| | |
| | | UpdateAutoStartFight();
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | protected sealed override void OnPutonClothes(uint clothesItemID, GameObject clothed)
|
| | | {
|
| | | clothed.layer = LayerUtility.Hero;
|
| | |
| | | StopRush();
|
| | |
|
| | | Behaviour.StopKillUntilDieAI();
|
| | |
|
| | | ReqLingGenEffect((int)(PlayerDatas.Instance.baseData.equipShowSwitch / 1000 % 1000));
|
| | | }
|
| | |
|
| | | protected sealed override void OnPutonSecondary(uint secondaryItemID, GameObject secondary)
|
| | |
| | | ReleaseLight();
|
| | | if (PlayerDatas.Instance.baseData.MapID == 31160)
|
| | | {
|
| | | m_Light = Object.Instantiate(BuiltInLoader.LoadPrefab("Zhujiao_Pointlight"));
|
| | | m_Light = UnityEngine.Object.Instantiate(BuiltInLoader.LoadPrefab("Zhujiao_Pointlight"));
|
| | | m_Light.transform.SetParent(MP_Name);
|
| | | m_Light.transform.localPosition = Vector3.zero;
|
| | | m_Light.transform.localScale = Vector3.one;
|
| | |
| | | {
|
| | | if (m_Light)
|
| | | {
|
| | | Object.Destroy(m_Light);
|
| | | UnityEngine.Object.Destroy(m_Light);
|
| | | m_Light = null;
|
| | | }
|
| | | }
|
| | |
| | | if (m_ArrowEffect)
|
| | | {
|
| | | FaceTargetXZ _f = m_ArrowEffect.GetComponent<FaceTargetXZ>();
|
| | | Object.Destroy(_f);
|
| | | UnityEngine.Object.Destroy(_f);
|
| | | SFXPlayUtility.Instance.Release(m_ArrowEffect);
|
| | | m_ArrowEffect = null;
|
| | | }
|
| | |
| | | {
|
| | | case PlayerDataType.EquipShowSwitch:
|
| | | m_H0434.EquipShowSwitch = data.Value;
|
| | |
|
| | | ReqLingGenEffect((int)(m_H0434.EquipShowSwitch / 1000 % 1000));
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | SkinnedMeshRenderer _renderer = clothed.GetComponentInChildren<SkinnedMeshRenderer>();
|
| | | _renderer.gameObject.SetLayer(LayerUtility.Player, false);
|
| | | MaterialUtility.SwitchXrayShader(m_Material, false);
|
| | |
|
| | | ReqLingGenEffect((int)(m_H0434.EquipShowSwitch / 1000 % 1000));
|
| | | SyncSuitEffect((m_H0434.EquipShowSwitch % 10) > 0);
|
| | | }
|
| | |
|
| | | protected sealed override void OnPutonSecondary(uint secondaryItemID, GameObject secondary)
|
| | |
| | | protected override void OnLateUpdate()
|
| | | {
|
| | | UpdateRush();
|
| | |
|
| | | if (LingGenNode)
|
| | | {
|
| | | LingGenNode.transform.position = Root.transform.position;
|
| | | }
|
| | | }
|
| | |
|
| | | public void CheckAncientHeadUp()
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private List<SFXController> lingGenEffectList = new List<SFXController>();
|
| | |
|
| | | private GameObject LingGenNode;
|
| | |
|
| | |
|
| | | private void RlsLingGenEffect()
|
| | | {
|
| | | if (lingGenEffectList.Count > 0)
|
| | | {
|
| | | for (int i = 0; i < lingGenEffectList.Count; ++i)
|
| | | {
|
| | | SFXPlayUtility.Instance.Release(lingGenEffectList[i]);
|
| | | }
|
| | | }
|
| | | lingGenEffectList.Clear();
|
| | | UnityEngine.Object.Destroy(LingGenNode);
|
| | | LingGenNode = null;
|
| | | }
|
| | |
|
| | | public void ReqLingGenEffect(int id)
|
| | | {
|
| | | if (!ReikiRootEffectConfig.Has(id))
|
| | | {
|
| | | return;
|
| | | }
|
| | | RlsLingGenEffect();
|
| | | if (!LingGenNode)
|
| | | {
|
| | | LingGenNode = new GameObject();
|
| | | GameObject.DontDestroyOnLoad(LingGenNode);
|
| | | }
|
| | | var _config = ReikiRootEffectConfig.Get(id);
|
| | | var _sfx = SFXPlayUtility.Instance.PlayBattleEffect(_config.effect, LingGenNode.transform, 1);
|
| | | lingGenEffectList.Add(_sfx);
|
| | | }
|
| | | }
|
| | |
| | | Debug.LogErrorFormat("移动至NPC: {0} 时找不到任何跳跃点, NextPos: {1}", NpcID, _nextPos);
|
| | | break;
|
| | | }
|
| | | ClientSceneManager.Instance.ExitTransStatus();
|
| | | float _dis = MathUtility.DistanceSqrtXZ(_hero.Pos, _nextPos);
|
| | | if (_dis <= 0.01f)
|
| | | {
|
| | | ClientSceneManager.Instance.ExitTransStatus();
|
| | | }
|
| | | while (_dis > 0.01f)
|
| | | {
|
| | | _dis = MathUtility.DistanceSqrtXZ(_hero.Pos, _nextPos);
|
| | |
| | |
|
| | | public static void GotoNormalClientDungeon(int clientMapId, int mapId, int lineId)
|
| | | {
|
| | | if (!AssetSource.sceneFromEditor)
|
| | | {
|
| | | var assetValid = AssetVersionUtility.IsSceneAssetValid(mapId, lineId);
|
| | | if (!assetValid)
|
| | | {
|
| | | InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | if (crossServerOneVsOneModel.IsMatching)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("CrossOneVsOneMatching");
|
| | |
| | | public int maxBatchAlchemyCount { get; private set; }
|
| | |
|
| | | public int normalBatchAlchemyLevel { get; private set; }
|
| | | Dictionary<int, int> alchemyRedpointLevelLimits;
|
| | |
|
| | | public bool isServerPrepare { get; private set; }
|
| | |
|
| | |
| | |
|
| | | private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
| | | {
|
| | | if (dataType == PlayerDataType.FreePoint)
|
| | | if (dataType == PlayerDataType.FreePoint
|
| | | || dataType == PlayerDataType.LV)
|
| | | {
|
| | | CheckRedpoint();
|
| | | }
|
| | |
| | |
|
| | | funcConfig = FuncConfigConfig.Get("AlchemyRedPoint");
|
| | | normalBatchAlchemyLevel = int.Parse(funcConfig.Numerical2);
|
| | | alchemyRedpointLevelLimits = ConfigParse.GetDic<int, int>(funcConfig.Numerical3);
|
| | | }
|
| | |
|
| | | {
|
| | |
| | | Item item;
|
| | | if (IsAlchemyEnoughMaterial(id, out item))
|
| | | {
|
| | | if (alchemyRedpointLevelLimits != null
|
| | | && alchemyRedpointLevelLimits.ContainsKey(id))
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV >= alchemyRedpointLevelLimits[id])
|
| | | {
|
| | | continue;
|
| | | }
|
| | | }
|
| | | s_Alchemyables.Add(id);
|
| | | }
|
| | | }
|
| | |
| | | var npcs = actorShowConfig.showNpcs;
|
| | | foreach (var item in npcs)
|
| | | {
|
| | | if (item == 1)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | var npcConfig = NPCConfig.Get(item);
|
| | | if (npcConfig != null)
|
| | | {
|
| | |
| | | return _recentlyChat;
|
| | | }
|
| | |
|
| | | public void SaveLocalRecentlyChat()
|
| | | {
|
| | | for (int i = 0; i < recentlyChats.Count; i++)
|
| | | {
|
| | | var localKey = StringUtility.Contact("RecentlyChat_", PlayerDatas.Instance.baseData.PlayerID, "_", i);
|
| | | LocalSave.SetString(localKey, recentlyChats[i].ToString());
|
| | | }
|
| | | }
|
| | |
|
| | | void GetLocalRecentlyChat()
|
| | | {
|
| | | recentlyChats.Clear();
|
| | | for (int i = 0; i < RecentlyChatNum; i++)
|
| | | {
|
| | | var localKey = StringUtility.Contact("RecentlyChat_", PlayerDatas.Instance.baseData.PlayerID, "_", i);
|
| | | if (LocalSave.HasKey(localKey))
|
| | | {
|
| | | var json = LocalSave.GetString(localKey);
|
| | | if (!string.IsNullOrEmpty(json))
|
| | | {
|
| | | RecentlyChat chat;
|
| | | if (RecentlyChat.TryParse(json, out chat))
|
| | | {
|
| | | recentlyChats.Add(chat);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | if (RecentlyChatChangeEvent != null)
|
| | | {
|
| | | RecentlyChatChangeEvent();
|
| | | }
|
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | recentlyChat = null;
|
| | |
| | | public List<string> itemInfos = new List<string>();
|
| | | public List<int> itemIndexs = new List<int>();
|
| | | public List<string> itemNames = new List<string>();
|
| | |
|
| | | public RecentlyChat()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | public RecentlyChat(string _chat)
|
| | | {
|
| | | display = _chat;
|
| | |
| | | {
|
| | | itemIndexs.Add(i);
|
| | | }
|
| | | }
|
| | |
|
| | | public override string ToString()
|
| | | {
|
| | | return LitJson.JsonMapper.ToJson(this);
|
| | | }
|
| | |
|
| | | public static bool TryParse(string json, out RecentlyChat chat)
|
| | | {
|
| | | chat = null;
|
| | | try
|
| | | {
|
| | | chat = LitJson.JsonMapper.ToObject<RecentlyChat>(json);
|
| | | }
|
| | | catch (Exception e)
|
| | | {
|
| | | Debug.LogError(e.StackTrace + e.Message);
|
| | | return false;
|
| | | }
|
| | | return chat != null;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | serverInited = true;
|
| | | GetLocalRecentlyChat();
|
| | | }
|
| | |
|
| | | #region 聊天浮动
|
| | |
| | | _recentlyChat = chatCenter.SaveRecentlyChat(result);
|
| | | }
|
| | | msg = CheckHasItem(result, _recentlyChat);
|
| | | chatCenter.SaveLocalRecentlyChat();
|
| | | chatCenter.recentlyChat = null;
|
| | |
|
| | | if (chatCenter.IsChatBanned || chatCenter.IsClientBan(type))
|
| | |
| | | if (index != -1)
|
| | | {
|
| | | redpoint.gameObject.SetActive(true);
|
| | | redpoint.redpointId = composeModel.secondTypeRedDict[secondType].id;
|
| | | redpoint.redpointId = composeModel.secondTypeRedDict[firstType * 100 + secondType].id;
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | unlockTypeName.text = itemCompound.thirdTypeName;
|
| | | lockTypeName.text = itemCompound.thirdTypeName;
|
| | | lockLevel.text = StringUtility.Contact(itemCompound.levelNeed,Language.Get("Z1041"));
|
| | | string key = StringUtility.Contact(secondType, 10,thirdType);
|
| | | string key = ((firstType * 100 + secondType) * 100 + thirdType).ToString();
|
| | | if (firstType == (int)ComposeFuncType.Item
|
| | | && composeModel.thirdTypeRedDict.ContainsKey(key))
|
| | | {
|
| | |
| | | {
|
| | | if (composeWinModel.secondTypeRedDict[second].state == RedPointState.Simple)
|
| | | {
|
| | | string key = StringUtility.Contact(second, 10);
|
| | | foreach (var third in composeWinModel.thirdTypeRedDict.Keys)
|
| | | {
|
| | | if (composeWinModel.thirdTypeRedDict[third].state == RedPointState.Simple)
|
| | | {
|
| | | string thirdType = third.Substring(key.Length, third.Length - key.Length);
|
| | | isJumpTo = true;
|
| | | curSecondType = second;
|
| | | curThirdType = int.Parse(thirdType);
|
| | | curSecondType = second / 100 % 100;
|
| | | curThirdType = int.Parse(third) % 100;
|
| | | composeWinModel.ResetJumpToModel();
|
| | | break;
|
| | | }
|
| | |
| | |
|
| | | successRateText.text = Language.Get("HallowsWin_Success", StringUtility.Contact(compoundModel.successRate / 100, "%"));
|
| | | composeWinModel.SetCurComposeModel(compoundModel);
|
| | | composeWinModel.composeBtnRed.state = composeWinModel.secondTypeRedDict[compoundModel.secondType].state;
|
| | | composeWinModel.composeBtnRed.state = composeWinModel.secondTypeRedDict[compoundModel.firstType * 100 + compoundModel.secondType].state;
|
| | | UpdateComposeMat();
|
| | | }
|
| | |
|
| | |
| | |
|
| | | secondTypeRedDict.Clear();
|
| | | thirdTypeRedDict.Clear();
|
| | | //if (composeDataDict.ContainsKey((int)ComposeFuncType.Item))
|
| | | //{
|
| | | // var firstTypeData = composeDataDict[(int)ComposeFuncType.Item];
|
| | | // var secondTypeDict = firstTypeData.secondTypeDict;
|
| | | // foreach (var second in secondTypeDict.Keys)
|
| | | // {
|
| | | // var thirdTypeDict = secondTypeDict[second].thirdTypeDict;
|
| | | // int secondRedKey = COMPOSETOOL_REDKEY * 100 + second;
|
| | | // Redpoint secondRed = new Redpoint(COMPOSETOOL_REDKEY, secondRedKey);
|
| | | // secondTypeRedDict.Add(second, secondRed);
|
| | | // foreach (var third in thirdTypeDict.Keys)
|
| | | // {
|
| | | // int thirdRedKey = secondRedKey * 100 + third;
|
| | | // Redpoint thirdRed = new Redpoint(secondRedKey, thirdRedKey);
|
| | | // string key = StringUtility.Contact(second, 10, third);
|
| | | // thirdTypeRedDict.Add(key, thirdRed);
|
| | | // }
|
| | | // }
|
| | | //}
|
| | |
|
| | | var firstType= (int)ComposeFuncType.Item;
|
| | | if (composeDataDict.ContainsKey(firstType))
|
| | | {
|
| | | var firstTypeData = composeDataDict[firstType];
|
| | | var secondTypeDict = firstTypeData.secondTypeDict;
|
| | | foreach (var second in secondTypeDict.Keys)
|
| | | {
|
| | | var thirdTypeDict = secondTypeDict[second].thirdTypeDict;
|
| | | int secondRedKey = COMPOSETOOL_REDKEY * 100 + second;
|
| | | Redpoint secondRed = new Redpoint(COMPOSETOOL_REDKEY, secondRedKey);
|
| | | var secondKey = firstType * 100 + second;
|
| | | secondTypeRedDict.Add(secondKey, secondRed);
|
| | | foreach (var third in thirdTypeDict.Keys)
|
| | | {
|
| | | int thirdRedKey = secondRedKey * 100 + third;
|
| | | Redpoint thirdRed = new Redpoint(secondRedKey, thirdRedKey);
|
| | | string key = (secondKey * 100 + third).ToString();
|
| | | thirdTypeRedDict.Add(key, thirdRed);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | foreach (var category in composeRedpointCategories)
|
| | | {
|
| | |
| | | var thirdTypeDict = secondTypeDict[second].thirdTypeDict;
|
| | | int secondRedKey = COMPOSETICKET_REDKEY * 100 + second;
|
| | | Redpoint secondRed = new Redpoint(COMPOSETICKET_REDKEY, secondRedKey);
|
| | | secondTypeRedDict.Add(second, secondRed);
|
| | | var secondKey = category.x * 100 + second;
|
| | | secondTypeRedDict.Add(secondKey, secondRed);
|
| | | foreach (var third in thirdTypeDict.Keys)
|
| | | {
|
| | | int thirdRedKey = secondRedKey * 100 + third;
|
| | | Redpoint thirdRed = new Redpoint(secondRedKey, thirdRedKey);
|
| | | string key = StringUtility.Contact(second, 10, third);
|
| | | string key = (secondKey * 100 + third).ToString();
|
| | | thirdTypeRedDict.Add(key, thirdRed);
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | var itemCompound = thirdTypeDatas[i].itemCompound;
|
| | | int makeID = itemCompound.makeID[0];
|
| | | string key = StringUtility.Contact(category.y, 10, third);
|
| | | var secondKey = category.x * 100 + category.y;
|
| | | string key = (secondKey * 100 + third).ToString();
|
| | | if (IsEnoughFixedMat(itemCompound))
|
| | | {
|
| | | if (thirdTypeRedDict[key].state != RedPointState.Simple)
|
| | |
| | | weaponId = appearance.weapon, |
| | | secondaryId = appearance.secondary, |
| | | keepRotation = !resetRotation, |
| | | reikiRootEffectId = PlayerDatas.Instance.baseData.reikiRootEffectId, |
| | | }); |
| | | } |
| | | |
| | |
| | | fashionClothesId = fashionDressClothesId,
|
| | | fashionWeaponId = fashionDressWeaponId,
|
| | | fashionSecondaryId = fashionDressSecondaryId,
|
| | | reikiRootEffectId = PlayerDatas.Instance.baseData.reikiRootEffectId,
|
| | | isDialogue = false,
|
| | | };
|
| | | UI3DModelExhibition.Instance.ShowPlayer(m_RawModel, data);
|
| | |
| | |
|
| | | public int openActviePoint { get; private set; }
|
| | | public int autoOpenLimitLevel { get; private set; }
|
| | | int autoOpenLimitTimes = 0;
|
| | |
|
| | | int m_SelectIncident;
|
| | | public int selectIncident
|
| | |
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV > autoOpenLimitLevel)
|
| | | {
|
| | | SnxxzGame.Instance.StartCoroutine(Co_TryOpenHazyRegionWin());
|
| | | if (hazyRegionOpenTimes > autoOpenLimitTimes || !IsAllIncidentComplete())
|
| | | {
|
| | | SnxxzGame.Instance.StartCoroutine(Co_TryOpenHazyRegionWin());
|
| | | }
|
| | | }
|
| | | //WindowCenter.Instance.Close<HazyAdventureHintWin>();
|
| | | //taskModel.AutomaticTripToTask(taskModel.currentMission);
|
| | |
| | | if (PlayerDatas.Instance.baseData.LV > autoOpenLimitLevel
|
| | | && IsIncidentDungeon(cacheMapId))
|
| | | {
|
| | | SnxxzGame.Instance.StartCoroutine(Co_TryOpenHazyRegionWin());
|
| | | if (hazyRegionOpenTimes > autoOpenLimitTimes || !IsAllIncidentComplete())
|
| | | {
|
| | | SnxxzGame.Instance.StartCoroutine(Co_TryOpenHazyRegionWin());
|
| | | }
|
| | | }
|
| | | }
|
| | | cacheMapId = mapId;
|
| | |
| | |
|
| | | funcConfig = FuncConfigConfig.Get("HazyRegionAutoOpen");
|
| | | autoOpenLimitLevel = int.Parse(funcConfig.Numerical1);
|
| | | int.TryParse(funcConfig.Numerical2, out autoOpenLimitTimes);
|
| | | }
|
| | |
|
| | | public bool TryGetIncident(int id, out Incident incident)
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | public bool IsAllIncidentComplete()
|
| | | {
|
| | | var allComplete = true;
|
| | | foreach (var id in m_Incidents.Keys)
|
| | | {
|
| | | Incident incident;
|
| | | if (TryGetIncident(id, out incident))
|
| | | {
|
| | | if (incident.state != IncidentState.Complete)
|
| | | {
|
| | | allComplete = false;
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | return allComplete;
|
| | | }
|
| | |
|
| | | public void DisplayErrorRemind(int error)
|
| | | {
|
| | | switch (error)
|
| | |
| | | public class RoleEquipWin : Window
|
| | | {
|
| | | #region 成员变量
|
| | | //[SerializeField] EquipBehaviours equipPlaces;
|
| | |
|
| | | [SerializeField] RawImage m_Role;
|
| | | [SerializeField] private Button m_OneKeySell;
|
| | |
| | | [SerializeField] private Text m_Copper;
|
| | | [SerializeField] private Text m_Diamond;
|
| | | [SerializeField] private Button m_EquBtn;
|
| | | [SerializeField] private Button m_SpiritEquBtn;
|
| | | [SerializeField] Button m_SpiritButton;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | {
|
| | | m_OneKeySell.SetListener(OnClickOneKeySell);
|
| | | m_Sort.SetListener(OnClickSortBtn);
|
| | | m_EquBtn.SetListener(OnEquBtnDown); |
| | | m_EquBtn.SetListener(OnEquBtnDown);
|
| | | m_SpiritButton.SetListener(GotoSpiritWeaponWin);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | |
| | | WindowCenter.Instance.windowAfterCloseEvent += AfterWindowClose;
|
| | | GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
|
| | |
|
| | | m_SpiritButton.gameObject.SetActive(FuncOpen.Instance.IsFuncOpen(183));
|
| | | UpdateMoney();
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void OnSpiritEquBtnDown()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | private void OnEquBtnDown()
|
| | | {
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RealmEquip);
|
| | | }
|
| | |
|
| | | private void GotoSpiritWeaponWin()
|
| | | {
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SpiritWeapon);
|
| | | }
|
| | |
|
| | | private void UpdateSecond()
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | var equipPosition = EquipSet.ServerPlaceToClientPlace(index);
|
| | | if (equipPosition.x != 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | var equipType = (RoleEquipType)equipPosition.y;
|
| | |
|
| | |
|
| | | UI3DModelExhibition.Instance.ShowPlayer(m_Role, PlayerDatas.Instance.baseData.Job);
|
| | | }
|
| | |
| | | else
|
| | | {
|
| | | ServerTipDetails.DisplayNormalTip(Language.Get("KnapS129"));
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | [System.Serializable]
|
| | | public class EquipBehaviours
|
| | | {
|
| | | public EquipPlaceCell wing;
|
| | | public EquipPlaceCell guard1;
|
| | | public EquipPlaceCell peerlessWeapon1;
|
| | | public EquipPlaceCell peerlessWeapon2;
|
| | |
|
| | | public EquipPlaceCell this[RoleEquipType type] {
|
| | | get {
|
| | | switch (type)
|
| | | {
|
| | | case RoleEquipType.Wing:
|
| | | return wing;
|
| | | case RoleEquipType.Guard:
|
| | | return guard1;
|
| | | case RoleEquipType.PeerlessWeapon1:
|
| | | return peerlessWeapon1;
|
| | | case RoleEquipType.PeerlessWeapon2:
|
| | | return peerlessWeapon2;
|
| | | default:
|
| | | return null;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public bool Contain(RoleEquipType type)
|
| | | {
|
| | | return type == RoleEquipType.Wing
|
| | | || type == RoleEquipType.Guard ||
|
| | | type == RoleEquipType.PeerlessWeapon1 ||
|
| | | type == RoleEquipType.PeerlessWeapon2;
|
| | | }
|
| | |
|
| | | public void Display(RoleEquipType type)
|
| | | {
|
| | | this[type].Display(type);
|
| | | }
|
| | |
|
| | | public void DisplayAll()
|
| | | {
|
| | | wing.Display(RoleEquipType.Wing);
|
| | | guard1.Display(RoleEquipType.Guard);
|
| | | peerlessWeapon1.Display(RoleEquipType.PeerlessWeapon1);
|
| | | peerlessWeapon2.Display(RoleEquipType.PeerlessWeapon2);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | |
|
| | | public class HoistingWin : Window
|
| | | {
|
| | | [SerializeField] Transform Content;
|
| | | [SerializeField] ScrollRect m_Scroller;
|
| | | [SerializeField] Button FairyLandButton;//仙界秘境;
|
| | | [SerializeField] Button WorldBossButton;//世界Boss按钮
|
| | | [SerializeField] Button PrayerButton;//祈愿
|
| | | [SerializeField] Button BountyTaskButton;//赏金
|
| | | [SerializeField] Button m_DailyQuest;
|
| | | [SerializeField] Button HangUpButton;//挂机
|
| | | [SerializeField] Button FairyTaskButton;//仙盟任务
|
| | |
|
| | | [SerializeField] Vector2 m_Size;
|
| | |
|
| | | private int number = 0;
|
| | | DungeonModel m_DungeonModel;
|
| | | DungeonModel dungeonModel { get { return m_DungeonModel ?? (m_DungeonModel = ModelCenter.Instance.GetModel<DungeonModel>()); } }
|
| | |
| | | Close();
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.WelfareFunc2);
|
| | | });
|
| | | BountyTaskButton.AddListener(() =>
|
| | | {
|
| | | Close();
|
| | | dailyquestmodel.wannaLookDailyQuest = (int)DailyQuestType.BountyMission;
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.DailyQuestFunc1);
|
| | |
|
| | | });
|
| | | HangUpButton.AddListener(() =>
|
| | | {
|
| | | Close();
|
| | |
| | | Close();
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionTask);
|
| | | });
|
| | | m_DailyQuest.AddListener(() =>
|
| | | {
|
| | | Close();
|
| | | WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.DailyQuestFunc1);
|
| | | });
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | number = 0;
|
| | | Content.gameObject.SetActive(true);
|
| | |
|
| | | DungeonRecord dungeonRecord;
|
| | | dungeonModel.TryGetRecord(31080, out dungeonRecord);
|
| | | var times = dungeonRecord == null ? 0 : dungeonRecord.enterTimes;
|
| | | if (FuncOpen.Instance.IsFuncOpen(86) && dungeonModel.GetTotalTimes(31080) > times)//仙界秘境
|
| | | {
|
| | | number++;
|
| | | FairyLandButton.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | |
| | | }
|
| | | if (FuncOpen.Instance.IsFuncOpen(21) && GeneralDefine.bossWearyValues[0] + Worldmodel.extraBossWearyValue > Worldmodel.wearyValue)
|
| | | {
|
| | | number++;
|
| | | WorldBossButton.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | |
| | | }
|
| | | if (FuncOpen.Instance.IsFuncOpen(60) && ModelCenter.Instance.GetModel<PrayerModel>().expPrayerCnt < ModelCenter.Instance.GetModel<PrayerModel>().GetAllExpPrayCnt())//祈愿
|
| | | {
|
| | | number++;
|
| | | PrayerButton.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | |
| | | PrayerButton.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | if (FuncOpen.Instance.IsFuncOpen(34))//赏金
|
| | | if (FuncOpen.Instance.IsFuncOpen(78))
|
| | | {
|
| | | bool _bool = false;
|
| | | foreach (var value in taskmodel.SpecialTask.Values)
|
| | | {
|
| | | if (value.Type == 13 && value.MissionState != 0 && value.MissionState != 3)
|
| | | {
|
| | | _bool = true;
|
| | | }
|
| | | }
|
| | | foreach (var value in taskmodel.BountyDic.Values)
|
| | | {
|
| | | if (value.MissionState != 0 && value.MissionState != 3)
|
| | | {
|
| | | _bool = true;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | if (_bool)
|
| | | {
|
| | | BountyTaskButton.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | | {
|
| | | BountyTaskButton.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | number++;
|
| | | m_DailyQuest.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | | {
|
| | | BountyTaskButton.gameObject.SetActive(false);
|
| | | m_DailyQuest.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | |
|
| | | if (FuncOpen.Instance.IsFuncOpen(40))//挂机
|
| | | {
|
| | | number++;
|
| | | HangUpButton.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | |
| | | }
|
| | | if (FuncOpen.Instance.IsFuncOpen(16) && TaskAllocation.Instance.FairyAuAllNumber() < taskmodel.FairyAuTaskCount_Day)//仙盟任务
|
| | | {
|
| | | number++;
|
| | | FairyTaskButton.gameObject.SetActive(true);
|
| | | }
|
| | | else
|
| | | {
|
| | | FairyTaskButton.gameObject.SetActive(false);
|
| | | }
|
| | | for (int i = 0; i < Content.childCount; i++)
|
| | | {
|
| | |
|
| | | if (Content.GetChild(i).gameObject.activeSelf)
|
| | | {
|
| | | number += 1;
|
| | | }
|
| | | m_Scroller.verticalNormalizedPosition = 1f;
|
| | |
|
| | | }
|
| | | if (number <= 0)
|
| | | {
|
| | | Content.gameObject.SetActive(false);
|
| | | }
|
| | | var size = number * 64f + Mathf.Max(number - 1, 0) * 6;
|
| | | size = Mathf.Clamp(size, m_Size.x, m_Size.y);
|
| | | var rect = m_Scroller.transform as RectTransform;
|
| | | rect.sizeDelta = rect.sizeDelta.SetY(size);
|
| | | m_Scroller.enabled = number > 4;
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | | protected override void BindController()
|
| | | {
|
| | | m_MapSwitchingBehaviour.InitAwake();
|
| | | m_MainPositionTween.ShowTaskImmedidately(true, true);
|
| | | m_MailObj.SetActive(true);
|
| | | ListBossMapId.Clear();
|
| | | string strBoss = FuncConfigConfig.Get("TaskRetract").Numerical1;
|
| | |
| | |
|
| | | m_MainButtonMisc.OnActived();
|
| | | IsShowTaskPanel();//是否显示任务面板
|
| | |
|
| | | var inBossArea = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
|
| | | if (inBossArea && ListBossMapId.Contains(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | m_MainPositionTween.ShowTaskImmedidately(false, true);
|
| | | }
|
| | | else
|
| | | {
|
| | | m_MainPositionTween.ShowTaskImmedidately(true, false);
|
| | | }
|
| | | m_MainPositionTween.ShowTaskImmedidately(true, false);
|
| | |
|
| | | if (MapUtility.IsDungeon(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | |
| | | {
|
| | | DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)onMainModel.AreaState);
|
| | | }
|
| | | }
|
| | |
|
| | | if (_areaType == MapArea.E_Type.Boss && _enter)
|
| | | {
|
| | | if (ListBossMapId.Contains(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | m_MainPositionTween.ShowTask(false, true, false);
|
| | | }
|
| | | }
|
| | |
|
| | | if ((_areaType == MapArea.E_Type.Boss && !_enter) || (_areaType != MapArea.E_Type.Normal && (_areaType != MapArea.E_Type.Boss && _enter)))
|
| | | {
|
| | | m_MainPositionTween.ShowTask(true, false, false);
|
| | | }
|
| | |
|
| | | m_MainPositionTween.SwitchFunctions(new MainPositionTween.SwitchParam() { showDefault = true, immediately = false });
|
| | |
| | | }
|
| | | }
|
| | | break;
|
| | | case TaskFeedbackType.SkyTowerFightPoint:
|
| | | {
|
| | | if (!string.IsNullOrEmpty(config.reikiRoot))
|
| | | {
|
| | | var point = 0;
|
| | | int.TryParse(config.reikiRoot, out point);
|
| | | feedback.totalPoints = point;
|
| | | }
|
| | | }
|
| | | break;
|
| | | case TaskFeedbackType.ReikiPoint:
|
| | | {
|
| | | if (!string.IsNullOrEmpty(config.reikiRoot))
|
| | |
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | if (config.onlyOneFunc != null &&
|
| | | index < config.onlyOneFunc.Length && config.onlyOneFunc[index] == 1)
|
| | | {
|
| | | taskFeedbackFuncs.Add(succFuncs[0]);
|
| | | }
|
| | | else
|
| | | {
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | }
|
| | | TaskFeedbackFuncWin.funcTitle = funcTitle;
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | |
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | if (config.onlyOneFunc != null &&
|
| | | index < config.onlyOneFunc.Length && config.onlyOneFunc[index] == 1)
|
| | | {
|
| | | taskFeedbackFuncs.Add(succFuncs[0]);
|
| | | }
|
| | | else
|
| | | {
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | }
|
| | | TaskFeedbackFuncWin.funcTitle = funcTitle;
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | |
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | if (config.onlyOneFunc != null &&
|
| | | index < config.onlyOneFunc.Length && config.onlyOneFunc[index] == 1)
|
| | | {
|
| | | taskFeedbackFuncs.Add(succFuncs[0]);
|
| | | }
|
| | | else
|
| | | {
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | }
|
| | | TaskFeedbackFuncWin.funcTitle = funcTitle;
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | |
| | | var skyTowerConfig = SkyTowerConfig.Get(config.condition);
|
| | | if (skyTowerConfig != null)
|
| | | {
|
| | | return PlayerDatas.Instance.baseData.FightPoint >= skyTowerConfig.fightPower;
|
| | | if (feedback.totalPoints > 0 && PlayerDatas.Instance.baseData.FightPoint < skyTowerConfig.fightPower)
|
| | | {
|
| | | condition = reikiRootModel.GetReikiRootTotalPointWithFree() >= feedback.totalPoints ? 0 : 1;
|
| | | return false;
|
| | | }
|
| | | else
|
| | | {
|
| | | return PlayerDatas.Instance.baseData.FightPoint >= skyTowerConfig.fightPower;
|
| | | }
|
| | | }
|
| | | }
|
| | | break;
|
| | |
| | | public List<Item> items;
|
| | | public Dictionary<int, List<int[]>> reikiRoots;
|
| | | public List<int[]> failFuns;
|
| | | public int totalPoints;
|
| | |
|
| | | public int IndexOfSideTasks(int taskId)
|
| | | {
|
| | |
| | | string clickTargetName;
|
| | | Transform m_ClickTarget;
|
| | | RectTransform rectTransform { get { return this.transform as RectTransform; } }
|
| | | RectMask2D mask;
|
| | |
|
| | | public void BeginGuide(int _guide)
|
| | | {
|
| | |
| | |
|
| | | clickTargetName = string.Empty;
|
| | | m_ClickTarget = null;
|
| | | mask = null;
|
| | | m_ClickHintRoot.gameObject.SetActive(false);
|
| | | StopEffect();
|
| | | FindClickTarget();
|
| | |
| | | UnAttachTrigger();
|
| | | clickTargetName = string.Empty;
|
| | | m_ClickTarget = null;
|
| | | mask = null;
|
| | | FunctionalGuideCenter.Instance.FinishGuide(guide);
|
| | |
|
| | | guide = 0;
|
| | |
| | | UnAttachTrigger();
|
| | | clickTargetName = string.Empty;
|
| | | m_ClickTarget = null;
|
| | |
|
| | | mask = null;
|
| | | var config = GuideConfig.Get(guide);
|
| | | if (config != null)
|
| | | {
|
| | |
| | | {
|
| | | UnAttachTrigger();
|
| | | m_ClickTarget = null;
|
| | | mask = null;
|
| | | protectTimer = 0f;
|
| | | }
|
| | | }
|
| | |
|
| | | FindClickTarget();
|
| | |
|
| | | if (mask != null)
|
| | | {
|
| | | this.rectTransform.position = mask.rectTransform.position;
|
| | | }
|
| | |
|
| | | if (guide == 0 || NewBieCenter.Instance.IsGuideCompleted(guide))
|
| | | {
|
| | | UnAttachTrigger();
|
| | | clickTargetName = string.Empty;
|
| | | m_ClickTarget = null;
|
| | | mask = null;
|
| | | guide = 0;
|
| | | FunctionalGuideBehaviourPool.Recycle(this.gameObject);
|
| | | }
|
| | |
| | | trigger.onClick.AddListener(ClickToCompleteGuide);
|
| | | }
|
| | |
|
| | | var mask = m_ClickTarget.GetComponentInParent<RectMask2D>();
|
| | | mask = m_ClickTarget.GetComponentInParent<RectMask2D>();
|
| | | if (mask != null)
|
| | | {
|
| | | this.rectTransform.sizeDelta = mask.rectTransform.sizeDelta;
|
| | |
| | | this.m_Title.text = RealmConfig.Get(realm).Name; |
| | | model.selectedLevelChangeEvent += OnSelected; |
| | | |
| | | DisplayBackGround(model.selectedLevel == this.level); |
| | | m_Select.SetListener(Select); |
| | | } |
| | | |
| | |
| | | public int playerRealm { get; private set; } |
| | | public int playerVipLevel { get; private set; } |
| | | public int wing { get; private set; } |
| | | public int reikiRootEffectId { get; private set; } |
| | | |
| | | public event Action selectedLevelChangeEvent; |
| | | Dictionary<int, EquipDetailsGroup> equipDetailsGroups = new Dictionary<int, EquipDetailsGroup>(); |
| | |
| | | this.playerRealm = info.realm; |
| | | this.playerVipLevel = info.vipLevel; |
| | | this.wing = info.wing; |
| | | this.reikiRootEffectId = info.reikiRootEffectId; |
| | | |
| | | SelectLevel(1); |
| | | WindowCenter.Instance.Open<OtherPlayerEquipWin>(); |
| | | } |
| | | |
| | | public void SelectLevel(int level) |
| | |
| | | if (equipDetailsGroups.ContainsKey(level)) |
| | | { |
| | | selectedLevel = level; |
| | | if (!WindowCenter.Instance.IsOpen<OtherPlayerEquipWin>()) |
| | | { |
| | | WindowCenter.Instance.Open<OtherPlayerEquipWin>(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | var sendInfo = new CC002_tagCGViewCrossPlayerInfo(); |
| | | sendInfo.PlayerID = (uint)playerId; |
| | | sendInfo.EquipClassLV= (byte)level; |
| | | GameNetSystem.Instance.SendInfo(sendInfo); |
| | | } |
| | | break; |
| | |
| | | { |
| | | equipDetailsGroups[info.EquipClassLV] = new EquipDetailsGroup(playerJob, info.EquipClassLV, info.ItemData); |
| | | selectedLevel = info.EquipClassLV; |
| | | |
| | | if (!WindowCenter.Instance.IsOpen<OtherPlayerEquipWin>()) |
| | | { |
| | | WindowCenter.Instance.Open<OtherPlayerEquipWin>(); |
| | | } |
| | | } |
| | | |
| | | public Dictionary<int, EquipBrief> GetEquipBriefs() |
| | |
| | | public int realm; |
| | | public int vipLevel; |
| | | public int wing; |
| | | public int reikiRootEffectId; |
| | | } |
| | | |
| | | public struct SuitInfo |
| | |
| | | weaponId = appearance.weapon, |
| | | secondaryId = appearance.secondary, |
| | | keepRotation = resetRoleRotation, |
| | | reikiRootEffectId = model.reikiRootEffectId, |
| | | }); |
| | | |
| | | resetRoleRotation = false; |
| | |
| | | case 5:
|
| | | if (!WindowCenter.Instance.IsOpen<RoleParticularsWin>())
|
| | | {
|
| | | RoleParticularsWin.viewType = viewPlayerType;
|
| | | WindowCenter.Instance.Open<RoleParticularsWin>();
|
| | | }
|
| | | break;
|
| | |
| | | [SerializeField] Text m_FightPower;
|
| | | [SerializeField] RawImage m_RawPlayer;
|
| | |
|
| | | public static int viewType = -1;
|
| | |
|
| | | RoleParticularModel model { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
|
| | | FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel<FriendsModel>(); } }
|
| | | OtherPlayerEquipModel otherPlayerEquipModel { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } }
|
| | |
| | |
|
| | | otherPlayerEquipModel.ViewPlayerEquip(new OtherPlayerEquipModel.PlayerBriefInfo()
|
| | | {
|
| | | viewType = model.viewPlayerType,
|
| | | viewType = viewType,
|
| | | id = model.viewPlayer,
|
| | | realm = viewPlayerData.rolePropData.RealmLV,
|
| | | job = viewPlayerData.rolePropData.Job,
|
| | | vipLevel = viewPlayerData.rolePropData.VIPLV,
|
| | | wing = wing,
|
| | | reikiRootEffectId = (int)viewPlayerData.rolePropData.EquipShowSwitch / 1000 % 1000,
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | [SerializeField] Transform m_Container;
|
| | | [SerializeField] Button m_Induction;
|
| | |
|
| | | int taskId = 0;
|
| | |
|
| | | TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
| | | TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } }
|
| | |
|
| | | private void Awake()
|
| | | {
|
| | | m_Induction.SetListener(OnInduction);
|
| | | }
|
| | |
|
| | | public void Display()
|
| | | public void Display(int taskId)
|
| | | {
|
| | | this.taskId = taskId;
|
| | |
|
| | | m_Container.gameObject.SetActive(true);
|
| | | model.onInductionTaskComplete -= OnInductionTaskComplete;
|
| | | model.onInductionTaskComplete += OnInductionTaskComplete;
|
| | |
| | |
|
| | | private void OnInduction()
|
| | | {
|
| | | if (taskModel.GetTaskStatus(taskId) == TaskModel.TaskStatus.CardLevel)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("TaskInductionError_2");
|
| | | return;
|
| | | }
|
| | |
|
| | | var pak = new CA512_tagCMThinkMagicWeapon();
|
| | | pak.MWID = (uint)model.selectedTreasure;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | |
| | | [SerializeField] VerticalLayoutGroup m_ContainerTasks;
|
| | | [SerializeField] List<Text> m_TaskNames;
|
| | |
|
| | | public Text taskName
|
| | | {
|
| | | public Text taskName {
|
| | | get { return m_TaskNames[0]; }
|
| | | }
|
| | |
|
| | | public VerticalLayoutGroup taskLayout
|
| | | {
|
| | | public VerticalLayoutGroup taskLayout {
|
| | | get { return m_ContainerTasks; }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | var tasks = clues[clue];
|
| | | var taskConfig = TaskListConfig.Get(tasks[0]);
|
| | | this.gameObject.name = StringUtility.Contact("HumanTreasureTaskCell_", taskConfig.TaskID);
|
| | | m_ClueName.text = taskConfig.clueName;
|
| | |
|
| | | var clueState = model.GetClueState(model.selectedTreasure, clue);
|
| | |
| | | else if (type == ScrollerDataType.Normal)
|
| | | {
|
| | | var taskCell = cell as HumanInductionTaskCell;
|
| | | taskCell.Display();
|
| | | taskCell.Display(cell.index);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | case JumpUIType.ExchangeActiveToken:
|
| | | SetJumpLogic<ExchangeActiveTokenWin>();
|
| | | break;
|
| | | case JumpUIType.SpiritWeapon:
|
| | | SetJumpLogic("SpiritEquipWin", 0 ,false);
|
| | | break;
|
| | | default:
|
| | | DebugEx.Log("未添加此跳转界面:" + jumpType);
|
| | | IsJumpState = false;
|
| | |
| | | SetJumpLogic<MultipleDifficultyDungeonWin>(0);
|
| | | }
|
| | |
|
| | | private void SetJumpLogic<T>(int _functionalOrder = 0, bool _forceSync = true) where T : Window
|
| | | private void SetJumpLogic<T>(int functionOrder = 0, bool sync = true) where T : Window
|
| | | {
|
| | | string curOpenWin = typeof(T).Name;
|
| | | if (WindowCenter.Instance.IsOpen(curOpenWin))
|
| | | SetJumpLogic(typeof(T).Name, functionOrder, sync);
|
| | | }
|
| | |
|
| | | private void SetJumpLogic(string windowName, int functionOrder, bool sync)
|
| | | {
|
| | | if (WindowCenter.Instance.IsOpen(windowName))
|
| | | {
|
| | | Window window = WindowCenter.Instance.Get(curOpenWin);
|
| | | window.functionOrder = _functionalOrder;
|
| | | Window window = WindowCenter.Instance.Get(windowName);
|
| | | window.functionOrder = functionOrder;
|
| | | window.ChildActive();
|
| | | return;
|
| | | }
|
| | | GetPreAllOpenWin();
|
| | | jumpWinNameDict.Add(jumpPhase, curOpenWin);
|
| | | jumpWinNameDict.Add(jumpPhase, windowName);
|
| | | jumpType = _tagWinSearchModel.Type;
|
| | | switch (_tagWinSearchModel.Type)
|
| | | {
|
| | | case 1:
|
| | | WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
|
| | | WindowCenter.Instance.Open<T>(_forceSync, _functionalOrder);
|
| | | WindowCenter.Instance.Open(windowName, sync, functionOrder);
|
| | | WindowCenter.Instance.jumpWindowCloseEvent += CloseWindow;
|
| | | break;
|
| | | case 2:
|
| | | WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
|
| | | WindowCenter.Instance.Open<T>(_forceSync, _functionalOrder);
|
| | | WindowCenter.Instance.Open(windowName, sync, functionOrder);
|
| | | WindowCenter.Instance.jumpWindowCloseEvent += CloseWindow;
|
| | | break;
|
| | | case 3:
|
| | | WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
|
| | | WindowCenter.Instance.Open<T>(_forceSync, _functionalOrder);
|
| | | WindowCenter.Instance.Open(windowName, sync, functionOrder);
|
| | | WindowCenter.Instance.jumpWindowCloseEvent += CloseWindow;
|
| | | break;
|
| | | case 4:
|
| | | WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
|
| | | WindowCenter.Instance.Open<T>(_forceSync, _functionalOrder);
|
| | | WindowCenter.Instance.Open(windowName, sync, functionOrder);
|
| | | WindowCenter.Instance.jumpWindowCloseEvent += CloseWindow;
|
| | | break;
|
| | | case 5:
|
| | | WindowCenter.Instance.Open<T>(_forceSync, _functionalOrder);
|
| | | WindowCenter.Instance.Open(windowName, sync, functionOrder);
|
| | | WindowCenter.Instance.jumpWindowCloseEvent += CloseWindow;
|
| | | break;
|
| | | default:
|
| | |
| | | CrossServerBoss = 335,//蓬莱仙境
|
| | | Alchemy10 = 336,
|
| | | Alchemy11 = 337,
|
| | | SpiritWeapon = 338,//魂器界面
|
| | |
|
| | | DhszTs = 1001,//定海神针功法提升界面
|
| | | HyqTs = 1002,//皓月枪功法提升界面
|
| | |
| | | yield return null;
|
| | | }
|
| | |
|
| | | EffectMgr.Instance.RecyleUIEffect(unLockEffectId, effect.gameObject);
|
| | | if (effect.gameObject != null)
|
| | | {
|
| | | EffectMgr.Instance.RecyleUIEffect(unLockEffectId, effect.gameObject);
|
| | | }
|
| | | }
|
| | |
|
| | | EffectMgr.Instance.PlayUIEffect(3053, 3500, areaBehaviour.transform, false);
|