diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index 5201f063c..8a113198c 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -51,6 +51,7 @@ handlers.aaTest = function(args) //]}); /* + // https://learn.microsoft.com/en-us/rest/api/playfab/server/account-management/get-player-profile?view=playfab-rest#playerprofileviewconstraints var playerprofile = server.GetPlayerCombinedInfo({ PlayFabId: currentPlayerId, "InfoRequestParameters": { @@ -58,7 +59,9 @@ handlers.aaTest = function(args) "ProfileConstraints": { "ShowTotalValueToDateInUsd": true, - "ShowDisplayName": true + "ShowDisplayName": true, + //"ShowStatistics": true, // 순위표 (레거시) + //"ShowLinkedAccounts": true, // 연결된 계정 (커스텀, 구글, 애플 등) } } }); @@ -70,7 +73,18 @@ handlers.aaTest = function(args) log.info(parseInt(price * 50)); } else - log.info('���� ���� ����'); + log.info('no cash buy'); + */ + + /* + // 타이틀 Id 찾는 법 + // currentPlayerId == master Id + // playerprofile.TitlePlayerAccounts[currentPlayerId].Id == title Id (★) + var playerprofile = entity.GetTitlePlayersFromMasterPlayerAccountIds({ MasterPlayerAccountIds: [currentPlayerId]}); + var titleId = playerprofile.TitlePlayerAccounts[currentPlayerId].Id; + + // 순위표 v2 지우는 법 + progression.DeleteLeaderboardEntries({ Name: "Rank_Maze", EntityIds: [titleId]}); */ } @@ -400,7 +414,7 @@ handlers.Save_Rank = function(args) Entries : [ { - "EntityId": currentPlayerId, + "EntityId": args.EntityID, "Metadata": args.Metadata, "Scores": args.Scores } @@ -450,7 +464,16 @@ handlers.Check_CanBuyInapp = function(args) handlers.Del_TitlePlayer = function(args) { if(!CheckNullOrEmpty(args.Agree)) + { + var playerprofile = entity.GetTitlePlayersFromMasterPlayerAccountIds({ MasterPlayerAccountIds: [currentPlayerId]}); + var titleId = playerprofile.TitlePlayerAccounts[currentPlayerId].Id; + + log.info("순위표를 지웁니다."); + progression.DeleteLeaderboardEntries({ Name: "Rank_Maze", EntityIds: [titleId]}); + + log.info("타이틀 계정을 지웁니다."); server.DeletePlayer({PlayFabId: currentPlayerId}); + } } @@ -833,6 +856,7 @@ handlers.GetOtherData = function(args) + function Get_Inventory() { return server.GetUserInventory({ PlayFabId: currentPlayerId }); diff --git a/Assets/ResWork/UIPrefabs/Rank/RankCard_Maze.cs b/Assets/ResWork/UIPrefabs/Rank/RankCard_Maze.cs index 69d50f7cb..d8e7e9542 100644 --- a/Assets/ResWork/UIPrefabs/Rank/RankCard_Maze.cs +++ b/Assets/ResWork/UIPrefabs/Rank/RankCard_Maze.cs @@ -1,3 +1,4 @@ +using PlayFab.ProgressionModels; using TMPro; using UnityEngine.UI; @@ -9,5 +10,13 @@ public class RankCard_Maze : CardBase public override void Set(T _base) { base.Set(_base); + EntityLeaderboardEntry data = _base as EntityLeaderboardEntry; + texts[0].text = data.Rank > 3 ? data.Rank.ToString() : ""; + images[0].enabled = data.Rank <= 3; + if (images[0].enabled) + images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(DSUtil.Format("rank{0}", data.Rank)); + texts[1].text = data.DisplayName; + texts[2].text = $"F{data.Scores[0]}"; + //images[1].sprite = data.Metadata; } } \ No newline at end of file diff --git a/Assets/Script/Map/MapData.cs b/Assets/Script/Map/MapData.cs index 2c75763ab..67db37940 100644 --- a/Assets/Script/Map/MapData.cs +++ b/Assets/Script/Map/MapData.cs @@ -22,7 +22,11 @@ public class MapData : MonoBehaviour } public MapZoneData Get_MapZoneData(int index) { return m_MapZoneData[index]; } - public void Set_MazeMap(int index) { DSUtil.InActivateGameObjects(gos_map, index); } + public void Set_MazeMap(int index) + { + DSUtil.InActivateGameObjects(gos_map, index); + Set_MazeNextPortal(index, false); + } public void Set_MazeNextPortal(int index, bool active) { var mzd = Get_MapZoneData(index); diff --git a/Assets/Script/Server/ServerInfo.cs b/Assets/Script/Server/ServerInfo.cs index 2e434648f..25055f03c 100644 --- a/Assets/Script/Server/ServerInfo.cs +++ b/Assets/Script/Server/ServerInfo.cs @@ -11,7 +11,6 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; using Random = UnityEngine.Random; -using StatisticUpdate = PlayFab.ClientModels.StatisticUpdate; public class ServerInfo : MyCoroutine { @@ -374,7 +373,8 @@ public class ServerInfo : MyCoroutine } void SetFirstName(Action _servercomplete, bool newuser) { - UpdateUserTitleDisplayName(DSUtil.Format("마녀{0}", Random.Range(100000, 1000000)), + var nick = DSUtil.Format("마녀{0}", Random.Range(100000, 1000000)); + UpdateUserTitleDisplayName(nick, () => { _servercomplete(newuser); }, () => { SetFirstName(_servercomplete, newuser); }); } @@ -410,17 +410,27 @@ public class ServerInfo : MyCoroutine { NetWait.Ins.Set(true); PlayFabClientAPI.UpdateUserTitleDisplayName(new UpdateUserTitleDisplayNameRequest { DisplayName = _name }, + result => + { // 홈페이지에 이름 남김 + NetWait.Ins.Set(false); + PlayFabProfilesAPI.SetDisplayName(new PlayFab.ProfilesModels.SetDisplayNameRequest { DisplayName = _name, }, result => - { + { // 내부 엔티티에 이름 남김 (랭킹에서 보임) NetWait.Ins.Set(false); UserName = _name; - _success(); + _success?.Invoke(); }, error => { NetWait.Ins.Set(false); - _fail(); + _fail?.Invoke(); }); + }, + error => + { + NetWait.Ins.Set(false); + _fail?.Invoke(); + }); } public void UpdateAvatarUrl(bool _shownetwait, Action _success, Action _fail) { @@ -467,25 +477,25 @@ public class ServerInfo : MyCoroutine FunctionParameter = new { LeaderboardName = leaderboard, - Metadata = "메타 데이터", + EntityID = m_LoginInfo.AuthenticationContext.EntityId, + Metadata = $"{m_ServerData.Get_EqiupmentEquip(eItem.PCCostume)}", Scores = scores, } }, result => { - Debug.Log(result); + //Debug.Log(result); }, fail => { - Debug.Log(fail); + //Debug.Log(fail); }); } public void Get_MyRank(string leaderboard, Action my) { NetWait.Ins.Set(true); PlayFabProgressionAPI.GetLeaderboardAroundEntity(new GetLeaderboardAroundEntityRequest - { LeaderboardName = leaderboard, MaxSurroundingEntries = 1, - Entity = new PlayFab.ProgressionModels.EntityKey { Id = m_LoginInfo.PlayFabId, Type = "title_player_account" } }, + { LeaderboardName = leaderboard, MaxSurroundingEntries = 1 }, result => { NetWait.Ins.Set(false); @@ -494,7 +504,7 @@ public class ServerInfo : MyCoroutine for (int i = 0; i < result.Rankings.Count; i++) { var temp = result.Rankings[i]; - if (temp.Entity.Id.Equals(m_LoginInfo.PlayFabId)) + if (temp.Entity.Id.Equals(m_LoginInfo.AuthenticationContext.EntityId)) { my(temp); break; @@ -534,54 +544,6 @@ public class ServerInfo : MyCoroutine NetWait.Ins.Set(false); FailCheck(error, "랭킹 정보 획득 실패"); }); - //var MyProfileConstraints = new PlayerProfileViewConstraints { ShowDisplayName = true, ShowAvatarUrl = true }; - //PlayFabClientAPI.GetLeaderboard(new GetLeaderboardRequest { StatisticName = leaderboard, MaxResultsCount = 100, ProfileConstraints = MyProfileConstraints }, - // result => - // { - // if (result.Leaderboard != null && result.Leaderboard.Count > 0) - // { - // var my = result.Leaderboard.Find(f => f.PlayFabId.Equals(m_LoginInfo.PlayFabId)); - // if (my == null) - // { - // PlayFabClientAPI.GetLeaderboardAroundPlayer(new GetLeaderboardAroundPlayerRequest { StatisticName = leaderboard, PlayFabId = m_LoginInfo.PlayFabId, ProfileConstraints = MyProfileConstraints, MaxResultsCount = getaround100 ? 100 : 1 }, - // result_around => - // { - // if (result_around.Leaderboard != null && result_around.Leaderboard.Count > 0) - // { - // NetWait.Ins.Set(false); - // _my(result_around.Leaderboard.Find(f => f.PlayFabId.Equals(m_LoginInfo.PlayFabId))); - // if (getaround100) _act100(result_around.Leaderboard); - // else _act100(result.Leaderboard); - // } - // }, - // error_around => - // { - // NetWait.Ins.Set(false); - // ToastUI.Ins.Set(143); - // _my(new PlayerLeaderboardEntry { PlayFabId = m_LoginInfo.PlayFabId, DisplayName = UserName, Position = 99998, StatValue = 0, Profile = new PlayerProfileModel { AvatarUrl = m_ServerData.Get_EqiupmentEquip(eItem.PC).ToString() } }); - // _act100(new List()); - // }); - // } - // else - // { - // NetWait.Ins.Set(false); - // _my(my); - // _act100(result.Leaderboard); - // } - // } - // else - // { - // NetWait.Ins.Set(false); - // ToastUI.Ins.Set(143); - // _my(new PlayerLeaderboardEntry { PlayFabId = m_LoginInfo.PlayFabId, DisplayName = UserName, Position = 99998, StatValue = 0, Profile = new PlayerProfileModel { AvatarUrl = m_ServerData.Get_EqiupmentEquip(eItem.PC).ToString() } }); - // _act100(new List()); - // } - // }, - // fail => - // { - // NetWait.Ins.Set(false); - // FailCheck(fail, "랭킹 정보 획득 실패"); - // }); } public void Get_OtherUserInfo(string _playfabid, Action _act) {