각성 서버 다시 작업 중...
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 });
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
var readonlydata = Get_UserReadOnlyData();
|
||||
|
|
@ -11559,32 +11644,7 @@ function Get_GlobalValue_nValue(key)
|
|||
}
|
||||
function Get_AwakenUpgradeTable()
|
||||
{
|
||||
return [
|
||||
{
|
||||
"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"
|
||||
}
|
||||
];
|
||||
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"}];
|
||||
}
|
||||
function Get_BreakingLimitTable()
|
||||
{
|
||||
|
|
@ -24775,14 +24835,15 @@ function Get_K_Value(lv, balance, defaultval, perlv, abandon = true) {
|
|||
|
||||
let val;
|
||||
if (Math.abs(balance) < 0.000001) {
|
||||
val = defaultval + lv * perlv;
|
||||
val = lv * perlv;
|
||||
} else {
|
||||
const base = lv * perlv;
|
||||
const exponent = balance * Math.sqrt(lv);
|
||||
val = defaultval + Math.pow(base, exponent);
|
||||
val = Math.pow(base, exponent);
|
||||
}
|
||||
|
||||
val *= 0.0001;
|
||||
val = Add_Amount(val, defaultval);
|
||||
|
||||
if (abandon) {
|
||||
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 class SC_PCMenuBackResult
|
||||
{
|
||||
public List<SC_Items> awakekMats;
|
||||
public Dictionary<string, SD_PCAwakenData_Read> awaken;
|
||||
}
|
||||
public class SC_PCStatInit
|
||||
{
|
||||
public int gem;
|
||||
|
|
@ -3160,4 +3165,26 @@ public class SC_FarmSlotHarvestResult
|
|||
public int gem;
|
||||
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
|
||||
|
|
@ -859,6 +859,43 @@ public class ServerInfo : MyCoroutine
|
|||
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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -86,12 +86,19 @@ public class PCAwakenCard : CardBase
|
|||
var lv = sdata.Get_AwakenLv(m_Stat);
|
||||
if (sdata.Check_ItemAmount(moneyid, m_Price))
|
||||
{
|
||||
ServerInfo.Ins.Save_PC_AwakenLvUp(m_Stat, () =>
|
||||
{
|
||||
sdata.Use_Item(moneyid, m_Price);
|
||||
sdata.Add_AwakenExp(m_Stat);
|
||||
Set_UI();
|
||||
});
|
||||
var csdata = PCAwakenUI.Ins.Get_CS_AwakenData();
|
||||
++csdata.upgrade[m_Stat];
|
||||
|
||||
sdata.Use_Item(moneyid, m_Price);
|
||||
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();
|
||||
if (sdata.Check_ItemAmount(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost))
|
||||
{
|
||||
ServerInfo.Ins.Save_PC_Awaken(m_Stat, () =>
|
||||
{
|
||||
sdata.Use_Item(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost);
|
||||
sdata.Add_AwakenLv(m_Stat);
|
||||
Set_UI();
|
||||
});
|
||||
var csdata = PCAwakenUI.Ins.Get_CS_AwakenData();
|
||||
++csdata.awaken[m_Stat];
|
||||
|
||||
sdata.Use_Item(moneyid, m_AwakenUpgradeTableData.n_AwakenGoodsCost);
|
||||
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 static bool isIns;
|
||||
public static PCAwakenUI Ins;
|
||||
private void Awake() { isIns = true; Ins = this; }
|
||||
|
||||
public PCAwakenUI_Set m_PCAwakenUI_Set;
|
||||
|
||||
CS_AwakenData m_CS_AwakenData = new CS_AwakenData();
|
||||
|
||||
public override void Set()
|
||||
{
|
||||
base.Set();
|
||||
NewGameUI.Ins.m_PCUI.Set_Money(table_GlobalValue.Ins.Get_Int("AWAKEN_GOODS_UPGRADE"), 0);
|
||||
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 UnityEngine;
|
||||
|
||||
public class PCAwakenUI_Set : uScrollViewMgr
|
||||
{
|
||||
|
|
|
|||
|
|
@ -45,5 +45,16 @@ public class PCUI : BotMenuBase
|
|||
PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData);
|
||||
}, 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