Save_PC_LimitSlotLock

This commit is contained in:
Ino 2025-07-03 13:49:08 +09:00
parent ecdc467250
commit 3727109e07
6 changed files with 76 additions and 10 deletions

View File

@ -917,8 +917,8 @@ handlers.Save_PC_LimitLvUp = function(args)
handlers.Save_PC_LimitSlotOptionChange = function(args)
{
var readonlydata = Get_UserReadOnlyData();
//var error = Get_Error(readonlydata, args.Token);
//if (error < 0) return Get_Return(error);
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
@ -930,7 +930,6 @@ handlers.Save_PC_LimitSlotOptionChange = function(args)
for (var i = 0; i < lst.length; i++)
{
var limitdata = limittable.find(f=>f.n_limitSlotMagic == i + 1);
var isOpen = limitdata.n_LimitLv <= urod.PC.LLv;
if (limitdata.n_LimitLv <= urod.PC.LLv)
{
if (lst[i].Lock == 0) OpenSlots.push(i);
@ -940,7 +939,7 @@ handlers.Save_PC_LimitSlotOptionChange = function(args)
}
log.info("OpenSlotCount : " + OpenSlots.length);
log.info("LockCount : " + LockCount);
if (OpenSlots.length == 0) return Get_Return(2);
if (OpenSlots.length == 0) return Get_Return(1);
var global = Get_GlobalValueTable();
var matdata = global.find(f => f.s_ID == "n_BreakingLimitSlotMaterialID");
@ -955,7 +954,7 @@ handlers.Save_PC_LimitSlotOptionChange = function(args)
// 슬롯만큼 for문 돌리기
for (var i = 0; i < OpenSlots.length; ++i)
{
log.info("옵션 변경 슬롯 : " + OpenSlots[i]);
//log.info("옵션 변경 슬롯 : " + OpenSlots[i]);
var limitslotmagicrateTable = Get_LimitSlotMagicRateTable();
var lv = urod.PC.LLv;
if (lv > 9) lv = 9;
@ -991,6 +990,33 @@ handlers.Save_PC_LimitSlotOptionChange = function(args)
else
return Get_Return(2);
}
handlers.Save_PC_LimitSlotLock = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
// 열린 슬롯인 지 확인
var limittable = Get_BreakingLimitTable();
var lv = urod.PC.LLv;
if (lv > 9) lv = 9;
var limitdata = limittable.find(f=>f.n_LimitLv == lv);
if (limitdata.n_limitSlotMagic >= args.Slot)
{
var slot = urod.LimitSlot[args.Preset][args.Slot - 1];
// 잠기지 않았다면 잠금, 잠겼다면 잠금 해제
if (slot.Lock == 0) slot.Lock = 1;
else slot.Lock = 0;
Set_JsonUserData(urod);
return Get_Return(0);
}
else
return Get_Return(1);
}
/////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args)

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1225,6 +1225,42 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_PC_LimitSlotOptionChange(preset, _act); }, 2f);
});
}
public void Save_PC_LimitSlotLock(string preset, int slot, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
Preset = preset,
Slot = slot,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (열린 슬롯이 아님))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900012); break;
}
}
else
Set_Coroutine(() => { Save_PC_LimitSlotLock(preset, slot, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_PC_LimitSlotLock(preset, slot, _act); }, 2f);
});
}
#endregion
#region

View File

@ -84,10 +84,14 @@ public class PCLimitSlotCard : CardBase
public void OnClick_Lock()
{
if (m_SData.ID > 0)
{
var preset = PCLimitUI.Ins.m_PCLimitUI_Right.Get_Preset();
ServerInfo.Ins.Save_PC_LimitSlotLock(preset, m_Slot, () =>
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Set_LimitSlotLock(PCLimitUI.Ins.m_PCLimitUI_Right.Get_Preset(), m_Slot);
sdata.Set_LimitSlotLock(preset, m_Slot);
PCLimitUI.Ins.m_PCLimitUI_Right.Set();
});
}
}
}

View File

@ -105,7 +105,7 @@ public class PCLimitUI_Right : uScrollViewMgr
public void OnClick_Change()
{
//if (IsOpenSlot() && CheckMoney(true))
if (IsOpenSlot() && CheckMoney(true))
{
var sdata = ServerInfo.Ins.m_ServerData;
var lst = sdata.Get_LimitSlot(m_Preset);