Save_EquipItem_EnchantOption
This commit is contained in:
parent
3442eb1c7d
commit
19842129f9
|
|
@ -1767,6 +1767,37 @@ function Make_EqiupmentEnchantOption_perEnchant(urod, id)
|
||||||
urod.EnchantOption[id].Option.push({ id: optionid, lv: olv });
|
urod.EnchantOption[id].Option.push({ id: optionid, lv: olv });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
handlers.Save_EquipItem_EnchantOption = 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);
|
||||||
|
var enchantdata = args.EnchantData;
|
||||||
|
var id = enchantdata.EnchantID;
|
||||||
|
|
||||||
|
var slot = urod.Slot.find(f => f.Parts == enchantdata.Parts);
|
||||||
|
if (slot.Lv < Get_GlobalValue_nValue(`EnchantOpenLv${enchantdata.Slot + 1}`))
|
||||||
|
return Get_Return(2);
|
||||||
|
|
||||||
|
var table = Get_MissionTable();
|
||||||
|
if (Use_Item(table, urod, id, enchantdata.Count))
|
||||||
|
{
|
||||||
|
var option = urod.EnchantOption[id].Option.at(-1);
|
||||||
|
slot.Enchant[enchantdata.Slot].ID = option.id;
|
||||||
|
slot.Enchant[enchantdata.Slot].Lv = option.lv;
|
||||||
|
|
||||||
|
Make_EqiupmentEnchantOption_perEnchant(urod, id);
|
||||||
|
|
||||||
|
Add_MissionCount(table, urod, "EQUIP_ITEM_ENCHANT_ALL", 0, enchantdata.Count);
|
||||||
|
Add_MissionCount(table, urod, "EQUIP_ITEM_ENCHANT_ACC", 0, enchantdata.Count);
|
||||||
|
|
||||||
|
Set_JsonUserData(urod);
|
||||||
|
return Get_Return(0, { lastoption: option, newoption : urod.EnchantOption[id] });
|
||||||
|
}
|
||||||
|
return Get_Return(1);
|
||||||
|
}
|
||||||
handlers.Save_EquipItem_Enchant = function(args)
|
handlers.Save_EquipItem_Enchant = function(args)
|
||||||
{
|
{
|
||||||
var readonlydata = Get_UserReadOnlyData();
|
var readonlydata = Get_UserReadOnlyData();
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3150,6 +3150,11 @@ public class SC_EnchantEquipItemResult
|
||||||
{
|
{
|
||||||
public int optionconfigid, Lv;
|
public int optionconfigid, Lv;
|
||||||
}
|
}
|
||||||
|
public class SC_EnchantOptionResult
|
||||||
|
{
|
||||||
|
public SD_OptionDetailData lastoption;
|
||||||
|
public SD_EquipItemEnchant newoption;
|
||||||
|
}
|
||||||
public class SC_PetGachaResult
|
public class SC_PetGachaResult
|
||||||
{
|
{
|
||||||
public int gem;
|
public int gem;
|
||||||
|
|
@ -3215,4 +3220,9 @@ public class CS_AwakenData
|
||||||
awaken[eStat.LUK] = 0;
|
awaken[eStat.LUK] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public class CS_EquipSlotEnchantData
|
||||||
|
{
|
||||||
|
public eItem Parts;
|
||||||
|
public int Slot, EnchantID, Count;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -1624,6 +1624,42 @@ public class ServerInfo : MyCoroutine
|
||||||
Set_Coroutine(() => { Save_EquipItem_SlotLvUpInit(itemid, _act); }, 2f);
|
Set_Coroutine(() => { Save_EquipItem_SlotLvUpInit(itemid, _act); }, 2f);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
public void Save_EquipItem_EnchantOption(CS_EquipSlotEnchantData data, Action<SC_EnchantOptionResult> _act)
|
||||||
|
{
|
||||||
|
NetWait.Ins.Set(true);
|
||||||
|
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||||
|
{
|
||||||
|
FunctionName = MethodBase.GetCurrentMethod().Name,
|
||||||
|
GeneratePlayStreamEvent = true,
|
||||||
|
FunctionParameter = new
|
||||||
|
{
|
||||||
|
Token = m_LoginInfo.EntityToken.EntityToken,
|
||||||
|
EnchantData = data,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
result =>
|
||||||
|
{
|
||||||
|
if (result.Error == null)
|
||||||
|
{
|
||||||
|
NetWait.Ins.Set(false);
|
||||||
|
var str_result = result.FunctionResult.ToString();
|
||||||
|
var error = MyErrorCheck(str_result);
|
||||||
|
// (0 성공, 1 실패 (인챈트 부족), 2 실패 (잠긴 슬롯))
|
||||||
|
switch (error)
|
||||||
|
{
|
||||||
|
case 0: _act?.Invoke(JsonConvert.DeserializeObject<SC_EnchantOptionResult>(str_result)); break;
|
||||||
|
case 1: ToastUI.Ins.Set(388); break;
|
||||||
|
case 2: ToastUI.Ins.Set(999900012); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Set_Coroutine(() => { Save_EquipItem_EnchantOption(data, _act); }, 2f);
|
||||||
|
},
|
||||||
|
fail =>
|
||||||
|
{
|
||||||
|
Set_Coroutine(() => { Save_EquipItem_EnchantOption(data, _act); }, 2f);
|
||||||
|
});
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// itemid : 인챈트 할 착용 아이템 id
|
/// itemid : 인챈트 할 착용 아이템 id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
using CodeStage.AntiCheat.ObscuredTypes;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
@ -16,6 +17,9 @@ public class EquipmentEnchantCard : CardBase
|
||||||
EnchantListTableData m_Data;
|
EnchantListTableData m_Data;
|
||||||
EnchantRateTableData m_EnchantRateTableData;
|
EnchantRateTableData m_EnchantRateTableData;
|
||||||
|
|
||||||
|
ObscuredInt m_EnchantCount;
|
||||||
|
CS_EquipSlotEnchantData m_EnchantData = new CS_EquipSlotEnchantData();
|
||||||
|
|
||||||
public override void Set<T>(T _base)
|
public override void Set<T>(T _base)
|
||||||
{
|
{
|
||||||
base.Set(_base);
|
base.Set(_base);
|
||||||
|
|
@ -24,6 +28,10 @@ public class EquipmentEnchantCard : CardBase
|
||||||
Set_UI();
|
Set_UI();
|
||||||
// 착용 장비
|
// 착용 장비
|
||||||
DSUtil.InActivateGameObjects(gos, PopupMgr.Ins.m_EquipmentItemPopup.isActiveAndEnabled ? 1 : 0);
|
DSUtil.InActivateGameObjects(gos, PopupMgr.Ins.m_EquipmentItemPopup.isActiveAndEnabled ? 1 : 0);
|
||||||
|
m_EnchantCount = 0;
|
||||||
|
m_EnchantCount.RandomizeCryptoKey();
|
||||||
|
m_EnchantData.EnchantID = m_Data.n_EnchantID;
|
||||||
|
m_EnchantData.Parts = PopupMgr.Ins.m_EquipmentItemPopup.Get_Parts();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Set_UI()
|
public override void Set_UI()
|
||||||
|
|
@ -64,26 +72,41 @@ public class EquipmentEnchantCard : CardBase
|
||||||
var sdata = ServerInfo.Ins.m_ServerData;
|
var sdata = ServerInfo.Ins.m_ServerData;
|
||||||
if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0 && sdata.Check_ItemAmount(m_Data.n_EnchantID, 1))
|
if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0 && sdata.Check_ItemAmount(m_Data.n_EnchantID, 1))
|
||||||
{ // 마법 부여 하자
|
{ // 마법 부여 하자
|
||||||
|
++m_EnchantCount; m_EnchantCount.RandomizeCryptoKey();
|
||||||
|
|
||||||
sdata.Use_Item(m_Data.n_EnchantID, 1);
|
sdata.Use_Item(m_Data.n_EnchantID, 1);
|
||||||
var parts = PopupMgr.Ins.m_EquipmentItemPopup.Get_Parts();
|
|
||||||
var enchant = sdata.EnchantOption[m_Data.n_EnchantID];
|
var enchant = sdata.EnchantOption[m_Data.n_EnchantID];
|
||||||
var option = enchant.Option[enchant.Index++];
|
var option = enchant.Option[enchant.Index++];
|
||||||
sdata.Set_SlotEnchant(parts, Select_EnchantCardData.Index, option.id, option.lv);
|
|
||||||
PopupMgr.Ins.m_EquipmentItemPopup.m_EquipItemEnchantOption.Set_UI();
|
|
||||||
|
|
||||||
if (enchant.Option.Count <= enchant.Index)
|
if (enchant.Option.Count <= enchant.Index)
|
||||||
{
|
{
|
||||||
enchant.Index = 0;
|
m_EnchantData.Count = m_EnchantCount;
|
||||||
// 현재까지 저장하고 새로운 데이터 받아오기
|
// 현재까지 저장하고 새로운 데이터 받아오기
|
||||||
|
m_EnchantData.Slot = Select_EnchantCardData.Index;
|
||||||
|
ServerInfo.Ins.Save_EquipItem_EnchantOption(m_EnchantData, result =>
|
||||||
|
{
|
||||||
|
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ACC, 0, m_EnchantCount);
|
||||||
|
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ALL, 0, m_EnchantCount);
|
||||||
|
|
||||||
|
sdata.Set_SlotEnchant(m_EnchantData.Parts, m_EnchantData.Slot, result.lastoption.id, result.lastoption.lv);
|
||||||
|
sdata.EnchantOption[m_Data.n_EnchantID] = result.newoption;
|
||||||
|
|
||||||
|
m_EnchantCount = 0; m_EnchantCount.RandomizeCryptoKey();
|
||||||
|
RefreshUI();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
else
|
||||||
// 나중에 서버 저장 후 처리
|
{
|
||||||
//sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ACC);
|
sdata.Set_SlotEnchant(m_EnchantData.Parts, m_EnchantData.Slot, option.id, option.lv);
|
||||||
//sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ALL);
|
RefreshUI();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void RefreshUI()
|
||||||
|
{
|
||||||
|
PopupMgr.Ins.m_EquipmentItemPopup.m_EquipItemEnchantOption.Set_UI();
|
||||||
Set_UI();
|
Set_UI();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
/* 변경마다 서버 탐
|
/* 변경마다 서버 탐
|
||||||
public void OnClick_EnchantEquipItem()
|
public void OnClick_EnchantEquipItem()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ public class EquipmentItemPopup : EquipmentPopupItemInfoBase
|
||||||
}
|
}
|
||||||
|
|
||||||
int Get_Price() { var price = (int)m_ESUTD.Get_Price(m_SD_Slot.Lv); return price > 0 ? price : 1; }
|
int Get_Price() { var price = (int)m_ESUTD.Get_Price(m_SD_Slot.Lv); return price > 0 ? price : 1; }
|
||||||
public eItem Get_Parts() { return m_Data.e_EquipParts; }
|
public eItem Get_Parts() { return DSUtil.CheckNull(m_Data) ? eItem.None : m_Data.e_EquipParts; }
|
||||||
public int Get_ItemID() { return m_Data.n_EquipID; }
|
public int Get_ItemID() { return m_Data.n_EquipID; }
|
||||||
|
|
||||||
public void OnClick_Reinforce()
|
public void OnClick_Reinforce()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue