| Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/BossHurtRankBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/DemonJarDamageRankWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Team/TeamModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Tip/PlayerDetailWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Tip/PlayerDetails.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs
New file @@ -0,0 +1,18 @@ using UnityEngine; using System.Collections; // B9 11 请求加入队伍 #tagCGRequestJoinTeam public class CB911_tagCGRequestJoinTeam : GameNetPackBasic { public uint TeamID; // 目标队伍ID public CB911_tagCGRequestJoinTeam () { combineCmd = (ushort)0x1801; _cmd = (ushort)0xB911; } public override void WriteToBytes () { WriteBytes (TeamID, NetDataType.DWORD); } } Core/NetworkPackage/ClientPack/ClientToGameServer/CB9_Team/CB911_tagCGRequestJoinTeam.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 83b61950137ffd847aaa445325a7abf7 timeCreated: 1602245091 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Dungeon/BossHurtRankBehaviour.cs
@@ -10,6 +10,7 @@ { [SerializeField] List<Text> playerNameTexts; [SerializeField] List<Text> valueTexts; [SerializeField] List<Button> helpBtns; [SerializeField] Text mineValueText; @@ -18,6 +19,7 @@ private object RegexPlayerDatas; DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } TeamModel m_TeamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } } public void Init(int mapID) { @@ -46,8 +48,54 @@ (model.BossHurtRank.bossHurtInfo[i].HurtType == 2 ? Language.Get("ChatType_Team") : ""); valueTexts[i].text = UIHelper.ReplaceLargeNum(model.BossHurtRank.bossHurtInfo[i].totalHurt); } //自己,自己队伍,协助对象(队伍) 不显示; bool isShowHelp = true; if (model.BossHurtRank.bossHurtInfo[i].HurtID == 0) { isShowHelp = false; } else if (CrossServerUtility.IsCrossServer()) { isShowHelp = false; } else if (model.BossHurtRank.bossHurtInfo[i].HurtType == 1 && PlayerDatas.Instance.baseData.PlayerID == model.BossHurtRank.bossHurtInfo[i].HurtID) { isShowHelp = false; } else if (model.BossHurtRank.bossHurtInfo[i].HurtType == 2 && m_TeamModel.myTeam.teamId == model.BossHurtRank.bossHurtInfo[i].HurtID) { isShowHelp = false; } else if (PlayerDatas.Instance.baseData.ExAttr1 != 0 && model.BossHurtRank.bossHurtInfo[i].HurtType == 2) { var assistActor = GAMgr.Instance.GetBySID(PlayerDatas.Instance.baseData.ExAttr1) as GA_Player; if (assistActor != null && assistActor.ActorInfo.teamID == model.BossHurtRank.bossHurtInfo[i].HurtID) { isShowHelp = false; } else if (assistActor == null) { //无法确认队伍关系的不显示 isShowHelp = false; } } else if (PlayerDatas.Instance.baseData.ExAttr1 == model.BossHurtRank.bossHurtInfo[i].HurtID) { isShowHelp = false; } helpBtns[i].gameObject.SetActive(isShowHelp); var id = (int)model.BossHurtRank.bossHurtInfo[i].HurtID; var name = playerNameTexts[i].text; var inTeam = model.BossHurtRank.bossHurtInfo[i].HurtType == 2 ? 1:0; helpBtns[i].SetListener(()=>{ PlayerDetails.ShowBossHurtPlayer(id, name, inTeam); }); } } } else if (model.selectHurtModel == 2) @@ -58,7 +106,7 @@ { playerNameTexts[i].text = model.BossHurtRank.assistBossHurtInfo[i].playerName; valueTexts[i].text = UIHelper.ReplaceLargeNum(model.BossHurtRank.assistBossHurtInfo[i].totalHurt); helpBtns[i].gameObject.SetActive(false); } } } @@ -66,6 +114,7 @@ { playerNameTexts[i].text = string.Empty; valueTexts[i].text = string.Empty; helpBtns[i].gameObject.SetActive(false); i++; } System/FindPrecious/DemonJarDamageRankWin.cs
@@ -48,6 +48,9 @@ private void ShowButton() { ShowAssistTips.gameObject.SetActive(!CrossServerUtility.IsCrossServer()); SendAssist.gameObject.SetActive(!CrossServerUtility.IsCrossServer()); if (PlayerDatas.Instance.baseData.ExAttr1 > 0) { SendAssist.SetColorful(null, false); System/Team/TeamModel.cs
@@ -246,6 +246,13 @@ GameNetSystem.Instance.SendInfo(apply); } public void RequestApplyForJoinByTeam(int _teamID) { var apply = new CB911_tagCGRequestJoinTeam(); apply.TeamID = (uint)_teamID; GameNetSystem.Instance.SendInfo(apply); } public void RequestCreateTeam(int _mapId, int _lineId, int _levelMin = 1, int _levelMax = 1) { var mapId = _mapId == NONE_MISSION ? 0 : _mapId == CURRENTMAP_MISSION ? PlayerDatas.Instance.baseData.MapID : _mapId; System/Tip/PlayerDetailWin.cs
@@ -46,14 +46,14 @@ private float ratio = 1.0f; public bool IsCrossServerPlayer { get { if (PlayerDetails.ServerGroupId == 0) { return false; } return PlayerDetails.ServerGroupId != PlayerDatas.Instance.baseData.ServerGroupId; } public bool IsCrossServerPlayer { get { if (PlayerDetails.ServerGroupId == 0) { return false; } return PlayerDetails.ServerGroupId != PlayerDatas.Instance.baseData.ServerGroupId; } } #region Built-in @@ -96,10 +96,18 @@ public void ShowPlayerDetail() { m_ContainerDetail.localPosition = PlayerDetails.targetPos; m_PlayerTxt.text = UIHelper.ServerStringTrim(PlayerDetails.PlayerName); m_LevelSign.gameObject.SetActive(false); m_PlayerTxt.text = UIHelper.ServerStringTrim(PlayerDetails.PlayerName); m_LevelSign.gameObject.SetActive(false); m_PlayerLevelTxt.gameObject.SetActive(PlayerDetails.LV!=0); m_PlayerLevelTxt.text = Language.Get("PlayerDetail_Level", PlayerDetails.LV); CheckDetailType(); if (PlayerDetails.openType == PlayerDetails.OpenType.Assist) { CheckAssisType(); } else { CheckDetailType(); } OnPlayerDetailRefresh(); var _rt = m_ContainerDetail as RectTransform; @@ -126,73 +134,87 @@ m_ContainerDetail.localPosition = pos; } private void CheckAssisType() { funcTypes.Clear(); funcTypes.Add(PlayerDetails.DetailType.Kill); if (PlayerDetails.IsInTeam == 1) { funcTypes.Add(PlayerDetails.DetailType.ApplyTeam); } else { funcTypes.Add(PlayerDetails.DetailType.ApplyTeam); funcTypes.Add(PlayerDetails.DetailType.InviteTeam); } } public void CheckDetailType() { funcTypes.Clear(); funcTypes.Add(PlayerDetails.DetailType.ViewEquip); funcTypes.Add(PlayerDetails.DetailType.LookFight); if (!IsCrossServerPlayer && !CrossServerUtility.IsCrossServer()) { funcTypes.Add(PlayerDetails.IsInTeam == 1 ? PlayerDetails.DetailType.ApplyTeam : PlayerDetails.DetailType.InviteTeam); bool _isFriend = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 2) != null; bool _isBlack = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 4) != null; funcTypes.Add(_isFriend ? PlayerDetails.DetailType.DeleteFriend : PlayerDetails.DetailType.AddFriend); funcTypes.Add(_isBlack ? PlayerDetails.DetailType.RemoveBlack : PlayerDetails.DetailType.AddBlack); if (!_isBlack) { funcTypes.Add(PlayerDetails.DetailType.PrivateChat); } } switch (PlayerDetails.openType) { case PlayerDetails.OpenType.Default: case PlayerDetails.OpenType.Friend: if (IsCrossServerPlayer || CrossServerUtility.IsCrossServer()) { return; } break; case PlayerDetails.OpenType.Fairy: break; } switch (PlayerDetails.openType) { case PlayerDetails.OpenType.Default: if (PlayerDatas.Instance.fairyData.HasFairy) { if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall) && PlayerDatas.Instance.fairyData.GetMember(PlayerDetails.PlayerID) == null) { funcTypes.Add(PlayerDetails.DetailType.InviteFairy); } } break; case PlayerDetails.OpenType.Fairy: PlayerFairyData.FairyMember _mine = PlayerDatas.Instance.fairyData.mine; PlayerFairyData.FairyMember _fairyMember = PlayerDatas.Instance.fairyData.GetMember(m_FairyModel.presentChangeMember); if (_fairyMember != null) { if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanJobTitle) && _mine.FamilyLV > _fairyMember.FamilyLV) { funcTypes.Add(PlayerDetails.DetailType.FairyLv); } if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanKick) && _mine.FamilyLV > _fairyMember.FamilyLV) { funcTypes.Add(PlayerDetails.DetailType.KickFairy); } } break; case PlayerDetails.OpenType.Friend: funcTypes.Remove(PlayerDetails.DetailType.PrivateChat); break; funcTypes.Add(PlayerDetails.DetailType.LookFight); if (!IsCrossServerPlayer && !CrossServerUtility.IsCrossServer()) { funcTypes.Add(PlayerDetails.IsInTeam == 1 ? PlayerDetails.DetailType.ApplyTeam : PlayerDetails.DetailType.InviteTeam); bool _isFriend = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 2) != null; bool _isBlack = m_FriendModel.GetFirendInfo((uint)PlayerDetails.PlayerID, 4) != null; funcTypes.Add(_isFriend ? PlayerDetails.DetailType.DeleteFriend : PlayerDetails.DetailType.AddFriend); funcTypes.Add(_isBlack ? PlayerDetails.DetailType.RemoveBlack : PlayerDetails.DetailType.AddBlack); if (!_isBlack) { funcTypes.Add(PlayerDetails.DetailType.PrivateChat); } } switch (PlayerDetails.openType) { case PlayerDetails.OpenType.Default: case PlayerDetails.OpenType.Friend: if (IsCrossServerPlayer || CrossServerUtility.IsCrossServer()) { return; } break; case PlayerDetails.OpenType.Fairy: break; } switch (PlayerDetails.openType) { case PlayerDetails.OpenType.Default: if (PlayerDatas.Instance.fairyData.HasFairy) { if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall) && PlayerDatas.Instance.fairyData.GetMember(PlayerDetails.PlayerID) == null) { funcTypes.Add(PlayerDetails.DetailType.InviteFairy); } } break; case PlayerDetails.OpenType.Fairy: PlayerFairyData.FairyMember _mine = PlayerDatas.Instance.fairyData.mine; PlayerFairyData.FairyMember _fairyMember = PlayerDatas.Instance.fairyData.GetMember(m_FairyModel.presentChangeMember); if (_fairyMember != null) { if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanJobTitle) && _mine.FamilyLV > _fairyMember.FamilyLV) { funcTypes.Add(PlayerDetails.DetailType.FairyLv); } if (PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanKick) && _mine.FamilyLV > _fairyMember.FamilyLV) { funcTypes.Add(PlayerDetails.DetailType.KickFairy); } } break; case PlayerDetails.OpenType.Friend: funcTypes.Remove(PlayerDetails.DetailType.PrivateChat); break; } } @@ -228,12 +250,12 @@ } break; case PlayerDetails.DetailType.ViewEquip: if (!IsCrossServerPlayer) { if (!IsCrossServerPlayer) { m_RoleParticularModel.ViewRoleEquip(PlayerDetails.PlayerID); } else { else { m_RoleParticularModel.ViewCrossServerPlayerEquip(PlayerDetails.PlayerID); } break; @@ -270,7 +292,16 @@ if (_ok) { m_TeamModel.RequestExitTeam(); m_TeamModel.RequestApplyForJoin(PlayerDetails.PlayerID); if (PlayerDetails.openType == PlayerDetails.OpenType.Assist && PlayerDetails.IsInTeam == 1) { //此处代表队伍ID m_TeamModel.RequestApplyForJoinByTeam(PlayerDetails.PlayerID); } else { m_TeamModel.RequestApplyForJoin(PlayerDetails.PlayerID); } } } ); @@ -287,18 +318,56 @@ m_FriendModel.OnClickRemoveBlack((uint)PlayerDetails.PlayerID); break; case PlayerDetails.DetailType.LookFight: if (!IsCrossServerPlayer) { if (!IsCrossServerPlayer) { m_RoleParticularModel.ViewRoleFightPower(PlayerDetails.PlayerID); } else { m_RoleParticularModel.ViewCrossPlayerFightPower(PlayerDetails.PlayerID); else { m_RoleParticularModel.ViewCrossPlayerFightPower(PlayerDetails.PlayerID); } break; case PlayerDetails.DetailType.InviteFairy: m_FairyModel.SendInviteFairy(PlayerDetails.PlayerID, PlayerDetails.PlayerName); break; case PlayerDetails.DetailType.Kill: uint tagetID = 0; //队伍中的攻击目标 if (PlayerDetails.IsInTeam == 1) { List<GActor> _list = GAMgr.Instance.GetTypeList(E_ActorClassType.Player); if (_list == null || _list.Count == 0) { break; } foreach(var actor in _list) { var tagetPlayer = actor as GA_Player; if (tagetPlayer.ActorInfo.teamID == PlayerDetails.PlayerID) { tagetID = tagetPlayer.ActorInfo.sid; break; } } if (tagetID == 0) { break; } } else { tagetID = (uint)PlayerDetails.PlayerID; } var _hero = PlayerDatas.Instance.hero; var taget = GAMgr.Instance.GetBySID(tagetID); if (taget != null) { _hero.SelectTarget = _hero.LockTarget = taget; GA_Hero.CallLockTargetChanged(_hero.LockTarget.ServerInstID); } break; } } System/Tip/PlayerDetails.cs
@@ -22,9 +22,9 @@ RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); } public static void ShowCrossServerChatPlayer(ChatUeseData data) { openType = OpenType.CrossPlayer; public static void ShowCrossServerChatPlayer(ChatUeseData data) { openType = OpenType.CrossPlayer; PlayerID = (int)data.player; LV = data.level; Job = data.job; @@ -32,8 +32,8 @@ PlayerName = data.name; OnlineType = 0; IsInTeam = 0; ServerGroupId = data.serverGroupId; ServerGroupId = data.serverGroupId; RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>()) @@ -42,9 +42,9 @@ } } public static void ShowCrossServerPlayer(int playerId, int level, string name, int serverGroupId) { openType = OpenType.CrossPlayer; public static void ShowCrossServerPlayer(int playerId, int level, string name, int serverGroupId) { openType = OpenType.CrossPlayer; PlayerID = playerId; LV = level; Job = 1; @@ -52,33 +52,53 @@ PlayerName = name; OnlineType = 0; IsInTeam = 0; ServerGroupId = serverGroupId; ServerGroupId = serverGroupId; RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>()) { WindowCenter.Instance.Open<PlayerDetailWin>(); } } } public static void ShowAreaPlayer(int _playerId) { public static void ShowBossHurtPlayer(int playerId, string name, int inTeam) { openType = OpenType.Assist; PlayerID = playerId; LV = 0; Job = 1; RealmLV = 0; PlayerName = name; OnlineType = 0; IsInTeam = inTeam; ServerGroupId = 0; RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); if (!WindowCenter.Instance.IsOpen<PlayerDetailWin>()) { WindowCenter.Instance.Open<PlayerDetailWin>(); } } public static void ShowAreaPlayer(int _playerId) { openType = OpenType.Default; onClickFuncEvent = null; DTCB309_tagGCAnswerPlayerShortInfo.OnPlayerShortInfoEvent -= OnPlayerShortInfoEvent; DTCB309_tagGCAnswerPlayerShortInfo.OnPlayerShortInfoEvent += OnPlayerShortInfoEvent; CB306_tagCGViewPlayerShortInfo _pak = new CB306_tagCGViewPlayerShortInfo(); _pak.PlayerID = (uint)_playerId; if (CrossServerUtility.IsCrossServer()) { GameNetSystem.Instance.SendToCrossServer(_pak); if (CrossServerUtility.IsCrossServer()) { GameNetSystem.Instance.SendToCrossServer(_pak); } else { else { GameNetSystem.Instance.SendInfo(_pak); } RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos); } private static void OnPlayerShortInfoEvent(HB309_tagGCAnswerPlayerShortInfo _package) @@ -105,27 +125,28 @@ { onClickFuncEvent(_type); } if(updateDetailTypeEvent != null) { updateDetailTypeEvent(_type); if(updateDetailTypeEvent != null) { updateDetailTypeEvent(_type); } } public enum DetailType { PrivateChat = 0,//私聊 ViewEquip = 1,//查看装备 AddFriend = 2,//加为好友 DeleteFriend = 3,//删除好友 AddBlack = 4,//加入黑名单 AddTeam = 5,//加入队伍 FairyLv = 6,//更改仙盟职权 KickFairy = 7,//提出仙盟 ApplyTeam = 8, //申请入队 InviteTeam = 9, //邀请入队 RemoveBlack = 10, //移出黑名单 LookFight = 11,//查看战力 InviteFairy = 12,//邀请入盟 ViewEquip,//查看装备 AddFriend,//加为好友 DeleteFriend,//删除好友 AddBlack,//加入黑名单 AddTeam,//加入队伍 FairyLv,//更改仙盟职权 KickFairy,//提出仙盟 Kill, //击杀 ApplyTeam, //申请入队 InviteTeam, //邀请入队 RemoveBlack, //移出黑名单 LookFight,//查看战力 InviteFairy,//邀请入盟 } public enum OpenType @@ -134,6 +155,7 @@ Fairy, Friend, CrossPlayer, Assist, } public static int PlayerID = 0;