diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index 3677befa3..702cd40b4 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -119,11 +119,69 @@ function Add_Mail(args) handlers.Get_UserInfo = function (args) { var readonlydata = Get_UserReadOnlyData(); + var NRU = readonlydata.Data.UserInfo ? false : true; + var sec = 0; + var urod = null; + + if (!NRU) + { + urod = Get_JsonUserData(readonlydata); + var curTime = Get_CurKoreaTime(); + var lastTime = new Date(urod.LastTime); + + sec = Math.max(0, Math.floor((curTime - lastTime) / 1000)); + + if (sec > 0) + { + for (var i = 0; i < urod.Farm.Slot.length; i++) + { + if (urod.Farm.Slot[i].Time > 0) + { + urod.Farm.Slot[i].Time -= sec; + if (urod.Farm.Slot[i].Time < 0) urod.Farm.Slot[i].Time = 0; + } + } + + for (var i = 0; i < urod.Farm.Shop.length; i++) + { + if (urod.Farm.Shop[i][2] > 0) + { + urod.Farm.Shop[i][2] -= sec; + if (urod.Farm.Shop[i][2] < 0) urod.Farm.Shop[i][2] = 0; + } + } + + for (var key in urod.Shop) + { + if (urod.Shop.hasOwnProperty(key)) + { + if (urod.Shop[key][2] > 0) + { + urod.Shop[key][2] -= sec; + if (urod.Shop[key][2] < 0) urod.Shop[key][2] = 0; + } + } + } + + for (var i = 0; i < urod.Buff.Time.length; i++) + { + if (urod.Buff.Time[i] > 0) + { + urod.Buff.Time[i] -= sec; + if (urod.Buff.Time[i] < 0) urod.Buff.Time[i] = 0; + } + } + + Set_JsonUserData(urod); + } + } + return Get_Return( Get_Error(readonlydata, args.Token), { - isNewUser : readonlydata.Data.UserInfo ? false : true, - UserInfo: readonlydata.Data.UserInfo ? JSON.parse(readonlydata.Data.UserInfo.Value) : {}, + isNewUser: NRU, + ReconnectSec: sec, + UserInfo: urod ?? {}, Mail: readonlydata.Data.Mail ? JSON.parse(readonlydata.Data.Mail.Value) : [] } ); diff --git a/Assets/Script/Server/ServerClass.cs b/Assets/Script/Server/ServerClass.cs index a5f7bde12..4aa5aa54c 100644 --- a/Assets/Script/Server/ServerClass.cs +++ b/Assets/Script/Server/ServerClass.cs @@ -3022,6 +3022,7 @@ public class SD_FarmSlot_Read public class SC_GetUserInfoResult { public bool isNewUser; + public int ReconnectSec; public ServerData_Read UserInfo; public List Mail; } diff --git a/Assets/Script/Server/ServerInfo.cs b/Assets/Script/Server/ServerInfo.cs index 42077f33b..319a2eb83 100644 --- a/Assets/Script/Server/ServerInfo.cs +++ b/Assets/Script/Server/ServerInfo.cs @@ -94,7 +94,7 @@ public class ServerInfo : MyCoroutine if (InGameInfo.Ins != null) { OffLineReward.m_Sec = (int)(ServerTime - AppPauseTime).TotalSeconds; - Check_OfflineReward(); + // TODO 정인호 : 오프라인 보상 서버 통신 필요? } } } @@ -113,27 +113,6 @@ public class ServerInfo : MyCoroutine Send_Log(); } - public void Check_OfflineReward() - { - // TODO 정인호 : 비접속 시간만큼 시간 차감 - m_ServerData.Sub_AllFarmSlotTime(OffLineReward.m_Sec); // 실제 사용 데이터 - m_ServerData.Sub_AllFarmShopTime(OffLineReward.m_Sec); // 실제 사용 데이터 - - //m_ServerData.Sub_AllGambleADTime(OffLineReward.m_Sec); // 광고 뽑기 - m_ServerData.Sub_ShopADTime(-1, OffLineReward.m_Sec); // 상점 광고 - //m_ServerData.Sub_Common(eCommon.CloverShopResetTime, OffLineReward.m_Sec); // 클로버 상점 초기화 시간 - - //if (OffLineReward.m_Sec >= 300) - // GameUI.Ins.LobbyUI.Get_OffLineReward().Set(); - //else - //{ - // OffLineReward.m_Sec = 0; - // OffLineReward.m_Sec.RandomizeCryptoKey(); - //} - - OffLineReward.m_Sec = 0; // 위 주석으로 인해 일단 넣어둠 - } - public void Show_UpdateAppPopup() { #if UNITY_ANDROID @@ -341,11 +320,11 @@ public class ServerInfo : MyCoroutine var str_result = urod.FunctionResult.ToString(); var error = MyErrorCheck(str_result); var json = JsonConvert.DeserializeObject(str_result); + OffLineReward.m_Sec = json.ReconnectSec; if (!json.isNewUser) { // 기존 유저 m_ServerData = json.UserInfo.Get_ServerData(false); - //OffLineReward.m_Sec = (int)(ServerTime - m_ServerData.LastTime).TotalSeconds; } else { // 신규 유저 diff --git a/Assets/Script/UI/Center/OffLineReward.cs b/Assets/Script/UI/Center/OffLineReward.cs index 6535a2e91..a44d6ab64 100644 --- a/Assets/Script/UI/Center/OffLineReward.cs +++ b/Assets/Script/UI/Center/OffLineReward.cs @@ -1,6 +1,4 @@ using CodeStage.AntiCheat.ObscuredTypes; -using System.Collections; -using System.Collections.Generic; using UnityEngine; public class OffLineReward : LobbyNonMenuBase diff --git a/Assets/Script/UI/GameUI.cs b/Assets/Script/UI/GameUI.cs index 499cd4337..a26cb095c 100644 --- a/Assets/Script/UI/GameUI.cs +++ b/Assets/Script/UI/GameUI.cs @@ -205,7 +205,7 @@ public class GameUI : MonoBehaviourSingletonTemplate private void Start() { Set_BattleUI(false); - ServerInfo.Ins.Check_OfflineReward(); + } public void Set_AllUI(bool _active) diff --git a/Assets/Script/UI/NewGameUI.cs b/Assets/Script/UI/NewGameUI.cs index a491fa5fd..5f637396e 100644 --- a/Assets/Script/UI/NewGameUI.cs +++ b/Assets/Script/UI/NewGameUI.cs @@ -30,14 +30,13 @@ public class NewGameUI : MonoBehaviourSingletonTemplate private void Start() { - //ServerInfo.Ins.Check_OfflineReward(); m_GuideQuestUI.Set(); InGameInfo.Ins.Load_Map(-1); var cameraData = Camera.main.GetUniversalAdditionalCameraData(); cameraData.cameraStack.Add(UICamera); + // OffLineReward // TODO 정인호 : 오프라인 보상 설정 Set_Noti(); - ServerInfo.Ins.Check_OfflineReward(); } #if UNITY_EDITOR