diff --git a/Assets/Script/Server/ServerInfo.cs b/Assets/Script/Server/ServerInfo.cs index d0b507b96..0e7326910 100644 --- a/Assets/Script/Server/ServerInfo.cs +++ b/Assets/Script/Server/ServerInfo.cs @@ -1603,7 +1603,7 @@ public class ServerInfo : MyCoroutine }); } - public void Save_Skill_MenuBack(int preset, Dictionary> skills, Action _act) + public void Save_Skill_MenuBack(int preset, Dictionary> 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 diff --git a/Assets/Script/UI/Skill/SkillUI.cs b/Assets/Script/UI/Skill/SkillUI.cs index 3136c6f66..350505f95 100644 --- a/Assets/Script/UI/Skill/SkillUI.cs +++ b/Assets/Script/UI/Skill/SkillUI.cs @@ -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> a, Dictionary> b)