diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index 6d31c6311..3a3fa8a82 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -85,23 +85,23 @@ handlers.aaTest = function(args) // 에러 정리 : 0 정상, 1 채팅 금지 유저, 2 서버 점검, 3 잘못된 우편을 // -1 중복 로그인, -2 금지 유저 -function Get_Error(token) +function Get_Error(readonlydata, token) { - var uidata = server.GetUserInternalData({ PlayFabId: currentPlayerId }).Data; - var titledata = Get_TitleData(); - var jbSplit = titledata.PassIDs.split(','); - for ( var i in jbSplit ) + const PassIDs = [ "20037ADFE4BC365B", "24595CBA317234B8" ]; + if (PassIDs.includes(currentPlayerId)) { - if(jbSplit[i] == currentPlayerId) - return 0; + log.info("Pass by PassIDs."); + return 0; // 지정된 아이디면 그냥 통과 } - if(uidata.CurToken.Value != token) + if (readonlydata.Data.CurToken.Value != token) return -1; - else if(!CheckNullOrEmpty(uidata.BanUser)) + /* + else if (!CheckNullOrEmpty(uidata.BanUser)) return -2; - else if(!CheckNullOrEmpty(uidata.BanChat)) + else if (!CheckNullOrEmpty(uidata.BanChat)) return 1; + */ else return 0; } @@ -161,8 +161,8 @@ function Del_Mail(itemname) } handlers.Get_UserInfo = function (args) { - var urod = server.GetUserReadOnlyData({ PlayFabId: currentPlayerId }).Data; - return Get_Return(Get_Error(args.Token), { GetUserReadOnlyData: urod }); + var readonlydata = Get_UserReadOnlyData(); + return Get_Return(Get_Error(readonlydata, args.Token), { GetUserReadOnlyData: readonlydata.Data }); } handlers.Get_OtherUserInfo = function (args) { @@ -176,28 +176,28 @@ handlers.Get_OtherUserInfo = function (args) handlers.ServerSave_LoginToken = function(args) { - //var urod = server.GetUserReadOnlyData({ PlayFabId: currentPlayerId }).Data; - server.UpdateUserInternalData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"CurToken": args.Token } }); + server.UpdateUserReadOnlyData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"CurToken": args.Token} }); + //server.UpdateUserInternalData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"CurToken": args.Token } }); } handlers.ServerSave_AllData = function(args) { - var error = Get_Error(args.Token); - if(error < 0) return {error:error}; - - log.info(args.AllData); + var error = Get_Error(Get_UserReadOnlyData(), args.Token); + if (error < 0) return Get_Return(error); server.UpdateUserReadOnlyData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"UserInfo": JSON.stringify(args.AllData)} }); - return { - error: error - } + return Get_Return(error); } /////////////////////////////////// 서버 처리 -function Get_JsonUserData() +function Get_UserReadOnlyData() { - return JSON.parse(server.GetUserReadOnlyData({ PlayFabId: currentPlayerId }).Data.UserInfo.Value); + return server.GetUserReadOnlyData({ PlayFabId: currentPlayerId }); +} +function Get_JsonUserData(readonlydata) +{ + return JSON.parse(readonlydata.Data.UserInfo.Value); } function Set_JsonUserData(urod) { @@ -233,7 +233,7 @@ function Get_Return(errorval, add) { } */ } -function Add_Item(itemtable, urod, itemid, amount, isCheat) +function Add_Item(table, itemtable, urod, itemid, amount, isCheat) { var itemdata = itemtable.find(f => f.n_ItemID === itemid); if (!itemdata) { @@ -241,7 +241,9 @@ function Add_Item(itemtable, urod, itemid, amount, isCheat) return; } - log.info("add item : " + itemid + ', ' + amount + ", " + itemdata.e_ItemType); + Add_MissionCount(table, urod, "TAKE_GOODS", itemid, itemCount, false); + Add_MissionCount(table, urod, "TAKE_GOODS_LIMIT", itemid, itemCount, false); + Add_MissionCount(table, urod, "TAKE_GOODS_ACC", itemid, itemCount, false); switch (itemdata.e_ItemType) { @@ -291,6 +293,9 @@ function Add_Item(itemtable, urod, itemid, amount, isCheat) } function Use_Item(urod, itemid, amount) { + Add_MissionCount(table, urod, "CONSUME_GOODS", itemid, itemCount, false); + Add_MissionCount(table, urod, "CONSUME_GOODS_ACC", itemid, itemCount, false); + if (urod.Item[itemid]) { if (urod.Item[itemid][0] >= amount) @@ -402,15 +407,26 @@ function Get_Exp(lv) { handlers.Save_CheatItem = function(args) { var urod = Get_JsonUserData(); - Add_Item(Get_ItemTable(), urod, args.ID, args.Amount, true); + Add_Item(Get_MissionTable(), Get_ItemTable(), urod, args.ID, args.Amount, true); Set_JsonUserData(urod); } handlers.Get_MailList = function(args) { - var error = Get_Error(args.Token); - var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data; - return Get_Return(error, { Mail: JSON.parse(userdata.Mail.Value) }); + var readonlydata = Get_UserReadOnlyData(); + var mailList = []; + + if (readonlydata.Data.Mail && readonlydata.Data.Mail.Value) + { + try { + mailList = JSON.parse(readonlydata.Data.Mail.Value); + } catch (e) { + log.error("Mail JSON Parse Error: " + e); + mailList = []; // 파싱 실패시 빈 목록 반환 + } + } + + return Get_Return(Get_Error(readonlydata, args.Token), { Mail: mailList }); } handlers.Get_MailReward = function(args) { @@ -420,6 +436,7 @@ handlers.Get_MailReward = function(args) var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data; if (!CheckNullOrEmpty(userdata.Mail)) { + var table = Get_MissionTable(); var itemtable = Get_ItemTable(); var urod = Get_JsonUserData(); var mailjson = JSON.parse(userdata.Mail.Value); @@ -431,7 +448,7 @@ handlers.Get_MailReward = function(args) if (maildate.getTime() === getdate.getTime()) { existmail = true; - Add_Item(itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount); + Add_Item(table, itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount); delete mailjson[i]; break; } @@ -458,11 +475,12 @@ handlers.Get_AllMail = function(args) var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data; if (!CheckNullOrEmpty(userdata.Mail)) { + var table = Get_MissionTable(); var itemtable = Get_ItemTable(); var urod = Get_JsonUserData(); var mailjson = JSON.parse(userdata.Mail.Value); for (var i in mailjson) - Add_Item(itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount); + Add_Item(table, itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount); server.UpdateUserData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"Mail": "[]"} }); Set_JsonUserData(urod); @@ -493,11 +511,7 @@ handlers.Save_StageResult = function(args) { var itemId = key; var itemCount = items[key]; - Add_Item(itemtable, urod, itemId, itemCount); - - Add_MissionCount(table, urod, "TAKE_GOODS", itemId, itemCount, false); - Add_MissionCount(table, urod, "TAKE_GOODS_LIMIT", itemId, itemCount, false); - Add_MissionCount(table, urod, "TAKE_GOODS_ACC", itemId, itemCount, false); + Add_Item(table, itemtable, urod, itemId, itemCount); } // 몬스터 킬 처리 diff --git a/Assets/Script/Server/ServerInfo.cs b/Assets/Script/Server/ServerInfo.cs index 23eb4aff5..50755c7ac 100644 --- a/Assets/Script/Server/ServerInfo.cs +++ b/Assets/Script/Server/ServerInfo.cs @@ -340,6 +340,7 @@ public class ServerInfo : MyCoroutine Dictionary jsonData = Json.Deserialize(urod.FunctionResult.ToString()) as Dictionary; var gurod = Json.Serialize(jsonData["GetUserReadOnlyData"]); var gurodjson = Json.Deserialize(gurod) as Dictionary; + bool newUser = false; if (gurodjson.ContainsKey("UserInfo")) { // 기존 유저 @@ -353,14 +354,17 @@ public class ServerInfo : MyCoroutine else { // 신규 유저 m_ServerData = new ServerData(); + newUser = true; } DataCheckMgr.Ins.Set(); OptionInfo.Ins.Set_UI(); // 서버 데이터 가져오기 완료 - if (IsNewUser()) SetFirstName(_servercomplete, true); - else _servercomplete(false); + if (newUser) // 기본 데이터 서버에 저장하고 닉네임 만들기 + Write(() => { SetFirstName(_servercomplete, true); }); + else + _servercomplete(false); } //catch //{ @@ -377,7 +381,7 @@ public class ServerInfo : MyCoroutine } void SetFirstName(Action _servercomplete, bool newuser) { - var nick = DSUtil.Format("마녀{0}", Random.Range(100000, 1000000)); + var nick = DSUtil.Format("힘민지{0}", Random.Range(100000, 1000000)); UpdateUserTitleDisplayName(nick, () => { _servercomplete(newuser); }, () => { SetFirstName(_servercomplete, newuser); });