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);
|
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)
|
handlers.Write_UnityInApp = function(args)
|
||||||
|
|
|
||||||
|
|
@ -2990,7 +2990,7 @@ public class SC_PetLvUpResult
|
||||||
{
|
{
|
||||||
public int usemat, usepet;
|
public int usemat, usepet;
|
||||||
}
|
}
|
||||||
public class SC_EssenceExchangeResult
|
public class SC_EssenceResult
|
||||||
{
|
{
|
||||||
public int mileage;
|
public int mileage;
|
||||||
public List<SC_Items> items;
|
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);
|
NetWait.Ins.Set(true);
|
||||||
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
||||||
|
|
@ -1850,7 +1850,7 @@ public class ServerInfo : MyCoroutine
|
||||||
// (0 성공, 1 실패 (정수 갯수 부족))
|
// (0 성공, 1 실패 (정수 갯수 부족))
|
||||||
switch (error)
|
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;
|
case 1: ToastUI.Ins.Set(388); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1862,6 +1862,40 @@ public class ServerInfo : MyCoroutine
|
||||||
Set_Coroutine(() => { Save_Essence_Change(essenceID, amount, _act); }, 2f);
|
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
|
#endregion
|
||||||
|
|
||||||
#region 우편
|
#region 우편
|
||||||
|
|
|
||||||
|
|
@ -70,13 +70,14 @@ public class CollectionEssenceUI_Left : MonoBehaviour
|
||||||
{
|
{
|
||||||
Popup.Ins.Set(ePopupType.One, 283, () =>
|
Popup.Ins.Set(ePopupType.One, 283, () =>
|
||||||
{
|
{
|
||||||
var rewardid_index = DSUtil.Get_RandomIndex(dic_rewardrate[index]);
|
ServerInfo.Ins.Save_Essence_Mileage(result =>
|
||||||
var essenceid = list_rewardid[rewardid_index];
|
{
|
||||||
sdata.Use_Item(moneyid, list_rewardstep[index]);
|
sdata.Use_Item(moneyid, result.mileage);
|
||||||
sdata.Add_Item(essenceid, 1);
|
sdata.Add_Item(result.items[0].itemid, result.items[0].amount);
|
||||||
Set();
|
Set();
|
||||||
CollectionEssenceUI_Right.Ins.Set();
|
CollectionEssenceUI_Right.Ins.Set();
|
||||||
ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = essenceid, amount = 1 });
|
ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = result.items[0].itemid, amount = 1 });
|
||||||
|
});
|
||||||
}, null, list_rewardstep[index]);
|
}, null, list_rewardstep[index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue