Save_Farm_HarvestImm

This commit is contained in:
Ino 2025-07-26 01:47:57 +09:00
parent aacba4f2f6
commit 656f694f0c
7 changed files with 105 additions and 20 deletions

View File

@ -2466,6 +2466,45 @@ handlers.Save_Farm_Harvest = function(args)
var slotTime = new Date(curSlot.Time);
if (slotTime - Get_CurKoreaTime() > 0) return Get_Return(2);
var items = Get_FarmHarvestitems(urod, curSlot);
var table = Get_MissionTable();
Add_MissionCount(table, urod, "HARVESTING_CROPS_ACC", 0, 1);
Add_MissionCount(table, urod, "HARVESTING_CROPS_ALL", 0, 1);
Set_JsonUserData(urod);
return Get_Return(0, { Items: items });
}
handlers.Save_Farm_HarvestImm = 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 curSlot = urod.Farm.Slot.find(f => f.Slot == args.Slot);
if (curSlot.Grade <= 0 || curSlot.EnchantID <= 0) return Get_Return(1);
var slotTime = new Date(curSlot.Time);
var calTime = slotTime - Get_CurKoreaTime();
if (calTime <= 0) return Get_Return(2);
var remainTime = parseInt(Math.max(0, calTime / 1000));
var need = Math.ceil(remainTime * 10);
var table = Get_MissionTable();
if (Use_Item(table, urod, 1, need))
{
var items = Get_FarmHarvestitems(urod, curSlot);
Add_MissionCount(table, urod, "SHORTENING_CROP_HARVEST", 0, 1);
Set_JsonUserData(urod);
return Get_Return(0, { gem: need, Items: items });
}
return Get_Return(3);
}
function Get_FarmHarvestitems(urod, curSlot)
{
var items = [];
var Tdata = Get_HarvestConfigTable().find(f => f.n_Grade == curSlot.Grade);
@ -2529,12 +2568,8 @@ handlers.Save_Farm_Harvest = function(args)
curSlot.Time = Get_CurKoreaTime();
curSlot.EnchantID = 0;
Add_MissionCount(table, urod, "HARVESTING_CROPS_ACC", 0, 1);
Add_MissionCount(table, urod, "HARVESTING_CROPS_ALL", 0, 1);
Set_JsonUserData(urod);
return Get_Return(0, { Items: items });
};
return items;
}
/////////////////////////////////// 서버 처리
handlers.Write_UnityInApp = function(args)

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -110734,7 +110734,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Content: {fileID: 6518501913191682081}
m_Horizontal: 0
m_Horizontal: 1
m_Vertical: 0
m_MovementType: 1
m_Elasticity: 0.1
@ -127334,7 +127334,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:

View File

@ -3061,6 +3061,7 @@ public class SC_FarmSlotPlantSeedResult
}
public class SC_FarmSlotHarvestResult
{
public int gem;
public List<ItemSimpleData> Items;
}
#endregion

View File

@ -2411,6 +2411,43 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_Farm_Harvest(slot, _act); }, 2f);
});
}
public void Save_Farm_HarvestImm(int slot, Action<SC_FarmSlotHarvestResult> _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
Slot = slot,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (작물 없음), 2 실패 (시간 완료로 인한 수확 가능), 3 실패 (재화 없음))
switch (error)
{
case 0: _act?.Invoke(JsonConvert.DeserializeObject<SC_FarmSlotHarvestResult>(str_result)); break;
case 1: ToastUI.Ins.Set(999900040); break;
case 2: ToastUI.Ins.Set(999900041); break;
case 3: ToastUI.Ins.Set(388); break;
}
}
else
Set_Coroutine(() => { Save_Farm_HarvestImm(slot, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Farm_HarvestImm(slot, _act); }, 2f);
});
}
#endregion
#region

View File

@ -82,30 +82,42 @@ public class FarmSlotCard : CardBase
{
var sdata = ServerInfo.Ins.m_ServerData;
var price = Get_ImmPrice();
if (sdata.Check_ItemAmount(table_GlobalValue.Ins.Get_Int("n_CashItemID"), price))
if (sdata.Check_ItemAmount(table_GlobalValue.Ins.Get_Int("n_CashItemID"), price) && m_Data.Get_RemainSec() > 0)
{
sdata.Use_Item(table_GlobalValue.Ins.Get_Int("n_CashItemID"), price);
sdata.Add_MissionCount(ePurpose.SHORTENING_CROP_HARVEST);
OnClick_Get();
ServerInfo.Ins.Save_Farm_HarvestImm(m_Data.Slot, result =>
{
sdata.Use_Item(table_GlobalValue.Ins.Get_Int("n_CashItemID"), result.gem);
sdata.Add_MissionCount(ePurpose.SHORTENING_CROP_HARVEST);
Proceed_HarvestItems(result);
});
// 클라 기반
//sdata.Use_Item(table_GlobalValue.Ins.Get_Int("n_CashItemID"), price);
//sdata.Add_MissionCount(ePurpose.SHORTENING_CROP_HARVEST);
//OnClick_Get();
}
}
void Proceed_HarvestItems(SC_FarmSlotHarvestResult result)
{
var sdata = ServerInfo.Ins.m_ServerData;
var items = result.Items;
for (int i = 0; i < items.Count; i++)
sdata.Add_Item(items[i].itemid, items[i].amount);
ObtainItemUI.Ins.Set(items);
sdata.Set_FarmSlot(m_Data.Slot, 0, ServerInfo.ServerTime, 0);
FarmSlotUI.Ins.Set();
}
public void OnClick_Get()
{
if (m_Data.Grade > 0 && m_Data.Get_RemainSec() <= 0)
ServerInfo.Ins.Save_Farm_Harvest(m_Data.Slot, result =>
{
var sdata = ServerInfo.Ins.m_ServerData;
var items = result.Items;
for (int i = 0; i < items.Count; i++)
sdata.Add_Item(items[i].itemid, items[i].amount);
sdata.Add_MissionCount(ePurpose.HARVESTING_CROPS_ACC);
sdata.Add_MissionCount(ePurpose.HARVESTING_CROPS_ALL);
ObtainItemUI.Ins.Set(items);
sdata.Set_FarmSlot(m_Data.Slot, 0, ServerInfo.ServerTime, 0);
FarmSlotUI.Ins.Set();
Proceed_HarvestItems(result);
});
}
// 클라 기반