Save_Equipment_Decomposition
This commit is contained in:
parent
13a02c183e
commit
8f5e16cfe5
|
|
@ -1179,6 +1179,76 @@ handlers.Save_Equipment_Smelting = 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.Save_Equipment_Decomposition = function(args)
|
||||
{
|
||||
var readonlydata = Get_UserReadOnlyData();
|
||||
var error = Get_Error(readonlydata, args.Token);
|
||||
if (error < 0) return Get_Return(error);
|
||||
|
||||
if (args.Count <= 0) return Get_Return(1);
|
||||
|
||||
var urod = Get_JsonUserData(readonlydata);
|
||||
if (!urod.Equipment[args.ItemID]) return Get_Return(3);
|
||||
|
||||
var obtainAmount = Get_ItemAmount(urod, args.ItemID);
|
||||
if (obtainAmount < args.Count) return Get_Return(2);
|
||||
|
||||
// 분해
|
||||
var table = Get_MissionTable();
|
||||
Use_Item(table, urod, args.ItemID, args.Count);
|
||||
|
||||
var equipmenttable = Get_EquipmentTable();
|
||||
var equipdata = equipmenttable.find(f=>f.n_EquipID == args.ItemID);
|
||||
Add_Item(table, Get_ItemTable(), urod, equipdata.n_DecompositionReward, equipdata.n_DecompositionCount * args.Count);
|
||||
|
||||
Add_MissionCount(table, urod, "EQUIP_ITEM_DISTROY_ALL", 0, args.Count);
|
||||
Add_MissionCount(table, urod, "EQUIP_ITEM_DISTROY_ACC", 0, args.Count);
|
||||
|
||||
Set_JsonUserData(urod);
|
||||
return Get_Return(0);
|
||||
}
|
||||
/////////////////////////////////// 서버 처리
|
||||
|
||||
handlers.Write_UnityInApp = function(args)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -1407,6 +1407,44 @@ public class ServerInfo : MyCoroutine
|
|||
Set_Coroutine(() => { Save_Equipment_Smelting(itemid, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
public void Save_Equipment_Decomposition(int itemid, int count, Action _act)
|
||||
{
|
||||
NetWait.Ins.Set(true);
|
||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||
{
|
||||
FunctionName = MethodBase.GetCurrentMethod().Name,
|
||||
GeneratePlayStreamEvent = true,
|
||||
FunctionParameter = new
|
||||
{
|
||||
Token = m_LoginInfo.EntityToken.EntityToken,
|
||||
ItemID = itemid,
|
||||
Count = count,
|
||||
}
|
||||
},
|
||||
result =>
|
||||
{
|
||||
if (result.Error == null)
|
||||
{
|
||||
NetWait.Ins.Set(false);
|
||||
var str_result = result.FunctionResult.ToString();
|
||||
var error = MyErrorCheck(str_result);
|
||||
// (0 성공, 1 실패 (분해 갯수 0), 2 실패 (가진 갯수와 분해 갯수 에러), 3 실패 (없는 아이템))
|
||||
switch (error)
|
||||
{
|
||||
case 0: _act?.Invoke(); break;
|
||||
case 1: ToastUI.Ins.Set(999900018); break;
|
||||
case 2: ToastUI.Ins.Set(999900019); break;
|
||||
case 3: ToastUI.Ins.Set(999900014); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
Set_Coroutine(() => { Save_Equipment_Equip(itemid, _act); }, 2f);
|
||||
},
|
||||
fail =>
|
||||
{
|
||||
Set_Coroutine(() => { Save_Equipment_Equip(itemid, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 우편
|
||||
|
|
|
|||
|
|
@ -138,6 +138,8 @@ public class EquipmentPopup_Obtain : EquipmentPopupBase
|
|||
// 장비 분해 처리
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
if (m_DecompAmount > 0 && sdata.Check_ItemAmount(m_Data.n_EquipID, m_DecompAmount))
|
||||
{
|
||||
ServerInfo.Ins.Save_Equipment_Decomposition(m_Data.n_EquipID, m_DecompAmount, () =>
|
||||
{
|
||||
sdata.Use_Item(m_Data.n_EquipID, m_DecompAmount);
|
||||
sdata.Add_Item(m_Data.n_DecompositionReward, m_Data.n_DecompositionCount * m_DecompAmount);
|
||||
|
|
@ -148,6 +150,7 @@ public class EquipmentPopup_Obtain : EquipmentPopupBase
|
|||
|
||||
Set_Decompostion(0);
|
||||
Set_SmeltingUI();
|
||||
});
|
||||
}
|
||||
}
|
||||
public void OnClick_Slider(int add)
|
||||
|
|
|
|||
Loading…
Reference in New Issue