스킬 백 저장 실패 시 롤백
This commit is contained in:
parent
26ba9cb3b7
commit
7726fc0338
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue