Save_Skill_Awaken

This commit is contained in:
Ino 2025-07-07 13:54:17 +09:00
parent 0ead84fd54
commit a93f9ebbbf
6 changed files with 106 additions and 20 deletions

View File

@ -1394,6 +1394,40 @@ handlers.Save_Skill_LvUp = function(args)
}
return Get_Return(1);
}
handlers.Save_Skill_Awaken = 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 skill = urod.Skill[args.SkillID];
if (!skill) return Get_Return(2);
if (urod.Skill[args.SkillID][2] >= 3) return Get_Return(3);
var skillData = Get_SkillTable().find(f=>f.n_SkillID == args.SkillID);
if (!skillData) return Get_Return(2);
if (skillData.n_SkillEnhanceAmount1 <= 0) return Get_Return(4);
var table = Get_MissionTable();
var price = 0;
switch (urod.Skill[args.SkillID][2])
{
case 0: price = skillData.n_SkillEnhanceAmount1; break;
case 1: price = skillData.n_SkillEnhanceAmount2; break;
case 2: price = skillData.n_SkillEnhanceAmount3; break;
}
log.info("alv " + urod.Skill[args.SkillID][2] + ", price " + price);
if (Use_Item(table, urod, args.SkillID, price))
{
++urod.Skill[args.SkillID][2];
Set_JsonUserData(urod);
return Get_Return(0);
}
return Get_Return(1);
}
/////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args)

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -2110,12 +2110,13 @@ public partial class ServerData
public double Get_ItemAmount(int id)
{
var key = Get_Key(id);
if (Item.ContainsKey(key)) return Item[key][0];
else if (Equipment.ContainsKey(key)) return Equipment[key][0];
else if (Enchant.ContainsKey(key)) return Enchant[key][0];
else if (Pet.ContainsKey(key)) return Pet[key][0];
else if (Relic.ContainsKey(key)) return Relic[key][0];
return 0;
if (Item.ContainsKey(key)) return Item[key][0];
else if (Equipment.ContainsKey(key)) return Equipment[key][0];
else if (Enchant.ContainsKey(key)) return Enchant[key][0];
else if (Pet.ContainsKey(key)) return Pet[key][0];
else if (Relic.ContainsKey(key)) return Relic[key][0];
else if (Skill.ContainsKey(key)) return Skill[key][0];
return 0;
}
public bool IsObtainItem(int id)
{

View File

@ -1660,7 +1660,7 @@ public class ServerInfo : MyCoroutine
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (없는 스킬))
// (0 성공, 1 실패 (재화 부족), 2 실패 (없는 스킬), 3 실패 (최고 레벨))
switch (error)
{
case 0: _act?.Invoke(); break;
@ -1677,6 +1677,44 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_Skill_LvUp(skillid, _act); }, 2f);
});
}
public void Save_Skill_Awaken(int skillid, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
SkillID = skillid,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (재화 부족), 2 실패 (없는 스킬), 3 실패 (최고 레벨), 4 실패 (각성 없는 스킬))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900016); break;
case 2: ToastUI.Ins.Set(999900014); break;
case 3: ToastUI.Ins.Set(999900024); break;
case 4: ToastUI.Ins.Set(999900025); break;
}
}
else
Set_Coroutine(() => { Save_Skill_Awaken(skillid, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Skill_Awaken(skillid, _act); }, 2f);
});
}
#endregion
#region

View File

@ -64,7 +64,7 @@ public class SkillUI_SkillInfo : uScrollViewMgr
public void OnClick_LvUp()
{
//if (Can_Reinforce(true))
if (Can_Reinforce(true))
{
ServerInfo.Ins.Save_Skill_LvUp(m_Data.n_SkillID, () =>
{
@ -99,9 +99,19 @@ public class SkillUI_SkillInfo : uScrollViewMgr
{
var sdata = ServerInfo.Ins.m_ServerData;
var lv = sdata.Get_SkillLv(eRole.PC, m_Data.n_SkillID);
if (lv <= 0)
{
if (toast) ToastUI.Ins.Set(999900014);
return false;
}
var alv = sdata.Get_SkillAwakenLv(m_Data.n_SkillID);
if (alv >= 3)
{
if (toast) ToastUI.Ins.Set(999900024);
return false;
}
var needcard = m_Data.Get_SkillEnhanceAmout(alv);
if (lv > 0 && alv < 3 && needcard > 0)
if (needcard > 0)
{
//var goodsid = table_GlobalValue.Ins.Get_Int("AWAKEN_GOODS_UPGRADE");
return sdata.Check_ItemAmount(m_Data.n_SkillID, needcard, toast);
@ -113,17 +123,20 @@ public class SkillUI_SkillInfo : uScrollViewMgr
{
if (Can_Awaken(true))
{
var sdata = ServerInfo.Ins.m_ServerData;
//var goodsid = table_GlobalValue.Ins.Get_Int("AWAKEN_GOODS_UPGRADE");
var alv = sdata.Get_SkillAwakenLv(m_Data.n_SkillID);
var needcard = m_Data.Get_SkillEnhanceAmout(alv);
sdata.Use_Item(m_Data.n_SkillID, needcard);
sdata.Add_SkillAwakenLv(m_Data.n_SkillID);
Set_UI();
NewGameUI.Ins.m_SkillUI.Refresh_Money();
ServerInfo.Ins.Save_Skill_Awaken(m_Data.n_SkillID, () =>
{
var sdata = ServerInfo.Ins.m_ServerData;
//var goodsid = table_GlobalValue.Ins.Get_Int("AWAKEN_GOODS_UPGRADE");
var alv = sdata.Get_SkillAwakenLv(m_Data.n_SkillID);
var needcard = m_Data.Get_SkillEnhanceAmout(alv);
sdata.Use_Item(m_Data.n_SkillID, needcard);
sdata.Add_SkillAwakenLv(m_Data.n_SkillID);
Set_UI();
NewGameUI.Ins.m_SkillUI.Refresh_Money();
//sdata.Add_MissionCount(ePurpose.SKILL_AWAKEN_ALL, m_Data.n_SkillID);
//sdata.Add_MissionCount(ePurpose.SKILL_AWAKEN_LIMIT_ALL, m_Data.n_SkillID);
//sdata.Add_MissionCount(ePurpose.SKILL_AWAKEN_ALL, m_Data.n_SkillID);
//sdata.Add_MissionCount(ePurpose.SKILL_AWAKEN_LIMIT_ALL, m_Data.n_SkillID);
});
}
}