Save_Worker_Equip, Save_Worker_Buy

This commit is contained in:
Ino 2025-07-18 08:49:56 +09:00
parent 8493cbcf2a
commit 6a2dcb35d5
9 changed files with 223 additions and 16 deletions

View File

@ -1,11 +1,9 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.Purchasing;
public class GetServerTables
{
@ -25,6 +23,7 @@ public class GetServerTables
Get_ServerTable("GachaConfig", new List<string> { "n_Title", "s_Banner" });
Get_ServerTable("BattleMapConfig", new List<string> { "s_Scene", "s_BGM", "n_MapName", "n_MapDesc", "s_MapIcon", "n_Portals" });
Get_ServerTable("CostumeList", new List<string> { "n_CostumeDesc", "s_Image", "s_Prefab", "exception" });
Get_ServerTable("WorkerList", new List<string> { "s_Prefab", "f_Scale", "f_UIScale", "f_MoveSpeed", "f_SeekTimeDelay" });
}
static void Get_ServerTable(string path, List<string> except)

View File

@ -1929,6 +1929,43 @@ handlers.Save_Costume_Buy = function(args)
}
return Get_Return(1);
}
handlers.Save_Worker_Equip = 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);
if (IsObtainItem(urod, args.WorkerID))
{
urod.Equip.Equip["Worker"] = args.WorkerID;
Set_JsonUserData(urod);
return Get_Return(0);
}
return Get_Return(1);
}
handlers.Save_Worker_Buy = 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);
if (IsObtainItem(urod, args.WorkerID)) return Get_Return(2);
var workerData = Get_WorkerTable().find(f=>f.n_WorkerID == args.WorkerID);
var table = Get_MissionTable();
if (Use_Item(table, urod, 1, workerData.n_Price))
{
Add_Item(table, Get_ItemTable(), urod, args.WorkerID, 1);
Set_JsonUserData(urod);
return Get_Return(0);
}
return Get_Return(1);
}
/////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args)
@ -3659,6 +3696,30 @@ function Get_ItemTable()
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70002",
"n_ItemGrade": "2",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70003",
"n_ItemGrade": "3",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70004",
"n_ItemGrade": "4",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70005",
"n_ItemGrade": "5",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "110001",
"n_ItemGrade": "1",
@ -22435,7 +22496,31 @@ function Get_CostumeTable()
}
]
}
function Get_WorkerTable()
{
return [
{
"n_WorkerID": "70001",
"n_Price": "0"
},
{
"n_WorkerID": "70002",
"n_Price": "10000"
},
{
"n_WorkerID": "70003",
"n_Price": "20000"
},
{
"n_WorkerID": "70004",
"n_Price": "30000"
},
{
"n_WorkerID": "70005",
"n_Price": "40000"
}
]
}

File diff suppressed because one or more lines are too long

View File

@ -1103,6 +1103,30 @@
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70002",
"n_ItemGrade": "2",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70003",
"n_ItemGrade": "3",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70004",
"n_ItemGrade": "4",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "70005",
"n_ItemGrade": "5",
"e_ItemType": "Worker",
"n_ItemValue": "0"
},
{
"n_ItemID": "110001",
"n_ItemGrade": "1",

View File

@ -0,0 +1,22 @@
[
{
"n_WorkerID": "70001",
"n_Price": "0"
},
{
"n_WorkerID": "70002",
"n_Price": "10000"
},
{
"n_WorkerID": "70003",
"n_Price": "20000"
},
{
"n_WorkerID": "70004",
"n_Price": "30000"
},
{
"n_WorkerID": "70005",
"n_Price": "40000"
}
]

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0552b05a94e56c0408803c312feb54c1
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -2120,6 +2120,78 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_Costume_Buy(id, _act); }, 2f);
});
}
public void Save_Worker_Equip(int id, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
WorkerID = id,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (없는 일꾼))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900034); break;
}
}
else
Set_Coroutine(() => { Save_Worker_Equip(id, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Worker_Equip(id, _act); }, 2f);
});
}
public void Save_Worker_Buy(int id, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
WorkerID = id,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (젬 부족), 2 실패 (이미 있는 일꾼))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(388); break;
case 2: ToastUI.Ins.Set(999900035); break;
}
}
else
Set_Coroutine(() => { Save_Worker_Buy(id, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Worker_Buy(id, _act); }, 2f);
});
}
#endregion
#region

View File

@ -57,16 +57,15 @@ public class PCWorkerListUI : UI3DModel
public void OnClick_Buy()
{
var sdata = ServerInfo.Ins.m_ServerData;
var selectcard = PCInfoUI.Ins.m_PCInfoUI_Center.Get_SelectCard();
var costumeid = selectcard.Get_IntData();
var costumeData = table_costumelist.Ins.Get_Data_orNull(costumeid);
var id = SelectCard.Get_IntData();
var w_data = table_worker.Ins.Get_Data_orNull(id);
if (!sdata.IsObtainItem(costumeid) && sdata.Check_ItemAmount(1, costumeData.n_Price))
//if (!sdata.IsObtainItem(id) && sdata.Check_ItemAmount(1, w_data.n_Price))
{
ServerInfo.Ins.Save_Costume_Buy(costumeid, () =>
ServerInfo.Ins.Save_Worker_Buy(id, () =>
{
sdata.Use_Item(1, costumeData.n_Price);
sdata.Add_Item(costumeid, 1);
sdata.Use_Item(1, w_data.n_Price);
sdata.Add_Item(id, 1);
PCInfoUI.Ins.Set_UI();
});
@ -76,14 +75,13 @@ public class PCWorkerListUI : UI3DModel
public void OnClick_Equip()
{
var sdata = ServerInfo.Ins.m_ServerData;
var selectcard = PCInfoUI.Ins.m_PCInfoUI_Center.Get_SelectCard();
var costumeid = selectcard.Get_IntData();
var id = SelectCard.Get_IntData();
if (sdata.IsObtainItem(costumeid) && !sdata.IsEquip(eItem.PCCostume, costumeid))
//if (sdata.IsObtainItem(id) && !sdata.IsEquip(eItem.Worker, id))
{
ServerInfo.Ins.Save_Costume_Equip(costumeid, () =>
ServerInfo.Ins.Save_Worker_Equip(id, () =>
{
sdata.Equip.Set_Equip(eItem.PCCostume, costumeid);
sdata.Equip.Set_Equip(eItem.Worker, id);
PCInfoUI.Ins.Set_UI();
});