광고 시청 후 상점 아이템 구매

This commit is contained in:
Ino 2025-04-24 17:05:58 +09:00
parent d9ab672d81
commit 7535f82092
9 changed files with 79 additions and 37 deletions

View File

@ -89,7 +89,10 @@ messageinfo 엄청 느린 버그
- 인앱 결제 - 인앱 결제
- 상점 UI - 상점 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.

View File

@ -123736,9 +123736,9 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 4327670431948493803} - m_Target: {fileID: 8277929067037878694}
m_TargetAssemblyTypeName: ShopCard, Assembly-CSharp m_TargetAssemblyTypeName: ShopPackagePopup, Assembly-CSharp
m_MethodName: m_MethodName: OnClick_Buy
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}

View File

@ -95,9 +95,9 @@ public class ADInfo : MonoBehaviour
Action_fail = _fail; Action_fail = _fail;
GetReward = 0; GetReward = 0;
//#if UNITY_EDITOR #if UNITY_EDITOR
//GetReward = 1; GetReward = 1;
//#else #else
if (ServerInfo.Ins.m_ServerData.Get_Common(eCommon.ADRemove) == 1) if (ServerInfo.Ins.m_ServerData.Get_Common(eCommon.ADRemove) == 1)
GetReward = 1; GetReward = 1;
else else
@ -110,7 +110,7 @@ public class ADInfo : MonoBehaviour
//else //else
GetReward = 2; GetReward = 2;
} }
//#endif #endif
} }
private void Update() private void Update()

View File

@ -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) public int Get_ShopBuyCount(int _id)
{ {
var key = Get_Key(_id); var key = Get_Key(_id);

View File

@ -32,39 +32,18 @@ public class ShopCard : CardBase
if (images[1].enabled) images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_PriceItemID); if (images[1].enabled) images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_PriceItemID);
gos[0].SetActive(m_Data.n_FirstBonus > 0); gos[0].SetActive(m_Data.n_FirstBonus > 0);
gos[1].SetActive(isSoldOut()); // 품절 여부 gos[1].SetActive(sdata.isShopItemSoldOut(m_Data)); // 품절 여부
}
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;
} }
public void OnClick_Buy() public void OnClick_Buy()
{ {
if (!isSoldOut()) var sdata = ServerInfo.Ins.m_ServerData;
//if (!sdata.isShopItemSoldOut(m_Data))
{ {
if (m_Data.b_Package) if (m_Data.b_Package)
NewGameUI.Ins.m_ShopUI.m_ShopPackagePopup.Set(m_Data); NewGameUI.Ins.m_ShopUI.m_ShopPackagePopup.Set(m_Data);
else else
{ sdata.Buy_ShopItem(m_Data, Set);
switch (m_Data.n_PriceItemID)
{
case -2: // 현금
InappInfo.Ins.Buy_InappItem(m_Data, () =>
{
NetWait.Ins.Set(false);
Set();
});
break;
}
}
} }
} }
} }

View File

@ -15,8 +15,7 @@ public class ShopPackagePopup : uScrollViewMgr
var sdata = ServerInfo.Ins.m_ServerData; var sdata = ServerInfo.Ins.m_ServerData;
texts[0].text = m_Data.Get_Name(); texts[0].text = m_Data.Get_Name();
texts[1].text = sdata.Get_ShopLimitText(m_Data); Set();
texts[2].text = sdata.Get_ShopPriceText(m_Data);
images[0].sprite = m_Data.Get_Icon(); images[0].sprite = m_Data.Get_Icon();
images[1].enabled = m_Data.n_PriceItemID > 0; 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); var items = table_randombag.Ins.Get_DataList(m_Data.n_RandomBagID);
Set_ScrollView(items); 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);
}
} }