Save_Equipment_MenuBack AllSlotEnchant값 남음
This commit is contained in:
parent
4b820dbce7
commit
42182958c4
|
|
@ -1874,6 +1874,7 @@ handlers.Save_Equipment_MenuBack = function(args)
|
||||||
if (error < 0) return Get_Return(error);
|
if (error < 0) return Get_Return(error);
|
||||||
|
|
||||||
var urod = Get_JsonUserData(readonlydata);
|
var urod = Get_JsonUserData(readonlydata);
|
||||||
|
var table = Get_MissionTable();
|
||||||
|
|
||||||
var rawEquipArray = args.EquipMenuData.Equip;
|
var rawEquipArray = args.EquipMenuData.Equip;
|
||||||
var equipDict = {};
|
var equipDict = {};
|
||||||
|
|
@ -1887,12 +1888,85 @@ handlers.Save_Equipment_MenuBack = function(args)
|
||||||
if (IsObtainItem(urod, itemID) && urod.Equip.Equip[key] != itemID)
|
if (IsObtainItem(urod, itemID) && urod.Equip.Equip[key] != itemID)
|
||||||
{
|
{
|
||||||
urod.Equip.Equip[key] = itemID;
|
urod.Equip.Equip[key] = itemID;
|
||||||
Add_MissionCount(Get_MissionTable(), urod, "EQUIP_ITEM_MOUNT_PARTS_LIMIT", Add_Amount(i, 1), 1);
|
Add_MissionCount(table, urod, "EQUIP_ITEM_MOUNT_PARTS_LIMIT", Add_Amount(i, 1), 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 마법부여
|
||||||
|
var rawEnchantArray = args.EquipMenuData.Enchant;
|
||||||
|
var enchantDic = {};
|
||||||
|
for (var i = 0; i < rawEnchantArray.length; ++i) {
|
||||||
|
var part = rawEnchantArray[i].Key;
|
||||||
|
enchantDic[part] = {};
|
||||||
|
|
||||||
|
var innerList = rawEnchantArray[i].Value;
|
||||||
|
for (var j = 0; j < innerList.length; ++j) {
|
||||||
|
var enchantID = innerList[j].Key;
|
||||||
|
var count = innerList[j].Value;
|
||||||
|
enchantDic[part][enchantID] = count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var enchantsuccess = true;
|
||||||
|
var totalCount = 0;
|
||||||
|
for (var i = 0; i < validEquipKeys.length; ++i)
|
||||||
|
{
|
||||||
|
var key = validEquipKeys[i];
|
||||||
|
for (var id in enchantDic[key])
|
||||||
|
{
|
||||||
|
totalCount = Add_Amount(totalCount, enchantDic[key][id]);
|
||||||
|
enchantsuccess = Use_Item(table, urod, id, enchantDic[key][id]);
|
||||||
|
if (!enchantsuccess) break;
|
||||||
|
}
|
||||||
|
if (!enchantsuccess) break;
|
||||||
|
}
|
||||||
|
// 마법 부여 끝
|
||||||
|
|
||||||
|
if (enchantsuccess)
|
||||||
|
{ // 성공이므로 마지막 인챈트 및 인덱스 적용
|
||||||
|
Add_MissionCount(table, urod, "EQUIP_ITEM_ENCHANT_ALL", 0, totalCount);
|
||||||
|
Add_MissionCount(table, urod, "EQUIP_ITEM_ENCHANT_ACC", 0, totalCount);
|
||||||
|
|
||||||
|
for (var i = 0; i < validEquipKeys.length; ++i)
|
||||||
|
{
|
||||||
|
var key = validEquipKeys[i];
|
||||||
|
for (var id in enchantDic[key])
|
||||||
|
urod.EnchantOption[id].Index = Add_Amount(urod.EnchantOption[id].Index, enchantDic[key][id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var rawLastEnchant = args.EquipMenuData.LastEnchant;
|
||||||
|
for (var i = 0; i < rawLastEnchant.length; ++i)
|
||||||
|
{
|
||||||
|
var part = rawLastEnchant[i].Key;
|
||||||
|
var slotList = rawLastEnchant[i].Value;
|
||||||
|
|
||||||
|
for (var j = 0; j < slotList.length; ++j)
|
||||||
|
{
|
||||||
|
var slotIndex = slotList[j].Key;
|
||||||
|
var id = slotList[j].Value;
|
||||||
|
|
||||||
|
var slot = urod.Slot.find(f => f.Parts == part);
|
||||||
|
var enchantdata = slot.Enchant[slotIndex];
|
||||||
|
var option = urod.EnchantOption[id].Option[urod.EnchantOption[id].Index - 1];
|
||||||
|
enchantdata.ID = option.id;
|
||||||
|
enchantdata.Lv = option.lv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var allEnchantAmount = [];
|
||||||
|
var enchantable = Get_EnchantListTable();
|
||||||
|
for (var i = 0; i < enchantable.length; ++ i)
|
||||||
|
{
|
||||||
|
log.info(enchantable[i]);
|
||||||
|
var id = enchantable[i].n_EnchantID;
|
||||||
|
allEnchantAmount.push( { id: id, amount: Get_ItemAmount(urod, id) } );
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllSlotEnchant 전송
|
||||||
|
|
||||||
Set_JsonUserData(urod);
|
Set_JsonUserData(urod);
|
||||||
return Get_Return(0, { Equip: urod.Equip.Equip });
|
return Get_Return(0, { Equip: urod.Equip.Equip, EnchantCount: totalCount, AllEnchantAmount: allEnchantAmount });
|
||||||
}
|
}
|
||||||
|
|
||||||
handlers.Save_Skill_MenuBack = function(args)
|
handlers.Save_Skill_MenuBack = function(args)
|
||||||
|
|
|
||||||
|
|
@ -3158,6 +3158,7 @@ public class SC_EnchantOptionResult
|
||||||
public class SC_EquipmentMenuBackResult
|
public class SC_EquipmentMenuBackResult
|
||||||
{
|
{
|
||||||
public Dictionary<eItem, int> Equip;
|
public Dictionary<eItem, int> Equip;
|
||||||
|
public int EnchantCount;
|
||||||
}
|
}
|
||||||
public class SC_PetGachaResult
|
public class SC_PetGachaResult
|
||||||
{
|
{
|
||||||
|
|
@ -3236,16 +3237,52 @@ public class CS_EquipmentMenuBackData
|
||||||
{ eItem.Weapon, 0 }, { eItem.Armor, 0 }, { eItem.Helmet, 0 }, { eItem.Extra, 0 }, { eItem.Ring, 0 },
|
{ eItem.Weapon, 0 }, { eItem.Armor, 0 }, { eItem.Helmet, 0 }, { eItem.Extra, 0 }, { eItem.Ring, 0 },
|
||||||
{ eItem.Necklace, 0 },
|
{ eItem.Necklace, 0 },
|
||||||
};
|
};
|
||||||
|
public Dictionary<eItem, Dictionary<int, int>> Enchant = new Dictionary<eItem, Dictionary<int, int>>
|
||||||
|
{ // 파츠, <인챈트 ID, 마법 부여 횟수>
|
||||||
|
{ eItem.Weapon, new Dictionary<int, int>() }, { eItem.Armor, new Dictionary<int, int>() },
|
||||||
|
{ eItem.Helmet, new Dictionary<int, int>() }, { eItem.Extra, new Dictionary<int, int>() },
|
||||||
|
{ eItem.Ring, new Dictionary<int, int>() }, { eItem.Necklace, new Dictionary<int, int>() },
|
||||||
|
};
|
||||||
|
public Dictionary<eItem, Dictionary<int, int>> LastEnchant = new Dictionary<eItem, Dictionary<int, int>>
|
||||||
|
{ // 파츠, <슬롯, 인챈트 ID>
|
||||||
|
{ eItem.Weapon, new Dictionary<int, int>() }, { eItem.Armor, new Dictionary<int, int>() },
|
||||||
|
{ eItem.Helmet, new Dictionary<int, int>() }, { eItem.Extra, new Dictionary<int, int>() },
|
||||||
|
{ eItem.Ring, new Dictionary<int, int>() }, { eItem.Necklace, new Dictionary<int, int>() },
|
||||||
|
};
|
||||||
|
|
||||||
public void Init()
|
public void Init(bool equip, bool enchant)
|
||||||
{
|
{
|
||||||
var sdata = ServerInfo.Ins.m_ServerData;
|
var sdata = ServerInfo.Ins.m_ServerData;
|
||||||
|
|
||||||
|
if (equip)
|
||||||
|
{
|
||||||
var keys = Equip.Keys.ToList(); // 키 복사
|
var keys = Equip.Keys.ToList(); // 키 복사
|
||||||
foreach (var key in keys)
|
foreach (var key in keys)
|
||||||
Equip[key] = sdata.Get_EqiupmentEquip(key);
|
Equip[key] = sdata.Get_EqiupmentEquip(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enchant)
|
||||||
|
{
|
||||||
|
var enchantkeys = Enchant.Keys.ToList();
|
||||||
|
foreach (var item in enchantkeys)
|
||||||
|
{
|
||||||
|
Enchant[item].Clear();
|
||||||
|
LastEnchant[item].Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Add_Enchant(eItem parts, int slot, int enchantid)
|
||||||
|
{
|
||||||
|
if (!Enchant[parts].ContainsKey(enchantid))
|
||||||
|
Enchant[parts].Add(enchantid, 1);
|
||||||
|
else
|
||||||
|
++Enchant[parts][enchantid];
|
||||||
|
|
||||||
|
if (!LastEnchant[parts].ContainsKey(slot))
|
||||||
|
LastEnchant[parts].Add(slot, enchantid);
|
||||||
|
}
|
||||||
|
|
||||||
public bool isNeedServerSave()
|
public bool isNeedServerSave()
|
||||||
{
|
{
|
||||||
var sdata = ServerInfo.Ins.m_ServerData;
|
var sdata = ServerInfo.Ins.m_ServerData;
|
||||||
|
|
@ -3255,6 +3292,10 @@ public class CS_EquipmentMenuBackData
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var item in LastEnchant)
|
||||||
|
if (item.Value.Count > 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1708,7 +1708,7 @@ public class ServerInfo : MyCoroutine
|
||||||
public void Save_Equipment_MenuBack(CS_EquipmentMenuBackData data, Action<SC_EquipmentMenuBackResult> _act)
|
public void Save_Equipment_MenuBack(CS_EquipmentMenuBackData data, Action<SC_EquipmentMenuBackResult> _act)
|
||||||
{
|
{
|
||||||
NetWait.Ins.Set(true);
|
NetWait.Ins.Set(true);
|
||||||
data.Init(); // 현재 데이터 전송
|
data.Init(true, false); // 현재 데이터 전송
|
||||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||||
{
|
{
|
||||||
FunctionName = MethodBase.GetCurrentMethod().Name,
|
FunctionName = MethodBase.GetCurrentMethod().Name,
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ public class EquipItemEnchantOptionCard : CardBase
|
||||||
texts[1].text = MyText.Get_StatNameValueText(upgradeData.e_OptionType, m_EnchantCardData.EnchantData.Get_Value());
|
texts[1].text = MyText.Get_StatNameValueText(upgradeData.e_OptionType, m_EnchantCardData.EnchantData.Get_Value());
|
||||||
images[1].enabled = true;
|
images[1].enabled = true;
|
||||||
images[1].color = egcData.GradeColor;
|
images[1].color = egcData.GradeColor;
|
||||||
|
|
||||||
|
//Debug.Log(m_EnchantCardData.EnchantData.ID + " " + m_EnchantCardData.EnchantData.Lv);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // 오픈되었으나 비어있음
|
{ // 오픈되었으나 비어있음
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ public class EquipmentEnchantCard : CardBase
|
||||||
|
|
||||||
if (enchant.Option.Count <= enchant.Index)
|
if (enchant.Option.Count <= enchant.Index)
|
||||||
{
|
{
|
||||||
|
NewGameUI.Ins.m_EquipmentUI.m_MenuBackData.Init(false, true);
|
||||||
m_EnchantData.Count = m_EnchantCount;
|
m_EnchantData.Count = m_EnchantCount;
|
||||||
// 현재까지 저장하고 새로운 데이터 받아오기
|
// 현재까지 저장하고 새로운 데이터 받아오기
|
||||||
m_EnchantData.Slot = Select_EnchantCardData.Index;
|
m_EnchantData.Slot = Select_EnchantCardData.Index;
|
||||||
|
|
@ -98,6 +99,7 @@ public class EquipmentEnchantCard : CardBase
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
NewGameUI.Ins.m_EquipmentUI.m_MenuBackData.Add_Enchant(m_EnchantData.Parts, m_EnchantData.Slot, m_Data.n_EnchantID);
|
||||||
sdata.Set_SlotEnchant(m_EnchantData.Parts, m_EnchantData.Slot, option.id, option.lv);
|
sdata.Set_SlotEnchant(m_EnchantData.Parts, m_EnchantData.Slot, option.id, option.lv);
|
||||||
RefreshUI();
|
RefreshUI();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,12 @@ public class EquipmentUI : BotMenuBase
|
||||||
};
|
};
|
||||||
|
|
||||||
List<eStat> list_infostat = new List<eStat> { eStat.BaseDmg, eStat.MaxHP, eStat.STR, eStat.DEX, eStat.INT, eStat.LUK };
|
List<eStat> list_infostat = new List<eStat> { eStat.BaseDmg, eStat.MaxHP, eStat.STR, eStat.DEX, eStat.INT, eStat.LUK };
|
||||||
CS_EquipmentMenuBackData m_MenuBackData = new CS_EquipmentMenuBackData();
|
public CS_EquipmentMenuBackData m_MenuBackData = new CS_EquipmentMenuBackData();
|
||||||
|
|
||||||
public override void Set()
|
public override void Set()
|
||||||
{
|
{
|
||||||
base.Set();
|
base.Set();
|
||||||
m_MenuBackData.Init();
|
m_MenuBackData.Init(true, true);
|
||||||
Set_Money(101, 102, 103);
|
Set_Money(101, 102, 103);
|
||||||
m_EqiupmentPCInfo.Set();
|
m_EqiupmentPCInfo.Set();
|
||||||
m_equipItems.Set();
|
m_equipItems.Set();
|
||||||
|
|
@ -82,6 +82,10 @@ public class EquipmentUI : BotMenuBase
|
||||||
var sdata = ServerInfo.Ins.m_ServerData;
|
var sdata = ServerInfo.Ins.m_ServerData;
|
||||||
foreach (var item in result.Equip)
|
foreach (var item in result.Equip)
|
||||||
sdata.Equip.Equip[item.Key] = item.Value;
|
sdata.Equip.Equip[item.Key] = item.Value;
|
||||||
|
|
||||||
|
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ACC, 0, result.EnchantCount);
|
||||||
|
sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ALL, 0, result.EnchantCount);
|
||||||
|
|
||||||
MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
||||||
base.OnClick_Back();
|
base.OnClick_Back();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue