일반 상점 작업 중...

This commit is contained in:
Ino 2025-09-25 13:20:13 +09:00
parent 43662cda87
commit 560d6db9fe
10 changed files with 3330 additions and 992 deletions

View File

@ -1,17 +1,17 @@
[{"s_ID": "package_one", "e_InAppInitType": "Week", "e_BuyType": "IAP", "s_Name": "Only One 패키지", "n_Price": "1000", "s_PeakEffective": "275% 효율", "s_Icon": "shop money icon 1_shop", "s_Items": " x40
x20", "n_RewardHeart": "40", "n_RewardChatCoin": "20", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_minigame", "e_InAppInitType": "One1", "e_BuyType": "IAP", "s_Name": "Free ", "n_Price": "9900", "s_PeakEffective": "", "s_Icon": "shop money icon 2_shop", "s_Items": "
[{"s_ID": "package_one", "e_InAppInitType": "Week", "e_BuyType": "IAP", "s_Name": "Only One 패키지", "n_Price": "1000", "n_Limit": "0", "s_PeakEffective": "275% 효율", "s_Icon": "shop money icon 1_shop", "s_Items": " x40
x20", "n_RewardHeart": "40", "n_RewardChatCoin": "20", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_minigame", "e_InAppInitType": "One1", "e_BuyType": "IAP", "s_Name": "Free ", "n_Price": "9900", "n_Limit": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 2_shop", "s_Items": "
+1
", "n_RewardHeart": "0", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "1", "b_AdRemove": "False", "b_InfinityMiniGame": "True", "b_LuckyGameCharge": "False"}, {"s_ID": "package_gacha", "e_InAppInitType": "One2", "e_BuyType": "IAP", "s_Name": " ", "n_Price": "25000", "s_PeakEffective": "", "s_Icon": "shop money icon 2_shop", "s_Items": "
", "n_RewardHeart": "0", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "1", "b_AdRemove": "False", "b_InfinityMiniGame": "True", "b_LuckyGameCharge": "False"}, {"s_ID": "package_gacha", "e_InAppInitType": "One2", "e_BuyType": "IAP", "s_Name": " ", "n_Price": "25000", "n_Limit": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 2_shop", "s_Items": "
+1
90% ", "n_RewardHeart": "0", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "1", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "True"}, {"s_ID": "package_sale", "e_InAppInitType": "Disable_Buy1", "e_BuyType": "IAP", "s_Name": " ", "n_Price": "25000", "s_PeakEffective": "158% ", "s_Icon": "shop money icon 3_shop", "s_Items": " x300
90% ", "n_RewardHeart": "0", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "1", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "True"}, {"s_ID": "package_sale", "e_InAppInitType": "Disable_Buy1", "e_BuyType": "IAP", "s_Name": " ", "n_Price": "25000", "n_Limit": "0", "s_PeakEffective": "158% ", "s_Icon": "shop money icon 3_shop", "s_Items": " x300
x10
x20", "n_RewardHeart": "300", "n_RewardChatCoin": "10", "n_RewardGacha": "20", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_all", "e_InAppInitType": "Disable_Buy2", "e_BuyType": "IAP", "s_Name": " ", "n_Price": "55000", "s_PeakEffective": "197% ", "s_Icon": "shop money icon 3_shop", "s_Items": " x2000
x20", "n_RewardHeart": "300", "n_RewardChatCoin": "10", "n_RewardGacha": "20", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_all", "e_InAppInitType": "Disable_Buy2", "e_BuyType": "IAP", "s_Name": " ", "n_Price": "55000", "n_Limit": "0", "s_PeakEffective": "197% ", "s_Icon": "shop money icon 3_shop", "s_Items": " x2000
x100
x100", "n_RewardHeart": "2000", "n_RewardChatCoin": "100", "n_RewardGacha": "100", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat1", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 1", "n_Price": "5500", "s_PeakEffective": "105% ", "s_Icon": "shop money icon 4_shop", "s_Items": " x55
x60", "n_RewardHeart": "55", "n_RewardChatCoin": "60", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat2", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 2", "n_Price": "9900", "s_PeakEffective": "112% ", "s_Icon": "shop money icon 4_shop", "s_Items": " x100
x120", "n_RewardHeart": "100", "n_RewardChatCoin": "120", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat3", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 3", "n_Price": "22000", "s_PeakEffective": "122% ", "s_Icon": "shop money icon 5_shop", "s_Items": " x240
x300", "n_RewardHeart": "240", "n_RewardChatCoin": "300", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat4", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 4", "n_Price": "55000", "s_PeakEffective": "144% ", "s_Icon": "shop money icon 5_shop", "s_Items": " x700
x900", "n_RewardHeart": "700", "n_RewardChatCoin": "900", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "ad.heartcoin", "e_InAppInitType": "None", "e_BuyType": "AD", "s_Name": "", "n_Price": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 8_shop", "s_Items": " x10", "n_RewardHeart": "10", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "ad.chatcoin", "e_InAppInitType": "None", "e_BuyType": "AD", "s_Name": "", "n_Price": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 9_shop", "s_Items": " x3", "n_RewardHeart": "0", "n_RewardChatCoin": "3", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "buy.chatcoin.coin", "e_InAppInitType": "None", "e_BuyType": "Coin", "s_Name": "", "n_Price": "50", "s_PeakEffective": "", "s_Icon": "shop money icon 10_shop", "s_Items": " x1", "n_RewardHeart": "0", "n_RewardChatCoin": "1", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "buy.gachacoin.heart", "e_InAppInitType": "None", "e_BuyType": "Heart", "s_Name": "", "n_Price": "10", "s_PeakEffective": "", "s_Icon": "shop money icon 11_shop", "s_Items": " x30", "n_RewardHeart": "0", "n_RewardChatCoin": "0", "n_RewardGacha": "30", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "buy.chatcoin.heart", "e_InAppInitType": "None", "e_BuyType": "Heart", "s_Name": "", "n_Price": "10", "s_PeakEffective": "", "s_Icon": "shop money icon 9_shop", "s_Items": " x3", "n_RewardHeart": "0", "n_RewardChatCoin": "3", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "heartcoin_1000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "1100", "s_PeakEffective": "", "s_Icon": "shop money icon 8_shop", "s_Items": " x20", "n_RewardHeart": "20", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "heartcoin_7000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "7700", "s_PeakEffective": "107% ", "s_Icon": "shop money icon 12_shop", "s_Items": " x150", "n_RewardHeart": "150", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "heartcoin_25000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "27500", "s_PeakEffective": "120% ", "s_Icon": "shop money icon 13_shop", "s_Items": " x600", "n_RewardHeart": "600", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "chatcoin_1000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "1100", "s_PeakEffective": "", "s_Icon": "shop money icon 10_shop", "s_Items": " x10", "n_RewardHeart": "0", "n_RewardChatCoin": "10", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "chatcoin_7000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "7700", "s_PeakEffective": "107% ", "s_Icon": "shop money icon 14_shop", "s_Items": " x75", "n_RewardHeart": "0", "n_RewardChatCoin": "75", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "chatcoin_25000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "27500", "s_PeakEffective": "120% ", "s_Icon": "shop money icon 15_shop", "s_Items": " x300", "n_RewardHeart": "0", "n_RewardChatCoin": "300", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}]
x100", "n_RewardHeart": "2000", "n_RewardChatCoin": "100", "n_RewardGacha": "100", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat1", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 1", "n_Price": "5500", "n_Limit": "0", "s_PeakEffective": "105% ", "s_Icon": "shop money icon 4_shop", "s_Items": " x55
x60", "n_RewardHeart": "55", "n_RewardChatCoin": "60", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat2", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 2", "n_Price": "9900", "n_Limit": "0", "s_PeakEffective": "112% ", "s_Icon": "shop money icon 4_shop", "s_Items": " x100
x120", "n_RewardHeart": "100", "n_RewardChatCoin": "120", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat3", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 3", "n_Price": "22000", "n_Limit": "0", "s_PeakEffective": "122% ", "s_Icon": "shop money icon 5_shop", "s_Items": " x240
x300", "n_RewardHeart": "240", "n_RewardChatCoin": "300", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "package_chat4", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": " 4", "n_Price": "55000", "n_Limit": "0", "s_PeakEffective": "144% ", "s_Icon": "shop money icon 5_shop", "s_Items": " x700
x900", "n_RewardHeart": "700", "n_RewardChatCoin": "900", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "ad.heartcoin", "e_InAppInitType": "None", "e_BuyType": "AD", "s_Name": "", "n_Price": "0", "n_Limit": "3", "s_PeakEffective": "", "s_Icon": "shop money icon 8_shop", "s_Items": " x10", "n_RewardHeart": "10", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "ad.chatcoin", "e_InAppInitType": "None", "e_BuyType": "AD", "s_Name": "", "n_Price": "0", "n_Limit": "3", "s_PeakEffective": "", "s_Icon": "shop money icon 9_shop", "s_Items": " x3", "n_RewardHeart": "0", "n_RewardChatCoin": "3", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "buy.chatcoin.coin", "e_InAppInitType": "None", "e_BuyType": "Coin", "s_Name": "", "n_Price": "50", "n_Limit": "3", "s_PeakEffective": "", "s_Icon": "shop money icon 10_shop", "s_Items": " x1", "n_RewardHeart": "0", "n_RewardChatCoin": "1", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "buy.gachacoin.heart", "e_InAppInitType": "None", "e_BuyType": "Heart", "s_Name": "", "n_Price": "10", "n_Limit": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 11_shop", "s_Items": " x30", "n_RewardHeart": "0", "n_RewardChatCoin": "0", "n_RewardGacha": "30", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "buy.chatcoin.heart", "e_InAppInitType": "None", "e_BuyType": "Heart", "s_Name": "", "n_Price": "10", "n_Limit": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 9_shop", "s_Items": " x3", "n_RewardHeart": "0", "n_RewardChatCoin": "3", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "heartcoin_1000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "1100", "n_Limit": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 8_shop", "s_Items": " x20", "n_RewardHeart": "20", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "heartcoin_7000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "7700", "n_Limit": "0", "s_PeakEffective": "107% ", "s_Icon": "shop money icon 12_shop", "s_Items": " x150", "n_RewardHeart": "150", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "heartcoin_25000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "27500", "n_Limit": "0", "s_PeakEffective": "120% ", "s_Icon": "shop money icon 13_shop", "s_Items": " x600", "n_RewardHeart": "600", "n_RewardChatCoin": "0", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "chatcoin_1000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "1100", "n_Limit": "0", "s_PeakEffective": "", "s_Icon": "shop money icon 10_shop", "s_Items": " x10", "n_RewardHeart": "0", "n_RewardChatCoin": "10", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "chatcoin_7000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "7700", "n_Limit": "0", "s_PeakEffective": "107% ", "s_Icon": "shop money icon 14_shop", "s_Items": " x75", "n_RewardHeart": "0", "n_RewardChatCoin": "75", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}, {"s_ID": "chatcoin_25000", "e_InAppInitType": "None", "e_BuyType": "IAP", "s_Name": "", "n_Price": "27500", "n_Limit": "0", "s_PeakEffective": "120% ", "s_Icon": "shop money icon 15_shop", "s_Items": " x300", "n_RewardHeart": "0", "n_RewardChatCoin": "300", "n_RewardGacha": "0", "n_BonusGameRefill": "0", "b_AdRemove": "False", "b_InfinityMiniGame": "False", "b_LuckyGameCharge": "False"}]

Binary file not shown.

View File

@ -13,10 +13,22 @@ public class shoptabledata
public eInAppInitType e_InAppInitType;
public eShopBuyType e_BuyType;
ProtectedInt32 _Price; public int n_Price { get { return _Price; } set { _Price = value; _Price.Obfuscate(); } }
ProtectedInt32 _Limit; public int n_Limit { get { return _Limit; } set { _Limit = value; _Limit.Obfuscate(); } }
ProtectedInt32 _RewardHeart; public int n_RewardHeart { get { return _RewardHeart; } set { _RewardHeart = value; _RewardHeart.Obfuscate(); } }
ProtectedInt32 _RewardChatCoin; public int n_RewardChatCoin { get { return _RewardChatCoin; } set { _RewardChatCoin = value; _RewardChatCoin.Obfuscate(); } }
ProtectedInt32 _RewardGacha; public int n_RewardGacha { get { return _RewardGacha; } set { _RewardGacha = value; _RewardGacha.Obfuscate(); } }
ProtectedInt32 _BonusGameRefill; public int n_BonusGameRefill { get { return _BonusGameRefill; } set { _BonusGameRefill = value; _BonusGameRefill.Obfuscate(); } }
ProtectedBool _AdRemove; public bool b_AdRemove { get { return _AdRemove; } set { _AdRemove = value; _AdRemove.Obfuscate(); } }
ProtectedBool _InfinityMiniGame; public bool b_InfinityMiniGame { get { return _InfinityMiniGame; } set { _InfinityMiniGame = value; _InfinityMiniGame.Obfuscate(); } }
ProtectedBool _LuckyGameCharge; public bool b_LuckyGameCharge { get { return _LuckyGameCharge; } set { _LuckyGameCharge = value; _LuckyGameCharge.Obfuscate(); } }
public string Get_Amount()
{
if (n_RewardHeart > 0) return n_RewardHeart.ToString();
if (n_RewardChatCoin > 0) return n_RewardChatCoin.ToString();
if (n_RewardGacha > 0) return n_RewardGacha.ToString();
return "";
}
}
public class table_shop : table_base

View File

@ -52,7 +52,7 @@ TextureImporter:
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteBorder: {x: 155, y: 29, z: 149, w: 31}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
@ -134,7 +134,7 @@ TextureImporter:
width: 335
height: 83
alignment: 0
pivot: {x: 0, y: 0}
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
@ -152,7 +152,7 @@ TextureImporter:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
internalID: 1537655665
vertices: []
indices:
edges: []

File diff suppressed because it is too large Load Diff

View File

@ -169,7 +169,7 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>
if (bshort)
{
if (SaveMgr.Ins.Get_ShopAD()) // 리워드형 광고가 아니면 제거
if (SaveMgr.Ins.Get_ShopNoAD()) // 리워드형 광고가 아니면 제거
{
GetReward = 1;
return;
@ -250,7 +250,7 @@ public class ADInfo : MonoBehaviourSingletonTemplate<ADInfo>
//// 배너 광고 요청 및 표시
//var adRequest = new AdRequest();
//_bannerView.LoadAd(adRequest);
if (!SaveMgr.Ins.Get_ShopAD())
if (!SaveMgr.Ins.Get_ShopNoAD())
_bannerView.Show();
}
else

View File

@ -2,6 +2,7 @@ using GUPS.AntiCheat.Protected;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using TigerForge;
using UnityEngine;
@ -201,6 +202,8 @@ public class SaveMgr : MonoBehaviourSingletonTemplate<SaveMgr>
if (m_SaveData.Attendance >= 7)
m_SaveData.Attendance = 0;
m_SaveData.list_ShopLimit.ForEach(f => f.Count = 0);
Save();
}
public void WeeklyCheck(int woy)
@ -267,6 +270,39 @@ public class SaveMgr : MonoBehaviourSingletonTemplate<SaveMgr>
return count;
}
public void Set_ShopReward(shoptabledata data)
{
Add_Money(eMoney.AlbumOpen, data.n_RewardHeart);
Add_Money(eMoney.Chat, data.n_RewardChatCoin);
Add_Money(eMoney.Gacha, data.n_RewardGacha);
Set_ShopInit(data.e_InAppInitType);
if (!m_SaveData.NoAD && data.b_AdRemove)
{
m_SaveData.NoAD = data.b_AdRemove;
ADInfo.Ins.Set_Banner(false);
SetBannerPos.Run();
}
m_SaveData.BonusGameRefill += data.n_BonusGameRefill;
if (!m_SaveData.InfinityMiniGame && data.b_InfinityMiniGame)
m_SaveData.InfinityMiniGame = data.b_InfinityMiniGame;
if (!m_SaveData.LuckyGameCharge && data.b_LuckyGameCharge)
m_SaveData.LuckyGameCharge = data.b_LuckyGameCharge;
if (data.n_Limit > 0)
{
var adData = m_SaveData.list_ShopLimit.Find(f => f.ShopID.Equals(data.s_ID));
if (adData == null)
m_SaveData.list_ShopLimit.Add(new ShopADSaveData { ShopID = data.s_ID, Count = 1 });
else
++adData.Count;
}
Save();
}
public bool CanShowGachaAD(bool showtoast = true)
{
var cal = m_SaveData.GachaADTime - InternetTime.Ins.Time;
@ -312,16 +348,13 @@ public class SaveMgr : MonoBehaviourSingletonTemplate<SaveMgr>
case eInAppInitType.One2: m_SaveData.BuyShopOne2 = true; break;
}
}
public void Set_ShopAD(bool noad)
public bool Get_ShopNoAD() { return m_SaveData.NoAD; }
public int Get_ShopLimitCount(string id)
{
if (!m_SaveData.NoAD)
{
m_SaveData.NoAD = noad;
ADInfo.Ins.Set_Banner(false);
SetBannerPos.Run();
var data = m_SaveData.list_ShopLimit.Find(f => f.ShopID.Equals(id));
return data != null ? data.Count : 0;
}
}
public bool Get_ShopAD() { return m_SaveData.NoAD; }
public class SaveData
{
@ -339,6 +372,7 @@ public class SaveMgr : MonoBehaviourSingletonTemplate<SaveMgr>
ProtectedInt32 _MoneyGacha; public int MoneyGacha { get { return _MoneyGacha; } set { _MoneyGacha = value; _MoneyGacha.Obfuscate(); } }
ProtectedInt32 _MoneyLucky; public int MoneyLucky { get { return _MoneyLucky; } set { _MoneyLucky = value; _MoneyLucky.Obfuscate(); } }
ProtectedInt32 _MiniGameHP; public int MiniGameHP { get { return _MiniGameHP; } set { _MiniGameHP = value; _MiniGameHP.Obfuscate(); } }
ProtectedInt32 _BonusGameRefill; public int BonusGameRefill { get { return _BonusGameRefill; } set { _BonusGameRefill = value; _BonusGameRefill.Obfuscate(); } }
//ProtectedInt32 _ItemBomb; public int ItemBomb { get { return _ItemBomb; } set { _ItemBomb = value; _ItemBomb.Obfuscate(); } }
//ProtectedInt32 _ItemUmbrella; public int ItemUmbrella { get { return _ItemUmbrella; } set { _ItemUmbrella = value; _ItemUmbrella.Obfuscate(); } }
//ProtectedInt32 _ItemDildo; public int ItemDildo { get { return _ItemDildo; } set { _ItemDildo = value; _ItemDildo.Obfuscate(); } }
@ -348,9 +382,19 @@ public class SaveMgr : MonoBehaviourSingletonTemplate<SaveMgr>
ProtectedDateTime _ShopADTime; public DateTime ShopADTime { get { return _ShopADTime; } set { _ShopADTime = value; _ShopADTime.Obfuscate(); } }
ProtectedBool _NoAD; public bool NoAD { get { return _NoAD; } set { _NoAD = value; _NoAD.Obfuscate(); } }
ProtectedBool _InfinityMiniGame; public bool InfinityMiniGame { get { return _InfinityMiniGame; } set { _InfinityMiniGame = value; _InfinityMiniGame.Obfuscate(); } }
ProtectedBool _LuckyGameCharge; public bool LuckyGameCharge { get { return _LuckyGameCharge; } set { _LuckyGameCharge = value; _LuckyGameCharge.Obfuscate(); } }
ProtectedBool _BuyShopWeekly; public bool BuyShopWeekly { get { return _BuyShopWeekly; } set { _BuyShopWeekly = value; _BuyShopWeekly.Obfuscate(); } }
ProtectedBool _BuyShopMiniGame; public bool BuyShopMiniGame { get { return _BuyShopMiniGame; } set { _BuyShopMiniGame = value; _BuyShopMiniGame.Obfuscate(); } }
ProtectedBool _BuyShopOne1; public bool BuyShopOne1 { get { return _BuyShopOne1; } set { _BuyShopOne1 = value; _BuyShopOne1.Obfuscate(); } }
ProtectedBool _BuyShopOne2; public bool BuyShopOne2 { get { return _BuyShopOne2; } set { _BuyShopOne2 = value; _BuyShopOne2.Obfuscate(); } }
public List<ShopADSaveData> list_ShopLimit = new List<ShopADSaveData>();
}
public class ShopADSaveData
{
public string ShopID;
ProtectedInt32 _Count; public int Count { get { return _Count; } set { _Count = value; _Count.Obfuscate(); } }
}
}

View File

@ -2,53 +2,107 @@ using TMPro;
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
[CustomEditor(typeof(ShopCard))]
public class ShopCardEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
ShopCard shopCard = (ShopCard)target;
if (GUILayout.Button("Auto Link Components"))
{
shopCard.AutoLink();
EditorUtility.SetDirty(shopCard); // 변경 사항 저장
}
}
}
#endif
public class ShopCard : MonoBehaviour
{
public string m_ID;
public Image i_shopitem;
public TextMeshProUGUI t_name, t_peakefficiency;
public TextMeshProUGUI t_goods;
public TextMeshProUGUI t_price;
public GameObject go_BuyComplete;
public TextMeshProUGUI t_amount, t_goods;
public TextMeshProUGUI t_price, t_limit, t_pricelimit;
public GameObject go_btnbuy, go_btnbuylimit, go_initDesc, go_BuyComplete;
shoptabledata m_Data;
#if UNITY_EDITOR
private void Reset()
// 자동 연결 함수 (버튼에서 호출)
public void AutoLink()
{
i_shopitem = DSUtil.Get_Child_T<Image>(gameObject, "i_shopitem");
t_name = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_name");
t_peakefficiency = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_peakefficiency");
t_amount = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_amount");
t_goods = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_goods");
t_price = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_price");
t_limit = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_limit");
t_pricelimit = DSUtil.Get_Child_T<TextMeshProUGUI>(gameObject, "t_pricelimit");
go_BuyComplete = DSUtil.Get_Child_GameObject(gameObject, "BuyComplete");
go_initDesc = DSUtil.Get_Child_GameObject(gameObject, "go_initDesc");
go_btnbuy = DSUtil.Get_Child_GameObject(gameObject, "btn_buy");
go_btnbuylimit = DSUtil.Get_Child_GameObject(gameObject, "btn_buylimit");
}
#endif
private void Awake()
{
var btn = DSUtil.Get_Child_T<Button>(gameObject, "btn_buy");
var btn = go_btnbuy.GetComponent<Button>();
btn.onClick.RemoveAllListeners();
btn.onClick.AddListener(OnClick_Button);
if (go_btnbuylimit != null)
{
var btnlimit = go_btnbuylimit.GetComponent<Button>();
btnlimit.onClick.RemoveAllListeners();
btnlimit.onClick.AddListener(OnClick_Button);
}
}
private void OnEnable()
{
m_Data = table_shop.Ins.Get_Data(m_ID);
i_shopitem.sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.s_Icon);
i_shopitem.SetNativeSize();
if (t_peakefficiency != null) t_peakefficiency.text = m_Data.s_PeakEffective;
t_name.text = m_Data.s_Name;
if (t_amount != null) t_amount.text = m_Data.Get_Amount();
if (t_name != null) t_name.text = m_Data.s_Name;
t_goods.text = m_Data.s_Items;
if (go_initDesc != null) go_initDesc.SetActive(m_Data.n_Limit > 0);
if (m_Data.n_Limit > 0)
{
go_btnbuy.SetActive(true);
if (go_btnbuylimit != null)
{
go_btnbuylimit.SetActive(true);
if (go_btnbuy != null)
go_btnbuy.SetActive(false);
t_pricelimit.text = m_Data.e_BuyType == eShopBuyType.IAP ? $"{m_Data.n_Price}원" : m_Data.n_Price.ToString();
}
}
else
{
if (t_price != null)
{
t_price.text = m_Data.e_BuyType == eShopBuyType.IAP ? $"{m_Data.n_Price}원" : m_Data.n_Price.ToString();
t_price.transform.localPosition = !string.IsNullOrEmpty(m_Data.s_PeakEffective) ? Vector3.up * 10f : Vector3.zero;
}
}
Set_UI();
}
void Set_UI()
{
if (go_BuyComplete != null)
{
go_BuyComplete.SetActive(!SaveMgr.Ins.CanBuyShopPackage(m_Data));
}
if (go_BuyComplete != null) go_BuyComplete.SetActive(!SaveMgr.Ins.CanBuyShopPackage(m_Data));
if (t_limit != null) t_limit.text = $"{SaveMgr.Ins.Get_ShopLimitCount(m_Data.s_ID)}/{m_Data.n_Limit}";
}
public void OnClick_Button()
@ -58,39 +112,41 @@ public class ShopCard : MonoBehaviour
case eShopBuyType.IAP:
InappInfo.Ins.BuyProduct(m_ID, () =>
{
SaveMgr.Ins.Add_Money(eMoney.AlbumOpen, m_Data.n_RewardHeart);
SaveMgr.Ins.Add_Money(eMoney.Chat, m_Data.n_RewardChatCoin);
SaveMgr.Ins.Add_Money(eMoney.Gacha, m_Data.n_RewardGacha);
SaveMgr.Ins.Set_ShopInit(m_Data.e_InAppInitType);
SaveMgr.Ins.Set_ShopAD(m_Data.b_AdRemove);
SaveMgr.Ins.Save();
SaveMgr.Ins.Set_ShopReward(m_Data);
LobbyUI.Ins.m_ToastUI.Set(Get_BuyItemMsg());
var cards = gameObject.transform.parent.GetComponentsInChildren<ShopCard>();
for (int i = 0; i < cards.Length; i++)
cards[i].Set_UI();
});
break;
case eShopBuyType.AD:
if (SaveMgr.Ins.CanShowShopAD())
//if (SaveMgr.Ins.CanShowShopAD())
if (SaveMgr.Ins.Get_ShopLimitCount(m_Data.s_ID) < m_Data.n_Limit)
{
ADInfo.Ins.Show_AD(false, () =>
{
SaveMgr.Ins.Add_Money(eMoney.Chat, m_Data.n_RewardChatCoin);
SaveMgr.Ins.Add_ShopADTime(table_GlobalValue.Ins.Get_Int("ADSec_Shop"));
LobbyUI.Ins.m_ToastUI.Set($"채팅 코인 {m_Data.n_RewardChatCoin}개를 획득했습니다.");
SaveMgr.Ins.Set_ShopReward(m_Data);
LobbyUI.Ins.m_ToastUI.Set(Get_BuyItemMsg());
Set_UI();
});
}
else
LobbyUI.Ins.m_ToastUI.Set("광고 시청 횟수가 없습니다.");
break;
case eShopBuyType.Coin:
if (SaveMgr.Ins.Check_Money(eMoney.AlbumOpen, m_Data.n_Price))
if (SaveMgr.Ins.Get_ShopLimitCount(m_Data.s_ID) < m_Data.n_Limit)
{
SaveMgr.Ins.Add_Money(eMoney.AlbumOpen, -m_Data.n_Price);
SaveMgr.Ins.Add_Money(eMoney.Chat, m_Data.n_RewardChatCoin);
SaveMgr.Ins.Save();
LobbyUI.Ins.m_ToastUI.Set($"채팅 코인 {m_Data.n_RewardChatCoin}개를 획득했습니다.");
if (SaveMgr.Ins.Check_Money(eMoney.Gacha, m_Data.n_Price))
{
SaveMgr.Ins.Add_Money(eMoney.Gacha, -m_Data.n_Price);
SaveMgr.Ins.Set_ShopReward(m_Data);
LobbyUI.Ins.m_ToastUI.Set(Get_BuyItemMsg());
Set_UI();
}
}
else
LobbyUI.Ins.m_ToastUI.Set("오늘은 더 이상 구매하실 수 없습니다.");
break;
}
}
@ -117,6 +173,24 @@ public class ShopCard : MonoBehaviour
msg += $"뽑기 재화 {m_Data.n_RewardGacha}개를 획득했습니다.";
}
if (m_Data.b_AdRemove)
{
if (!string.IsNullOrEmpty(msg)) msg += "\n";
msg += $"광고 제거권을 획득했습니다.";
}
if (m_Data.b_InfinityMiniGame)
{
if (!string.IsNullOrEmpty(msg)) msg += "\n";
msg += $"수집 게임 무제한 입장을 획득했습니다.";
}
if (m_Data.b_LuckyGameCharge)
{
if (!string.IsNullOrEmpty(msg)) msg += "\n";
msg += $"뽑기 무료 충전 시간이 90% 감소되었습니다.";
}
if (string.IsNullOrEmpty(msg)) msg = "보상이 없습니다.\n보상을 설정해 주세요!";
return msg;
}

View File

@ -15,8 +15,8 @@ public class SetBannerPos : MonoBehaviour
{
var rt = GetComponent<RectTransform>();
if (BannerPosIsBottom)
rt.offsetMin = new Vector2(rt.offsetMin.x, SaveMgr.Ins.Get_ShopAD() ? 0f : 150f);
rt.offsetMin = new Vector2(rt.offsetMin.x, SaveMgr.Ins.Get_ShopNoAD() ? 0f : 150f);
else
rt.offsetMax = new Vector2(rt.offsetMax.x, SaveMgr.Ins.Get_ShopAD() ? 0f : -150f);
rt.offsetMax = new Vector2(rt.offsetMax.x, SaveMgr.Ins.Get_ShopNoAD() ? 0f : -150f);
}
}

View File

@ -1,6 +1,14 @@
게등위 버전
- 상점
광고 제거
- 광고 딜레이 체크
파이어 베이스
게등위 이후 라이브 버전
- 게등위 테스트 제거
- 뽑기 연출 개선
-- 라이트 추가
-- 뽑기 상자 여러 개가 랜덤하게 나왔으면...
- 럭키 뽑기 게임 개선
-- 컵 안에 구슬 보이기
-- 컵을 기울였다 다시 세웠다 할 수 있게
-- 리필
- 파이어 베이스