Save_PC_MenuBack

This commit is contained in:
Ino 2025-08-01 01:41:00 +09:00
parent 4e8ebd95a3
commit 0557afa477
5 changed files with 47 additions and 29 deletions

View File

@ -872,20 +872,26 @@ handlers.Save_PC_MenuBack = function(args)
urod.Equip.LimitPreset = args.Preset; urod.Equip.LimitPreset = args.Preset;
// 초월 옵션 // 초월 옵션
var rtnLimitSlotOption = Set_LimitSlotOption(table, urod, args); var rtnlimitslot = {};
var rtnLimitPreset = null; rtnlimitslot.limitslotoption = Set_LimitSlotOption(table, urod, args);
if (CheckNullOrEmpty(rtnLimitSlotOption)) if (CheckNullOrEmpty(rtnlimitslot.limitslotoption))
{
rtnlimitslot.success = true;
urod.LimitBreakOption.Preset = args.LimitSlotData.Preset; urod.LimitBreakOption.Preset = args.LimitSlotData.Preset;
}
else else
rtnLimitPreset = urod.LimitBreakOption.Preset; {
rtnlimitslot.success = false;
rtnlimitslot.limitpreset = urod.LimitBreakOption.Preset;
rtnlimitslot.matID = Get_GlobalValue_nValue("n_BreakingLimitSlotMaterialID");
rtnlimitslot.curAmount = Get_ItemAmount(urod, rtnlimitslot.matID);
}
Set_JsonUserData(urod); Set_JsonUserData(urod);
return Get_Return(0, { return Get_Return(0, {
awakekMats : rtn_awakenMatIds, awakenMats : rtn_awakenMatIds,
awaken : urod.Awaken, awaken : urod.Awaken,
limitslotoption : rtnLimitSlotOption, limitslot : rtnlimitslot
limitpreset : rtnLimitPreset,
limitoptionAmount : Get_ItemAmount(urod, Get_GlobalValue_nValue("n_BreakingLimitSlotMaterialID"))
}); });
} }
function Get_PCAwakenMatKey(stat) function Get_PCAwakenMatKey(stat)

View File

@ -3117,13 +3117,18 @@ public class SC_Items
public int itemid, amount; public int itemid, amount;
} }
public class SC_LimitSlotData
{
public bool success;
public Dictionary<string, List<SD_PCLimitSlotData_Read>> limitslotoption;
public List<int> limitpreset;
public int matID, curAmount;
}
public class SC_PCMenuBackResult public class SC_PCMenuBackResult
{ {
public List<SC_Items> awakekMats; public List<SC_Items> awakenMats;
public Dictionary<string, SD_PCAwakenData_Read> awaken; public Dictionary<string, SD_PCAwakenData_Read> awaken;
public Dictionary<string, List<SD_PCLimitSlotData>> limitslotoption; public SC_LimitSlotData limitslot;
public List<int> limitpreset;
public int limitoptionAmount;
} }
public class SC_PCStatInit public class SC_PCStatInit
{ {

View File

@ -100,8 +100,6 @@ public class PCLimitSlotCard : CardBase
PCLimitUI.Ins.m_PCLimitUI_Right.ChangeOption = true; PCLimitUI.Ins.m_PCLimitUI_Right.ChangeOption = true;
} }
sdata.Set_LimitSlotID(preset, m_Slot, option.id, option.lv); sdata.Set_LimitSlotID(preset, m_Slot, option.id, option.lv);
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE);
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE_ACC);
PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Add_MissionCount(); PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Add_MissionCount();
} }
} }

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
public class LimitSlotChangeData public class LimitSlotChangeData
{ {
ObscuredInt TotalPrice, MissionCount; ObscuredInt TotalPrice, MissionCount;
@ -69,6 +69,7 @@ public class LimitSlotChangeData
public void Add_TotalPrice(int price) { TotalPrice += price; TotalPrice.RandomizeCryptoKey(); } public void Add_TotalPrice(int price) { TotalPrice += price; TotalPrice.RandomizeCryptoKey(); }
public void Add_MissionCount() { ++MissionCount; MissionCount.RandomizeCryptoKey(); } public void Add_MissionCount() { ++MissionCount; MissionCount.RandomizeCryptoKey(); }
public int Get_MissionCount() { return MissionCount; }
} }
public class PCLimitUI_Right : uScrollViewMgr public class PCLimitUI_Right : uScrollViewMgr
{ {
@ -118,10 +119,7 @@ public class PCLimitUI_Right : uScrollViewMgr
Set_ProtectUI(); Set_ProtectUI();
} }
void Set_ProtectUI() void Set_ProtectUI() { texts[0].text = m_CurProtectGrade.ToString(); }
{
texts[0].text = m_CurProtectGrade.ToString();
}
int Get_Price() int Get_Price()
{ {
int LockCount = 0; int LockCount = 0;
@ -149,10 +147,7 @@ public class PCLimitUI_Right : uScrollViewMgr
} }
return false; return false;
} }
bool CheckMoney(bool showtoast) bool CheckMoney(bool showtoast) { return ServerInfo.Ins.m_ServerData.Check_ItemAmount(m_matID, mPrice, showtoast); }
{
return ServerInfo.Ins.m_ServerData.Check_ItemAmount(m_matID, mPrice, showtoast);
}
public string Get_Preset() { return m_Preset; } public string Get_Preset() { return m_Preset; }
public void OnClick_Preset() public void OnClick_Preset()

View File

@ -54,24 +54,38 @@ public class PCUI : BotMenuBase
if (changeCostume || changeworker || changejob || changepreset || pcawakend || changelimitslot) if (changeCostume || changeworker || changejob || changepreset || pcawakend || changelimitslot)
{ {
var limitslotdata = PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Get();
ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume), ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume),
sdata.Get_EqiupmentEquip(eItem.Worker), sdata.Get_EqiupmentEquip(eItem.Worker),
sdata.Get_EqiupmentEquip(eItem.PC), sdata.Get_EqiupmentEquip(eItem.PC),
sdata.Equip.LimitPreset, sdata.Equip.LimitPreset,
PCAwakenUI.isIns ? PCAwakenUI.Ins.Get_CS_AwakenData() : emptyawaken, PCAwakenUI.isIns ? PCAwakenUI.Ins.Get_CS_AwakenData() : emptyawaken,
PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Get(), limitslotdata,
result => result =>
{ {
for (int i = 0; i < result.awakekMats.Count; i++) for (int i = 0; i < result.awakenMats.Count; i++)
sdata.Set_Item(result.awakekMats[i].itemid, result.awakekMats[i].amount); sdata.Set_Item(result.awakenMats[i].itemid, result.awakenMats[i].amount);
foreach (var item in result.awaken) sdata.Awaken[item.Key] = item.Value.Get(); foreach (var item in result.awaken) sdata.Awaken[item.Key] = item.Value.Get();
if (result.limitslotoption != null) if (result.limitslot.success)
{ {
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE, 0, limitslotdata.Get_MissionCount());
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE_ACC, 0, limitslotdata.Get_MissionCount());
} }
if (result.limitpreset != null) else
{ {
sdata.LimitBreakOption.Preset = result.limitslot.limitpreset;
foreach (var item in result.limitslot.limitslotoption)
{
sdata.LimitSlot[item.Key].Clear();
for (int i = 0; i < item.Value.Count; i++)
sdata.LimitSlot[item.Key].Add(item.Value[i].Get());
}
MyValue.Get_ActorStatInfoorNull(eRole.PC);
sdata.Set_Item(result.limitslot.matID, result.limitslot.curAmount);
//Refresh_Money(); // 뒤로 가므로 필요x
} }
if (changeCostume || changeworker) if (changeCostume || changeworker)