초월 옵션 작업 중... 2

This commit is contained in:
Ino 2025-07-31 08:07:36 +09:00
parent f5d3e489ce
commit adab193f2b
7 changed files with 106 additions and 19 deletions

View File

@ -1130,14 +1130,14 @@ function Make_LimitBreakOption(urod)
var lv = urod.PC.LLv;
if (lv > 9) lv = 9;
var lsmc_data = limitslotmagicrateTable.find(f=>f.n_NeedLimitLv == lv);
var randombaTable = Get_RandomBagTable();
var enchantgradeTable = Get_EnchantGradeTable();
for (var i = 0; i < 3; ++i)
{
for (var j = 0; j < 500; ++j)
{
var grade = Get_RandomGachaGrade(lv);
var optionitemID = Get_RandomItem(lsmc_data.n_DropIndex, grade).itemid;
var rdnItem = Get_RandomItem(lsmc_data.n_DropIndex, grade);
//if (rdnItem == null) log.info(lsmc_data.n_DropIndex + " " + grade);
var optionitemID = rdnItem.itemid;
var olv = Get_OptionLv(grade);
urod.LimitBreakOption.Option[i + 1].push({ id : optionitemID, lv : olv });
}
@ -1181,6 +1181,17 @@ handlers.Save_PC_LimitLvUp = function(args)
else
return Get_Return(1); // PC 레벨 부족
}
handlers.Get_PC_LimitSlotOption = 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);
Make_LimitBreakOption(urod);
Set_JsonUserData(urod);
return Get_Return(0, { option : urod.LimitBreakOption });
}
handlers.Save_PC_LimitSlotOptionChange = function(args)
{
var readonlydata = Get_UserReadOnlyData();

View File

@ -1 +1 @@
[{"n_OptionID": "330001", "e_OptionType": "KillToMP", "n_DefaultValue": "90", "f_LevelPerValue": "1", "f_BalanceConstant": "0", "f_ExtraValue1": "0.5", "f_ExtraValue2": "1", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330002", "e_OptionType": "KillToHP", "n_DefaultValue": "90", "f_LevelPerValue": "1", "f_BalanceConstant": "0", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330003", "e_OptionType": "Pet_ATK_Multiplier", "n_DefaultValue": "0", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "5", "f_ExtraValue2": "0.25", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330004", "e_OptionType": "Pet_HP_Multiplier", "n_DefaultValue": "0", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330005", "e_OptionType": "ATK", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330006", "e_OptionType": "DEF", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330007", "e_OptionType": "MaxHP", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330008", "e_OptionType": "MaxMP", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330009", "e_OptionType": "M_DEF", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330101", "e_OptionType": "KillToMP", "n_DefaultValue": "90", "f_LevelPerValue": "2", "f_BalanceConstant": "0", "f_ExtraValue1": "0.5", "f_ExtraValue2": "1", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330102", "e_OptionType": "KillToHP", "n_DefaultValue": "90", "f_LevelPerValue": "2", "f_BalanceConstant": "0", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330103", "e_OptionType": "Pet_ATK_Multiplier", "n_DefaultValue": "0", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "5", "f_ExtraValue2": "0.25", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330104", "e_OptionType": "Pet_HP_Multiplier", "n_DefaultValue": "0", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330105", "e_OptionType": "ATK", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330106", "e_OptionType": "DEF", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330107", "e_OptionType": "MaxHP", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330108", "e_OptionType": "MaxMP", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330109", "e_OptionType": "M_DEF", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "340001", "e_OptionType": "Pet_Reinforce_Price", "n_DefaultValue": "10000", "f_LevelPerValue": "1", "f_BalanceConstant": "0.1", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "340002", "e_OptionType": "Pet_Reinforce_Price", "n_DefaultValue": "20000", "f_LevelPerValue": "2", "f_BalanceConstant": "0.2", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "340003", "e_OptionType": "Pet_Reinforce_Price", "n_DefaultValue": "30000", "f_LevelPerValue": "3", "f_BalanceConstant": "0.3", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}]
[{"n_OptionID": "330001", "e_OptionType": "KillToMP", "n_DefaultValue": "90", "f_LevelPerValue": "1", "f_BalanceConstant": "0", "f_ExtraValue1": "0.5", "f_ExtraValue2": "1", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330002", "e_OptionType": "KillToHP", "n_DefaultValue": "90", "f_LevelPerValue": "1", "f_BalanceConstant": "0", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330003", "e_OptionType": "Pet_ATK_Multiplier", "n_DefaultValue": "1", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "5", "f_ExtraValue2": "0.25", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330004", "e_OptionType": "Pet_HP_Multiplier", "n_DefaultValue": "1", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330005", "e_OptionType": "ATK", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330006", "e_OptionType": "DEF", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330007", "e_OptionType": "MaxHP", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330008", "e_OptionType": "MaxMP", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330009", "e_OptionType": "M_DEF", "n_DefaultValue": "10", "f_LevelPerValue": "20", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330101", "e_OptionType": "KillToMP", "n_DefaultValue": "90", "f_LevelPerValue": "2", "f_BalanceConstant": "0", "f_ExtraValue1": "0.5", "f_ExtraValue2": "1", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330102", "e_OptionType": "KillToHP", "n_DefaultValue": "90", "f_LevelPerValue": "2", "f_BalanceConstant": "0", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330103", "e_OptionType": "Pet_ATK_Multiplier", "n_DefaultValue": "2", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "5", "f_ExtraValue2": "0.25", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330104", "e_OptionType": "Pet_HP_Multiplier", "n_DefaultValue": "2", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330105", "e_OptionType": "ATK", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330106", "e_OptionType": "DEF", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330107", "e_OptionType": "MaxHP", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330108", "e_OptionType": "MaxMP", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "330109", "e_OptionType": "M_DEF", "n_DefaultValue": "10", "f_LevelPerValue": "30", "f_BalanceConstant": "0.0015", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "340001", "e_OptionType": "Pet_Reinforce_Price", "n_DefaultValue": "10000", "f_LevelPerValue": "1", "f_BalanceConstant": "0.1", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "340002", "e_OptionType": "Pet_Reinforce_Price", "n_DefaultValue": "20000", "f_LevelPerValue": "2", "f_BalanceConstant": "0.2", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}, {"n_OptionID": "340003", "e_OptionType": "Pet_Reinforce_Price", "n_DefaultValue": "30000", "f_LevelPerValue": "3", "f_BalanceConstant": "0.3", "f_ExtraValue1": "0", "f_ExtraValue2": "0", "f_ExtraValue3": "0", "f_ExtraValue4": "0"}]

Binary file not shown.

View File

@ -773,6 +773,12 @@ public partial class ServerData
lst[index].Lock = lst[index].Lock == 0 ? 1 : 0;
lst[index].Lock.RandomizeCryptoKey();
}
public bool isLock_LimitSlot(string preset, int slot)
{
var lst = Get_LimitSlot(preset);
var index = slot - 1;
return lst[index].Lock > 0;
}
#endregion
#region
public int Get_PetLv(int _petid)

View File

@ -1128,6 +1128,42 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_PC_LimitLvUp(_act); }, 2f);
});
}
public void Get_PC_LimitSlotOption(Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
if (error == 0)
{
var option = JsonConvert.DeserializeObject<SC_LimitBreakLvUpResult>(str_result);
m_ServerData.LimitBreakOption = option.option;
_act();
}
else
Set_Coroutine(() => { Get_PC_LimitSlotOption(_act); }, 2f);
}
else
Set_Coroutine(() => { Get_PC_LimitSlotOption(_act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Get_PC_LimitSlotOption(_act); }, 2f);
});
}
public void Save_PC_LimitSlotOptionChange(string preset, Action<SC_LimitOptionResult> _act)
{
NetWait.Ins.Set(true);

View File

@ -18,9 +18,9 @@ public class PCLimitSlotCard : CardBase
public override void Set(int _val)
{
m_Slot = _val;
var lv = ServerInfo.Ins.m_ServerData.Get_LimitLv();
var openlv = table_breakinglimit.Ins.Get_SlotOpenLv(m_Slot);
texts[2].text = openlv > lv ? DSUtil.Format(262, openlv) : "";
texts[2].text = isCloseSlot() ? DSUtil.Format(262, openlv) : "";
Set_UI();
}
@ -49,6 +49,13 @@ public class PCLimitSlotCard : CardBase
}
}
bool isCloseSlot()
{
var lv = ServerInfo.Ins.m_ServerData.Get_LimitLv();
var openlv = table_breakinglimit.Ins.Get_SlotOpenLv(m_Slot);
return openlv > lv;
}
// 기존 클라 기반일 때
//public void Set_Change(string preset)
//{
@ -78,17 +85,34 @@ public class PCLimitSlotCard : CardBase
sdata.Add_MissionCount(ePurpose.HERO_OPTION_CHANGE_ACC);
}
}
public void Set_Change(string preset, int ipreset)
{
var sdata = ServerInfo.Ins.m_ServerData;
if (!isCloseSlot() && !sdata.isLock_LimitSlot(preset, m_Slot))
{
var option = sdata.LimitBreakOption.Option[ipreset][sdata.LimitBreakOption.Preset[ipreset]++];
if (sdata.LimitBreakOption.Preset[ipreset] >= sdata.LimitBreakOption.Option[ipreset].Count)
{
sdata.LimitBreakOption.Preset[ipreset] = 0;
// 다음 테이블 서버에서 받아오기
PCLimitUI.Ins.m_PCLimitUI_Right.ChangeOption = true;
}
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);
}
}
public override int Get_IntData() { return m_Grade; }
public void OnClick_Lock()
{
if (m_SData.ID > 0)
var sdata = ServerInfo.Ins.m_ServerData;
var preset = PCLimitUI.Ins.m_PCLimitUI_Right.Get_Preset();
if (m_SData.ID > 0 || sdata.isLock_LimitSlot(preset, m_Slot))
{
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(preset, m_Slot);
PCLimitUI.Ins.m_PCLimitUI_Right.Set();
});

View File

@ -9,6 +9,7 @@ public class PCLimitUI_Right : uScrollViewMgr
public MoneyForm m_Price;
public TextMeshProUGUI[] texts; // 0 보호 등급
public bool ChangeOption;
string m_Preset = "1";
int m_matID, m_CurProtectGrade, m_ProtectMaxGrade;
ObscuredInt mPrice;
@ -104,7 +105,7 @@ public class PCLimitUI_Right : uScrollViewMgr
public void OnClick_Change()
{
if (IsOpenSlot() && CheckMoney(true))
if (!ChangeOption && IsOpenSlot() && CheckMoney(true))
{
var sdata = ServerInfo.Ins.m_ServerData;
var lst = sdata.Get_LimitSlot(m_Preset);
@ -126,14 +127,23 @@ public class PCLimitUI_Right : uScrollViewMgr
void Change()
{
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();
});
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Use_Item(m_matID, mPrice);
list_CardBase.ForEach(f => (f as PCLimitSlotCard).Set_Change(m_Preset, m_Tab.Get_Index() + 1));
Set();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
NewGameUI.Ins.m_PCUI.Refresh_Money();
if (ChangeOption) { ServerInfo.Ins.Get_PC_LimitSlotOption(() => { ChangeOption = false; }); }
//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();
//});
}
}