광고 시청 후 상점 아이템 구매
This commit is contained in:
parent
d9ab672d81
commit
7535f82092
|
|
@ -89,7 +89,10 @@ messageinfo 엄청 느린 버그
|
|||
- 인앱 결제
|
||||
- 상점 UI
|
||||
- 재화에 따른 구매 분기 처리
|
||||
- 예시 테이블 데이터
|
||||
-- 현금 (바로 구매)
|
||||
-- 광고 (광고 시청 후 아이템 지급 처리)
|
||||
-- 요구하는 재화로 구매
|
||||
//- 예시 테이블 데이터
|
||||
// - 메일 보상 받을 때 상점 아이템인 지 확인
|
||||
// - 인앱 구매 플레이팹 연동 등
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -123736,9 +123736,9 @@ MonoBehaviour:
|
|||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 4327670431948493803}
|
||||
m_TargetAssemblyTypeName: ShopCard, Assembly-CSharp
|
||||
m_MethodName:
|
||||
- m_Target: {fileID: 8277929067037878694}
|
||||
m_TargetAssemblyTypeName: ShopPackagePopup, Assembly-CSharp
|
||||
m_MethodName: OnClick_Buy
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
|
|
|
|||
|
|
@ -95,9 +95,9 @@ public class ADInfo : MonoBehaviour
|
|||
Action_fail = _fail;
|
||||
GetReward = 0;
|
||||
|
||||
//#if UNITY_EDITOR
|
||||
//GetReward = 1;
|
||||
//#else
|
||||
#if UNITY_EDITOR
|
||||
GetReward = 1;
|
||||
#else
|
||||
if (ServerInfo.Ins.m_ServerData.Get_Common(eCommon.ADRemove) == 1)
|
||||
GetReward = 1;
|
||||
else
|
||||
|
|
@ -110,7 +110,7 @@ public class ADInfo : MonoBehaviour
|
|||
//else
|
||||
GetReward = 2;
|
||||
}
|
||||
//#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
private void Update()
|
||||
|
|
|
|||
|
|
@ -1251,6 +1251,55 @@ public partial class ServerData
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 상점 구매 관련
|
||||
public bool isShopItemSoldOut(ShopItemListTableData data)
|
||||
{
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
var buycount = sdata.Get_ShopBuyCount(data.n_ShopItemID);
|
||||
if (data.BuyLimit > 0) return buycount >= data.BuyLimit;
|
||||
if (data.BuyLimit_Day > 0) return buycount >= data.BuyLimit_Day;
|
||||
if (data.BuyLimit_Week > 0) return buycount >= data.BuyLimit_Week;
|
||||
if (data.BuyLimit_Month > 0) return buycount >= data.BuyLimit_Month;
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Buy_ShopItem(ShopItemListTableData data, Action afterbuy)
|
||||
{
|
||||
if (isShopItemSoldOut(data)) return;
|
||||
|
||||
switch (data.n_PriceItemID)
|
||||
{
|
||||
case -2: // 현금
|
||||
InappInfo.Ins.Buy_InappItem(data, () =>
|
||||
{
|
||||
NetWait.Ins.Set(false);
|
||||
afterbuy?.Invoke();
|
||||
});
|
||||
break;
|
||||
case -1: // 광고
|
||||
ADInfo.Ins.Show_AD(() =>
|
||||
{
|
||||
Add_ShopBuyCount(data.n_ShopItemID);
|
||||
var bag = table_randombag.Ins.Get_DataList(data.n_RandomBagID);
|
||||
var obtainlist = new List<ItemSimpleData>();
|
||||
for (int j = 0; j < bag.Count; j++)
|
||||
obtainlist.Add(new ItemSimpleData { itemid = bag[j].n_ItemId, amount = bag[j].n_DropCount });
|
||||
|
||||
ServerInfo.Ins.Write(() =>
|
||||
{
|
||||
ObtainItemUI.Ins.Set(obtainlist);
|
||||
afterbuy?.Invoke();
|
||||
});
|
||||
});
|
||||
break;
|
||||
default:
|
||||
if (Check_ItemAmount(data.n_PriceItemID, data.n_Price))
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
public int Get_ShopBuyCount(int _id)
|
||||
{
|
||||
var key = Get_Key(_id);
|
||||
|
|
|
|||
|
|
@ -32,39 +32,18 @@ public class ShopCard : CardBase
|
|||
if (images[1].enabled) images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_PriceItemID);
|
||||
|
||||
gos[0].SetActive(m_Data.n_FirstBonus > 0);
|
||||
gos[1].SetActive(isSoldOut()); // 품절 여부
|
||||
}
|
||||
|
||||
bool isSoldOut()
|
||||
{
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
var buycount = sdata.Get_ShopBuyCount(m_Data.n_ShopItemID);
|
||||
if (m_Data.BuyLimit > 0) return buycount >= m_Data.BuyLimit;
|
||||
if (m_Data.BuyLimit_Day > 0) return buycount >= m_Data.BuyLimit_Day;
|
||||
if (m_Data.BuyLimit_Week > 0) return buycount >= m_Data.BuyLimit_Week;
|
||||
if (m_Data.BuyLimit_Month > 0) return buycount >= m_Data.BuyLimit_Month;
|
||||
return false;
|
||||
gos[1].SetActive(sdata.isShopItemSoldOut(m_Data)); // 품절 여부
|
||||
}
|
||||
|
||||
public void OnClick_Buy()
|
||||
{
|
||||
if (!isSoldOut())
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
//if (!sdata.isShopItemSoldOut(m_Data))
|
||||
{
|
||||
if (m_Data.b_Package)
|
||||
NewGameUI.Ins.m_ShopUI.m_ShopPackagePopup.Set(m_Data);
|
||||
else
|
||||
{
|
||||
switch (m_Data.n_PriceItemID)
|
||||
{
|
||||
case -2: // 현금
|
||||
InappInfo.Ins.Buy_InappItem(m_Data, () =>
|
||||
{
|
||||
NetWait.Ins.Set(false);
|
||||
Set();
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
sdata.Buy_ShopItem(m_Data, Set);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,8 +15,7 @@ public class ShopPackagePopup : uScrollViewMgr
|
|||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
|
||||
texts[0].text = m_Data.Get_Name();
|
||||
texts[1].text = sdata.Get_ShopLimitText(m_Data);
|
||||
texts[2].text = sdata.Get_ShopPriceText(m_Data);
|
||||
Set();
|
||||
|
||||
images[0].sprite = m_Data.Get_Icon();
|
||||
images[1].enabled = m_Data.n_PriceItemID > 0;
|
||||
|
|
@ -25,4 +24,16 @@ public class ShopPackagePopup : uScrollViewMgr
|
|||
var items = table_randombag.Ins.Get_DataList(m_Data.n_RandomBagID);
|
||||
Set_ScrollView(items);
|
||||
}
|
||||
|
||||
public override void Set()
|
||||
{
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
texts[1].text = sdata.Get_ShopLimitText(m_Data);
|
||||
texts[2].text = sdata.Get_ShopPriceText(m_Data);
|
||||
}
|
||||
|
||||
public void OnClick_Buy()
|
||||
{
|
||||
ServerInfo.Ins.m_ServerData.Buy_ShopItem(m_Data, Set);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue