Save_Essence_Mileage
This commit is contained in:
parent
558441c187
commit
3b754ac7c2
|
|
@ -1564,6 +1564,64 @@ handlers.Save_Essence_Change = function(args)
|
|||
}
|
||||
return Get_Return(1);
|
||||
}
|
||||
handlers.Save_Essence_Mileage = 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);
|
||||
|
||||
const list_rewardstep = [200, 500, 700, 1000];
|
||||
const list_rewardid = [2000001, 2000002, 2000003, 2000004, 2000005, 2000006];
|
||||
const dic_rewardrate = {
|
||||
0: [0.5, 0.35, 0.25, 0.0, 0.0, 0.0],
|
||||
1: [0.0, 0.5, 0.35, 0.25, 0.0, 0.0],
|
||||
2: [0.0, 0.0, 0.5, 0.35, 0.25, 0.0],
|
||||
3: [0.0, 0.0, 0.0, 0.5, 0.35, 0.25],
|
||||
};
|
||||
|
||||
var mileageid = Get_GlobalValue_nValue("n_EssenceMileageID");
|
||||
var mileageAmount = Get_ItemAmount(urod, mileageid);
|
||||
if (mileageAmount < list_rewardstep[0]) return Get_Return(1);
|
||||
|
||||
// step check
|
||||
var step = 0;
|
||||
if (mileageAmount >= list_rewardstep[3]) step = 3;
|
||||
else if (mileageAmount >= list_rewardstep[2]) step = 2;
|
||||
else if (mileageAmount >= list_rewardstep[1]) step = 1;
|
||||
|
||||
var table = Get_MissionTable();
|
||||
var stepCost = list_rewardstep[step];
|
||||
if (Use_Item(table, urod, mileageid, stepCost))
|
||||
{
|
||||
var itemtable = Get_ItemTable();
|
||||
var rewards = [];
|
||||
|
||||
// 확률 기반 아이템 선택
|
||||
var rates = dic_rewardrate[step];
|
||||
var totalRate = rates.reduce((a, b) => a + b, 0);
|
||||
var rand = Math.random() * totalRate;
|
||||
|
||||
var selectedIndex = 0;
|
||||
for (var i = 0; i < rates.length; i++) {
|
||||
if (rand < rates[i]) {
|
||||
selectedIndex = i;
|
||||
break;
|
||||
}
|
||||
rand -= rates[i];
|
||||
}
|
||||
|
||||
var itemid = list_rewardid[selectedIndex];
|
||||
var amount = 1;
|
||||
Add_Item(table, itemtable, urod, itemid, amount);
|
||||
rewards.push({ itemid: itemid, amount: amount });
|
||||
|
||||
Set_JsonUserData(urod);
|
||||
return Get_Return(0, { mileage: stepCost, items: rewards });
|
||||
}
|
||||
return Get_Return(1);
|
||||
};
|
||||
/////////////////////////////////// 서버 처리
|
||||
|
||||
handlers.Write_UnityInApp = function(args)
|
||||
|
|
|
|||
|
|
@ -2990,7 +2990,7 @@ public class SC_PetLvUpResult
|
|||
{
|
||||
public int usemat, usepet;
|
||||
}
|
||||
public class SC_EssenceExchangeResult
|
||||
public class SC_EssenceResult
|
||||
{
|
||||
public int mileage;
|
||||
public List<SC_Items> items;
|
||||
|
|
|
|||
|
|
@ -1826,7 +1826,7 @@ public class ServerInfo : MyCoroutine
|
|||
});
|
||||
}
|
||||
|
||||
public void Save_Essence_Change(int essenceID, int amount, Action<SC_EssenceExchangeResult> _act)
|
||||
public void Save_Essence_Change(int essenceID, int amount, Action<SC_EssenceResult> _act)
|
||||
{
|
||||
NetWait.Ins.Set(true);
|
||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||
|
|
@ -1850,7 +1850,7 @@ public class ServerInfo : MyCoroutine
|
|||
// (0 성공, 1 실패 (정수 갯수 부족))
|
||||
switch (error)
|
||||
{
|
||||
case 0: _act?.Invoke(JsonConvert.DeserializeObject<SC_EssenceExchangeResult>(str_result)); break;
|
||||
case 0: _act?.Invoke(JsonConvert.DeserializeObject<SC_EssenceResult>(str_result)); break;
|
||||
case 1: ToastUI.Ins.Set(388); break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1862,6 +1862,40 @@ public class ServerInfo : MyCoroutine
|
|||
Set_Coroutine(() => { Save_Essence_Change(essenceID, amount, _act); }, 2f);
|
||||
});
|
||||
}
|
||||
public void Save_Essence_Mileage(Action<SC_EssenceResult> _act)
|
||||
{
|
||||
NetWait.Ins.Set(true);
|
||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||
{
|
||||
FunctionName = MethodBase.GetCurrentMethod().Name,
|
||||
GeneratePlayStreamEvent = true,
|
||||
FunctionParameter = new
|
||||
{
|
||||
Token = m_LoginInfo.EntityToken.EntityToken,
|
||||
}
|
||||
},
|
||||
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(JsonConvert.DeserializeObject<SC_EssenceResult>(str_result)); break;
|
||||
case 1: ToastUI.Ins.Set(388); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
Set_Coroutine(() => { Save_Essence_Mileage(_act); }, 2f);
|
||||
},
|
||||
fail =>
|
||||
{
|
||||
Set_Coroutine(() => { Save_Essence_Mileage(_act); }, 2f);
|
||||
});
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 우편
|
||||
|
|
|
|||
|
|
@ -70,13 +70,14 @@ public class CollectionEssenceUI_Left : MonoBehaviour
|
|||
{
|
||||
Popup.Ins.Set(ePopupType.One, 283, () =>
|
||||
{
|
||||
var rewardid_index = DSUtil.Get_RandomIndex(dic_rewardrate[index]);
|
||||
var essenceid = list_rewardid[rewardid_index];
|
||||
sdata.Use_Item(moneyid, list_rewardstep[index]);
|
||||
sdata.Add_Item(essenceid, 1);
|
||||
Set();
|
||||
CollectionEssenceUI_Right.Ins.Set();
|
||||
ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = essenceid, amount = 1 });
|
||||
ServerInfo.Ins.Save_Essence_Mileage(result =>
|
||||
{
|
||||
sdata.Use_Item(moneyid, result.mileage);
|
||||
sdata.Add_Item(result.items[0].itemid, result.items[0].amount);
|
||||
Set();
|
||||
CollectionEssenceUI_Right.Ins.Set();
|
||||
ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = result.items[0].itemid, amount = 1 });
|
||||
});
|
||||
}, null, list_rewardstep[index]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue