직업 구매
This commit is contained in:
parent
087cd3c0e5
commit
c18d41efa5
|
|
@ -177,6 +177,7 @@ handlers.ServerSave_AllData = function(args)
|
|||
}
|
||||
|
||||
/////////////////////////////////// 서버 처리
|
||||
// table 변수는 기본적으로 미션 테이블
|
||||
function Get_UserReadOnlyData()
|
||||
{
|
||||
return server.GetUserReadOnlyData({ PlayFabId: currentPlayerId });
|
||||
|
|
@ -360,6 +361,8 @@ function Add_MissionCount(table, urod, purpose, conditionvalue, count, setValue)
|
|||
// 조건 값 확인
|
||||
//log.info("typeof n_MissionConditionValue: " + typeof mission.n_MissionConditionValue);
|
||||
//log.info("typeof conditionvalue: " + typeof conditionvalue);
|
||||
//log.info("n_MissionConditionValue: " + mission.n_MissionConditionValue);
|
||||
//log.info("conditionvalue: " + conditionvalue);
|
||||
if (mission.n_MissionConditionValue == 0 || conditionvalue == mission.n_MissionConditionValue) {
|
||||
var key1 = mission.n_MissionGroupId;
|
||||
var key2 = mission.n_MissionIndex;
|
||||
|
|
@ -704,6 +707,73 @@ handlers.Save_PC_AbilityInit = function(args)
|
|||
return Get_Return(2); // 젬 부족
|
||||
}
|
||||
}
|
||||
|
||||
handlers.Save_PC_BuyJob = 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 global = Get_GlobalValueTable();
|
||||
var matdata = global.find(f => f.s_ID == "n_JobMaterialID");
|
||||
if (!matdata) return Get_Return(1); // 설정 누락
|
||||
var materialId = matdata.n_Value;
|
||||
|
||||
if (urod.PC.Obtain.includes(args.JobID))
|
||||
return Get_Return(3); // 가진 직업
|
||||
|
||||
var classopentable = Get_ClassOpenTable();
|
||||
var m_Data = classopentable.find(f=>f.n_ClassID == args.JobID);
|
||||
// linkedId1 확인
|
||||
const linkedClass1 = parseInt(m_Data.n_linkedClass1);
|
||||
if (linkedClass1 > 0 && !urod.PC.Obtain.map(id => parseInt(id)).includes(linkedClass1))
|
||||
return Get_Return(4);
|
||||
|
||||
// linkedId2 확인
|
||||
const linkedClass2 = parseInt(m_Data.n_linkedClass2);
|
||||
if (linkedClass2 > 0 && !urod.PC.Obtain.map(id => parseInt(id)).includes(linkedClass2))
|
||||
return Get_Return(4);
|
||||
|
||||
// 특성 확인
|
||||
if (m_Data.n_RequireAbility > 0)
|
||||
{
|
||||
if (!urod.Ability[m_Data.n_RequireAbility] || urod.Ability[m_Data.n_RequireAbility] < 1)
|
||||
return Get_Return(5);
|
||||
}
|
||||
|
||||
// 각성 확인 1
|
||||
if (m_Data.e_RequireAwakenType1 != "None")
|
||||
{
|
||||
if (!urod.Awaken[m_Data.e_RequireAwakenType1] || urod.Awaken[m_Data.e_RequireAwakenType1].Lv < m_Data.n_RequireAwakenStep1)
|
||||
return Get_Return(6);
|
||||
}
|
||||
|
||||
// 각성 확인 2
|
||||
if (m_Data.e_RequireAwakenType2 != "None")
|
||||
{
|
||||
if (!urod.Awaken[m_Data.e_RequireAwakenType2] || urod.Awaken[m_Data.e_RequireAwakenType2].Lv < m_Data.n_RequireAwakenStep2)
|
||||
return Get_Return(6);
|
||||
}
|
||||
|
||||
var itemtable = Get_ItemTable();
|
||||
if (Use_Item(itemtable, urod, matdata.n_Value, m_Data.n_NeedGoodsCount))
|
||||
{
|
||||
var table = Get_MissionTable();
|
||||
Add_Item(table, itemtable, urod, args.JobID, 1);
|
||||
|
||||
// 미션 카운트
|
||||
Add_MissionCount(table, urod, "CLASS_OPEN_LIMIT", m_Data.n_ClassOpenMission, 1, false);
|
||||
|
||||
Set_JsonUserData(urod);
|
||||
return Get_Return(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Get_Return(2); // 재화 부족
|
||||
}
|
||||
}
|
||||
/////////////////////////////////// 서버 처리
|
||||
|
||||
handlers.Write_UnityInApp = function(args)
|
||||
|
|
@ -1347,6 +1417,11 @@ function Get_AbilityConfigTable()
|
|||
var titleData = server.GetTitleInternalData({ Keys: ["AbilityConfigData"] });
|
||||
return JSON.parse(titleData.Data.AbilityConfigData);
|
||||
}
|
||||
function Get_ClassOpenTable()
|
||||
{
|
||||
var titleData = server.GetTitleInternalData({ Keys: ["ClassOpenConditionTable"] });
|
||||
return JSON.parse(titleData.Data.ClassOpenConditionTable);
|
||||
}
|
||||
function Get_GlobalValueTable()
|
||||
{
|
||||
var titleData = server.GetTitleInternalData({ Keys: ["GlobalValue"] });
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -999,6 +999,45 @@ public class ServerInfo : MyCoroutine
|
|||
Set_Coroutine(() => { Save_PC_AbilityInit(battleType, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
|
||||
public void Save_PC_BuyJob(int jobid, Action _act)
|
||||
{
|
||||
NetWait.Ins.Set(true);
|
||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||
{
|
||||
FunctionName = "Save_PC_BuyJob",
|
||||
GeneratePlayStreamEvent = true,
|
||||
FunctionParameter = new
|
||||
{
|
||||
Token = m_LoginInfo.EntityToken.EntityToken,
|
||||
JobID = jobid,
|
||||
}
|
||||
},
|
||||
result =>
|
||||
{
|
||||
if (result.Error == null)
|
||||
{
|
||||
NetWait.Ins.Set(false);
|
||||
var error = MyErrorCheck(result.FunctionResult.ToString());
|
||||
switch (error)
|
||||
{
|
||||
case 0: _act?.Invoke(); break;
|
||||
case 1: ToastUI.Ins.Set(999900005); break;
|
||||
case 2: ToastUI.Ins.Set(388); break;
|
||||
case 3: ToastUI.Ins.Set(999900006); break;
|
||||
case 4: ToastUI.Ins.Set(999900007); break;
|
||||
case 5: ToastUI.Ins.Set(999900008); break;
|
||||
case 6: ToastUI.Ins.Set(263); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
Set_Coroutine(() => { Save_PC_BuyJob(jobid, _act); }, 2f);
|
||||
},
|
||||
fail =>
|
||||
{
|
||||
Set_Coroutine(() => { Save_PC_BuyJob(jobid, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 우편
|
||||
|
|
|
|||
|
|
@ -116,16 +116,19 @@ public class PCJobUI_OpenCondition : MonoBehaviour
|
|||
}
|
||||
else
|
||||
{ // 전직
|
||||
if (CanJobBuy(true))
|
||||
//if (CanJobBuy(true))
|
||||
{
|
||||
var moneyid = table_GlobalValue.Ins.Get_Int("n_JobMaterialID");
|
||||
if (sdata.Check_ItemAmount(moneyid, m_Data.n_NeedGoodsCount))
|
||||
//if (sdata.Check_ItemAmount(moneyid, m_Data.n_NeedGoodsCount))
|
||||
{
|
||||
sdata.Use_Item(moneyid, m_Data.n_NeedGoodsCount);
|
||||
sdata.PC.Add_PC(m_ClassId);
|
||||
Set_UI();
|
||||
MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
||||
sdata.Add_MissionCount(ePurpose.CLASS_OPEN_LIMIT, m_Data.n_ClassOpenMission);
|
||||
ServerInfo.Ins.Save_PC_BuyJob(m_Data.n_ClassID, () =>
|
||||
{
|
||||
sdata.Use_Item(moneyid, m_Data.n_NeedGoodsCount);
|
||||
sdata.PC.Add_PC(m_ClassId);
|
||||
Set_UI();
|
||||
MyValue.Get_ActorStatInfoorNull(eRole.PC);
|
||||
sdata.Add_MissionCount(ePurpose.CLASS_OPEN_LIMIT, m_Data.n_ClassOpenMission);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue