Save_Enchant_LvUp
This commit is contained in:
parent
8d1ed7f796
commit
e9ec3636c1
|
|
@ -244,8 +244,8 @@ function Add_Item(table, itemtable, urod, itemid, amount, isCheat)
|
|||
{
|
||||
default:
|
||||
if (!urod.Item[itemid]) urod.Item[itemid] = [0, 0, 0];
|
||||
urod.Item[itemid][0] += amount;
|
||||
if (!isCheat) urod.Item[itemid][1] += amount; // 총 획득량
|
||||
urod.Item[itemid][0] = Add_Amount(urod.Item[itemid][0], amount);
|
||||
if (!isCheat) urod.Item[itemid][1] = Add_Amount(urod.Item[itemid][1], amount); // 총 획득량
|
||||
break;
|
||||
|
||||
case "Weapon":
|
||||
|
|
@ -255,13 +255,13 @@ function Add_Item(table, itemtable, urod, itemid, amount, isCheat)
|
|||
case "Necklace":
|
||||
case "Ring":
|
||||
if (!urod.Equipment[itemid]) urod.Equipment[itemid] = [0, 0, 0];
|
||||
urod.Equipment[itemid][0] += amount;
|
||||
urod.Equipment[itemid][0] = Add_Amount(urod.Equipment[itemid][0], amount);
|
||||
Add_Collection(urod, itemid, amount);
|
||||
break;
|
||||
|
||||
case "Skill":
|
||||
if (!urod.Skill[itemid]) urod.Skill[itemid] = [amount - 1,1,0]; // 레벨 증가
|
||||
else urod.Skill[itemid][0] += amount;
|
||||
else urod.Skill[itemid][0] = Add_Amount(urod.Skill[itemid][0], amount);
|
||||
break;
|
||||
|
||||
case "PC":
|
||||
|
|
@ -270,19 +270,19 @@ function Add_Item(table, itemtable, urod, itemid, amount, isCheat)
|
|||
break;
|
||||
|
||||
case "Pet":
|
||||
if (!urod.Pet[itemid]) urod.Pet[itemid] = [0, 1]; // [레벨, 획득 수]
|
||||
urod.Pet[itemid][0] += amount;
|
||||
if (!urod.Pet[itemid]) urod.Pet[itemid] = [0, 1];
|
||||
urod.Pet[itemid][0] = Add_Amount(urod.Pet[itemid][0], amount);
|
||||
break;
|
||||
|
||||
case "Enchant":
|
||||
if (!urod.Enchant[itemid]) urod.Enchant[itemid] = [0, 0, 0, 0];
|
||||
urod.Enchant[itemid][0] += amount;
|
||||
urod.Enchant[itemid][2] += amount;
|
||||
urod.Enchant[itemid][0] = Add_Amount(urod.Enchant[itemid][0], amount);
|
||||
urod.Enchant[itemid][2] = Add_Amount(urod.Enchant[itemid][2], amount);
|
||||
break;
|
||||
|
||||
case "Relic":
|
||||
if (!urod.Relic[itemid]) urod.Relic[itemid] = [0, 0, 0];
|
||||
urod.Relic[itemid][0] += amount;
|
||||
urod.Relic[itemid][0] = Add_Amount(urod.Relic[itemid][0], amount);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -296,7 +296,7 @@ function Use_Item(table, urod, itemid, amount)
|
|||
if (urod.Item[itemid][0] >= amount)
|
||||
{
|
||||
urod.Item[itemid][0] -= amount;
|
||||
urod.Item[itemid][2] += amount; // 총 사용량
|
||||
urod.Item[itemid][2] = Add_Amount(urod.Item[itemid][2], amount); // 총 사용량
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -331,7 +331,7 @@ function Use_Item(table, urod, itemid, amount)
|
|||
if (urod.Enchant[itemid][0] >= amount)
|
||||
{
|
||||
urod.Enchant[itemid][0] -= amount;
|
||||
urod.Enchant[itemid][3] += amount;
|
||||
urod.Enchant[itemid][3] = Add_Amount(urod.Enchant[itemid][3], amount);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -405,24 +405,24 @@ function Add_MissionCount(table, urod, purpose, conditionvalue, count, setValue)
|
|||
if (!urod.Mission[key1][key2]) urod.Mission[key1][key2] = [0, 0];
|
||||
|
||||
if (setValue) urod.Mission[key1][key2][1] = count;
|
||||
else urod.Mission[key1][key2][1] += count;
|
||||
else urod.Mission[key1][key2][1] = Add_Amount(urod.Mission[key1][key2][1], count);
|
||||
}
|
||||
}
|
||||
|
||||
// 가이드 퀘스트 체크
|
||||
var guideData = table.find(f=>f.n_MissionGroupId == 0 && f.n_MissionIndex == urod.Common[10]);
|
||||
if (guideData && guideData.e_MissionConditionType == purpose)
|
||||
urod.Common[11] += count;
|
||||
urod.Common[11] = Add_Amount(urod.Common[11], count);
|
||||
}
|
||||
function Add_Collection(urod, id, count)
|
||||
{
|
||||
if (!urod.Collection[id]) urod.Collection[id] = 0;
|
||||
urod.Collection[id] += count;
|
||||
urod.Collection[id] = Add_Amount(urod.Collection[id], count);
|
||||
}
|
||||
function Add_MobCollection(urod, id, count)
|
||||
{
|
||||
if (!urod.MobKill[id]) urod.MobKill[id] = 0;
|
||||
urod.MobKill[id] += count;
|
||||
urod.MobKill[id] = Add_Amount(urod.MobKill[id], count);
|
||||
}
|
||||
|
||||
function Get_Exp(lv) {
|
||||
|
|
@ -529,9 +529,9 @@ handlers.Save_StageResult = function(args)
|
|||
var itemtable = Get_ItemTable();
|
||||
|
||||
// 경험치 처리
|
||||
urod.PC.Exp += args.Exp;
|
||||
urod.PC.Exp = Add_Amount(urod.PC.Exp, args.Exp);
|
||||
while (urod.PC.Exp >= Get_Exp(urod.PC.Lv + 1)) {
|
||||
urod.PC.Lv++;
|
||||
++urod.PC.Lv;
|
||||
}
|
||||
|
||||
// 아이템 처리 (args.Item은 JS object 형태로 전달됨)
|
||||
|
|
@ -548,7 +548,7 @@ handlers.Save_StageResult = function(args)
|
|||
for (var key in args.Mob) {
|
||||
var Id = key;
|
||||
var Count = args.Mob[key];
|
||||
mobcount += Count;
|
||||
mobcount = Add_Amount(mobcount, Count);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER", Id, Count, false);
|
||||
Add_MobCollection(urod, Id, Count);
|
||||
}
|
||||
|
|
@ -556,7 +556,7 @@ handlers.Save_StageResult = function(args)
|
|||
for (var key in args.Elite) {
|
||||
var Id = key;
|
||||
var Count = args.Elite[key];
|
||||
elitemobcount += Count;
|
||||
elitemobcount = Add_Amount(elitemobcount, Count);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER", Id, Count, false);
|
||||
Add_MobCollection(urod, Id, Count);
|
||||
}
|
||||
|
|
@ -564,13 +564,13 @@ handlers.Save_StageResult = function(args)
|
|||
for (var key in args.Boss) {
|
||||
var Id = key;
|
||||
var Count = args.Boss[key];
|
||||
bossmobcount += Count;
|
||||
bossmobcount = Add_Amount(bossmobcount + Count);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER", Id, Count, false);
|
||||
Add_MobCollection(urod, Id, Count);
|
||||
}
|
||||
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_ALL", 0, mobcount + elitemobcount + bossmobcount, false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_ACC", 0, mobcount + elitemobcount + bossmobcount, false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_ALL", 0, Add_Amount(mobcount + elitemobcount + bossmobcount), false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_ACC", 0, Add_Amount(mobcount + elitemobcount + bossmobcount), false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE", 1, mobcount, false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE", 2, elitemobcount, false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE", 3, bossmobcount, false);
|
||||
|
|
@ -606,7 +606,7 @@ handlers.Save_PC_Stat = function(args)
|
|||
|
||||
if (curUsePoint <= remainPoint) {
|
||||
for (var i = 0; i < 4; i++) {
|
||||
urod.PC.Stat[i] += args.UsePoint[i];
|
||||
urod.PC.Stat[i] = Add_Amount(urod.PC.Stat[i], args.UsePoint[i]);
|
||||
}
|
||||
Add_MissionCount(Get_MissionTable(), urod, "HERO_STAT_UPGRADE_ACC", 0, curUsePoint, false);
|
||||
Set_JsonUserData(urod);
|
||||
|
|
@ -1271,7 +1271,7 @@ handlers.Save_EquipItem_SlotLvUp = function(args)
|
|||
log.info("슬롯 강화 비용 " + price);
|
||||
if (Use_Item(table, urod, esu_data.n_ConsumeGoodsID, price))
|
||||
{
|
||||
m_SD_Slot.Use += price;
|
||||
m_SD_Slot.Use = Add_Amount(m_SD_Slot.Use, price);
|
||||
++m_SD_Slot.Lv;
|
||||
|
||||
Add_MissionCount(table, urod, "EQUIP_SLOT_UPGRADE_ALL", 0, 1);
|
||||
|
|
@ -1353,6 +1353,31 @@ handlers.Save_EquipItem_Enchant = function(args)
|
|||
}
|
||||
return Get_Return(1);
|
||||
}
|
||||
|
||||
handlers.Save_Enchant_LvUp = 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 s_enchant = urod.Enchant[args.EnchantID];
|
||||
|
||||
var table = Get_MissionTable();
|
||||
var er_table = Get_EnchantRateTable();
|
||||
var er_data = er_table.find(f=>f.n_EnchantLv == s_enchant[1]);
|
||||
|
||||
if (er_data.n_NextLvRequireCount <= 0) return Get_Return(2);
|
||||
if (Use_Item(table, urod, args.EnchantID, er_data.n_NextLvRequireCount))
|
||||
{
|
||||
++s_enchant[1];
|
||||
|
||||
Set_JsonUserData(urod);
|
||||
return Get_Return(0);
|
||||
}
|
||||
return Get_Return(1);
|
||||
}
|
||||
/////////////////////////////////// 서버 처리
|
||||
|
||||
handlers.Write_UnityInApp = function(args)
|
||||
|
|
@ -10121,6 +10146,10 @@ function IsRateTrue1000000(rate)
|
|||
{
|
||||
return Math.floor(Math.random() * 1000000) < rate;
|
||||
}
|
||||
function Add_Amount(...args)
|
||||
{
|
||||
return args.reduce((sum, val) => sum + Number(val), 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1565,6 +1565,43 @@ public class ServerInfo : MyCoroutine
|
|||
Set_Coroutine(() => { Save_EquipItem_Enchant(itemid, eid, slot, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
|
||||
public void Save_Enchant_LvUp(int eid, Action _act)
|
||||
{
|
||||
NetWait.Ins.Set(true);
|
||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||
{
|
||||
FunctionName = MethodBase.GetCurrentMethod().Name,
|
||||
GeneratePlayStreamEvent = true,
|
||||
FunctionParameter = new
|
||||
{
|
||||
Token = m_LoginInfo.EntityToken.EntityToken,
|
||||
EnchantID = eid,
|
||||
}
|
||||
},
|
||||
result =>
|
||||
{
|
||||
if (result.Error == null)
|
||||
{
|
||||
NetWait.Ins.Set(false);
|
||||
var str_result = result.FunctionResult.ToString();
|
||||
var error = MyErrorCheck(str_result);
|
||||
// (0 성공, 1 실패 (잠긴 인챈트 슬롯), 3 실패 (없는 아이템), 4 실패 (업그레이드 정보 없는 파츠))
|
||||
switch (error)
|
||||
{
|
||||
case 0: _act?.Invoke(); break;
|
||||
case 1: ToastUI.Ins.Set(388); break;
|
||||
case 2: ToastUI.Ins.Set(999900003); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
Set_Coroutine(() => { Save_Enchant_LvUp(eid, _act); }, 2f);
|
||||
},
|
||||
fail =>
|
||||
{
|
||||
Set_Coroutine(() => { Save_Enchant_LvUp(eid, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 우편
|
||||
|
|
|
|||
|
|
@ -46,12 +46,17 @@ public class EquipmentEnchantCard : CardBase
|
|||
}
|
||||
public void OnClick_Reinforce()
|
||||
{
|
||||
if (m_EnchantRateTableData.n_NextLvRequireCount <= 0) { ToastUI.Ins.Set(999900003); return; }
|
||||
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
if (sdata.Check_ItemAmount(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount))
|
||||
{
|
||||
sdata.Use_Item(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount);
|
||||
sdata.Add_EnchantLv(m_Data.n_EnchantID);
|
||||
Set_UI();
|
||||
ServerInfo.Ins.Save_Enchant_LvUp(m_Data.n_EnchantID, () =>
|
||||
{
|
||||
sdata.Use_Item(m_Data.n_EnchantID, m_EnchantRateTableData.n_NextLvRequireCount);
|
||||
sdata.Add_EnchantLv(m_Data.n_EnchantID);
|
||||
Set_UI();
|
||||
});
|
||||
}
|
||||
}
|
||||
public void OnClick_EnchantEquipItem()
|
||||
|
|
|
|||
Loading…
Reference in New Issue