Save_Equipment_Smelting

This commit is contained in:
Ino 2025-07-04 08:37:00 +09:00
parent d0342e7d01
commit 13a02c183e
6 changed files with 733 additions and 12 deletions

View File

@ -302,9 +302,11 @@ function Use_Item(table, urod, itemid, amount)
}
else if (urod.Equipment[itemid])
{
//log.info('장비 사용 ' + itemid + ' ' + urod.Equipment[itemid][0]);
if (urod.Equipment[itemid][0] >= amount)
{
urod.Equipment[itemid][0] -= amount;
//log.info('장비 사용 ' + itemid + ' ' + urod.Equipment[itemid][0]);
return true;
}
}
@ -1135,6 +1137,48 @@ handlers.Save_Equipment_Equip = function(args)
}
return Get_Return(1);
}
handlers.Save_Equipment_Smelting = 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.Equipment[args.ItemID]) return Get_Return(3);
var lv = urod.Equipment[args.ItemID][1];
// 영웅 초월 레벨에 따른 레벨 제한 확인
var llv = urod.PC.LLv > 9 ? 9 : urod.PC.LLv;
var limitData = Get_BreakingLimitTable().find(f=>f.n_LimitLv == llv);
if (lv >= limitData.n_Equip_Upgrade_Limit) return Get_Return(2);
// 다음 강화 가능한 지 확인
var smeltingTable = Get_EquipSmeltingTable();
var nextSmeltingData = smeltingTable.find(f=>f.n_SmeltingStep == lv + 1);
if (!nextSmeltingData) return Get_Return(2);
// 재료 확인
var table = Get_MissionTable();
var smeltingData = smeltingTable.find(f=>f.n_SmeltingStep == lv);
if (Use_Item(table, urod, args.ItemID, smeltingData.n_UpgradePrice))
{
// 확률 적용
if (IsRateTrue1000000(smeltingData.n_NextStepRate))
{
++urod.Equipment[args.ItemID][1]; // 제련 레벨
Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_ACC", 0, 1);
Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_ALL", 0, 1);
Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_LIMIT", 0, 1);
Set_JsonUserData(urod);
return Get_Return(0);
}
++urod.Equipment[args.ItemID][2]; // 제련 시도 횟수
return Get_Return(4);
}
return Get_Return(1);
}
/////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args)
@ -7643,6 +7687,611 @@ function Get_EquipmentTable()
}
]
}
function Get_EquipSmeltingTable()
{
return [
{
"n_SmeltingStep": "0",
"n_NextStepRate": "1000000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "0"
},
{
"n_SmeltingStep": "1",
"n_NextStepRate": "1000000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "1000"
},
{
"n_SmeltingStep": "2",
"n_NextStepRate": "990000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "2500"
},
{
"n_SmeltingStep": "3",
"n_NextStepRate": "980000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "4000"
},
{
"n_SmeltingStep": "4",
"n_NextStepRate": "970000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "5500"
},
{
"n_SmeltingStep": "5",
"n_NextStepRate": "960000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "7000"
},
{
"n_SmeltingStep": "6",
"n_NextStepRate": "950000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "8500"
},
{
"n_SmeltingStep": "7",
"n_NextStepRate": "940000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "10000"
},
{
"n_SmeltingStep": "8",
"n_NextStepRate": "930000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "11500"
},
{
"n_SmeltingStep": "9",
"n_NextStepRate": "920000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "13000"
},
{
"n_SmeltingStep": "10",
"n_NextStepRate": "910000",
"n_UpgradePrice": "1",
"n_IncreaseValueRate": "14500"
},
{
"n_SmeltingStep": "11",
"n_NextStepRate": "900000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "16000"
},
{
"n_SmeltingStep": "12",
"n_NextStepRate": "890000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "17500"
},
{
"n_SmeltingStep": "13",
"n_NextStepRate": "880000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "19000"
},
{
"n_SmeltingStep": "14",
"n_NextStepRate": "870000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "20500"
},
{
"n_SmeltingStep": "15",
"n_NextStepRate": "860000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "22000"
},
{
"n_SmeltingStep": "16",
"n_NextStepRate": "850000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "23500"
},
{
"n_SmeltingStep": "17",
"n_NextStepRate": "840000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "25000"
},
{
"n_SmeltingStep": "18",
"n_NextStepRate": "830000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "26500"
},
{
"n_SmeltingStep": "19",
"n_NextStepRate": "820000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "28000"
},
{
"n_SmeltingStep": "20",
"n_NextStepRate": "810000",
"n_UpgradePrice": "2",
"n_IncreaseValueRate": "29500"
},
{
"n_SmeltingStep": "21",
"n_NextStepRate": "800000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "31000"
},
{
"n_SmeltingStep": "22",
"n_NextStepRate": "790000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "32500"
},
{
"n_SmeltingStep": "23",
"n_NextStepRate": "780000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "34000"
},
{
"n_SmeltingStep": "24",
"n_NextStepRate": "770000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "35500"
},
{
"n_SmeltingStep": "25",
"n_NextStepRate": "760000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "37000"
},
{
"n_SmeltingStep": "26",
"n_NextStepRate": "750000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "38500"
},
{
"n_SmeltingStep": "27",
"n_NextStepRate": "740000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "40000"
},
{
"n_SmeltingStep": "28",
"n_NextStepRate": "730000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "41500"
},
{
"n_SmeltingStep": "29",
"n_NextStepRate": "720000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "43000"
},
{
"n_SmeltingStep": "30",
"n_NextStepRate": "710000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "44500"
},
{
"n_SmeltingStep": "31",
"n_NextStepRate": "700000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "46000"
},
{
"n_SmeltingStep": "32",
"n_NextStepRate": "690000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "47500"
},
{
"n_SmeltingStep": "33",
"n_NextStepRate": "680000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "49000"
},
{
"n_SmeltingStep": "34",
"n_NextStepRate": "670000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "50500"
},
{
"n_SmeltingStep": "35",
"n_NextStepRate": "660000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "52000"
},
{
"n_SmeltingStep": "36",
"n_NextStepRate": "650000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "53500"
},
{
"n_SmeltingStep": "37",
"n_NextStepRate": "640000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "55000"
},
{
"n_SmeltingStep": "38",
"n_NextStepRate": "630000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "56500"
},
{
"n_SmeltingStep": "39",
"n_NextStepRate": "620000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "58000"
},
{
"n_SmeltingStep": "40",
"n_NextStepRate": "610000",
"n_UpgradePrice": "3",
"n_IncreaseValueRate": "59500"
},
{
"n_SmeltingStep": "41",
"n_NextStepRate": "600000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "61000"
},
{
"n_SmeltingStep": "42",
"n_NextStepRate": "590000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "62500"
},
{
"n_SmeltingStep": "43",
"n_NextStepRate": "580000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "64000"
},
{
"n_SmeltingStep": "44",
"n_NextStepRate": "570000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "65500"
},
{
"n_SmeltingStep": "45",
"n_NextStepRate": "560000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "67000"
},
{
"n_SmeltingStep": "46",
"n_NextStepRate": "550000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "68500"
},
{
"n_SmeltingStep": "47",
"n_NextStepRate": "540000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "70000"
},
{
"n_SmeltingStep": "48",
"n_NextStepRate": "530000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "71500"
},
{
"n_SmeltingStep": "49",
"n_NextStepRate": "520000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "73000"
},
{
"n_SmeltingStep": "50",
"n_NextStepRate": "510000",
"n_UpgradePrice": "4",
"n_IncreaseValueRate": "74500"
},
{
"n_SmeltingStep": "51",
"n_NextStepRate": "500000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "76000"
},
{
"n_SmeltingStep": "52",
"n_NextStepRate": "490000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "77500"
},
{
"n_SmeltingStep": "53",
"n_NextStepRate": "480000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "79000"
},
{
"n_SmeltingStep": "54",
"n_NextStepRate": "470000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "80500"
},
{
"n_SmeltingStep": "55",
"n_NextStepRate": "460000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "82000"
},
{
"n_SmeltingStep": "56",
"n_NextStepRate": "450000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "83500"
},
{
"n_SmeltingStep": "57",
"n_NextStepRate": "440000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "85000"
},
{
"n_SmeltingStep": "58",
"n_NextStepRate": "430000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "86500"
},
{
"n_SmeltingStep": "59",
"n_NextStepRate": "420000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "88000"
},
{
"n_SmeltingStep": "60",
"n_NextStepRate": "410000",
"n_UpgradePrice": "5",
"n_IncreaseValueRate": "89500"
},
{
"n_SmeltingStep": "61",
"n_NextStepRate": "400000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "91000"
},
{
"n_SmeltingStep": "62",
"n_NextStepRate": "390000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "92500"
},
{
"n_SmeltingStep": "63",
"n_NextStepRate": "380000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "94000"
},
{
"n_SmeltingStep": "64",
"n_NextStepRate": "370000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "95500"
},
{
"n_SmeltingStep": "65",
"n_NextStepRate": "360000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "97000"
},
{
"n_SmeltingStep": "66",
"n_NextStepRate": "350000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "98500"
},
{
"n_SmeltingStep": "67",
"n_NextStepRate": "340000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "100000"
},
{
"n_SmeltingStep": "68",
"n_NextStepRate": "330000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "101500"
},
{
"n_SmeltingStep": "69",
"n_NextStepRate": "320000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "103000"
},
{
"n_SmeltingStep": "70",
"n_NextStepRate": "310000",
"n_UpgradePrice": "6",
"n_IncreaseValueRate": "104500"
},
{
"n_SmeltingStep": "71",
"n_NextStepRate": "300000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "106000"
},
{
"n_SmeltingStep": "72",
"n_NextStepRate": "290000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "107500"
},
{
"n_SmeltingStep": "73",
"n_NextStepRate": "280000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "109000"
},
{
"n_SmeltingStep": "74",
"n_NextStepRate": "270000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "110500"
},
{
"n_SmeltingStep": "75",
"n_NextStepRate": "260000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "112000"
},
{
"n_SmeltingStep": "76",
"n_NextStepRate": "250000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "113500"
},
{
"n_SmeltingStep": "77",
"n_NextStepRate": "240000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "115000"
},
{
"n_SmeltingStep": "78",
"n_NextStepRate": "230000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "116500"
},
{
"n_SmeltingStep": "79",
"n_NextStepRate": "220000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "118000"
},
{
"n_SmeltingStep": "80",
"n_NextStepRate": "210000",
"n_UpgradePrice": "7",
"n_IncreaseValueRate": "119500"
},
{
"n_SmeltingStep": "81",
"n_NextStepRate": "200000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "121000"
},
{
"n_SmeltingStep": "82",
"n_NextStepRate": "190000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "122500"
},
{
"n_SmeltingStep": "83",
"n_NextStepRate": "180000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "124000"
},
{
"n_SmeltingStep": "84",
"n_NextStepRate": "170000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "125500"
},
{
"n_SmeltingStep": "85",
"n_NextStepRate": "160000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "127000"
},
{
"n_SmeltingStep": "86",
"n_NextStepRate": "150000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "128500"
},
{
"n_SmeltingStep": "87",
"n_NextStepRate": "140000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "130000"
},
{
"n_SmeltingStep": "88",
"n_NextStepRate": "130000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "131500"
},
{
"n_SmeltingStep": "89",
"n_NextStepRate": "120000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "133000"
},
{
"n_SmeltingStep": "90",
"n_NextStepRate": "110000",
"n_UpgradePrice": "8",
"n_IncreaseValueRate": "134500"
},
{
"n_SmeltingStep": "91",
"n_NextStepRate": "100000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "136000"
},
{
"n_SmeltingStep": "92",
"n_NextStepRate": "90000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "137500"
},
{
"n_SmeltingStep": "93",
"n_NextStepRate": "80000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "139000"
},
{
"n_SmeltingStep": "94",
"n_NextStepRate": "70000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "140500"
},
{
"n_SmeltingStep": "95",
"n_NextStepRate": "60000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "142000"
},
{
"n_SmeltingStep": "96",
"n_NextStepRate": "50000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "143500"
},
{
"n_SmeltingStep": "97",
"n_NextStepRate": "40000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "145000"
},
{
"n_SmeltingStep": "98",
"n_NextStepRate": "30000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "146500"
},
{
"n_SmeltingStep": "99",
"n_NextStepRate": "20000",
"n_UpgradePrice": "9",
"n_IncreaseValueRate": "148000"
}
]
}
function Get_PlayOCoupons()
{
@ -7688,6 +8337,10 @@ function getRandomIntInclusive(min, max) {
max = Math.floor(parseInt(max));
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function IsRateTrue1000000(rate)
{
return Math.floor(Math.random() * 1000000) < rate;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -532,6 +532,7 @@ public partial class ServerData
++Equipment[key][1];
Equipment[key][1].RandomizeCryptoKey();
Equipment[key][2] = 0;
Equipment[key][2].RandomizeCryptoKey();
refresh(true);
MyValue.Get_ActorStatInfoorNull(eRole.PC);
}
@ -546,6 +547,25 @@ public partial class ServerData
else
ToastUI.Ins.Set(266);
}
public void SmeltingLvUp(EquipmentSmeltingTableData Tdata, int id, int error)
{
var key = Get_Key(id);
if (error == 0)
{
Use_Item(id, Tdata.n_UpgradePrice);
++Equipment[key][1];
Equipment[key][1].RandomizeCryptoKey();
Equipment[key][2] = 0;
Equipment[key][2].RandomizeCryptoKey();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
}
else if (error == 4)
{
Use_Item(id, Tdata.n_UpgradePrice);
Equipment[key][2]++;
Equipment[key][2].RandomizeCryptoKey();
}
}
public int Get_EquipmentTLv(eItem _type, int _id)
{
var key = MyValue.dic_EquipmentKey[_type];

View File

@ -1369,6 +1369,44 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_Equipment_Equip(itemid, _act); }, 2f);
});
}
public void Save_Equipment_Smelting(int itemid, Action<int> _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
ItemID = itemid,
}
},
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 1: ToastUI.Ins.Set(999900016); break;
case 2: ToastUI.Ins.Set(999900003); break;
case 3: ToastUI.Ins.Set(999900014); break;
case 4: ToastUI.Ins.Set(999900017); break;
}
_act?.Invoke(error);
}
else
Set_Coroutine(() => { Save_Equipment_Smelting(itemid, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Equipment_Smelting(itemid, _act); }, 2f);
});
}
#endregion
#region

View File

@ -100,27 +100,37 @@ public class EquipmentPopup_Obtain : EquipmentPopupBase
}
public void OnClick_Smelting()
{
// 장비 제련 처리
if (!DSUtil.CheckNull(m_NextSmeltingData))
{
{ // 장비 제련
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Try_SmeltingLvUp(m_SmeltingData, m_Data.n_EquipID, success =>
if (DSUtil.CheckNull(m_NextSmeltingData)) { ToastUI.Ins.Set(999900003); return; }
if (!sdata.Check_ItemAmount(m_Data.n_EquipID, m_SmeltingData.n_UpgradePrice)) return;
var lv = sdata.Get_SmeltingLv(m_Data.n_EquipID);
var limitdata = table_breakinglimit.Ins.Get_Data_orNull(sdata.Get_LimitLv());
if (lv >= limitdata.n_Equip_Upgrade_Limit) { ToastUI.Ins.Set(999900003); return; }
ServerInfo.Ins.Save_Equipment_Smelting(m_Data.n_EquipID, error =>
{
//sdata.Try_SmeltingLvUp(m_SmeltingData, m_Data.n_EquipID, success =>
sdata.SmeltingLvUp(m_SmeltingData, m_Data.n_EquipID, error);
if (error == 0 || error == 4)
{
Set_SmeltingUI();
NewGameUI.Ins.m_EquipmentUI.m_equipItems.Set();
NewGameUI.Ins.m_EquipmentUI.m_EquipmentUI_Items.Set_UI();
PopupMgr.Ins.m_EquipmentPopup.Set_UI();
ToastUI.Ins.Set(174, success ? "제련 성공!!" : "제련 실패...");
ToastUI.Ins.Set(174, error == 0 ? "제련 성공!!" : "제련 실패...");
if (success)
if (error == 0)
{
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_UPGRADE_ACC);
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_UPGRADE_ALL);
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_UPGRADE_LIMIT);
}
});
}
//});
});
}
public void OnClick_Decomposition()