From 989e0b4dafa41b005a98e7749637945212c42565 Mon Sep 17 00:00:00 2001 From: Ino Date: Tue, 5 Aug 2025 12:31:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=9C=EB=B2=84=20=EA=B0=81=EC=84=B1=20?= =?UTF-8?q?=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/Resources/.CloudScript.js | 55 +++++++++++-------- Assets/Script/UI/PC/PCUI.cs | 16 ++++-- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index d5544c4bf..5272b0c0b 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -320,10 +320,10 @@ function Init_Enchant() { } function Init_Awaken() { return { - STR: { LV : 1, Exp : 0 }, - DEX: { LV : 1, Exp : 0 }, - INT: { LV : 1, Exp : 0 }, - LUK: { LV : 1, Exp : 0 } + STR: { Lv : 1, Exp : 0 }, + DEX: { Lv : 1, Exp : 0 }, + INT: { Lv : 1, Exp : 0 }, + LUK: { Lv : 1, Exp : 0 } }; } function Init_PC() { @@ -992,46 +992,41 @@ handlers.Save_PC_MenuBack = function(args) { var upgradeValue = parseInt((awakenData.upgrade.find(x => x.Key === statKey)?.Value) || 0); var awakenValue = parseInt((awakenData.awaken.find(x => x.Key === statKey)?.Value) || 0); + var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey)); for (var j = 0; j < upgradeValue; ++j) { var lv = urod.Awaken[statKey].Lv; var audata = awakenUpgradeTable.find(f => f.n_AwakenStep == lv); - if (urod.Awaken[statKey].Exp >= audata.n_MaxUpgradeLevel && awakenValue > 0) - { - var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey)); + if (TryAwakenLevelUp(table, audata, urod, statKey, awakenValue)) { if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true; - if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost)) - { - --awakenValue; - urod.Awaken[statKey].Exp = 0; - ++urod.Awaken[statKey].Lv; - --j; // 다시 반복 - continue; - } - else break; + --awakenValue; + --j; + continue; } var price = Get_K_Value(lv, audata.f_BalanceConstant, audata.n_DefaultUpgradeCostValue, audata.f_CountPerUpgradeCostValue); if (urod.Awaken[statKey].Exp < audata.n_MaxUpgradeLevel && Use_Item(table, urod, awakenupgradeid, price)) + { ++urod.Awaken[statKey].Exp; + + if (TryAwakenLevelUp(table, audata, urod, statKey, awakenmat, awakenValue)) + { + if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true; + --awakenValue; + } + } } if (upgradeValue == 0 && awakenValue > 0) { var lv = urod.Awaken[statKey].Lv; var audata = awakenUpgradeTable.find(f => f.n_AwakenStep == lv); - if (urod.Awaken[statKey].Exp >= audata.n_MaxUpgradeLevel) + if (TryAwakenLevelUp(table, audata, urod, statKey, awakenmat, awakenValue)) { - var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey)); if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true; - if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost)) - { - --awakenValue; - urod.Awaken[statKey].Exp = 0; - ++urod.Awaken[statKey].Lv; - } + --awakenValue; } } } @@ -1088,6 +1083,18 @@ function Get_PCAwakenMatKey(stat) } return ""; } +function TryAwakenLevelUp(table, audata, urod, statKey, awakenmat, awakenValue) { + if (urod.Awaken[statKey].Exp < audata.n_MaxUpgradeLevel) return false; + if (awakenValue <= 0) return false; + + if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost)) { + urod.Awaken[statKey].Exp = 0; + urod.Awaken[statKey].Lv++; + return true; + } + + return false; +} handlers.Save_PC_Stat = function(args) { diff --git a/Assets/Script/UI/PC/PCUI.cs b/Assets/Script/UI/PC/PCUI.cs index c024d14d5..fd7a17415 100644 --- a/Assets/Script/UI/PC/PCUI.cs +++ b/Assets/Script/UI/PC/PCUI.cs @@ -41,6 +41,7 @@ public class PCUI : BotMenuBase } CS_AwakenData emptyawaken = new CS_AwakenData(); + LimitSlotChangeData emptylimitslot = new LimitSlotChangeData(); public override void Check_ServerSave(bool exitui) { var sdata = ServerInfo.Ins.m_ServerData; @@ -53,7 +54,11 @@ public class PCUI : BotMenuBase if (changeCostume || changeworker || changejob || pcawakend || changelimitslot) { - var limitslotdata = PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Get(); + var limitslotdata = emptylimitslot; + if (PCLimitUI.isIns) limitslotdata = PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData; + else limitslotdata.Init(); + limitslotdata = limitslotdata.Get(); + ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume), sdata.Get_EqiupmentEquip(eItem.Worker), sdata.Get_EqiupmentEquip(eItem.PC), @@ -101,15 +106,16 @@ public class PCUI : BotMenuBase if (exitui) base.OnClick_Back(); } }); + + foreach (var key in dic_EnterID.Keys.ToList()) + dic_EnterID[key] = 0; + if (PCAwakenUI.isIns) PCAwakenUI.Ins.Get_CS_AwakenData().Init(); + if (PCLimitUI.isIns) PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Init(); } else { if (exitui) base.OnClick_Back(); } - - foreach (var key in dic_EnterID.Keys.ToList()) - dic_EnterID[key] = 0; - if (PCAwakenUI.isIns) PCAwakenUI.Ins.Get_CS_AwakenData().Init(); } public override void OnClick_Back()