Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -166,7 +166,7 @@ Register(typeof(HA814_tagMCMakeItemAnswer), typeof(DTCA814_tagMCMakeItemAnswer)); //得到合成结果回应 Register(typeof(HA317_tagMCAllEquipAttrActiveInfo), typeof(DTCA317_tagMCAllEquipAttrActiveInfo)); //得到激活全身星级和全身强化的信息 Register(typeof(HA321_tagMCPrayElixirResult), typeof(DTCA321_tagMCPrayElixirResult)); //祈福丹药结果 Register(typeof(HA921_tagUpdatePlayerNameResult), typeof(DTCA921_tagUpdatePlayerNameResult)); //玩家改名 #region 背包 Register(typeof(H0724_tagRolePackCanUseCount), typeof(DTC0724_tagRolePackCanUseCount)); Register(typeof(H0704_tagRolePackRefresh), typeof(DTC0704_tagRolePackRefresh)); Core/NetworkPackage/ClientPack/ClientToMapServer/CA1_Sys.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 07973e7d7a8d7dc499729078a1b20c19 folderAsset: yes timeCreated: 1538027291 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ClientPack/ClientToMapServer/CA1_Sys/CA122_tagUpdatePlayerName.cs
New file @@ -0,0 +1,24 @@ using UnityEngine; using System.Collections; //A1 22 角色改名 #tagUpdatePlayerName public class CA122_tagUpdatePlayerName : GameNetPackBasic { public byte NewNameLen; public string NewName; public byte ItemIndex; //改名物品在背包中的位置 public uint ServerID; public CA122_tagUpdatePlayerName () { combineCmd = (ushort)0x03FE; _cmd = (ushort)0xA122; } public override void WriteToBytes () { WriteBytes (NewNameLen, NetDataType.BYTE); WriteBytes (NewName, NetDataType.Chars, NewNameLen); WriteBytes (ItemIndex, NetDataType.BYTE); WriteBytes (ServerID, NetDataType.DWORD); } } Core/NetworkPackage/ClientPack/ClientToMapServer/CA1_Sys/CA122_tagUpdatePlayerName.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: f1760446cb920c8429e4e5a021a6452b timeCreated: 1538027291 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA921_tagUpdatePlayerNameResult.cs
New file @@ -0,0 +1,20 @@ using UnityEngine; using System.Collections; using Snxxz.UI; //A9 21 角色改名结果 #tagUpdatePlayerNameResult public class DTCA921_tagUpdatePlayerNameResult : DtcBasic { RoleModel roleModel { get { return ModelCenter.Instance.GetModel<RoleModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA921_tagUpdatePlayerNameResult vNetData = vNetPack as HA921_tagUpdatePlayerNameResult; roleModel.ServerRenameResult(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA921_tagUpdatePlayerNameResult.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 104734d3ab0b9eb4282d52f46be5f76c timeCreated: 1538027291 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HA9_Function/HA921_tagUpdatePlayerNameResult.cs
New file @@ -0,0 +1,17 @@ using UnityEngine; using System.Collections; //A9 21 角色改名结果 #tagUpdatePlayerNameResult public class HA921_tagUpdatePlayerNameResult : GameNetPackBasic { public byte Result; //角色改名结果 public HA921_tagUpdatePlayerNameResult () { _cmd = (ushort)0xA921; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out Result, vBytes, NetDataType.BYTE); } } Core/NetworkPackage/ServerPack/HA9_Function/HA921_tagUpdatePlayerNameResult.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 658f4d57fa7989c47ab85b6bdaf40211 timeCreated: 1538027291 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Dogz/DogzActiveWin.cs
@@ -101,7 +101,7 @@ } m_Controller.Restart(); } int jumpIndex = model.presentSelectDogz - 1 > 0 ? model.presentSelectDogz - 1 : 0; int jumpIndex = model.presentSelectDogz - 2 > 0 ? model.presentSelectDogz - 2 : 0; m_Controller.JumpIndex(jumpIndex); } System/Dogz/DogzModel.cs
@@ -695,13 +695,26 @@ { var configs = Config.Instance.GetAllValues<DogzConfig>(); presentSelectDogz = configs[0].ID; foreach (var key in m_DogzEquipLimit.Keys) if(dogzFuncRedpoint.state == RedPointState.Simple) { Redpoint redpoint = GetSingleDogzRedpointById(key); if (redpoint.state == RedPointState.Simple) foreach (var key in m_DogzEquipLimit.Keys) { presentSelectDogz = key; break; Redpoint redpoint = GetSingleDogzRedpointById(key); if (redpoint.state == RedPointState.Simple) { presentSelectDogz = key; break; } } } else { foreach(var key in dogzAssistStateDict.Keys) { if(TryGetAssistDogzState(key)) { presentSelectDogz = presentSelectDogz > key ? presentSelectDogz : key; } } } } @@ -776,18 +789,18 @@ value.state = RedPointState.None; } bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false; int minAlreadyAssistId = 0; foreach (var dogzId in m_DogzEquipLimit.Keys) { if (TryGetAssistDogzState(dogzId) && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0)) { minAlreadyAssistId = dogzId; } } if (!isMaxAssistNum) { int minAlreadyAssistId = 0; foreach (var dogzId in m_DogzEquipLimit.Keys) { if (TryGetAssistDogzState(dogzId) && ((minAlreadyAssistId < dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0)) { minAlreadyAssistId = dogzId; } } int maxDogzId = 0; foreach(var dogzId in m_DogzEquipLimit.Keys) { @@ -815,7 +828,8 @@ { var equips = GetDogzEquips(dogzId); int equipNum = equips == null ? 0 : equips.Count; if(!TryGetAssistDogzState(dogzId) && equipNum == 5) if(!TryGetAssistDogzState(dogzId) && equipNum == 5 && ((minAlreadyAssistId != 0 && dogzId > minAlreadyAssistId) || minAlreadyAssistId == 0)) { Redpoint assistRedpoint = GetDogzAssistRedpointById(dogzId); if (assistRedpoint.state == RedPointState.None) @@ -903,7 +917,7 @@ foreach (var dogzId in m_DogzEquipLimit.Keys) { if(TryGetAssistDogzState(dogzId) && ((minAlreadyAssistId < dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0)) && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0)) { minAlreadyAssistId = dogzId; } System/Dungeon/DungeonAncientKingWin.cs
New file @@ -0,0 +1,93 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, September 27, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DungeonAncientKingWin : Window { [SerializeField] Text m_AncientKingName; [SerializeField] Text m_AncientKingPoint; [SerializeField] ItemCell[] m_Items; [SerializeField] Button m_Close; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { model.updateMissionEvent -= UpdateTargets; UpdateTargets(); DisplayAward(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.updateMissionEvent -= UpdateTargets; } protected override void OnAfterClose() { } #endregion private void UpdateTargets() { var _help = model.mission; m_AncientKingName.text = _help.topName; m_AncientKingPoint.text = UIHelper.ReplaceLargeNum(_help.topScore); } private void DisplayAward() { var awards = GeneralConfig.Instance.ancientKingAwards; for (int i = 0; i < m_Items.Length; i++) { m_Items[i].cellBtn.RemoveAllListeners(); if (i < awards.Count) { var award = awards[i]; m_Items[i].gameObject.SetActive(true); ItemCellModel itemCellModel = new ItemCellModel(award.id, true, (ulong)award.count, award.bind ? 1 : 0); m_Items[i].Init(itemCellModel); m_Items[i].cellBtn.AddListener(() => { ItemAttrData itemAttrData = new ItemAttrData(award.id, true, (ulong)award.count, -1, award.bind ? 1 : 0); ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData); }); } else { m_Items[i].gameObject.SetActive(false); } } } } } System/Dungeon/DungeonAncientKingWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 174d70b8ee292354fb10efc54511ffb9 timeCreated: 1538034810 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Dungeon/DungeonAncientTargetWin.cs
@@ -1,55 +1,55 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DungeonAncientTargetWin : Window { [SerializeField] List<Text> m_DungeonTargets; [SerializeField] DungeonTargetBehaviour m_DungeonTargetBehaviour; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); } } protected override void AddListeners() { } protected override void BindController() { } protected override void OnAfterClose() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.updateMissionEvent -= UpdateTargets; } protected override void OnPreOpen() { model.updateMissionEvent += UpdateTargets; m_DungeonTargetBehaviour.Init(31160); UpdateTargets(); } private void UpdateTargets() { var _help = model.mission; m_DungeonTargets[0].text = _help.topName; m_DungeonTargets[1].text = UIHelper.ReplaceLargeNum(_help.topScore); } } } using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DungeonAncientTargetWin : Window { //[SerializeField] List<Text> m_DungeonTargets; [SerializeField] DungeonTargetBehaviour m_DungeonTargetBehaviour; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); } } protected override void AddListeners() { } protected override void BindController() { } protected override void OnAfterClose() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { //model.updateMissionEvent -= UpdateTargets; } protected override void OnPreOpen() { //model.updateMissionEvent += UpdateTargets; m_DungeonTargetBehaviour.Init(31160); //UpdateTargets(); } private void UpdateTargets() { //var _help = model.mission; //m_DungeonTargets[0].text = _help.topName; //m_DungeonTargets[1].text = UIHelper.ReplaceLargeNum(_help.topScore); } } } System/Dungeon/DungeonFightWin.cs
@@ -27,6 +27,7 @@ [SerializeField] RectTransform m_ContainerResPoint; [SerializeField] RectTransform m_ContainerAncient; [SerializeField] Button m_AncientBtn; [SerializeField] Button m_AncientKing; [SerializeField] DungeonItemCollect m_ItemCollect; [SerializeField] DungeonGuardSkyBehaviour m_GuardSky; [SerializeField] DungeonBossBriefInfoContainer m_BossInfosContainer; @@ -55,6 +56,7 @@ { m_ExitDungeon.AddListener(ExitDungeon); m_AncientBtn.onClick.AddListener(OnAncientBtn); m_AncientKing.onClick.AddListener(AncientKing); } protected override void OnPreOpen() @@ -320,6 +322,18 @@ } } private void AncientKing() { if (WindowCenter.Instance.IsOpen<DungeonAncientKingWin>()) { WindowCenter.Instance.CloseImmediately<DungeonAncientKingWin>(); } else { WindowCenter.Instance.Open<DungeonAncientKingWin>(); } } private void UpdateDungeonExitTime() { if (existSurplusTime > 0f) System/GeneralConfig/GeneralConfig.cs
@@ -5,6 +5,7 @@ using System; using System.Text.RegularExpressions; using System.Linq; using Snxxz.UI; public class GeneralConfig : Singleton<GeneralConfig> { @@ -140,6 +141,8 @@ public string teamWorldCall; public int teamWorldCallInviteCount; public List<Item> ancientKingAwards = new List<Item>(); public void Init() { @@ -492,6 +495,21 @@ teamWorldCall = GetInputString("TeamWorldCall"); teamWorldCallInviteCount = GetInt("TeamWorldCall", 2); var ancientKingAwradConfig = Config.Instance.Get<FuncConfigConfig>("ElderBattlefieldTopAward"); if (ancientKingAwradConfig != null) { var itemArray = LitJson.JsonMapper.ToObject<int[][]>(ancientKingAwradConfig.Numerical1); for (int k = 0; k < itemArray.Length; k++) { ancientKingAwards.Add(new Item() { id = itemArray[k][0], count = itemArray[k][1], bind = itemArray[k][2] == 1, }); } } } catch (Exception ex) { System/Role/RoleModel.cs
@@ -30,7 +30,31 @@ public override void UnInit() { } #region 协议 public void ServerRenameResult(HA921_tagUpdatePlayerNameResult renameResult) { switch ((RoleRenameResult)renameResult.Result) { case RoleRenameResult.MoneyErr: SysNotifyMgr.Instance.ShowTip("GoldErr"); break; case RoleRenameResult.NameRuleErr: MessageWin.Inst.ShowFixedTip(Language.Get("L1007")); break; case RoleRenameResult.NameLengErr: break; case RoleRenameResult.NameRepeatErr: SysNotifyMgr.Instance.ShowTip("RepeatName"); break; case RoleRenameResult.RenameFailErr: break; case RoleRenameResult.RenameSuccess: SysNotifyMgr.Instance.ShowTip("RepeatName"); break; } } #endregion } } System/Role/RoleRenameWin.cs
New file @@ -0,0 +1,140 @@ using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RoleRenameWin : Window { [SerializeField] InputField renameInput; [SerializeField] Button sureBtn; [SerializeField] Button closeBtn; [SerializeField] ItemCell itemCell; PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } protected override void BindController() { } protected override void AddListeners() { sureBtn.AddListener(ClickRenameBtn); closeBtn.AddListener(CloseClick); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } private void OnDisplay() { ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(953); if (itemConfig == null) return; ItemCellModel cellModel = new ItemCellModel(953,false,(ulong)GetRenameToolNum()); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(()=> { ItemAttrData attrData = new ItemAttrData(953); tipsModel.SetItemTipsModel(attrData); }); } private int GetRenameToolNum() { return playerPack.GetItemCountByID(PackType.rptItem,953); } private int GetRenameToolIndex() { SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem); if (singlePack == null) return -1; List<int> indexlist = singlePack.ItemIndexlist(953,1); if(indexlist.Count > 0) { return indexlist[0]; } return -1; } private void ClickRenameBtn() { if (renameInput.text.Equals(string.Empty)) { MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameNull")); return; } if(GetRenameToolNum() < 1) { MessageWin.Inst.ShowFixedTip("角色改名卡不足"); return; } if (Encoding.UTF8.GetBytes(renameInput.text).Length < 6) { MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort")); return; } if (!CheckNameLengthLimit(renameInput.text)) { MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameLimit")); return; } if (DirtyWordConfig.IsDirtWord(renameInput.text) || UIHelper.HasSpecialCharac(renameInput.text) || DirtyNameConfig.IsDirtName(renameInput.text)) { MessageWin.Inst.ShowFixedTip(Language.Get("L1007")); return; } LanguageVerify.Instance.VerifyPlayerName(renameInput.text, 0, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName),PlayerDatas.Instance.baseData.LV, PlayerDatas.Instance.baseData.VIPLv, (bool ok, string name) => { if(ok) { CA122_tagUpdatePlayerName renamePlayerName = new CA122_tagUpdatePlayerName(); renamePlayerName.NewNameLen = (byte)name.Length; renamePlayerName.NewName = name; renamePlayerName.ItemIndex = (byte)GetRenameToolIndex(); renamePlayerName.ServerID = (uint)ServerListCenter.Instance.currentServer.region_flag; GameNetSystem.Instance.SendInfo(renamePlayerName); } }); } private bool CheckNameLengthLimit(string _value) { var _chs = Regex.Replace(_value, "[^\u4e00-\u9fa5]", string.Empty); if (_chs.Length > GeneralConfig.Instance.playerNameLength / 3) { return false; } if (_value.Length > 6) { return false; } return true; } } } System/Role/RoleRenameWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 267817e3e5c4b0e44b2b6c98eca954bc timeCreated: 1538028978 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Skill/QuickSetting.cs
@@ -15,6 +15,7 @@ quickSettingDic.Add(QuickSettingType.FairyLeagueGuide, new QuickSettingRange(QuickSettingType.FairyLeagueGuide, 1)); quickSettingDic.Add(QuickSettingType.AutoUseXp, new QuickSettingRange(QuickSettingType.AutoUseXp, 1)); quickSettingDic.Add(QuickSettingType.SpAnim, new QuickSettingRange(QuickSettingType.SpAnim, 10)); quickSettingDic.Add(QuickSettingType.TreasureHighestAnim, new QuickSettingRange(QuickSettingType.TreasureHighestAnim, 10)); setting = new string(UCharacter, 100); DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent; } @@ -109,6 +110,7 @@ FairyLeagueGuide, AutoUseXp, SpAnim, TreasureHighestAnim } public struct QuickSettingRange { System/Treasure/TreasureComponent.cs
@@ -45,6 +45,7 @@ SFXController lockEffect; SFXController challengeSfx; SFXController specialSfx; SFXController highestSfx; public Treasure3DConfig paramConfig { get; set; } @@ -74,6 +75,7 @@ RequestBottom(); RequestBackLight(); RequestRedpoint(); RequestHighestEffect(); UpdateTreasureState(); UpdateParam(); RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; @@ -89,6 +91,7 @@ RecycleCollectingSfx(); RecycleRedpoint(); RecycleCondition(); RecycleHighestEffect(); RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; } interactProcessor.SetActive(_active); @@ -339,6 +342,11 @@ CloserState(); } UpdateParam(); } public void UpdateTreasureStage() { RequestHighestEffect(); } private void RequestBackLight() @@ -704,6 +712,35 @@ } } public void RequestHighestEffect() { RecycleHighestEffect(); Treasure _treasure; if (category == TreasureCategory.Human && model.TryGetTreasure(treasureId, out _treasure) && _treasure.IsHighestStage && !model.GetTreasureFinishAnim(treasureId)) { highestSfx = SFXPlayUtility.Instance.Play(5198, root); if (highestSfx != null) { highestSfx.duration = 0; LayerUtility.SetLayer(highestSfx.gameObject, LayerUtility.UILayer, true); highestSfx.transform.localPosition = Vector3.zero; highestSfx.transform.LookAt(UI3DTreasureSelectStage.Instance.center); } } } public void RecycleHighestEffect() { if (highestSfx != null) { highestSfx.gameObject.SetActive(false); SFXPlayUtility.Instance.Release(highestSfx); highestSfx = null; } } public void CloserState() { RecycleBottom(); @@ -713,6 +750,7 @@ RecycleLockEffect(); RecycleRedpoint(); RecycleCondition(); RecycleHighestEffect(); RequestSpecialEffect(); Treasure _treasure; @@ -741,6 +779,7 @@ RequestBottom(); RequestName(); RequestRedpoint(); RequestHighestEffect(); UpdateTreasureState(); RecycleSpecialEffect(); UpdateParam(); @@ -793,6 +832,31 @@ UI3DTreasureSelectStage.Instance.CompleteUnlock(); model.treasureGotoId = 0; } public void PlayHighestShow() { RecycleHighestEffect(); var _effect = SFXPlayUtility.Instance.Play(5197, root); if (_effect != null) { LayerUtility.SetLayer(_effect.gameObject, LayerUtility.UILayer, true); _effect.transform.LookAt(UI3DTreasureSelectStage.Instance.center); _effect.transform.localPosition = Vector3.zero; _effect.duration = 3.0f; } SnxxzGame.Instance.StartCoroutine(Co_HighestShow()); } IEnumerator Co_HighestShow() { yield return WaitingForSecondConst.GetWaitForSeconds(2.2f); model.SetTreasureFinishAnim(treasureId, false); if (display) { UpdateTreasureStage(); } UI3DTreasureSelectStage.Instance.ReCheckTreasureHighest(); } } } System/Treasure/TreasureModel.cs
@@ -378,6 +378,38 @@ QuickSetting.Instance.SendPackage(); } public bool GetTreasureFinishAnim(int _treasureId) { if (_treasureId == 101) { return false; } var list = GetTreasureCategory(TreasureCategory.Human); var index = list.IndexOf(_treasureId); if (index == -1) { return false; } uint value = 0; uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, 0), out value); return MathUtility.GetBitValue(value, (ushort)index); } public void SetTreasureFinishAnim(int _treasureId, bool anim = true) { var list = GetTreasureCategory(TreasureCategory.Human); var index = list.IndexOf(_treasureId); if (index == -1) { return; } uint value = 0; uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, 0), out value); int bitValue = MathUtility.SetBitValue((int)value, (ushort)index, anim); QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, bitValue); QuickSetting.Instance.SendPackage(); } public bool TryGetUnlockShowTreasure(out int _id) { _id = 0; @@ -1152,6 +1184,10 @@ _up = true; } treasure.UpdateTreasureLevelExp(package.InfoList[i].LV, (int)package.InfoList[i].Exp, package.InfoList[i].State == 1); if (serverInited && treasure.IsHighestStage) { SetTreasureFinishAnim(treasure.id); } if (treasureLevelProgressUpdateEvent != null) { treasureLevelProgressUpdateEvent(treasure.id); System/Treasure/TreasureSelectWin.cs
@@ -43,7 +43,8 @@ m_HumanBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Human || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -53,7 +54,8 @@ m_DemonBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Demon || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -63,7 +65,8 @@ m_FairyBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Fairy || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -71,7 +74,7 @@ }); m_BackBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.UnlockShowing) if (UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -83,6 +86,7 @@ protected override void OnPreOpen() { UI3DTreasureSelectStage.Instance.UnlockShowing = false; UI3DTreasureSelectStage.Instance.treasureFinishShowing = false; if (!UI3DTreasureSelectStage.Instance.IsOpen) { UI3DTreasureSelectStage.Instance.Open(false, model.currentCategory); @@ -90,6 +94,8 @@ UI3DTreasureSelectStage.Instance.OnCameraStartEvent += OnCameraStartEvent; UI3DTreasureSelectStage.Instance.OnCameraBackComplete += OnCameraBackComplete; UI3DTreasureSelectStage.Instance.OnUnlockComplete += OnUnlockComplete; UI3DTreasureSelectStage.Instance.OnHighestComplete += OnHighestComplete; UI3DTreasureSelectStage.Instance.startAnimation += StartAnimation; m_TreasureDrag.OnValueChange += OnValueChange; m_TreasureDrag.OnDragComplete += OnDragComplete; m_TreasureDrag.OnDragBegine += OnDragBegine; @@ -116,6 +122,8 @@ UI3DTreasureSelectStage.Instance.OnCameraStartEvent -= OnCameraStartEvent; UI3DTreasureSelectStage.Instance.OnCameraBackComplete -= OnCameraBackComplete; UI3DTreasureSelectStage.Instance.OnUnlockComplete -= OnUnlockComplete; UI3DTreasureSelectStage.Instance.OnHighestComplete -= OnHighestComplete; UI3DTreasureSelectStage.Instance.startAnimation -= StartAnimation; m_TreasureDrag.OnValueChange -= OnValueChange; m_TreasureDrag.OnDragComplete -= OnDragComplete; m_TreasureDrag.OnDragBegine -= OnDragBegine; @@ -184,8 +192,9 @@ private void UpdateButtonState() { var _closer = UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.UnlockShowing; if (UI3DTreasureSelectStage.Instance.UnlockShowing) || UI3DTreasureSelectStage.Instance.UnlockShowing|| UI3DTreasureSelectStage.Instance.treasureFinishShowing; if (UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { m_BackBtn.gameObject.SetActive(false); } @@ -199,6 +208,16 @@ m_FairyBtn.gameObject.SetActive(!_closer); } private void StartAnimation() { UpdateButtonState(); } private void OnHighestComplete() { UpdateButtonState(); } private void OnUnlockComplete() { UpdateButtonState(); System/Treasure/UI3DTreasureSelectStage.cs
@@ -156,6 +156,7 @@ public bool CloserComplete { get; private set; } public int jumpTreasure { get; private set; } public bool UnlockShowing { get; set; } public bool treasureFinishShowing { get; set; } public bool Preloading { get; private set; } public GameObject currentTreasureTitle @@ -212,6 +213,8 @@ public event Action OnCameraCloserComplete; public event Action OnCameraBackEvent; public event Action OnUnlockComplete; public event Action OnHighestComplete; public event Action startAnimation; private Dictionary<TreasureCategory, List<TreasureComponent>> m_Treasures = new Dictionary<TreasureCategory, List<TreasureComponent>>(); private Dictionary<TreasureCategory, bool> m_PreloadDict = new Dictionary<TreasureCategory, bool>(); @@ -298,6 +301,7 @@ } model.treasureStateChangeEvent += TreasureStateChangeEvent; model.treasureStageUpEvent += TreasureStageUpEvent; } IEnumerator Co_PreLoad(TreasureCategory _category, Action callback) @@ -320,6 +324,16 @@ { HideAllTreasure(); CloseRenderCamera(); IsCloser = false; CloserComplete = false; UnlockShowing = false; treasureFinishShowing = false; IsOpen = false; jumping = false; Preloading = false; jumpTreasure = 0; var movecomponent = m_CameraControl.GetComponent<SmoothMove>(); if (movecomponent != null) { @@ -327,19 +341,12 @@ } m_CameraControl.localPosition = m_StartPosition; IsCloser = false; CloserComplete = false; UnlockShowing = false; IsOpen = false; jumping = false; Preloading = false; jumpTreasure = 0; CameraController.Instance.CameraObject.gameObject.SetActive(true); m_Camera.enabled = false; WindowCenter.Instance.uiRoot.baseCanvas.gameObject.SetActive(true); model.treasureStateChangeEvent -= TreasureStateChangeEvent; model.treasureStageUpEvent -= TreasureStageUpEvent; model.SetTreasureUnlockShow(currentCategory, 0); if (currentTreasureTitle != null) @@ -370,10 +377,25 @@ } } private void TreasureStageUpEvent(int _id) { var _list = m_Treasures[currentCategory]; var _component = _list.Find((x) => { return x.treasureId == _id; }); if (_component != null && _component.display) { _component.UpdateTreasureStage(); _component.SetLayer(CloserComplete ? LayerUtility.DefaultLayer : LayerUtility.UILayer); } } public void SelectTreasureCategory(TreasureCategory _type, bool _closer = false) { presentSelectIndex = 0; UnlockShowing = false; treasureFinishShowing = false; currentCategory = _type; model.currentCategory = currentCategory; @@ -442,7 +464,11 @@ { var _treasure = 0; int _index = -1; if (model.GetTreasureUnlockShow(currentCategory) != 0) if (CheckTreasureFinish(out _treasure)) { treasureFinishShowing = true; } else if (model.GetTreasureUnlockShow(currentCategory) != 0) { _treasure = model.GetTreasureUnlockShow(currentCategory); model.treasureGotoId = _treasure; @@ -469,6 +495,31 @@ }); } return _index; } private bool CheckTreasureFinish(out int treasureId) { treasureId = 0; if (currentCategory != TreasureCategory.Human) { return false; } var list = model.GetTreasureCategory(TreasureCategory.Human); for (int i = 0; i < list.Count; i++) { if (list[i] == 101) { continue; } Treasure treasure; if (model.TryGetTreasure(list[i], out treasure) && treasure.IsHighestStage && model.GetTreasureFinishAnim(list[i])) { treasureId = list[i]; return true; } } return false; } int Compare(int x, int y) @@ -591,9 +642,20 @@ } } public bool AllowPointClick() { if (IsCloser || UnlockShowing || jumping || draging || BossShowModel.Instance.BossShowing || treasureFinishShowing) { return false; } return true; } public void OnPointDownTreasure(int _treasureId) { if (IsCloser || UnlockShowing || jumping || draging || BossShowModel.Instance.BossShowing) if (!AllowPointClick()) { return; } @@ -622,6 +684,11 @@ var _component = m_Treasures[currentCategory][presentSelectIndex]; _component.PlayUnlockShow(); } else if (treasureFinishShowing) { var _component = m_Treasures[currentCategory][presentSelectIndex]; _component.PlayHighestShow(); } jumpTreasure = 0; } #endregion @@ -641,7 +708,7 @@ public void BegineDrag() { if (IsCloser || UnlockShowing) if (IsCloser || UnlockShowing || treasureFinishShowing) { return; } @@ -906,20 +973,22 @@ private void CameraBackComplete() { if (!IsOpen) { return; } IsCloser = false; if (OnCameraBackComplete != null) { OnCameraBackComplete(); } IsCloser = false; if (!IsOpen) { return; } var _list = m_Treasures[currentCategory]; for (int i = 0; i < _list.Count; i++) { _list[i].SetLayer(LayerUtility.UILayer); } ReCheckTreasureHighest(); } #endregion @@ -984,5 +1053,59 @@ } } #endregion public void ReCheckTreasureHighest() { treasureFinishShowing = false; if (!IsOpen) { return; } var treasureId = 0; if (CheckTreasureFinish(out treasureId)) { treasureFinishShowing = true; } else if (model.GetTreasureUnlockShow(currentCategory) != 0) { UnlockShowing = true; treasureId = model.GetTreasureUnlockShow(currentCategory); model.treasureGotoId = treasureId; } if (treasureId != 0) { var _index = m_Treasures[currentCategory].FindIndex((x) => { return x.treasureId == treasureId; }); if (_index == presentSelectIndex) { var _component = m_Treasures[currentCategory][presentSelectIndex]; if (UnlockShowing) { _component.PlayUnlockShow(); } else if (treasureFinishShowing) { _component.PlayHighestShow(); } } else { Goto(_index); } if (startAnimation != null) { startAnimation(); } } else { if (OnHighestComplete != null) { OnHighestComplete(); } } } } } Utility/EnumHelper.cs
@@ -189,6 +189,16 @@ Hostile, } public enum RoleRenameResult { MoneyErr = 0, //金钱不足 NameRuleErr = 1, //名字不合法 NameLengErr = 2, //名字长度错误 NameRepeatErr = 3, //重名 RenameFailErr = 4, //改名失败 RenameSuccess = 5, //成功 } /// <summary> /// <para>无意义 0</para> /// <para>自己 1</para>