스킬 백 저장 실패 시 롤백

This commit is contained in:
Ino 2025-07-06 05:17:26 +09:00
parent 26ba9cb3b7
commit 7726fc0338
2 changed files with 13 additions and 7 deletions

View File

@ -1603,7 +1603,7 @@ public class ServerInfo : MyCoroutine
});
}
public void Save_Skill_MenuBack(int preset, Dictionary<int, List<int>> skills, Action _act)
public void Save_Skill_MenuBack(int preset, Dictionary<int, List<int>> skills, Action _actfail)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
@ -1629,16 +1629,15 @@ public class ServerInfo : MyCoroutine
// (0 성공, 1 실패 (없는 스킬))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900023); break;
case 1: _actfail?.Invoke(); ToastUI.Ins.Set(999900023); break;
}
}
else
Set_Coroutine(() => { Save_Skill_MenuBack(preset, skills, _act); }, 2f);
Set_Coroutine(() => { Save_Skill_MenuBack(preset, skills, _actfail); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Skill_MenuBack(preset, skills, _act); }, 2f);
Set_Coroutine(() => { Save_Skill_MenuBack(preset, skills, _actfail); }, 2f);
});
}
#endregion

View File

@ -89,7 +89,7 @@ public class SkillUI : BotMenuBase
if (dic_EquipSkill[false][curPreset][i] == skillid)
dic_EquipSkill[false][curPreset][i] = 0;
}
dic_EquipSkill[false][curPreset][slot - 1] = skillid;
dic_EquipSkill[false][curPreset][slot] = skillid;
}
public void OnClick_SkillType()
@ -112,7 +112,14 @@ public class SkillUI : BotMenuBase
bool save = BeforePreset != AfterPreset;
if (!save) save = !AreDictionariesEqual(dic_EquipSkill[true], dic_EquipSkill[false]);
if (save) ServerInfo.Ins.Save_Skill_MenuBack(AfterPreset, dic_EquipSkill[false], null);
if (save) ServerInfo.Ins.Save_Skill_MenuBack(AfterPreset, dic_EquipSkill[false], () =>
{ // 실패시 원래대로
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Equip.Preset = BeforePreset;
for (int i = 0; i < 3; i++)
for (int j = 0; j < dic_EquipSkill[true][i + 1].Count; j++)
sdata.Equip.Skill[i + 1][j] = dic_EquipSkill[true][i + 1][j];
});
}
bool AreDictionariesEqual(Dictionary<int, List<int>> a, Dictionary<int, List<int>> b)