| Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HA7_Arena/DTCA709_tagObjInfoListRefresh.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HB0_Event/DTCB003_tagGCAssistingInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GA_Player.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/AssistConfirmwin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonAssistModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/AssistBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/AssistBehaviour.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/DemonJarDamageRankWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/MainInterfaceWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0418_tagObjInfoRefresh.cs
@@ -124,7 +124,6 @@ return; } _player.UpdateData(vNetData); switch ((PlayerDataType)vNetData.RefreshType) { @@ -150,6 +149,7 @@ _player.ActorInfo.ExAttr1 = vNetData.Value; break; } _player.UpdateData(vNetData.RefreshType, vNetData.Value); if ((PlayerDataType)vNetData.RefreshType == PlayerDataType.Family || (PlayerDataType)vNetData.RefreshType == PlayerDataType.TeamID Core/NetworkPackage/DTCFile/ServerPack/HA7_Arena/DTCA709_tagObjInfoListRefresh.cs
@@ -14,23 +14,22 @@ var objId = vNetDatas.ObjID; GActorPlayerBase _player = GAMgr.Instance.GetBySID(objId) as GActorPlayerBase; if (_player == null) { //#if UNITY_EDITOR // Debug.LogErrorFormat("[{0}] DTCA709_tagObjInfoListRefresh => 对象: {1} 不存在", // System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), objId); //#endif return; } if (objId == PlayerDatas.Instance.PlayerId) { PlayerDatas.Instance.RefreshPlayerData(vNetDatas); } else { GA_Player _player = GAMgr.Instance.GetBySID(objId) as GA_Player; if (_player == null) { //#if UNITY_EDITOR // Debug.LogErrorFormat("[{0}] DTCA709_tagObjInfoListRefresh => 对象: {1} 不存在", // System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), objId); //#endif return; } for (int i = 0; i < vNetDatas.Count; i++) { var vNetData = vNetDatas.RefreshType[i]; @@ -81,6 +80,8 @@ break; } _player.UpdateData(vNetData.RefreshType, vNetData.Value); if ((PlayerDataType)vNetData.RefreshType == PlayerDataType.Family || (PlayerDataType)vNetData.RefreshType == PlayerDataType.TeamID || (PlayerDataType)vNetData.RefreshType == PlayerDataType.Faction) Core/NetworkPackage/DTCFile/ServerPack/HB0_Event/DTCB003_tagGCAssistingInfo.cs
@@ -1,11 +1,12 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // B0 03 正在进行中的协助 #tagGCAssistingInfo public class DTCB003_tagGCAssistingInfo : DtcBasic { DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HB003_tagGCAssistingInfo vNetData = vNetPack as HB003_tagGCAssistingInfo; HB003_tagGCAssistingInfo vNetData = vNetPack as HB003_tagGCAssistingInfo; assistModel.OnAssisting(vNetData); } } Fight/GameActor/GA_Player.cs
@@ -445,13 +445,16 @@ base.OnFixedUpdate(); } public void UpdateData(H0418_tagObjInfoRefresh data) public void UpdateData(int proType, uint proValue) { switch ((PlayerDataType)data.RefreshType) switch ((PlayerDataType)proType) { case PlayerDataType.EquipShowSwitch: m_H0434.EquipShowSwitch = data.Value; m_H0434.EquipShowSwitch = proValue; ReqLingGenEffect((int)(m_H0434.EquipShowSwitch / 10 % 100), (int)(m_H0434.EquipShowSwitch / 1000 % 1000)); break; case PlayerDataType.ExAttr1: RequestName(); break; } } @@ -537,7 +540,7 @@ { realm = ActorInfo.realm, title = titleId, name = ActorInfo.PlayerName + (ActorInfo.ExAttr1 > 0 ? "(助)":""), name = (UIHelper.ServerStringTrim(ActorInfo.PlayerName) + (ActorInfo.ExAttr1 > 0 ? UIHelper.AppendColor(TextColType.Green, "(助)") : "")), alliance = ActorInfo.familyName, isHang = m_H0434.State == 1, } System/Dungeon/AssistConfirmwin.cs
@@ -22,11 +22,12 @@ [SerializeField] RichText m_Text; [SerializeField] Button m_button; [SerializeField] Image m_Image; [SerializeField] Image m_ItemBG; [SerializeField] Text Count; DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } } int FamilyActiveID = 28; int FamilyActiveID = 3903; #region Built-in protected override void BindController() @@ -48,6 +49,8 @@ Count.text = assistModel.assistActiveCnt.ToString(); m_Text.text = UIHelper.ReplaceNewLine(Language.Get("AssistCheckInfo", assistModel.assistOtherPlayerName, assistModel.assistObjStr)); m_ItemBG.SetItemBackGround(config.ItemColor); } protected override void OnAfterOpen() @@ -67,6 +70,8 @@ private void OnclickOKButton() { assistModel.SendStartAssistBoss(assistModel.assistGUID); var assistInfo = assistModel.assistInfoDict[assistModel.assistGUID]; assistModel.GotoKillBoss((int)assistInfo.npcID); Close(); WindowCenter.Instance.Close<DungeonAssistWin>(); } System/Dungeon/DungeonAssistModel.cs
@@ -21,11 +21,14 @@ DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } #region 正在协助中数据 public string assistOtherPlayerName = string.Empty; public string assistObjStr = string.Empty; //协助额外信息如boss名 或功能名等 public string assistGUID = string.Empty; public string assistGUID = string.Empty; //只要记录guid即可 后续优化 public int assistActiveCnt = 0; #endregion public override void Init() { @@ -36,6 +39,7 @@ public void OnBeforePlayerDataInitialize() { FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState; PlayerDatas.Instance.playerDataRefreshEvent -= playerDataRefreshEvent; assistInfoDict.Clear(); assistResults.Clear(); assistRefreshNum = 0; @@ -57,6 +61,7 @@ { FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState; PlayerDatas.Instance.playerDataRefreshEvent += playerDataRefreshEvent; UpdateRedpoint(); //UpdateMainAssistRedpoint(); } @@ -666,6 +671,14 @@ UpdateAssistInfo(); } public event Action UpdateAssisting; public void OnAssisting(HB003_tagGCAssistingInfo pack) { assistGUID = pack.AssistGUID; if (UpdateAssisting != null) UpdateAssisting(); } // B0 10 发起者请求协助Boss public void SendRequestAssistBoss(uint npcObjID) { @@ -683,6 +696,28 @@ var send = new CB012_tagCGStartAssistBoss(); send.AssistGUID = guid; GameNetSystem.Instance.SendInfo(send); } // B0 13 取消协助Boss #tagCGCancelAssistBoss public void SendStopAssistBoss() { if (assistGUID == string.Empty) return; var send = new CB013_tagCGCancelAssistBoss(); send.AssistGUID = assistGUID; GameNetSystem.Instance.SendInfo(send); assistGUID = string.Empty; } private void playerDataRefreshEvent(PlayerDataType type) { if (type == PlayerDataType.Family && PlayerDatas.Instance.baseData.FamilyId == 0) { assistInfoDict.Clear(); UpdateMainAssistRedpoint(); if (UpdateAssistInfo != null) UpdateAssistInfo(); } } #endregion @@ -746,6 +781,99 @@ } #endregion public void GotoKillBoss(int npcID) { var error = 0; if (TestGotoKillBoss(npcID, out error)) { WindowJumpMgr.Instance.ClearJumpData(); WindowCenter.Instance.Close<OpenServerActivityRankWin>(); GAStaticDefine.NPCLocation _npcLocation; var _findLocation = GAStaticDefine.TryGetMapNPCLocation(npcID, out _npcLocation); if (_npcLocation.mapId == BossHomeModel.BOSSHOME_MAPID) { ModelCenter.Instance.GetModel<BossHomeModel>().selectedBoss = npcID; dungeonModel.SingleChallenge(BossHomeModel.BOSSHOME_MAPID, 0); } else MapTransferUtility.Instance.MoveToNPC(npcID); } else { ProcessGotoKillBossError(npcID, error); } } private void ProcessGotoKillBossError(int npcID, int _error) { switch (_error) { case 1: var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); var config = DungeonOpenTimeConfig.Get(dataMapId); var tip = Language.Get(config.ExitDescription); ConfirmCancel.ShowPopConfirm( Language.Get("Mail101"), tip, (bool _ok) => { if (_ok) { WindowCenter.Instance.Close<FindPreciousFrameWin>(); MapTransferUtility.Instance.MoveToNPC(npcID); } } ); break; case 2: SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo"); break; case 3: SysNotifyMgr.Instance.ShowTip("CrossMap10"); break; case 4: SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(npcID).Realm); break; } } private bool TestGotoKillBoss(int npcID, out int _error) { if (!findPreciousModel.IsBossUnlock(npcID)) { _error = 4; return false; } var mapId = PlayerDatas.Instance.baseData.MapID; var dataMapId = MapUtility.GetDataMapId(mapId); if (dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID) { _error = 1; return false; } var mapConfig = MapConfig.Get(mapId); if (mapConfig.MapFBType != (int)MapType.OpenCountry && mapId != 31020) { _error = 2; return false; } if (CrossServerUtility.IsCrossServer() || ClientCrossServerOneVsOne.isClientCrossServerOneVsOne) { _error = 3; return false; } _error = 0; return true; } public class AssistResult { public int assistType; // 1 真实的自己 2 自己的镜像 System/FairyAu/AssistBehaviour.cs
New file @@ -0,0 +1,81 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AssistBehaviour : MonoBehaviour { [SerializeField] RectTransform m_Container; [SerializeField] Image playerIcon; [SerializeField] Text playerName; [SerializeField] Button m_Goto; [SerializeField] Button m_Close; DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } } private void Awake() { m_Goto.SetListener(Goto); m_Close.SetListener(()=> { assistModel.SendStopAssistBoss(); m_Container.gameObject.SetActive(false); }); } public void Init() { PlayerDatas.Instance.playerDataRefreshEvent += OnCloseAssist; assistModel.UpdateAssisting += Display; Display(); } public void UnInit() { PlayerDatas.Instance.playerDataRefreshEvent -= OnCloseAssist; assistModel.UpdateAssisting -= Display; } private void OnCloseAssist(PlayerDataType type) { //只处理取消 if (type != PlayerDataType.ExAttr1) return; if (PlayerDatas.Instance.baseData.ExAttr1 == 0) { m_Container.gameObject.SetActive(false); assistModel.assistGUID = string.Empty; } } private void Display() { if (!assistModel.assistInfoDict.ContainsKey(assistModel.assistGUID)) { m_Container.gameObject.SetActive(false); return; } m_Container.gameObject.SetActive(true); var assistInfo = assistModel.assistInfoDict[assistModel.assistGUID]; playerIcon.SetSprite(GeneralDefine.GetJobHeadPortrait(assistInfo.job, 0)); playerName.text = assistInfo.playerName; } private void Goto() { if (!assistModel.assistInfoDict.ContainsKey(assistModel.assistGUID)) { m_Container.gameObject.SetActive(false); return; } var assistInfo = assistModel.assistInfoDict[assistModel.assistGUID]; assistModel.GotoKillBoss((int)assistInfo.npcID); } } } System/FairyAu/AssistBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 27f4f3a972814964a917ecb3d31d384e timeCreated: 1576848523 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FindPrecious/DemonJarDamageRankWin.cs
@@ -41,7 +41,16 @@ { HurtRank.SetListener(ShowBossRank); AssistHurtRank.SetListener(ShowAssistRank); SendAssist.SetListener(SendAssistPack); if (PlayerDatas.Instance.baseData.ExAttr1 > 0) { SendAssist.gameObject.SetActive(false); } else { SendAssist.gameObject.SetActive(true); SendAssist.SetListener(SendAssistPack); } ShowAssistTips.SetListener(ShowAssistInfo); } @@ -152,7 +161,6 @@ isShowAssistInfo = true; GActor actore = GAMgr.Instance.GetBySID(model.BossHurtRank.npcObjID); int funcID = findPreciousModel.GetBossFuncIDByBossID((actore as GActorNpcFight).NpcConfig.NPCID); //AssistAward int activeCnt = 0; if (GeneralDefine.FBAssistAward.ContainsKey(PlayerDatas.Instance.baseData.MapID)) { System/MainInterfacePanel/MainInterfaceWin.cs
@@ -28,6 +28,7 @@ [SerializeField] MapSwitchingBehaviour m_MapSwitchingBehaviour; [SerializeField] DungeonBossBriefInfoContainer m_BossBriefInfos; [SerializeField] RightBottomFadeInOut m_RightBottomFadeInOut; [SerializeField] AssistBehaviour m_AssistBehaviour; [SerializeField] IntensifySmoothSlider _ExpSlider;//经验条 [SerializeField] Button _DownButton;//查看经验数值 @@ -102,6 +103,7 @@ m_FairyLeagueRemind.Init(); m_MainButtonMisc.Init(); m_RightBottomFadeInOut.Init(); m_AssistBehaviour.Init(); try { @@ -191,6 +193,7 @@ m_TopRightTip.UnInit(); m_FunctionForecastTip.Unit(); m_TeamInvitationEntrance.UnInit(); m_AssistBehaviour.UnInit(); m_FairyLeagueRemind.UnInit(); m_MainButtonMisc.UnInit(); m_RightBottomFadeInOut.UnInit();