각성 서버 다시 작업 중...
This commit is contained in:
parent
d47c706a0b
commit
21f96889cd
|
|
@ -784,6 +784,91 @@ handlers.Save_StageResult = function(args)
|
||||||
return Get_Return(0, { gold : Get_ItemAmount(urod, 2) , mainstat : rtnmainStat });
|
return Get_Return(0, { gold : Get_ItemAmount(urod, 2) , mainstat : rtnmainStat });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handlers.Save_PC_MenuBack = 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 table = Get_MissionTable();
|
||||||
|
var awakenData = args.AwakenData;
|
||||||
|
var awakenupgradeid = Get_GlobalValue_nValue("AWAKEN_GOODS_UPGRADE");
|
||||||
|
var awakenUpgradeTable = Get_AwakenUpgradeTable();
|
||||||
|
var useawakenMatIds = {};
|
||||||
|
|
||||||
|
for (var i = 0; i < awakenData.upgrade.length; ++i)
|
||||||
|
{
|
||||||
|
var statKey = awakenData.upgrade[i].Key;
|
||||||
|
var upgradeValue = parseInt(awakenData.upgrade[i].Value || 0);
|
||||||
|
var awakenValue = parseInt(awakenData.awaken[i].Value || 0);
|
||||||
|
|
||||||
|
if (upgradeValue > 0)
|
||||||
|
for (var j = 0; j < upgradeValue; ++j)
|
||||||
|
{
|
||||||
|
var lv = urod.Awaken[statKey].Lv;
|
||||||
|
var audata = awakenUpgradeTable.find(f=>f.n_AwakenStep == lv);
|
||||||
|
|
||||||
|
if (urod.Awaken[statKey].Exp >= audata.n_MaxUpgradeLevel && awakenValue > 0)
|
||||||
|
{ // 각성 각성
|
||||||
|
var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey));
|
||||||
|
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
||||||
|
if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost))
|
||||||
|
{
|
||||||
|
--awakenValue;
|
||||||
|
urod.Awaken[statKey].Exp = 0;
|
||||||
|
++urod.Awaken[statKey].Lv;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var price = Get_K_Value(lv, audata.f_BalanceConstant, audata.n_DefaultUpgradeCostValue, audata.f_CountPerUpgradeCostValue);
|
||||||
|
if (urod.Awaken[statKey].Exp < audata.n_MaxUpgradeLevel && Use_Item(table, urod, awakenupgradeid, price))
|
||||||
|
++urod.Awaken[statKey].Exp;
|
||||||
|
}
|
||||||
|
else if (awakenValue > 0)
|
||||||
|
{
|
||||||
|
var lv = urod.Awaken[statKey].Lv;
|
||||||
|
var audata = awakenUpgradeTable.find(f=>f.n_AwakenStep == lv);
|
||||||
|
if (urod.Awaken[statKey].Exp >= audata.n_MaxUpgradeLevel)
|
||||||
|
{ // 각성 각성
|
||||||
|
var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey));
|
||||||
|
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
||||||
|
if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost))
|
||||||
|
{
|
||||||
|
--awakenValue;
|
||||||
|
urod.Awaken[statKey].Exp = 0;
|
||||||
|
++urod.Awaken[statKey].Lv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var rtn_awakenMatIds = [];
|
||||||
|
rtn_awakenMatIds.push({ itemid : parseInt(awakenupgradeid), amount : Get_ItemAmount(urod, awakenupgradeid) });
|
||||||
|
for (var id in useawakenMatIds)
|
||||||
|
rtn_awakenMatIds.push({ itemid : parseInt(id), amount : Get_ItemAmount(urod, id) });
|
||||||
|
|
||||||
|
Set_JsonUserData(urod);
|
||||||
|
return Get_Return(0, {
|
||||||
|
awakekMats : rtn_awakenMatIds,
|
||||||
|
awaken : urod.Awaken
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Get_PCAwakenMatKey(stat)
|
||||||
|
{
|
||||||
|
switch (stat)
|
||||||
|
{
|
||||||
|
case "STR": return "AWAKEN_GOODS_STR";
|
||||||
|
case "DEX": return "AWAKEN_GOODS_DEX";
|
||||||
|
case "INT": return "AWAKEN_GOODS_INT";
|
||||||
|
case "LUK": return "AWAKEN_GOODS_LUK";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
handlers.Save_PC_Stat = function(args)
|
handlers.Save_PC_Stat = function(args)
|
||||||
{
|
{
|
||||||
var readonlydata = Get_UserReadOnlyData();
|
var readonlydata = Get_UserReadOnlyData();
|
||||||
|
|
@ -11559,32 +11644,7 @@ function Get_GlobalValue_nValue(key)
|
||||||
}
|
}
|
||||||
function Get_AwakenUpgradeTable()
|
function Get_AwakenUpgradeTable()
|
||||||
{
|
{
|
||||||
return [
|
return [{"n_AwakenStep": "1", "n_MaxUpgradeLevel": "10", "n_AwakenGoodsCost": "1", "n_DefaultUpgradeCostValue": "1", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "2", "n_MaxUpgradeLevel": "15", "n_AwakenGoodsCost": "2", "n_DefaultUpgradeCostValue": "2", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "3", "n_MaxUpgradeLevel": "20", "n_AwakenGoodsCost": "3", "n_DefaultUpgradeCostValue": "3", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "4", "n_MaxUpgradeLevel": "25", "n_AwakenGoodsCost": "4", "n_DefaultUpgradeCostValue": "4", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "5", "n_MaxUpgradeLevel": "30", "n_AwakenGoodsCost": "5", "n_DefaultUpgradeCostValue": "5", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}];
|
||||||
{
|
|
||||||
"n_AwakenStep": "1",
|
|
||||||
"n_MaxUpgradeLevel": "10",
|
|
||||||
"n_AwakenGoodsCost": "1",
|
|
||||||
"n_DefaultUpgradeCostValue": "10000",
|
|
||||||
"f_CountPerUpgradeCostValue": "1.5",
|
|
||||||
"f_BalanceConstant": "0.032"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n_AwakenStep": "2",
|
|
||||||
"n_MaxUpgradeLevel": "25",
|
|
||||||
"n_AwakenGoodsCost": "2",
|
|
||||||
"n_DefaultUpgradeCostValue": "20000",
|
|
||||||
"f_CountPerUpgradeCostValue": "1.5",
|
|
||||||
"f_BalanceConstant": "0.032"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n_AwakenStep": "3",
|
|
||||||
"n_MaxUpgradeLevel": "30",
|
|
||||||
"n_AwakenGoodsCost": "3",
|
|
||||||
"n_DefaultUpgradeCostValue": "30000",
|
|
||||||
"f_CountPerUpgradeCostValue": "1.5",
|
|
||||||
"f_BalanceConstant": "0.032"
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
function Get_BreakingLimitTable()
|
function Get_BreakingLimitTable()
|
||||||
{
|
{
|
||||||
|
|
@ -24775,14 +24835,15 @@ function Get_K_Value(lv, balance, defaultval, perlv, abandon = true) {
|
||||||
|
|
||||||
let val;
|
let val;
|
||||||
if (Math.abs(balance) < 0.000001) {
|
if (Math.abs(balance) < 0.000001) {
|
||||||
val = defaultval + lv * perlv;
|
val = lv * perlv;
|
||||||
} else {
|
} else {
|
||||||
const base = lv * perlv;
|
const base = lv * perlv;
|
||||||
const exponent = balance * Math.sqrt(lv);
|
const exponent = balance * Math.sqrt(lv);
|
||||||
val = defaultval + Math.pow(base, exponent);
|
val = Math.pow(base, exponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
val *= 0.0001;
|
val *= 0.0001;
|
||||||
|
val = Add_Amount(val, defaultval);
|
||||||
|
|
||||||
if (abandon) {
|
if (abandon) {
|
||||||
val = Math.floor(val);
|
val = Math.floor(val);
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
[{"n_AwakenStep": "1", "n_MaxUpgradeLevel": "10", "n_AwakenGoodsCost": "1", "n_DefaultUpgradeCostValue": "10000", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "2", "n_MaxUpgradeLevel": "25", "n_AwakenGoodsCost": "2", "n_DefaultUpgradeCostValue": "20000", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "3", "n_MaxUpgradeLevel": "30", "n_AwakenGoodsCost": "3", "n_DefaultUpgradeCostValue": "30000", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}]
|
[{"n_AwakenStep": "1", "n_MaxUpgradeLevel": "10", "n_AwakenGoodsCost": "1", "n_DefaultUpgradeCostValue": "1", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "2", "n_MaxUpgradeLevel": "15", "n_AwakenGoodsCost": "2", "n_DefaultUpgradeCostValue": "2", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "3", "n_MaxUpgradeLevel": "20", "n_AwakenGoodsCost": "3", "n_DefaultUpgradeCostValue": "3", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "4", "n_MaxUpgradeLevel": "25", "n_AwakenGoodsCost": "4", "n_DefaultUpgradeCostValue": "4", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}, {"n_AwakenStep": "5", "n_MaxUpgradeLevel": "30", "n_AwakenGoodsCost": "5", "n_DefaultUpgradeCostValue": "5", "f_CountPerUpgradeCostValue": "1.5", "f_BalanceConstant": "0.032"}]
|
||||||
Binary file not shown.
|
|
@ -3106,6 +3106,11 @@ public class SC_Items
|
||||||
public int itemid, amount;
|
public int itemid, amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class SC_PCMenuBackResult
|
||||||
|
{
|
||||||
|
public List<SC_Items> awakekMats;
|
||||||
|
public Dictionary<string, SD_PCAwakenData_Read> awaken;
|
||||||
|
}
|
||||||
public class SC_PCStatInit
|
public class SC_PCStatInit
|
||||||
{
|
{
|
||||||
public int gem;
|
public int gem;
|
||||||
|
|
@ -3160,4 +3165,26 @@ public class SC_FarmSlotHarvestResult
|
||||||
public int gem;
|
public int gem;
|
||||||
public List<ItemSimpleData> Items;
|
public List<ItemSimpleData> Items;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 클라 -> 서버
|
||||||
|
public class CS_AwakenData
|
||||||
|
{
|
||||||
|
public Dictionary<eStat, int> upgrade = new Dictionary<eStat, int>
|
||||||
|
{ { eStat.STR, 0 }, { eStat.DEX, 0 }, { eStat.INT, 0 }, { eStat.LUK, 0 }};
|
||||||
|
public Dictionary<eStat, int> awaken = new Dictionary<eStat, int>
|
||||||
|
{ { eStat.STR, 0 }, { eStat.DEX, 0 }, { eStat.INT, 0 }, { eStat.LUK, 0 }};
|
||||||
|
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
upgrade[eStat.STR] = 0;
|
||||||
|
awaken[eStat.STR] = 0;
|
||||||
|
upgrade[eStat.DEX] = 0;
|
||||||
|
awaken[eStat.DEX] = 0;
|
||||||
|
upgrade[eStat.INT] = 0;
|
||||||
|
awaken[eStat.INT] = 0;
|
||||||
|
upgrade[eStat.LUK] = 0;
|
||||||
|
awaken[eStat.LUK] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -859,6 +859,43 @@ public class ServerInfo : MyCoroutine
|
||||||
Set_Coroutine(() => { Save_StageResult(_act); }, 2f);
|
Set_Coroutine(() => { Save_StageResult(_act); }, 2f);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
public void Save_PC_MenuBack(CS_AwakenData awakenData, Action<SC_PCMenuBackResult> _act)
|
||||||
|
{
|
||||||
|
NetWait.Ins.Set(true);
|
||||||
|
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||||
|
{
|
||||||
|
FunctionName = MethodBase.GetCurrentMethod().Name,
|
||||||
|
GeneratePlayStreamEvent = true,
|
||||||
|
FunctionParameter = new
|
||||||
|
{
|
||||||
|
Token = m_LoginInfo.EntityToken.EntityToken,
|
||||||
|
AwakenData = awakenData
|
||||||
|
}
|
||||||
|
},
|
||||||
|
result =>
|
||||||
|
{
|
||||||
|
if (result.Error == null)
|
||||||
|
{
|
||||||
|
NetWait.Ins.Set(false);
|
||||||
|
var str_result = result.FunctionResult.ToString();
|
||||||
|
var error = MyErrorCheck(str_result);
|
||||||
|
// (0 성공, 1 실패 (열린 슬롯 없음), 2 실패 (재화 부족), 3 실패 (각성 재료 id 없음))
|
||||||
|
switch (error)
|
||||||
|
{
|
||||||
|
case 0: _act?.Invoke(JsonConvert.DeserializeObject<SC_PCMenuBackResult>(str_result)); break;
|
||||||
|
case 1: ToastUI.Ins.Set(999900011); break;
|
||||||
|
case 2: ToastUI.Ins.Set(388); break;
|
||||||
|
case 3: ToastUI.Ins.Set(999900005); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Set_Coroutine(() => { Save_PC_MenuBack(awakenData, _act); }, 2f);
|
||||||
|
},
|
||||||
|
fail =>
|
||||||
|
{
|
||||||
|
Set_Coroutine(() => { Save_PC_MenuBack(awakenData, _act); }, 2f);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void Save_PC_Stat(List<int> usepoint, Action _act)
|
public void Save_PC_Stat(List<int> usepoint, Action _act)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -86,12 +86,19 @@ public class PCAwakenCard : CardBase
|
||||||
var lv = sdata.Get_AwakenLv(m_Stat);
|
var lv = sdata.Get_AwakenLv(m_Stat);
|
||||||
if (sdata.Check_ItemAmount(moneyid, m_Price))
|
if (sdata.Check_ItemAmount(moneyid, m_Price))
|
||||||
{
|
{
|
||||||
ServerInfo.Ins.Save_PC_AwakenLvUp(m_Stat, () =>
|
var csdata = PCAwakenUI.Ins.Get_CS_AwakenData();
|
||||||
{
|
++csdata.upgrade[m_Stat];
|
||||||
sdata.Use_Item(moneyid, m_Price);
|
|
||||||
sdata.Add_AwakenExp(m_Stat);
|
sdata.Use_Item(moneyid, m_Price);
|
||||||
Set_UI();
|
sdata.Add_AwakenExp(m_Stat);
|
||||||
});
|
Set_UI();
|
||||||
|
|
||||||
|
//ServerInfo.Ins.Save_PC_AwakenLvUp(m_Stat, () =>
|
||||||
|
//{
|
||||||
|
// sdata.Use_Item(moneyid, m_Price);
|
||||||
|
// sdata.Add_AwakenExp(m_Stat);
|
||||||
|
// Set_UI();
|
||||||
|
//});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -104,12 +111,19 @@ public class PCAwakenCard : CardBase
|
||||||
var moneyid = Get_AwakenMoneyID();
|
var moneyid = Get_AwakenMoneyID();
|
||||||
if (sdata.Check_ItemAmount(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost))
|
if (sdata.Check_ItemAmount(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost))
|
||||||
{
|
{
|
||||||
ServerInfo.Ins.Save_PC_Awaken(m_Stat, () =>
|
var csdata = PCAwakenUI.Ins.Get_CS_AwakenData();
|
||||||
{
|
++csdata.awaken[m_Stat];
|
||||||
sdata.Use_Item(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost);
|
|
||||||
sdata.Add_AwakenLv(m_Stat);
|
sdata.Use_Item(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost);
|
||||||
Set_UI();
|
sdata.Add_AwakenLv(m_Stat);
|
||||||
});
|
Set_UI();
|
||||||
|
|
||||||
|
//ServerInfo.Ins.Save_PC_Awaken(m_Stat, () =>
|
||||||
|
//{
|
||||||
|
// sdata.Use_Item(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost);
|
||||||
|
// sdata.Add_AwakenLv(m_Stat);
|
||||||
|
// Set_UI();
|
||||||
|
//});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,28 @@
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class PCAwakenUI : PCUIMenu
|
public class PCAwakenUI : PCUIMenu
|
||||||
{
|
{
|
||||||
|
public static bool isIns;
|
||||||
|
public static PCAwakenUI Ins;
|
||||||
|
private void Awake() { isIns = true; Ins = this; }
|
||||||
|
|
||||||
public PCAwakenUI_Set m_PCAwakenUI_Set;
|
public PCAwakenUI_Set m_PCAwakenUI_Set;
|
||||||
|
|
||||||
|
CS_AwakenData m_CS_AwakenData = new CS_AwakenData();
|
||||||
|
|
||||||
public override void Set()
|
public override void Set()
|
||||||
{
|
{
|
||||||
base.Set();
|
base.Set();
|
||||||
NewGameUI.Ins.m_PCUI.Set_Money(table_GlobalValue.Ins.Get_Int("AWAKEN_GOODS_UPGRADE"), 0);
|
NewGameUI.Ins.m_PCUI.Set_Money(table_GlobalValue.Ins.Get_Int("AWAKEN_GOODS_UPGRADE"), 0);
|
||||||
m_PCAwakenUI_Set.Set();
|
m_PCAwakenUI_Set.Set();
|
||||||
|
m_CS_AwakenData.Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CS_AwakenData Get_CS_AwakenData() { return m_CS_AwakenData; }
|
||||||
|
public bool IsSendAwakenData()
|
||||||
|
{
|
||||||
|
foreach (var item in m_CS_AwakenData.upgrade)
|
||||||
|
if (item.Value > 0) return true;
|
||||||
|
foreach (var item in m_CS_AwakenData.awaken)
|
||||||
|
if (item.Value > 0) return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class PCAwakenUI_Set : uScrollViewMgr
|
public class PCAwakenUI_Set : uScrollViewMgr
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -45,5 +45,16 @@ public class PCUI : BotMenuBase
|
||||||
PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData);
|
PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData);
|
||||||
}, 0.02f);
|
}, 0.02f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if (PCAwakenUI.isIns && PCAwakenUI.Ins.IsSendAwakenData())
|
||||||
|
if (PCAwakenUI.isIns)
|
||||||
|
{
|
||||||
|
ServerInfo.Ins.Save_PC_MenuBack(PCAwakenUI.Ins.Get_CS_AwakenData(), result =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < result.awakekMats.Count; i++)
|
||||||
|
sdata.Set_Item(result.awakekMats[i].itemid, result.awakekMats[i].amount);
|
||||||
|
foreach (var item in result.awaken) sdata.Awaken[item.Key] = item.Value.Get();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue