Core/GameEngine/Model/Config/BossInfoConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, August 28, 2018 // [ Date ]: Thursday, August 30, 2018 //-------------------------------------------------------- using UnityEngine; @@ -13,8 +13,6 @@ public int NPCID { get ; private set ; } public int MapID { get ; private set ; } public int RelatedType { get ; private set ; } public int RelatedID { get ; private set ; } public int StoneNPCID { get ; private set ; } public override string getKey() @@ -29,11 +27,7 @@ MapID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; RelatedType=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; RelatedID=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; StoneNPCID=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; StoneNPCID=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; } catch (Exception ex) { Core/GameEngine/Model/Config/BossInfoConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: fd079b12ba8134442adceeacd5b31101 timeCreated: 1535441070 timeCreated: 1535630857 licenseType: Pro MonoImporter: serializedVersion: 2 Core/NetworkPackage/ClientPack/ClientToGameServer/CAC_Activity/CAC05_tagCGCallupFamilyMemberToBoss.cs
New file @@ -0,0 +1,18 @@ using UnityEngine; using System.Collections; // AC 05 召集仙盟成员打boss #tagCGCallupFamilyMemberToBoss public class CAC05_tagCGCallupFamilyMemberToBoss : GameNetPackBasic { public uint NPCID; public CAC05_tagCGCallupFamilyMemberToBoss () { combineCmd = (ushort)0x1801; _cmd = (ushort)0xAC05; } public override void WriteToBytes () { WriteBytes (NPCID, NetDataType.DWORD); } } Core/NetworkPackage/ClientPack/ClientToGameServer/CAC_Activity/CAC05_tagCGCallupFamilyMemberToBoss.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 43aa3574d2771834e8ae5a34858f6db8 timeCreated: 1535622545 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Activity/ActivityModel.cs
@@ -282,12 +282,6 @@ } } switch ((DailyQuestType)type) { case DailyQuestType.FairyGrabBoss: return false; } int entertimes = dailyQuestModel.GetDailyQuestCompletedTimes(type); if (dailyQuestModel.GetDailyQuestTotalTimes(cfg.ID) <= entertimes) { System/FairyAu/FairyCallMemberBehaviour.cs
New file @@ -0,0 +1,88 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FairyCallMemberBehaviour : MonoBehaviour { [SerializeField] Button m_CallMember; FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } private void Awake() { m_CallMember.AddListener(CallMember); } private void OnEnable() { model.bossGrabHintEvent += BossGrabHintEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; Display(); } private void OnDisable() { model.bossGrabHintEvent -= BossGrabHintEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; } private void BossGrabHintEvent() { Display(); } private void OnRefreshFairyInfo() { Display(); } void Display() { m_CallMember.gameObject.SetActive(CheckCallMember()); } bool CheckCallMember() { if (PlayerDatas.Instance.baseData.Family == 0 || !model.grabBossHintOpen) { return false; } var fairyMember = PlayerDatas.Instance.fairyData.mine; if (fairyMember == null || fairyMember.LV < model.callMemberDuty) { return false; } return true; } private void CallMember() { var bossId = 0; var list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFightBoss); if (list != null) { for (int i = 0; i < list.Count; i++) { GA_NpcFightBoss bossActor = list[i] as GA_NpcFightBoss; if (bossActor != null && model.bosses.Contains(bossActor.NpcConfig.NPCID)) { bossId = bossActor.NpcConfig.NPCID; break; } } } if (bossId != 0) { CAC05_tagCGCallupFamilyMemberToBoss pak = new CAC05_tagCGCallupFamilyMemberToBoss(); pak.NPCID = (uint)bossId; GameNetSystem.Instance.SendInfo(pak); } } } } System/FairyAu/FairyCallMemberBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 3ab85cfac6550a54f8cfad48d8a105d2 timeCreated: 1535619165 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FairyAu/FairyGrabBossModel.cs
@@ -73,6 +73,9 @@ } public bool grabBossHintOpen { get; private set; } public int callMemberDuty { get; private set; } public int callMemberSeconds { get; private set; } private bool serverInited = false; private DateTime lastQueryProgressTime = DateTime.Now; @@ -162,6 +165,11 @@ public void RecheckGrabBoss() { if (!InActivityTime) { CloseGrabBossHint(); return; } if (PlayerDatas.Instance.hero == null) { CloseGrabBossHint(); return; @@ -264,6 +272,10 @@ } dropItemDict.Add(configs[i].NPCID, list); } var config = Config.Instance.Get<FuncConfigConfig>("FairyCallMember"); callMemberSeconds = int.Parse(config.Numerical1); callMemberDuty = int.Parse(config.Numerical2); } public bool TryGetDropItems(int bossId, out List<Item> dropItems) System/FairyAu/HallTipsWin.cs
@@ -21,10 +21,14 @@ [SerializeField] Button _UpdateBtn;//升级按钮 [SerializeField] Button _CloseBtn;//关闭按钮 [SerializeField] Text m_UnionMaxMoneyText;//获取仙盟资金上限 [SerializeField] Button m_Obtain;//获取途径 private int _FamilyPosition;//家族职位等级 // Use this for initialization private int GetFamilyLV = 0;//获得仙盟等级 GetItemPathModel _GetItemPath; GetItemPathModel GetItemPath { get { return _GetItemPath ?? (_GetItemPath = ModelCenter.Instance.GetModel<GetItemPathModel>()); } } PlayerMainDate M_mainModel; PlayerMainDate mainModel { get { return M_mainModel ?? (M_mainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } } protected override void BindController() { @@ -35,6 +39,7 @@ _UpdateBtn.onClick.AddListener(UpdateButton); _CloseBtn.onClick.AddListener(CloseButton); m_Obtain.AddListener(ObtainBtn); } protected override void OnPreOpen() @@ -66,7 +71,10 @@ Close(); } private void ObtainBtn() { GetItemPath.SetChinItemModel(mainModel.GetCurrencyItemID[6]); } public void Initialize()//信息初始化 { System/Login/ServerListCenter.cs
@@ -1,11 +1,11 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using System; using Snxxz.UI; using TableConfig; using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using System; using Snxxz.UI; using TableConfig; public class ServerListCenter : Singleton<ServerListCenter> { public static readonly string[] JUMP_URL = new string[] { "http://pub.game.2460web.com:11000/server_list/?" @@ -18,9 +18,11 @@ public ServerInfoCommon serverInfoCommon { get; private set; } ServerData m_CurrentServer; public ServerData currentServer { public ServerData currentServer { get { return m_CurrentServer; } set { set { m_CurrentServer = value; m_SelectedServer = true; @@ -34,11 +36,14 @@ } string m_CurrentServerGroup = string.Empty; public string currentServerGroup { get { public string currentServerGroup { get { return m_CurrentServerGroup; } set { set { if (m_CurrentServerGroup != value) { m_CurrentServerGroup = value; @@ -55,28 +60,32 @@ bool serverListPlayerPartGot = false; bool serverListCommonPartGot = false; public bool serverListGot { public bool serverListGot { get { return serverListCommonPartGot; } } string accountNameBuf; public event Action onServerListRefreshEvent; public event Action serverGroupSelectEvent; public event Action onServerListRefreshEvent; public event Action serverGroupSelectEvent; public event Action serverSelectEvent; const string LOGIN_SERVER = "LoginServer"; public int localSaveServerId { get { public int localSaveServerId { get { return LocalSave.GetInt(LOGIN_SERVER); } set { set { LocalSave.SetInt(LOGIN_SERVER, value); } } int jumpUrlIndex = 0; } int jumpUrlIndex = 0; public ServerData GetServerData(int _id) { if (serverInfoPlayer != null && serverInfoPlayer.player != null && serverInfoPlayer.player.group_list != null) @@ -136,8 +145,8 @@ var url = StringUtility.Contact(JUMP_URL[jumpUrlIndex % 2], "flag=", VersionConfig.Get().appId, "_", VersionConfig.Get().branch, "_", VersionConfig.Get().version); jumpUrlIndex++; HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnRequestJumpUrl); } } private void OnRequestJumpUrl(bool _ok, string _result) { if (_ok) @@ -152,8 +161,8 @@ { Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestJumpUrl); } } } public void RequestServerList() { serverListCommonPartGot = false; @@ -213,7 +222,6 @@ public void RequestServerListPlayer(string _accountName) { _accountName = "alee18"; accountNameBuf = _accountName; var url = string.Empty; var tables = new Dictionary<string, string>(); @@ -229,8 +237,8 @@ } HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnGetServerListPlayer); } } private void OnGetServerListPlayer(bool _ok, string _result) { if (_ok) @@ -250,8 +258,8 @@ }); } } } } public bool TryGetServerGroup(string _key, out ServerGroup _group) { if (serverInfoPlayer != null && serverInfoPlayer.player != null && _key == serverInfoPlayer.player.group_title) @@ -283,8 +291,8 @@ _group = null; return false; } } public List<string> GetAllServerGroup() { var serverGroupTitles = new List<string>(); @@ -310,9 +318,9 @@ } return serverGroupTitles; } } private void ProcessRecentServerData() { if (serverInfoPlayer != null && serverInfoPlayer.player != null && serverInfoCommon != null) @@ -350,8 +358,8 @@ group.Sort(ServerData.LastLoginTimeCompare); serverInfoPlayer.player.group_list = group.ToArray(); } } } private void FiltrateDefaultServerAndServerGroup() { if (serverInfoPlayer != null && serverInfoPlayer.player != null && serverInfoPlayer.player.group_list != null && serverInfoPlayer.player.group_list.Length > 0) @@ -394,6 +402,6 @@ } } } } } System/MainInterfacePanel/CombatModeWin.cs
@@ -31,7 +31,10 @@ PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } } PKModel m_PKModel; PKModel pKModel { get { return m_PKModel ?? (m_PKModel = ModelCenter.Instance.GetModel<PKModel>()); } } PKModel pKModel { get { return m_PKModel ?? (m_PKModel = ModelCenter.Instance.GetModel<PKModel>()); } } FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } PlayerMainDate m_MainModel; PlayerMainDate onMainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } } protected override void BindController() { string PkStr = Config.Instance.Get<FuncConfigConfig>("PKText").Numerical1; @@ -46,8 +49,8 @@ protected override void OnPreOpen() { int MapID = PlayerDatas.Instance.baseData.MapID; var config = Config.Instance.Get<MapConfig>(MapID); AtkTypeList = pKModel.GetArea(config.AtkType).ToArray(); var config = Config.Instance.Get<MapConfig>(MapID); AtkTypeList = pKModel.GetArea(config.AtkType).ToArray(); _PkType = Buffmodel.PkType;//获取当前PK状态 if (_PkType != 2) { @@ -96,9 +99,21 @@ else _PkButton.ElectImage.SetActive(false); TextSwitch(cell.index, _PkButton.Model, _PkButton.ContentText); _PkButton.StateSelection.RemoveAllListeners(); _PkButton.StateSelection.RemoveAllListeners(); bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域 _PkButton.StateSelection.AddListener(() => { { if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool)//御剑山庄boss区域特殊处理(可切换状态) { DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)cell.index); Close(); return; } if (onMainModel.ActivityList.Contains(PlayerDatas.Instance.baseData.MapID) && !fairyGrabBossModel.grabBossHintOpen)//再前四章新手地图且不在活动区域 { Close();//不允许切换 return; } DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)cell.index); Close(); }); System/MainInterfacePanel/HeadPortraitTip.cs
@@ -61,6 +61,7 @@ RolePromoteModel promoteModel { get { return m_PromoteModel ?? (m_PromoteModel = ModelCenter.Instance.GetModel<RolePromoteModel>()); } } CapacityDelayModel m_CapacityDelayModel; CapacityDelayModel capacityDelayModel { get { return m_CapacityDelayModel ?? (m_CapacityDelayModel = ModelCenter.Instance.GetModel<CapacityDelayModel>()); } } FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } private int vipExperienceSurplusTime = 0; public void Init() { @@ -198,7 +199,16 @@ bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域 if (atkInt.Length > 1) { if (PlayerDatas.Instance.baseData.MapID == 10040 && !IsBossBool) if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool)//御剑山庄boss区域特殊处理(可切换状态) { WindowCenter.Instance.Open<CombatModeWin>(); if (WindowCenter.Instance.CheckOpen<FunctionForecastWin>()) { WindowCenter.Instance.Close<FunctionForecastWin>(); } return; } if (onMainModel.ActivityList.Contains(PlayerDatas.Instance.baseData.MapID) && !fairyGrabBossModel.grabBossHintOpen)//再前四章新手地图且不在活动区域 { SysNotifyMgr.Instance.ShowTip("Map_AtkType"); return; System/MainInterfacePanel/MainInterfaceWin.cs
@@ -133,6 +133,7 @@ TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } #region Built-in protected override void BindController() @@ -217,7 +218,7 @@ PlayerTaskDatas.CompletionOfTaskEvent += CompletionOfTaskEvent; RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent; NewBieCenter.Instance.guideBeginEvent += GuideBeginEvent; fairyGrabBossModel.bossGrabHintEvent += bossGrabHintEvent; } private void CompletionOfTaskEvent(int obj) @@ -229,6 +230,7 @@ protected override void OnActived() { m_HighSettingTip.OnActived(); IsShowTaskPanel();//是否显示任务面板 } IEnumerator Co_Load() @@ -257,13 +259,11 @@ var inDungeon = IsDungeon(); if (inDungeon) { m_TaskAndTeamTip.SetActive(!inDungeon); m_FunctionForecastTip.gameObject.SetActive(false); if (WindowCenter.Instance.CheckOpen<FunctionForecastWin>()) { WindowCenter.Instance.Close<FunctionForecastWin>(); } m_TaskSwithButton.gameObject.SetActive(false); if (mapId != PlayerDatas.Instance.baseData.MapID) { CopyOfThePanel.localPosition = CopyOfThePosition2.localPosition; @@ -324,15 +324,13 @@ { Event_Duplicates(true, CopyOfThePanelSpeed); } m_TaskAndTeamTip.SetActive(true); m_FunctionForecastTip.gameObject.SetActive(true); m_TaskSwithButton.gameObject.SetActive(true); } mapId = PlayerDatas.Instance.baseData.MapID; m_HighSettingTip.AfterOpen(); m_ChatTip.OnAfterOpen(); HandleAchievement(); } protected override void OnPreClose() @@ -372,6 +370,7 @@ m_CollectBtn.RemoveAllListeners(); GA_NpcCollect.OnArrive -= OnArriveCollectNPC; GA_NpcCollect.OnLeave -= OnLeaveCollectNpc; fairyGrabBossModel.bossGrabHintEvent -= bossGrabHintEvent; m_CollectBtn.gameObject.SetActive(false); } @@ -463,6 +462,10 @@ int mapID = PlayerDatas.Instance.baseData.MapID; var config = Config.Instance.Get<MapConfig>(mapID); int[] atkInt = pKModel.GetArea(config.AtkType).ToArray(); if (onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID) || fairyGrabBossModel.grabBossHintOpen) { return; } if (atkInt.Length > 1 && Buffmodel.PkType != 5) { onMainModel.AreaState = Buffmodel.PkType; @@ -1032,6 +1035,28 @@ _MarkRay.gameObject.SetActive(false); } private void IsShowTaskPanel()//是否显示任务面板 { var inDungeon = IsDungeon(); if (inDungeon || fairyGrabBossModel.grabBossHintOpen) { m_TaskAndTeamTip.SetActive(false); m_TaskSwithButton.gameObject.SetActive(false); } else { m_TaskAndTeamTip.SetActive(true); m_TaskSwithButton.gameObject.SetActive(true); } } private void bossGrabHintEvent() { IsShowTaskPanel(); if (!fairyGrabBossModel.grabBossHintOpen && Buffmodel.PkType != 0) { DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)0); } } } } System/MainInterfacePanel/PlayerMainDate.cs
@@ -105,6 +105,30 @@ public int FlyShoseTaskID = 0; //--------获取玩家死亡状态 public bool IsDead = false; //----------关于某些副本可以进行地图挂机 public List<int> OneKeyList = new List<int>(); //----------使用娲皇卷轴后的Buff表现 public static event Action EmperorBuffEvent; public bool IsEmperor = false; //---------关于任务需要的数据 public List<int> TaskId_Skill = new List<int>(); public List<int> TaskId_Skill1 = new List<int>(); public int ItemID = 0; public int UnitPrice = 0; public int ItemNumber = 0; public int TaskLv = 0;//任务等级 //-----关于支线翅膀任务的特殊逻辑 public int WingTask = 0; //------ 关于切线PK状态的特殊逻辑 public List<int> ActivityList = new List<int>(); public List<int> ShieldedArea = new List<int>();//需要屏蔽的地图区域 public override void Init() { IsTipBool = true; @@ -126,23 +150,18 @@ GetPassiveSkillTask(); var WingsTask = Config.Instance.Get<FuncConfigConfig>("WingsTask"); WingTask = int.Parse(WingsTask.Numerical1); var ActivityListcon = Config.Instance.Get<FuncConfigConfig>("FairyGrabMapLine"); int[] Activity_List = ConfigParse.GetMultipleStr<int>(ActivityListcon.Numerical1); for (int i = 0; i < Activity_List.Length; i++) { ActivityList.Add(Activity_List[i]); } ShieldedArea.Add(10010); ShieldedArea.Add(10020); ShieldedArea.Add(10030); } //----------关于某些副本可以进行地图挂机 public List<int> OneKeyList = new List<int>(); //----------使用娲皇卷轴后的Buff表现 public static event Action EmperorBuffEvent; public bool IsEmperor = false; //---------关于任务需要的数据 public List<int> TaskId_Skill = new List<int>(); public List<int> TaskId_Skill1 = new List<int>(); public int ItemID = 0; public int UnitPrice = 0; public int ItemNumber = 0; public int TaskLv = 0;//任务等级 //-----关于支线翅膀任务的特殊逻辑 public int WingTask = 0; private void GetPassiveSkillTask()//获取任务数据 { TaskId_Skill.Clear(); System/Vip/LimitedTimePackageWin.cs
@@ -196,30 +196,13 @@ { m_Text_ActivityTimeTo.text = Language.Get("LimitGift2"); } if (time > 86400) if (time > 0) { m_Text_ActivityTimeTo.gameObject.SetActive(false); string str = String.Format(Language.Get("LimitGift1"), TimeUtility.SecondsToDHMSCHS(time)); m_Text_ActivityTimeTo.text = str; // m_Text_ActivityTimeTo.color = UIHelper.GetUIColor(TextColType.Green); } else { if (!m_Text_ActivityTimeTo.gameObject.activeSelf) { m_Text_ActivityTimeTo.gameObject.SetActive(true); } if (time < 3600) { string str = String.Format(Language.Get("LimitGift1"), TimeUtility.SecondsToHMS(time)); m_Text_ActivityTimeTo.text = str; m_Text_ActivityTimeTo.color = UIHelper.GetUIColor(TextColType.Green); } else { string str = String.Format(Language.Get("LimitGift1"), TimeUtility.SecondsToHMS(time)); m_Text_ActivityTimeTo.text = str; m_Text_ActivityTimeTo.color = UIHelper.GetUIColor(TextColType.Green); } } } #endregion System/WindowJump/WindowJumpMgr.cs
@@ -453,6 +453,9 @@ case JumpUIType.LootPreciousFrameFunc1: SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID); break; case JumpUIType.FairyGrabBoss: SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID); break; case JumpUIType.LootPreciousFrameSpec: DemonJarWin.guideChallenge =true; SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID); @@ -1140,6 +1143,7 @@ TrialDungeonSelect3 = 219, //宗门试练三层 FindPreciousFrameFunc4Type2 = 220, //古神禁地界面 返回主界面 FindPreciousFrameFunc2Type2 = 221, //BOSS之家 返回主界面 FairyGrabBoss = 222, //骑宠争夺 OpenServerGift1 = 223, //超值礼包1 OpenServerGift2 = 224, //超值礼包2 OpenServerGift3 = 225, //超值礼包3