Save_Relic_StarUp

This commit is contained in:
Ino 2025-07-09 12:49:22 +09:00
parent 3b754ac7c2
commit baca27129e
5 changed files with 191 additions and 13 deletions

View File

@ -1622,6 +1622,56 @@ handlers.Save_Essence_Mileage = function(args)
} }
return Get_Return(1); return Get_Return(1);
}; };
handlers.Save_Relic_StarUp = 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);
if (!urod.Relic[args.RelicID]) return Get_Return(4);
var star = urod.Relic[args.RelicID][2];
if (star >= 6) return Get_Return(3);
var relicdata = Get_RelicTable().find(f=>f.n_RelicID == args.RelicID);
const dic_starCost = {
0: relicdata.n_FirstOpenCost,
1: 30,
2: 60,
3: 100,
4: 200,
5: 500
};
const dic_starMat = {
0: { 6: 50, 7: 60, 8: 80, 9: 100 },
1: { 6: 150, 7: 180, 8: 240, 9: 300 },
2: { 6: 300, 7: 360, 8: 480, 9: 600 },
3: { 6: 500, 7: 600, 8: 800, 9: 1000 },
4: { 6: 1000, 7: 1200, 8: 1600, 9: 2000 },
5: { 6: 2500, 7: 3000, 8: 4000, 9: 5000 },
};
var matID = Get_GlobalValue_nValue("n_RelicReinforceMaterialID");
var itemtable = Get_ItemTable();
var grade = itemtable.find(f=>f.n_ItemID == args.RelicID).n_ItemGrade;
var table = Get_MissionTable();
if (!Use_Item(table, urod, args.RelicID, dic_starCost[star])) return Get_Return(1);
if (!Use_Item(table, urod, matID, dic_starMat[star][grade])) return Get_Return(2);
{
++urod.Relic[args.RelicID][2];
Add_MissionCount(table, urod, "AWAKEN_RELIC_ALL", urod.Relic[args.RelicID][2], 1);
Add_MissionCount(table, urod, "AWAKEN_RELIC_ALL", args.RelicID, 1);
Add_MissionCount(table, urod, "AWAKEN_RELIC_LIMIT", args.RelicID, 1);
Set_JsonUserData(urod);
return Get_Return(0);
}
}
/////////////////////////////////// 서버 처리 /////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args) handlers.Write_UnityInApp = function(args)
@ -18692,10 +18742,94 @@ function Get_EssenceRateGrade(id)
return -1; return -1;
} }
function Get_PlayOCoupons() function Get_RelicTable()
{ {
var poc = JSON.parse(server.GetTitleInternalData("PlayO").Data.PlayO); return [
return poc.Coupons; {
"n_RelicID": "400001",
"n_FirstOpenCost": "1",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400002",
"n_FirstOpenCost": "2",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400003",
"n_FirstOpenCost": "3",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400004",
"n_FirstOpenCost": "4",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400005",
"n_FirstOpenCost": "5",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400006",
"n_FirstOpenCost": "6",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400007",
"n_FirstOpenCost": "7",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400008",
"n_FirstOpenCost": "8",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400009",
"n_FirstOpenCost": "9",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400010",
"n_FirstOpenCost": "10",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400011",
"n_FirstOpenCost": "11",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400012",
"n_FirstOpenCost": "12",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400013",
"n_FirstOpenCost": "13",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
},
{
"n_RelicID": "400014",
"n_FirstOpenCost": "14",
"n_DefaultOptionID": "330005",
"n_StarOptionID": "330007"
}
]
} }
@ -18706,6 +18840,8 @@ function Get_PlayOCoupons()
function Get_K_Value(lv, balance, defaultval, perlv, abandon = true) { function Get_K_Value(lv, balance, defaultval, perlv, abandon = true) {
if (lv <= 0) return 0; if (lv <= 0) return 0;

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1896,6 +1896,45 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_Essence_Mileage(_act); }, 2f); Set_Coroutine(() => { Save_Essence_Mileage(_act); }, 2f);
}); });
} }
public void Save_Relic_StarUp(int relicid, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
RelicID = relicid,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (유물 부족), 2 실패 (재료 부족), 3 실패 (성급 돌파 완료), 4 실패 (없는 유물))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900028); break;
case 2: ToastUI.Ins.Set(388); break;
case 3: ToastUI.Ins.Set(999900029); break;
case 4: ToastUI.Ins.Set(999900014); break;
}
}
else
Set_Coroutine(() => { Save_Relic_StarUp(relicid, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Relic_StarUp(relicid, _act); }, 2f);
});
}
#endregion #endregion
#region #region

View File

@ -95,18 +95,21 @@ public class CollectionRelicUI : PCUIMenu
var requirepiece = Get_Star_UpgradeCost(star, m_SelectRelicData); var requirepiece = Get_Star_UpgradeCost(star, m_SelectRelicData);
var requirelvupmat = Get_Star_UpgradeMatCost(star, grade); var requirelvupmat = Get_Star_UpgradeMatCost(star, grade);
if (sdata.Check_ItemAmount(m_SelectRelicData.n_RelicID, requirepiece) && if (star < 6 && sdata.Check_ItemAmount(m_SelectRelicData.n_RelicID, requirepiece) &&
sdata.Check_ItemAmount(lvup_matID, requirelvupmat)) sdata.Check_ItemAmount(lvup_matID, requirelvupmat))
{ {
sdata.Use_Item(m_SelectRelicData.n_RelicID, requirepiece); ServerInfo.Ins.Save_Relic_StarUp(m_SelectRelicData.n_RelicID, () =>
sdata.Use_Item(lvup_matID, requirelvupmat); {
sdata.Add_RelicStar(m_SelectRelicData.n_RelicID); sdata.Use_Item(m_SelectRelicData.n_RelicID, requirepiece);
Set(); sdata.Use_Item(lvup_matID, requirelvupmat);
MyValue.Get_ActorStatInfoorNull(eRole.PC); sdata.Add_RelicStar(m_SelectRelicData.n_RelicID);
Set();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
sdata.Add_MissionCount(ePurpose.TAKE_RELIC_GRADE_ACC, sdata.Get_RelicStar(m_SelectRelicData.n_RelicID)); sdata.Add_MissionCount(ePurpose.TAKE_RELIC_GRADE_ACC, sdata.Get_RelicStar(m_SelectRelicData.n_RelicID));
sdata.Add_MissionCount(ePurpose.AWAKEN_RELIC_ALL, m_SelectRelicData.n_RelicID); sdata.Add_MissionCount(ePurpose.AWAKEN_RELIC_ALL, m_SelectRelicData.n_RelicID);
sdata.Add_MissionCount(ePurpose.AWAKEN_RELIC_LIMIT, m_SelectRelicData.n_RelicID); sdata.Add_MissionCount(ePurpose.AWAKEN_RELIC_LIMIT, m_SelectRelicData.n_RelicID);
});
} }
} }