Save_PC_LimitSlotOptionChange

This commit is contained in:
Ino 2025-07-03 12:34:04 +09:00
parent 6e7d0ebc39
commit ecdc467250
8 changed files with 94 additions and 20 deletions

View File

@ -948,13 +948,14 @@ handlers.Save_PC_LimitSlotOptionChange = function(args)
var table = Get_MissionTable();
var price = 10 * ((1 + LockCount) * LockCount / 2 + 1);
log.info("price : " + price);
if (Use_Item(table, urod, matdata.n_Value, price))
{
var rtnAdd = []; // [{ slot, randombagid, optionlv }]
// 슬롯만큼 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;
@ -975,6 +976,10 @@ handlers.Save_PC_LimitSlotOptionChange = function(args)
//log.info(olv);
rtnAdd.push({ slot : OpenSlots[i], randombagid : optionitemID, optionlv : olv });
// 데이터에 저장
lst[OpenSlots[i]].ID = optionitemID;
lst[OpenSlots[i]].Lv = olv;
}
//log.info(rtnAdd);

View File

@ -1 +1 @@
[{"n_NeedLimitLv": "1", "n_DropIndex": "9900001", "n_GachaGradeRate1": "5000000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "0", "n_GachaGradeRate5": "0", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "2", "n_DropIndex": "9900001", "n_GachaGradeRate1": "5000000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "0", "n_GachaGradeRate5": "0", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "3", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2882", "n_GachaGradeRate5": "0", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "4", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2882", "n_GachaGradeRate5": "0", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "5", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2782", "n_GachaGradeRate5": "100", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "6", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2782", "n_GachaGradeRate5": "200", "n_GachaGradeRate6": "100", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "7", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2782", "n_GachaGradeRate5": "300", "n_GachaGradeRate6": "200", "n_GachaGradeRate7": "100", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "8", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2782", "n_GachaGradeRate5": "400", "n_GachaGradeRate6": "300", "n_GachaGradeRate7": "200", "n_GachaGradeRate8": "100", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "9", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4997764", "n_GachaGradeRate2": "3498130", "n_GachaGradeRate3": "1501224", "n_GachaGradeRate4": "2782", "n_GachaGradeRate5": "500", "n_GachaGradeRate6": "400", "n_GachaGradeRate7": "300", "n_GachaGradeRate8": "200", "n_GachaGradeRate9": "100"}]
[{"n_NeedLimitLv": "1", "n_DropIndex": "9900001", "n_GachaGradeRate1": "5000000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "0", "n_GachaGradeRate5": "0", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "2", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4900000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "0", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "3", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4800000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "0", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "4", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4700000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "100000", "n_GachaGradeRate7": "0", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "5", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4600000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "100000", "n_GachaGradeRate7": "100000", "n_GachaGradeRate8": "0", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "6", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4500000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "100000", "n_GachaGradeRate7": "100000", "n_GachaGradeRate8": "100000", "n_GachaGradeRate9": "0"}, {"n_NeedLimitLv": "7", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4400000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "100000", "n_GachaGradeRate7": "100000", "n_GachaGradeRate8": "100000", "n_GachaGradeRate9": "100000"}, {"n_NeedLimitLv": "8", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4400000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "100000", "n_GachaGradeRate7": "100000", "n_GachaGradeRate8": "100000", "n_GachaGradeRate9": "100000"}, {"n_NeedLimitLv": "9", "n_DropIndex": "9900001", "n_GachaGradeRate1": "4400000", "n_GachaGradeRate2": "3500000", "n_GachaGradeRate3": "1500000", "n_GachaGradeRate4": "100000", "n_GachaGradeRate5": "100000", "n_GachaGradeRate6": "100000", "n_GachaGradeRate7": "100000", "n_GachaGradeRate8": "100000", "n_GachaGradeRate9": "100000"}]

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -2898,4 +2898,12 @@ public class SC_PCStatInit
{
public int gem;
}
public class SC_LimitOptionResult
{
public List<SC_LimitOptionResultData> results;
}
public class SC_LimitOptionResultData
{
public int slot, randombagid, optionlv;
}
#endregion

View File

@ -1183,6 +1183,48 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_PC_LimitLvUp(_act); }, 2f);
});
}
public void Save_PC_LimitSlotOptionChange(string preset, Action<SC_LimitOptionResult> _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
Preset = preset
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (열린 슬롯 없음), 2 실패 (재화 부족), 3 실패 (각성 재료 id 없음))
switch (error)
{
case 0:
{
var options = JsonConvert.DeserializeObject<SC_LimitOptionResult>(str_result);
_act?.Invoke(options);
break;
}
case 1: ToastUI.Ins.Set(999900011); break;
case 2: ToastUI.Ins.Set(388); break;
case 3: ToastUI.Ins.Set(999900005); break;
}
}
else
Set_Coroutine(() => { Save_PC_LimitSlotOptionChange(preset, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_PC_LimitSlotOptionChange(preset, _act); }, 2f);
});
}
#endregion
#region

View File

@ -49,18 +49,31 @@ public class PCLimitSlotCard : CardBase
}
}
public void Set_Change(string preset)
// 기존 클라 기반일 때
//public void Set_Change(string preset)
//{
// var sdata = ServerInfo.Ins.m_ServerData;
// var isOpen = table_breakinglimit.Ins.Get_SlotOpenLv(m_Slot) <= sdata.Get_LimitLv();
// if (isOpen && m_SData.Lock == 0)
// {
// var lv = sdata.Get_LimitLv();
// var Tdata = table_limitslotmagicrate.Ins.Get_Data_orNull(lv);
// var grade = DSUtil.Get_RandomIndex(Tdata.list_rate) + 1;
// var itemData = table_randombag.Ins.Get_RandomItemData(Tdata.n_DropIndex, grade);
// var optionlv = table_enchantgradeconfig.Ins.Get_Lv(grade);
// sdata.Set_LimitSlotID(preset, m_Slot, itemData.itemid, optionlv);
// sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE);
// sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE_ACC);
// }
//}
public void Set_Change(string preset, SC_LimitOptionResult options)
{
var sdata = ServerInfo.Ins.m_ServerData;
var isOpen = table_breakinglimit.Ins.Get_SlotOpenLv(m_Slot) <= sdata.Get_LimitLv();
if (isOpen && m_SData.Lock == 0)
var s_data = options.results.Find(f => f.slot == m_Slot - 1);
if (s_data != null)
{
var lv = sdata.Get_LimitLv();
var Tdata = table_limitslotmagicrate.Ins.Get_Data_orNull(lv);
var grade = DSUtil.Get_RandomIndex(Tdata.list_rate) + 1;
var itemData = table_randombag.Ins.Get_RandomItemData(Tdata.n_DropIndex, grade);
var optionlv = table_enchantgradeconfig.Ins.Get_Lv(grade);
sdata.Set_LimitSlotID(preset, m_Slot, itemData.itemid, optionlv);
sdata.Set_LimitSlotID(preset, m_Slot, s_data.randombagid, s_data.optionlv);
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE);
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE_ACC);
}

View File

@ -1,3 +1,4 @@
using CodeStage.AntiCheat.ObscuredTypes;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
@ -10,6 +11,7 @@ public class PCLimitUI_Right : uScrollViewMgr
string m_Preset = "1";
int m_matID, m_CurProtectGrade, m_ProtectMaxGrade;
ObscuredInt mPrice;
List<TabUIData> list_TabData = new List<TabUIData>
{ new TabUIData{ btnName = "1" }, new TabUIData{ btnName = "2" }, new TabUIData{ btnName = "3" } };
@ -34,7 +36,8 @@ public class PCLimitUI_Right : uScrollViewMgr
list_CardBase[i].Set(i + 1);
texts[1].text = NumberFormatter.FormatNumber(sdata.Get_ItemAmount(m_matID));
m_Price.amount.text = NumberFormatter.FormatNumber(Get_Price());
mPrice = Get_Price(); mPrice.RandomizeCryptoKey();
m_Price.amount.text = NumberFormatter.FormatNumber(mPrice);
var lv = Mathf.Max(1, sdata.Get_LimitLv());
if (lv > 9) lv = 0;
@ -79,7 +82,7 @@ public class PCLimitUI_Right : uScrollViewMgr
}
bool CheckMoney(bool showtoast)
{
return ServerInfo.Ins.m_ServerData.Check_ItemAmount(m_matID, Get_Price(), showtoast);
return ServerInfo.Ins.m_ServerData.Check_ItemAmount(m_matID, mPrice, showtoast);
}
public string Get_Preset() { return m_Preset; }
@ -102,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);
@ -124,11 +127,14 @@ public class PCLimitUI_Right : uScrollViewMgr
void Change()
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Use_Item(m_matID, Get_Price());
list_CardBase.ForEach(f => (f as PCLimitSlotCard).Set_Change(m_Preset));
Set();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
NewGameUI.Ins.m_PCUI.Refresh_Money();
ServerInfo.Ins.Save_PC_LimitSlotOptionChange(m_Preset, options =>
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Use_Item(m_matID, mPrice);
list_CardBase.ForEach(f => (f as PCLimitSlotCard).Set_Change(m_Preset, options));
Set();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
NewGameUI.Ins.m_PCUI.Refresh_Money();
});
}
}