Get_UserInfo 에서 클라 재접속 시간 계산 및 각종 시간 차감

This commit is contained in:
Ino 2025-07-25 09:13:41 +09:00
parent 9100f89597
commit 97fb4975bb
6 changed files with 65 additions and 30 deletions

View File

@ -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) : []
}
);

View File

@ -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<ServerMailData> Mail;
}

View File

@ -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<SC_GetUserInfoResult>(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
{ // 신규 유저

View File

@ -1,6 +1,4 @@
using CodeStage.AntiCheat.ObscuredTypes;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OffLineReward : LobbyNonMenuBase

View File

@ -205,7 +205,7 @@ public class GameUI : MonoBehaviourSingletonTemplate<GameUI>
private void Start()
{
Set_BattleUI(false);
ServerInfo.Ins.Check_OfflineReward();
}
public void Set_AllUI(bool _active)

View File

@ -30,14 +30,13 @@ public class NewGameUI : MonoBehaviourSingletonTemplate<NewGameUI>
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