|
@@ -26,7 +26,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
public class MarketModule : ILogicModule
|
|
public class MarketModule : ILogicModule
|
|
|
{
|
|
{
|
|
|
public MarketDataMapping mMarketDataMapping;
|
|
public MarketDataMapping mMarketDataMapping;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private TLRoleFlagModule mRoleFlag;
|
|
private TLRoleFlagModule mRoleFlag;
|
|
|
|
|
|
|
|
private RequireModule mRequire;
|
|
private RequireModule mRequire;
|
|
@@ -69,7 +69,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
RegisterMessageHandler<LogicService.MsgClientGetFirstRechargeInfoRequest>(OnMsgClientGetFirstRechargeInfoRequest);
|
|
RegisterMessageHandler<LogicService.MsgClientGetFirstRechargeInfoRequest>(OnMsgClientGetFirstRechargeInfoRequest);
|
|
|
//首充礼包显示次数
|
|
//首充礼包显示次数
|
|
|
RegisterMessageHandler<LogicService.MsgClientSetFirstRechargeShowRequest>(OnMsgClientSetFirstRechargeShowRequest);
|
|
RegisterMessageHandler<LogicService.MsgClientSetFirstRechargeShowRequest>(OnMsgClientSetFirstRechargeShowRequest);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//累充礼包
|
|
//累充礼包
|
|
|
RegisterMessageHandler<LogicService.MsgClientGetAccumulateRechargeInfoRequest>(OnMsgClientGetAccumulateRechargeInfoRequest);
|
|
RegisterMessageHandler<LogicService.MsgClientGetAccumulateRechargeInfoRequest>(OnMsgClientGetAccumulateRechargeInfoRequest);
|
|
|
RegisterMessageHandler<LogicService.MsgClientGetRecommendGiftInfoRequest>(OnMsgClientGetRecommendGiftInfoRequest);
|
|
RegisterMessageHandler<LogicService.MsgClientGetRecommendGiftInfoRequest>(OnMsgClientGetRecommendGiftInfoRequest);
|
|
@@ -566,7 +566,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (drop != null)
|
|
if (drop != null)
|
|
|
{
|
|
{
|
|
|
drops.AddRange(drop);
|
|
drops.AddRange(drop);
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
//DoGiftDrop(drop, AddItemReason.Market, gift.GiftGroup);
|
|
//DoGiftDrop(drop, AddItemReason.Market, gift.GiftGroup);
|
|
|
}
|
|
}
|
|
|
if (kv.Value.seniorDropID > 0)
|
|
if (kv.Value.seniorDropID > 0)
|
|
@@ -603,7 +603,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (!mMarketDataMapping.MarketProgressRewardInfos.TryGetValue(c2s_marketPkgID, out var mappingInfo))
|
|
if (!mMarketDataMapping.MarketProgressRewardInfos.TryGetValue(c2s_marketPkgID, out var mappingInfo))
|
|
|
{
|
|
{
|
|
|
return GetErrorCode();
|
|
return GetErrorCode();
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
if (!IsBuyGift(c2s_marketPkgID))
|
|
if (!IsBuyGift(c2s_marketPkgID))
|
|
|
{
|
|
{
|
|
|
return ClientBuyMarketProgressRewardScoreResponse.ERROR_SENIOR_NOT_OPEN;
|
|
return ClientBuyMarketProgressRewardScoreResponse.ERROR_SENIOR_NOT_OPEN;
|
|
@@ -765,7 +765,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (subTabCfg != null)
|
|
if (subTabCfg != null)
|
|
|
{
|
|
{
|
|
|
CheckReddotProgressReward(subTabCfg.ID, marketPkgID);
|
|
CheckReddotProgressReward(subTabCfg.ID, marketPkgID);
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//是否领取完所有奖励
|
|
//是否领取完所有奖励
|
|
@@ -842,15 +842,15 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private int GetFundPeriod(long periodTime, long serverOpenTime, ref int index)
|
|
private int GetFundPeriod(long periodTime, long serverOpenTime, ref int index)
|
|
|
- {
|
|
|
|
|
|
|
+ {
|
|
|
index = 0;
|
|
index = 0;
|
|
|
- var nowDate = TimeUtils.Now;
|
|
|
|
|
|
|
+ var nowDate = TimeUtils.Now;
|
|
|
var now = nowDate.GetTimeStamp();
|
|
var now = nowDate.GetTimeStamp();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
var passTime = now - serverOpenTime;
|
|
var passTime = now - serverOpenTime;
|
|
|
int periodCnt = (int)(passTime / periodTime);
|
|
int periodCnt = (int)(passTime / periodTime);
|
|
|
//log.Error(passTime- periodTime);
|
|
//log.Error(passTime- periodTime);
|
|
|
- var curPeriodStartTime = serverOpenTime + periodCnt * periodTime;
|
|
|
|
|
|
|
+ var curPeriodStartTime = serverOpenTime + periodCnt * periodTime;
|
|
|
var curPeridStartDate = TimeUtils.TimeStampToDateTime(curPeriodStartTime);
|
|
var curPeridStartDate = TimeUtils.TimeStampToDateTime(curPeriodStartTime);
|
|
|
//index = nowDate.DayOfYear - curPeridStartDate.DayOfYear;
|
|
//index = nowDate.DayOfYear - curPeridStartDate.DayOfYear;
|
|
|
index = (nowDate - curPeridStartDate).Days + 1;
|
|
index = (nowDate - curPeridStartDate).Days + 1;
|
|
@@ -938,7 +938,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public List<ItemInstanceData> GetProgressRewardUnGotReward(MarketProgressRewardInfoMapping mappingInfo,
|
|
public List<ItemInstanceData> GetProgressRewardUnGotReward(MarketProgressRewardInfoMapping mappingInfo,
|
|
|
- int marketPkgID, int subType, int payTimes,int progress)
|
|
|
|
|
|
|
+ int marketPkgID, int subType, int payTimes, int progress)
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
Action<int, HashMap<int, int>> dropReward = (giftDropID, rewards) =>
|
|
Action<int, HashMap<int, int>> dropReward = (giftDropID, rewards) =>
|
|
@@ -1061,7 +1061,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (cfgRewardModule.PrivilegeID > 0)
|
|
if (cfgRewardModule.PrivilegeID > 0)
|
|
|
{
|
|
{
|
|
|
ClearFlagByType(subTabCfg.ChildFlagType, cfgRewardModule.PrivilegeID, FlagDefines.PurchaseFlag);
|
|
ClearFlagByType(subTabCfg.ChildFlagType, cfgRewardModule.PrivilegeID, FlagDefines.PurchaseFlag);
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void ClearBuyGift(int marketPkgID)
|
|
public void ClearBuyGift(int marketPkgID)
|
|
@@ -1139,7 +1139,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (price > 0)
|
|
if (price > 0)
|
|
|
{
|
|
{
|
|
|
float rate = GetRateByCurrencyCode(mMarketDataMapping.CurrencyCode);
|
|
float rate = GetRateByCurrencyCode(mMarketDataMapping.CurrencyCode);
|
|
|
- money = price* rate;
|
|
|
|
|
|
|
+ money = price * rate;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
foreach (var kv in rechargeCount)
|
|
foreach (var kv in rechargeCount)
|
|
@@ -1323,7 +1323,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
return GetErrorCode();
|
|
return GetErrorCode();
|
|
|
}
|
|
}
|
|
|
- info.Value.BuyCnt = GetFlagByType(subTabCfg.ChildFlagType, info.Value.ID, FlagDefines.PurchaseFlag);
|
|
|
|
|
|
|
+ info.Value.BuyCnt = GetFlagByType(subTabCfg.ChildFlagType, info.Value.ID, FlagDefines.PurchaseFlag);
|
|
|
c2s_DayList.Add(info.Value.Data);
|
|
c2s_DayList.Add(info.Value.Data);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1388,7 +1388,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
FosterPayBonusSdkDot(cfg.GiftId, s2c_id);
|
|
FosterPayBonusSdkDot(cfg.GiftId, s2c_id);
|
|
|
|
|
|
|
|
//检测 是否都已经领取
|
|
//检测 是否都已经领取
|
|
|
- if (!CheckFosterRedInfo_1())
|
|
|
|
|
|
|
+ if (!CheckFosterRedInfo_1())
|
|
|
{
|
|
{
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), false, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), false, true);
|
|
|
}
|
|
}
|
|
@@ -1401,11 +1401,11 @@ namespace OpenCards.Server.Logic.Module
|
|
|
public bool CheckFosterRedInfo()
|
|
public bool CheckFosterRedInfo()
|
|
|
{
|
|
{
|
|
|
bool red = false;
|
|
bool red = false;
|
|
|
- foreach (var info in mMarketDataMapping.ActivityAcumulate.Infos)
|
|
|
|
|
|
|
+ foreach (var info in mMarketDataMapping.ActivityAcumulate.Infos)
|
|
|
{
|
|
{
|
|
|
if (info.Value.State == 0)
|
|
if (info.Value.State == 0)
|
|
|
{
|
|
{
|
|
|
- if (mMarketDataMapping.ActivityAcumulate.Day >= info.Value.Day)
|
|
|
|
|
|
|
+ if (mMarketDataMapping.ActivityAcumulate.Day >= info.Value.Day)
|
|
|
{
|
|
{
|
|
|
red = true;
|
|
red = true;
|
|
|
return red;
|
|
return red;
|
|
@@ -1429,7 +1429,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
var BuyCnt = GetFlagByType(subTabCfg.ChildFlagType, info.Value.ID, FlagDefines.PurchaseFlag);
|
|
var BuyCnt = GetFlagByType(subTabCfg.ChildFlagType, info.Value.ID, FlagDefines.PurchaseFlag);
|
|
|
|
|
|
|
|
- if (BuyCnt > 0)
|
|
|
|
|
|
|
+ if (BuyCnt > 0)
|
|
|
{
|
|
{
|
|
|
Buy = true;
|
|
Buy = true;
|
|
|
break;
|
|
break;
|
|
@@ -1437,10 +1437,10 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- if (!Buy )
|
|
|
|
|
|
|
+ if (!Buy)
|
|
|
{
|
|
{
|
|
|
red = true;
|
|
red = true;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
return red;
|
|
return red;
|
|
|
}
|
|
}
|
|
@@ -1462,7 +1462,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
return red;
|
|
return red;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public bool CheckFosterRedInfo_Daily ()
|
|
|
|
|
|
|
+ public bool CheckFosterRedInfo_Daily()
|
|
|
{
|
|
{
|
|
|
bool red = false;
|
|
bool red = false;
|
|
|
bool Buy = false;
|
|
bool Buy = false;
|
|
@@ -1637,7 +1637,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), false, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), false, true);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ else
|
|
|
{
|
|
{
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), true, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), true, true);
|
|
|
}
|
|
}
|
|
@@ -1664,7 +1664,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
foreach (var type in Table_PayDynamicDifficultyManager._typeMap)
|
|
foreach (var type in Table_PayDynamicDifficultyManager._typeMap)
|
|
|
{
|
|
{
|
|
|
- PayDynamicDifficultyInfo info = new PayDynamicDifficultyInfo();
|
|
|
|
|
|
|
+ PayDynamicDifficultyInfo info = new PayDynamicDifficultyInfo();
|
|
|
|
|
|
|
|
if (mMarketDataMapping.PayDynamicDifficulty.ContainsKey(type.Key))
|
|
if (mMarketDataMapping.PayDynamicDifficulty.ContainsKey(type.Key))
|
|
|
{
|
|
{
|
|
@@ -1673,23 +1673,23 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var temp = info.CalculatePrice;
|
|
var temp = info.CalculatePrice;
|
|
|
- while (value > (temp + (float)denominator))
|
|
|
|
|
|
|
+ while (value > (temp + (float)denominator))
|
|
|
{
|
|
{
|
|
|
temp += denominator;
|
|
temp += denominator;
|
|
|
var cfg = Table_PayDynamicDifficultyManager.GetPayDynamicDifficultyCfg(type.Key, temp);
|
|
var cfg = Table_PayDynamicDifficultyManager.GetPayDynamicDifficultyCfg(type.Key, temp);
|
|
|
- if (cfg != null)
|
|
|
|
|
|
|
+ if (cfg != null)
|
|
|
{
|
|
{
|
|
|
- info.CalculatePrice = temp;
|
|
|
|
|
- info.Cnt += cfg.StageNumber ;
|
|
|
|
|
-
|
|
|
|
|
|
|
+ info.CalculatePrice = temp;
|
|
|
|
|
+ info.Cnt += cfg.StageNumber;
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
- mMarketDataMapping.PayDynamicDifficulty.AddOrUpdate(type.Key,info);
|
|
|
|
|
|
|
+ mMarketDataMapping.PayDynamicDifficulty.AddOrUpdate(type.Key, info);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 1:不是用支付动态难度 0:是用动态难度
|
|
// 1:不是用支付动态难度 0:是用动态难度
|
|
@@ -1698,7 +1698,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
int Ret = 0;
|
|
int Ret = 0;
|
|
|
if (mMarketDataMapping.PayDynamicDifficulty.ContainsKey(FightMod))
|
|
if (mMarketDataMapping.PayDynamicDifficulty.ContainsKey(FightMod))
|
|
|
{
|
|
{
|
|
|
- if (mMarketDataMapping.PayDynamicDifficulty[FightMod].Cnt> 0)
|
|
|
|
|
|
|
+ if (mMarketDataMapping.PayDynamicDifficulty[FightMod].Cnt > 0)
|
|
|
{
|
|
{
|
|
|
Ret = 1;
|
|
Ret = 1;
|
|
|
}
|
|
}
|
|
@@ -1767,7 +1767,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
CheckReddotMonthGift();
|
|
CheckReddotMonthGift();
|
|
|
CheckReddotTop();
|
|
CheckReddotTop();
|
|
|
CheckReddotSummonGift();
|
|
CheckReddotSummonGift();
|
|
|
- CheckReddotProgressReward((int)MarketSubId.GrowUp,0);
|
|
|
|
|
|
|
+ CheckReddotProgressReward((int)MarketSubId.GrowUp, 0);
|
|
|
//犒赏令,基金
|
|
//犒赏令,基金
|
|
|
foreach (var kv in Table_ProgressRewardModuleManager.IDMap)
|
|
foreach (var kv in Table_ProgressRewardModuleManager.IDMap)
|
|
|
{
|
|
{
|
|
@@ -2303,7 +2303,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 检查个人成长礼包红点
|
|
/// 检查个人成长礼包红点
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
- private void CheckReddotProgressReward(int subId,int marketPkgID)
|
|
|
|
|
|
|
+ private void CheckReddotProgressReward(int subId, int marketPkgID)
|
|
|
{
|
|
{
|
|
|
string key = string.Empty;
|
|
string key = string.Empty;
|
|
|
bool isReddot = false;
|
|
bool isReddot = false;
|
|
@@ -2313,13 +2313,13 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
key = string.Format(RedDotConstantConfig.MARKET_MAIN_BUTTON, (int)MarketTabType.TypeLimit, subTabCfg.ID);
|
|
key = string.Format(RedDotConstantConfig.MARKET_MAIN_BUTTON, (int)MarketTabType.TypeLimit, subTabCfg.ID);
|
|
|
foreach (var giftID in Table_MarketGiftGrowthManager.GetGiftIds())
|
|
foreach (var giftID in Table_MarketGiftGrowthManager.GetGiftIds())
|
|
|
- {
|
|
|
|
|
|
|
+ {
|
|
|
if (!IsBuyGift(giftID))
|
|
if (!IsBuyGift(giftID))
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
if (MarketProgressRewardGetAll(giftID))
|
|
if (MarketProgressRewardGetAll(giftID))
|
|
|
- {
|
|
|
|
|
|
|
+ {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
var gift = Table_MarketGiftManager.GetByID(giftID);
|
|
var gift = Table_MarketGiftManager.GetByID(giftID);
|
|
@@ -2367,15 +2367,15 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
isReddot = true;
|
|
isReddot = true;
|
|
|
break;
|
|
break;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, key, isReddot, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, key, isReddot, true);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (subId == (int)MarketSubId.RoyalReward ||
|
|
|
|
|
- subId == (int)MarketSubId.DreamReward ||
|
|
|
|
|
|
|
+ else if (subId == (int)MarketSubId.RoyalReward ||
|
|
|
|
|
+ subId == (int)MarketSubId.DreamReward ||
|
|
|
subId == (int)MarketSubId.MazeReward ||
|
|
subId == (int)MarketSubId.MazeReward ||
|
|
|
- subId == (int)MarketSubId.SuperFund ||
|
|
|
|
|
|
|
+ subId == (int)MarketSubId.SuperFund ||
|
|
|
subId == (int)MarketSubId.LuxuryFund)
|
|
subId == (int)MarketSubId.LuxuryFund)
|
|
|
{
|
|
{
|
|
|
if (subId == (int)MarketSubId.SuperFund || subId == (int)MarketSubId.LuxuryFund)
|
|
if (subId == (int)MarketSubId.SuperFund || subId == (int)MarketSubId.LuxuryFund)
|
|
@@ -2386,11 +2386,11 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
key = string.Format(RedDotConstantConfig.MARKET_MAIN_BUTTON, (int)MarketTabType.TypeReward, subId);
|
|
key = string.Format(RedDotConstantConfig.MARKET_MAIN_BUTTON, (int)MarketTabType.TypeReward, subId);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (!mMarketDataMapping.MarketProgressRewardInfos.TryGetValue(marketPkgID, out var mappingInfo))
|
|
if (!mMarketDataMapping.MarketProgressRewardInfos.TryGetValue(marketPkgID, out var mappingInfo))
|
|
|
{
|
|
{
|
|
|
return;
|
|
return;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
var cfgs = Table_ProgressRewardManager.GetProgressRewards(marketPkgID, mappingInfo.PlanID);
|
|
var cfgs = Table_ProgressRewardManager.GetProgressRewards(marketPkgID, mappingInfo.PlanID);
|
|
|
if (cfgs == null)
|
|
if (cfgs == null)
|
|
|
{
|
|
{
|
|
@@ -2529,10 +2529,10 @@ namespace OpenCards.Server.Logic.Module
|
|
|
public long GetRoyalOpenTime()
|
|
public long GetRoyalOpenTime()
|
|
|
{
|
|
{
|
|
|
var createTime = GetModule<RoleModule>().roleDataMapping.CreateTime;
|
|
var createTime = GetModule<RoleModule>().roleDataMapping.CreateTime;
|
|
|
- return createTime.AddDays(ConstantConfig.RoyalRewardPanelOpenRequire).GetTimeStamp();
|
|
|
|
|
|
|
+ return createTime.AddDays(ConstantConfig.RoyalRewardPanelOpenRequire).GetTimeStamp();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public bool IsMazeRewardOpen(int giftId=0)
|
|
|
|
|
|
|
+ public bool IsMazeRewardOpen(int giftId = 0)
|
|
|
{
|
|
{
|
|
|
int isOpen = Convert.ToInt32(mRoleFlag.GetFlag(FlagDefines.MazeRewardOpenStatus, Common.Flag.Flag.MapType.EPersist));
|
|
int isOpen = Convert.ToInt32(mRoleFlag.GetFlag(FlagDefines.MazeRewardOpenStatus, Common.Flag.Flag.MapType.EPersist));
|
|
|
if (isOpen == 1)
|
|
if (isOpen == 1)
|
|
@@ -2543,7 +2543,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (giftId > 0)
|
|
if (giftId > 0)
|
|
|
{
|
|
{
|
|
|
return CheckGiftOpenRequire(giftId);
|
|
return CheckGiftOpenRequire(giftId);
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
foreach (var kv in Table_ProgressRewardModuleManager.IDMap)
|
|
foreach (var kv in Table_ProgressRewardModuleManager.IDMap)
|
|
|
{
|
|
{
|
|
|
if (kv.Value.Type != (int)MarketProgressType.ProgressModuleType_Normal)
|
|
if (kv.Value.Type != (int)MarketProgressType.ProgressModuleType_Normal)
|
|
@@ -2589,13 +2589,13 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public bool GetSubscribePrivilege(SubscribePrivilege t, out int v)
|
|
public bool GetSubscribePrivilege(SubscribePrivilege t, out int v)
|
|
|
- {
|
|
|
|
|
|
|
+ {
|
|
|
v = 0;
|
|
v = 0;
|
|
|
long endtime = 0;
|
|
long endtime = 0;
|
|
|
if (!GetAndCheckSubscibeStatus(ref endtime))
|
|
if (!GetAndCheckSubscibeStatus(ref endtime))
|
|
|
{
|
|
{
|
|
|
return false;
|
|
return false;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
var cfg = Table_SubscribePrivilegeManager.GetPrivilegeCfg((int)t);
|
|
var cfg = Table_SubscribePrivilegeManager.GetPrivilegeCfg((int)t);
|
|
|
if (cfg == null)
|
|
if (cfg == null)
|
|
|
{
|
|
{
|
|
@@ -2610,7 +2610,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
long nowTs = TimeUtils.CurrentTimeMs;
|
|
long nowTs = TimeUtils.CurrentTimeMs;
|
|
|
foreach (var kv in mMarketDataMapping.SubscribeInfos)
|
|
foreach (var kv in mMarketDataMapping.SubscribeInfos)
|
|
|
{
|
|
{
|
|
|
- var infoMapping = kv.Value;
|
|
|
|
|
|
|
+ var infoMapping = kv.Value;
|
|
|
if (nowTs >= infoMapping.EndTime)
|
|
if (nowTs >= infoMapping.EndTime)
|
|
|
{
|
|
{
|
|
|
if (infoMapping.EndTime > 0)
|
|
if (infoMapping.EndTime > 0)
|
|
@@ -2711,8 +2711,8 @@ namespace OpenCards.Server.Logic.Module
|
|
|
/// 获取累充界面
|
|
/// 获取累充界面
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
private int OnMsgClientGetAccumulateRechargeInfoRequest(ref float s2c_recharge_value, ref HashMap<int, int> s2c_gift_awards, ref int s2c_round)
|
|
private int OnMsgClientGetAccumulateRechargeInfoRequest(ref float s2c_recharge_value, ref HashMap<int, int> s2c_gift_awards, ref int s2c_round)
|
|
|
- {
|
|
|
|
|
- if (TimeUtils.TryParse(ConstantConfig.AccumulateRechargeNewCreaterTime,out var r))
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ if (TimeUtils.TryParse(ConstantConfig.AccumulateRechargeNewCreaterTime, out var r))
|
|
|
{
|
|
{
|
|
|
var createTime = TimeUtils.GetDayStart(GetModule<RoleModule>().RoleData.CreateTime);
|
|
var createTime = TimeUtils.GetDayStart(GetModule<RoleModule>().RoleData.CreateTime);
|
|
|
if (createTime >= r)
|
|
if (createTime >= r)
|
|
@@ -2720,7 +2720,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
s2c_round = 1;
|
|
s2c_round = 1;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
s2c_recharge_value = CalCurrencyCodeValue();
|
|
s2c_recharge_value = CalCurrencyCodeValue();
|
|
|
var subTable = Table_MarketSubTabManager.GetByID((int)MarketSubId.Accumulate);
|
|
var subTable = Table_MarketSubTabManager.GetByID((int)MarketSubId.Accumulate);
|
|
|
if (subTable != null)
|
|
if (subTable != null)
|
|
@@ -2839,7 +2839,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
s2c_stock = CheckGiftPurchase(subTable.ChildFlagType, giftTable);
|
|
s2c_stock = CheckGiftPurchase(subTable.ChildFlagType, giftTable);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
return Response.CODE_OK;
|
|
return Response.CODE_OK;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -3021,7 +3021,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
//直接掉落奖励
|
|
//直接掉落奖励
|
|
|
var drop = GetGiftDrop(data.ID, data.GiftDropID);
|
|
var drop = GetGiftDrop(data.ID, data.GiftDropID);
|
|
@@ -3186,7 +3186,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
int stock = CheckGiftPurchase(package.ChildFlagType, giftConfig);
|
|
int stock = CheckGiftPurchase(package.ChildFlagType, giftConfig);
|
|
|
if (stock <= 0 && stock != -1)
|
|
if (stock <= 0 && stock != -1)
|
|
|
{
|
|
{
|
|
|
- log.Info("检查礼包限购: ChildFlagType=" + package.ChildFlagType+" stock="+stock);
|
|
|
|
|
|
|
+ log.Info("检查礼包限购: ChildFlagType=" + package.ChildFlagType + " stock=" + stock);
|
|
|
rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_RECHARGE_PURCHASE_ERROR;
|
|
rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_RECHARGE_PURCHASE_ERROR;
|
|
|
return rsp;
|
|
return rsp;
|
|
|
}
|
|
}
|
|
@@ -3200,6 +3200,51 @@ namespace OpenCards.Server.Logic.Module
|
|
|
return rsp;
|
|
return rsp;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // TODO: 临时参数、代码测试
|
|
|
|
|
+ req.c2s_useToken = 1;
|
|
|
|
|
+ giftConfig.TokenEnable = 1;
|
|
|
|
|
+
|
|
|
|
|
+ // 代币购买商品
|
|
|
|
|
+ /// 扣款优先级(服务端最终裁决)
|
|
|
|
|
+ ///1. 计算 tokenCost = CNY * 100
|
|
|
|
|
+ ///2.若 boundCount + tokenCount < tokenCost → 失败
|
|
|
|
|
+ ///3.若 boundCount >= tokenCost → 仅扣 boundCount 中 tokenCost
|
|
|
|
|
+ ///4.否则 → 扣光全部 boundCount,再扣(tokenCost - boundCount) 的代币
|
|
|
|
|
+ if (req.c2s_useToken == 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (giftConfig.TokenEnable != 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_TOKEN_NOT_SUPPORT;
|
|
|
|
|
+ return rsp;
|
|
|
|
|
+ }
|
|
|
|
|
+ int tokenCost = (int)(iap.CNY * 100);
|
|
|
|
|
+
|
|
|
|
|
+ long boundCount = GetItemCount(ItemDefines.BoundTokenItemId);
|
|
|
|
|
+ long tokenCount = GetItemCount(ItemDefines.TokenItemId);
|
|
|
|
|
+
|
|
|
|
|
+ //检查代币是否足够
|
|
|
|
|
+ if (boundCount + tokenCount < tokenCount)
|
|
|
|
|
+ {
|
|
|
|
|
+ rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_TOKEN_NOT_ENOUGH;
|
|
|
|
|
+ return rsp;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!TryDeductTokenForPurchase(tokenCost, req.c2s_giftId, out _))
|
|
|
|
|
+ {
|
|
|
|
|
+ rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_TOKEN_NOT_ENOUGH;
|
|
|
|
|
+ return rsp;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ await OnPaySuccess(req.c2s_giftId, req.c2s_pushId, TimeUtils.Now.ToString(), TimeUtils.Now.ToString(),
|
|
|
|
|
+ req.c2s_uiType,ChargeType.Token /*, triggerVip: giftConfig.VipChargeEnable == 1*/ );
|
|
|
|
|
+
|
|
|
|
|
+ await RecordChargeToken(iap.CNY);
|
|
|
|
|
+
|
|
|
|
|
+ rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_CHARGE_BY_TOKEN;
|
|
|
|
|
+ return rsp;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (ConstantConfig.UseChargeTicket && iap.TicketItemId > 0)
|
|
if (ConstantConfig.UseChargeTicket && iap.TicketItemId > 0)
|
|
|
{
|
|
{
|
|
|
Ref<bool> success = new Ref<bool>();
|
|
Ref<bool> success = new Ref<bool>();
|
|
@@ -3213,18 +3258,18 @@ namespace OpenCards.Server.Logic.Module
|
|
|
|
|
|
|
|
rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_CHARGE_BY_TICKET;
|
|
rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_CHARGE_BY_TICKET;
|
|
|
return rsp;
|
|
return rsp;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
DispatchEvent(EventDefines.EventRemoveItem, ItemDefines.Ticket1ItemId, (int)iap.CNY, RemoveItemReason.Charge, req.c2s_giftId, LogicUtils.FileLine, success);
|
|
DispatchEvent(EventDefines.EventRemoveItem, ItemDefines.Ticket1ItemId, (int)iap.CNY, RemoveItemReason.Charge, req.c2s_giftId, LogicUtils.FileLine, success);
|
|
|
if (success.value)
|
|
if (success.value)
|
|
|
{
|
|
{
|
|
|
await OnPaySuccess(req.c2s_giftId, req.c2s_pushId, TimeUtils.Now.ToString(), TimeUtils.Now.ToString(),
|
|
await OnPaySuccess(req.c2s_giftId, req.c2s_pushId, TimeUtils.Now.ToString(), TimeUtils.Now.ToString(),
|
|
|
req.c2s_uiType, ChargeType.Ticket);
|
|
req.c2s_uiType, ChargeType.Ticket);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
await RecordChargeTicket(iap.CNY);
|
|
await RecordChargeTicket(iap.CNY);
|
|
|
|
|
|
|
|
rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_CHARGE_BY_TICKET;
|
|
rsp.s2c_code = ClientGetRechargeOrderResponse.CODE_CHARGE_BY_TICKET;
|
|
|
return rsp;
|
|
return rsp;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//创建订单
|
|
//创建订单
|
|
@@ -3264,6 +3309,61 @@ namespace OpenCards.Server.Logic.Module
|
|
|
return rsp;
|
|
return rsp;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private async Task RecordChargeToken(float price)
|
|
|
|
|
+ {
|
|
|
|
|
+ MappingHash record = new MappingHash(PersistenceConstants.TYPE_CHARGE_BY_TOKEN_RECORD, service);
|
|
|
|
|
+ if (!await record.ExistsAsync(service.roleID))
|
|
|
|
|
+ {
|
|
|
|
|
+ await record.SetAsync(service.roleID, price);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ var total = await record.GetAsync<float>(service.roleID);
|
|
|
|
|
+ await record.SetAsync(service.roleID, total + price);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 代币购买扣款,优先扣除绑定代币,不足再扣除代币
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <param name="tokenCost"></param>
|
|
|
|
|
+ /// <param name="c2s_giftId"></param>
|
|
|
|
|
+ /// <param name="useToken"></param>
|
|
|
|
|
+ /// <returns></returns>
|
|
|
|
|
+ private bool TryDeductTokenForPurchase(int tokenCost, int c2s_giftId, out int useToken)
|
|
|
|
|
+ {
|
|
|
|
|
+ useToken = 0;
|
|
|
|
|
+
|
|
|
|
|
+ long boundCount = GetModule<MarketModule>().GetItemCount(ItemDefines.BoundTokenItemId);
|
|
|
|
|
+ long tokenCount = GetModule<MarketModule>().GetItemCount(ItemDefines.TokenItemId);
|
|
|
|
|
+
|
|
|
|
|
+ if (boundCount + tokenCount < tokenCost)
|
|
|
|
|
+ return false;
|
|
|
|
|
+
|
|
|
|
|
+ Ref<bool> success = new Ref<bool>();
|
|
|
|
|
+ int boundDeduct = (int)Math.Min(boundCount, tokenCost);
|
|
|
|
|
+ int tokenDeduct = tokenCost - boundDeduct;
|
|
|
|
|
+
|
|
|
|
|
+ if (boundDeduct > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ DispatchEvent(EventDefines.EventRemoveItem,ItemDefines.BoundTokenItemId, boundDeduct,
|
|
|
|
|
+ RemoveItemReason.TokenPurchase,c2s_giftId, LogicUtils.FileLine, success);
|
|
|
|
|
+ if (!success.value)
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (tokenDeduct > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ DispatchEvent(EventDefines.EventRemoveItem,ItemDefines.TokenItemId, tokenDeduct,
|
|
|
|
|
+ RemoveItemReason.TokenPurchase, c2s_giftId, LogicUtils.FileLine, success);
|
|
|
|
|
+ if (!success.value)
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ useToken = tokenDeduct;
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private async Task RecordChargeTicket(float price)
|
|
private async Task RecordChargeTicket(float price)
|
|
|
{
|
|
{
|
|
|
MappingHash record = new MappingHash(PersistenceConstants.TYPE_CHARGE_BY_TICKET_RECORD, service);
|
|
MappingHash record = new MappingHash(PersistenceConstants.TYPE_CHARGE_BY_TICKET_RECORD, service);
|
|
@@ -3278,6 +3378,18 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 获取道具数目
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <param name="itemId"></param>
|
|
|
|
|
+ /// <returns></returns>
|
|
|
|
|
+ public long GetItemCount(int itemId)
|
|
|
|
|
+ {
|
|
|
|
|
+ var ownCount = new Ref<long>();
|
|
|
|
|
+ DispatchEvent(EventDefines.EventGetItemCount, itemId, ownCount);
|
|
|
|
|
+ return ownCount.value;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 检测订单
|
|
/// 检测订单
|
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -3313,7 +3425,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
orderId = req.c2s_orderID,
|
|
orderId = req.c2s_orderID,
|
|
|
};
|
|
};
|
|
|
var payRsp = await payServer.CallAsync<ChangeOrderStateRpcResponse>(payReq);
|
|
var payRsp = await payServer.CallAsync<ChangeOrderStateRpcResponse>(payReq);
|
|
|
- for (int i = 0; i < ConstantConfig.PayRetryTimes; i++)
|
|
|
|
|
|
|
+ for (int i = 0; i < ConstantConfig.PayRetryTimes; i++)
|
|
|
{
|
|
{
|
|
|
if (payRsp.s2c_code == PayResponse.CODE_ORDER_NOT_PURCHASE)
|
|
if (payRsp.s2c_code == PayResponse.CODE_ORDER_NOT_PURCHASE)
|
|
|
{
|
|
{
|
|
@@ -3464,7 +3576,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
FosterDailyBonusSdkDot(productId, price);
|
|
FosterDailyBonusSdkDot(productId, price);
|
|
|
|
|
|
|
|
await PaySdkDot(orderId, transNo, productId, true, uiType, payType);
|
|
await PaySdkDot(orderId, transNo, productId, true, uiType, payType);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (productId == ConstantConfig.PrivilegeGiftId)
|
|
if (productId == ConstantConfig.PrivilegeGiftId)
|
|
|
{
|
|
{
|
|
|
mRoleFlag.SetFlag(FlagDefines.PrivilegeGiftMailReward, 1, Flag.MapType.E1Day);
|
|
mRoleFlag.SetFlag(FlagDefines.PrivilegeGiftMailReward, 1, Flag.MapType.E1Day);
|
|
@@ -3509,7 +3621,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
var ext1 = payRsp.ext1s[i];
|
|
var ext1 = payRsp.ext1s[i];
|
|
|
var orderId = payRsp.orderIds[i];
|
|
var orderId = payRsp.orderIds[i];
|
|
|
var transNo = payRsp.transNos[i];
|
|
var transNo = payRsp.transNos[i];
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
rsp.s2c_orderIds.Add(orderId);
|
|
rsp.s2c_orderIds.Add(orderId);
|
|
|
rsp.s2c_productIds.Add(productId.ToString());
|
|
rsp.s2c_productIds.Add(productId.ToString());
|
|
|
|
|
|
|
@@ -3828,7 +3940,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
|
|
|
|
|
//不需要检查限购
|
|
//不需要检查限购
|
|
|
//if (!mRequire.DoRequire(gift.PurchaseTimes, out _))
|
|
//if (!mRequire.DoRequire(gift.PurchaseTimes, out _))
|
|
|
- //continue;
|
|
|
|
|
|
|
+ //continue;
|
|
|
|
|
|
|
|
//限购条件去重
|
|
//限购条件去重
|
|
|
if (!filter.TryAdd(gift.No, gift.ID))
|
|
if (!filter.TryAdd(gift.No, gift.ID))
|
|
@@ -4102,7 +4214,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
foreach (var kv in marketSubTab.MarketPackageMap)
|
|
foreach (var kv in marketSubTab.MarketPackageMap)
|
|
|
{
|
|
{
|
|
|
- if(mMarketDataMapping.SubscribeInfos.TryGetValue(kv.Key, out var infoMapping))
|
|
|
|
|
|
|
+ if (mMarketDataMapping.SubscribeInfos.TryGetValue(kv.Key, out var infoMapping))
|
|
|
{
|
|
{
|
|
|
if (TimeUtils.CurrentTimeMs >= infoMapping.EndTime)
|
|
if (TimeUtils.CurrentTimeMs >= infoMapping.EndTime)
|
|
|
{
|
|
{
|
|
@@ -4208,7 +4320,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
0);
|
|
0);
|
|
|
mappingInfo.RewardRecord.AddRange(missDays);
|
|
mappingInfo.RewardRecord.AddRange(missDays);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//marketPackageData.Ext.TryAddOrUpdate("payMoney", payMoney);
|
|
//marketPackageData.Ext.TryAddOrUpdate("payMoney", payMoney);
|
|
|
//marketPackageData.Ext.TryAddOrUpdate("leftSeconds", 0);
|
|
//marketPackageData.Ext.TryAddOrUpdate("leftSeconds", 0);
|
|
|
//marketPackageData.Ext.TryAddOrUpdate("canReward", 0);
|
|
//marketPackageData.Ext.TryAddOrUpdate("canReward", 0);
|
|
@@ -4218,7 +4330,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
//月卡过期
|
|
//月卡过期
|
|
|
if (mappingInfo.OpenTime > 0)
|
|
if (mappingInfo.OpenTime > 0)
|
|
|
{
|
|
{
|
|
|
- ExpireMonthCard(giftId, mappingInfo);
|
|
|
|
|
|
|
+ ExpireMonthCard(giftId, mappingInfo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
int payMoney = GetMonthCardPayMoney(mappingInfo.PayMoney, mappingInfo.RechargeCount);
|
|
int payMoney = GetMonthCardPayMoney(mappingInfo.PayMoney, mappingInfo.RechargeCount);
|
|
@@ -4241,7 +4353,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
- if(!mMarketDataMapping.MarketMonthCardRewardInfos.TryGetValue(giftId, out var mappingInfo))
|
|
|
|
|
|
|
+ if (!mMarketDataMapping.MarketMonthCardRewardInfos.TryGetValue(giftId, out var mappingInfo))
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -4279,15 +4391,15 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (subTabCfg == null)
|
|
if (subTabCfg == null)
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
if (!mMarketDataMapping.MarketProgressRewardInfos.TryGetValue(giftID, out var mappingInfo))
|
|
if (!mMarketDataMapping.MarketProgressRewardInfos.TryGetValue(giftID, out var mappingInfo))
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- var payTimes = GetFlagByType(subTabCfg.ChildFlagType, giftID, FlagDefines.PurchaseFlag);
|
|
|
|
|
- if(TryResetMarketProgress(mappingInfo, cfg, subTabCfg.SubType,payTimes))
|
|
|
|
|
|
|
+ var payTimes = GetFlagByType(subTabCfg.ChildFlagType, giftID, FlagDefines.PurchaseFlag);
|
|
|
|
|
+ if (TryResetMarketProgress(mappingInfo, cfg, subTabCfg.SubType, payTimes))
|
|
|
{
|
|
{
|
|
|
ClearFlagByType(subTabCfg.ChildFlagType, giftID, FlagDefines.PurchaseFlag);
|
|
ClearFlagByType(subTabCfg.ChildFlagType, giftID, FlagDefines.PurchaseFlag);
|
|
|
if (cfg.PrivilegeID > 0)
|
|
if (cfg.PrivilegeID > 0)
|
|
@@ -4514,7 +4626,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
//{
|
|
//{
|
|
|
// continue;
|
|
// continue;
|
|
|
//}
|
|
//}
|
|
|
- if(!IsMazeRewardOpen(giftID))
|
|
|
|
|
|
|
+ if (!IsMazeRewardOpen(giftID))
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -4737,7 +4849,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
int stageId = Convert.ToInt32(GetModule<TLRoleFlagModule>().GetFlag(FlagDefines.StageClearFlag, Flag.MapType.EPersist));
|
|
int stageId = Convert.ToInt32(GetModule<TLRoleFlagModule>().GetFlag(FlagDefines.StageClearFlag, Flag.MapType.EPersist));
|
|
|
var stageTable = Table_ChapterManager.GetById(stageId);
|
|
var stageTable = Table_ChapterManager.GetById(stageId);
|
|
|
if (stageTable == null)
|
|
if (stageTable == null)
|
|
@@ -4772,7 +4884,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
isReplacedGiftId = tempGiftList.Count > 0;
|
|
isReplacedGiftId = tempGiftList.Count > 0;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
if (isReplacedGiftId == false)
|
|
if (isReplacedGiftId == false)
|
|
|
{
|
|
{
|
|
@@ -4812,7 +4924,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
tempGiftList.Add(id);
|
|
tempGiftList.Add(id);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
if (tempGiftList.Count == 0)
|
|
if (tempGiftList.Count == 0)
|
|
|
{
|
|
{
|
|
|
log.InfoFormat("GetPushGiftByDepotId count is 0 depotId={0}, partId={1}", depotId, partId);
|
|
log.InfoFormat("GetPushGiftByDepotId count is 0 depotId={0}, partId={1}", depotId, partId);
|
|
@@ -4835,10 +4947,10 @@ namespace OpenCards.Server.Logic.Module
|
|
|
if (tempGiftList.Count == 0)
|
|
if (tempGiftList.Count == 0)
|
|
|
{
|
|
{
|
|
|
log.InfoFormat("GetPushGiftByDepotId count is 0 depotId={0}, partId={1}", depotId, depotId);
|
|
log.InfoFormat("GetPushGiftByDepotId count is 0 depotId={0}, partId={1}", depotId, depotId);
|
|
|
- return false;
|
|
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
var depotLimitTable = Table_PushGiftDepotLimitManager.GetByDepotID(depotId);
|
|
var depotLimitTable = Table_PushGiftDepotLimitManager.GetByDepotID(depotId);
|
|
|
if (depotLimitTable != null)
|
|
if (depotLimitTable != null)
|
|
|
{
|
|
{
|
|
@@ -4875,7 +4987,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
|
|
|
|
|
showCount++;
|
|
showCount++;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 不同弹脸点的弹脸礼包共享一个弹脸礼包同时存在上限,当游戏中的弹脸礼包数量(倒计时未结束)已达该上限时,不会再弹出新的弹脸礼包
|
|
// 不同弹脸点的弹脸礼包共享一个弹脸礼包同时存在上限,当游戏中的弹脸礼包数量(倒计时未结束)已达该上限时,不会再弹出新的弹脸礼包
|
|
|
if (sameGigftCount >= ConstantConfig.TotalGiftLimit)
|
|
if (sameGigftCount >= ConstantConfig.TotalGiftLimit)
|
|
|
{
|
|
{
|
|
@@ -4891,7 +5003,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
int hasCountLimit = 0;
|
|
int hasCountLimit = 0;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
foreach (var kv in mMarketDataMapping.PushDepotCount)
|
|
foreach (var kv in mMarketDataMapping.PushDepotCount)
|
|
|
{
|
|
{
|
|
|
var table = Table_PushGiftDepotLimitManager.GetByDepotID(kv.Key);
|
|
var table = Table_PushGiftDepotLimitManager.GetByDepotID(kv.Key);
|
|
@@ -4916,8 +5028,8 @@ namespace OpenCards.Server.Logic.Module
|
|
|
log.InfoFormat("GetPushGiftByDepotId TotalGiftLimit count={0}", hasCountLimit);
|
|
log.InfoFormat("GetPushGiftByDepotId TotalGiftLimit count={0}", hasCountLimit);
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// a.单库同时存在礼包上限:当游戏中存在该礼包库的礼包(倒计时未结束),且数量已达上限时,不会再新增该礼包库的礼包
|
|
// a.单库同时存在礼包上限:当游戏中存在该礼包库的礼包(倒计时未结束),且数量已达上限时,不会再新增该礼包库的礼包
|
|
|
if (depotLimitTable.SingleDepotLimit > 0)
|
|
if (depotLimitTable.SingleDepotLimit > 0)
|
|
|
{
|
|
{
|
|
@@ -4925,12 +5037,12 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
if (kv.Key == depotId && kv.Value >= depotLimitTable.SingleDepotLimit)
|
|
if (kv.Key == depotId && kv.Value >= depotLimitTable.SingleDepotLimit)
|
|
|
{
|
|
{
|
|
|
- log.InfoFormat("zhangs3: GetPushGiftByDepotId DepotCountLimit key={0} count={1}",depotId, kv.Value);
|
|
|
|
|
|
|
+ log.InfoFormat("zhangs3: GetPushGiftByDepotId DepotCountLimit key={0} count={1}", depotId, kv.Value);
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//拥有个数
|
|
//拥有个数
|
|
@@ -4942,7 +5054,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
mMarketDataMapping.PushDepotNum.Add(depotId, 1);
|
|
mMarketDataMapping.PushDepotNum.Add(depotId, 1);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//触发次数
|
|
//触发次数
|
|
|
if (mMarketDataMapping.PushDepotCount.ContainsKey(depotId))
|
|
if (mMarketDataMapping.PushDepotCount.ContainsKey(depotId))
|
|
|
{
|
|
{
|
|
@@ -4953,7 +5065,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
mMarketDataMapping.PushDepotCount.Add(depotId, 1);
|
|
mMarketDataMapping.PushDepotCount.Add(depotId, 1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
Random rnd = new Random();
|
|
Random rnd = new Random();
|
|
|
int index = rnd.Next(0, tempGiftList.Count);
|
|
int index = rnd.Next(0, tempGiftList.Count);
|
|
@@ -4973,7 +5085,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
bool isKey = false;
|
|
bool isKey = false;
|
|
|
var tmpKeyList = new List<string>();
|
|
var tmpKeyList = new List<string>();
|
|
|
foreach (string requireKey in gift.OpenRequire.key)
|
|
foreach (string requireKey in gift.OpenRequire.key)
|
|
@@ -5301,7 +5413,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
return oldValue;
|
|
return oldValue;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
return Convert.ToInt32(mRoleFlag.GetFlagByDate(prefix + id, Common.Flag.Flag.MapType.E30Day, 0, 1));
|
|
return Convert.ToInt32(mRoleFlag.GetFlagByDate(prefix + id, Common.Flag.Flag.MapType.E30Day, 0, 1));
|
|
|
}
|
|
}
|
|
|
default:
|
|
default:
|
|
@@ -5501,7 +5613,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
// 重置弹出条件数据
|
|
// 重置弹出条件数据
|
|
|
mMarketDataMapping.PopupKeyCount.Clear();
|
|
mMarketDataMapping.PopupKeyCount.Clear();
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 重置弹出库数量数据
|
|
// 重置弹出库数量数据
|
|
|
mMarketDataMapping.PushDepotNum.Clear();
|
|
mMarketDataMapping.PushDepotNum.Clear();
|
|
|
// 重置弹出库触发数据
|
|
// 重置弹出库触发数据
|
|
@@ -5995,7 +6107,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
|
|
|
|
|
private void OnEventMainLevelChange(int stageID)
|
|
private void OnEventMainLevelChange(int stageID)
|
|
|
{
|
|
{
|
|
|
- CheckReddotProgressReward((int)MarketSubId.GrowUp,0);
|
|
|
|
|
|
|
+ CheckReddotProgressReward((int)MarketSubId.GrowUp, 0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void OnEventAfterPayDelivery(int productId)
|
|
private void OnEventAfterPayDelivery(int productId)
|
|
@@ -6012,14 +6124,14 @@ namespace OpenCards.Server.Logic.Module
|
|
|
}
|
|
}
|
|
|
if (kv.Value.PrivilegeID == productId)
|
|
if (kv.Value.PrivilegeID == productId)
|
|
|
{
|
|
{
|
|
|
- GetPrivilegeReward(kv.Value.ID, kv.Value);
|
|
|
|
|
|
|
+ GetPrivilegeReward(kv.Value.ID, kv.Value);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var gift = Table_MarketGiftManager.GetByID(productId);
|
|
var gift = Table_MarketGiftManager.GetByID(productId);
|
|
|
if (gift != null && gift.GiftGroup == (int)MarketSubId.Subscribe)
|
|
if (gift != null && gift.GiftGroup == (int)MarketSubId.Subscribe)
|
|
|
{
|
|
{
|
|
|
- mMarketDataMapping.SubscribeInfos.TryGetOrCreate(gift.ID, out var infoMapping, (t) => new SubscribeInfo());
|
|
|
|
|
|
|
+ mMarketDataMapping.SubscribeInfos.TryGetOrCreate(gift.ID, out var infoMapping, (t) => new SubscribeInfo());
|
|
|
long nowTs = TimeUtils.CurrentTimeMs;
|
|
long nowTs = TimeUtils.CurrentTimeMs;
|
|
|
infoMapping.BuyTime = nowTs;
|
|
infoMapping.BuyTime = nowTs;
|
|
|
long effectTime = (long)30 * (long)86400000;
|
|
long effectTime = (long)30 * (long)86400000;
|
|
@@ -6030,7 +6142,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
effectTime += infoMapping.EndTime - nowTs;
|
|
effectTime += infoMapping.EndTime - nowTs;
|
|
|
newOpen = false;
|
|
newOpen = false;
|
|
|
}
|
|
}
|
|
|
- infoMapping.EndTime = nowTs + effectTime;
|
|
|
|
|
|
|
+ infoMapping.EndTime = nowTs + effectTime;
|
|
|
HashMap<int, MarketTab> markets = new HashMap<int, MarketTab>();
|
|
HashMap<int, MarketTab> markets = new HashMap<int, MarketTab>();
|
|
|
MarketTab nTab = new MarketTab()
|
|
MarketTab nTab = new MarketTab()
|
|
|
{
|
|
{
|
|
@@ -6163,7 +6275,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), true, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), true, true);
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ else
|
|
|
{
|
|
{
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), false, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate), false, true);
|
|
|
}
|
|
}
|
|
@@ -6171,7 +6283,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
{
|
|
{
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate_Daily), true, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate_Daily), true, true);
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ else
|
|
|
{
|
|
{
|
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate_Daily), false, true);
|
|
DispatchEvent(EventDefines.EventChangeReddotStatusItem, string.Format(RedDotConstantConfig.CULTIVATE_GIFT_BUTTON, (int)FosterType.FosterType_Acumulate_Daily), false, true);
|
|
|
}
|
|
}
|
|
@@ -6622,16 +6734,16 @@ namespace OpenCards.Server.Logic.Module
|
|
|
private async Task HeroSummonPassportSdkDot(int giftId, float price)
|
|
private async Task HeroSummonPassportSdkDot(int giftId, float price)
|
|
|
{
|
|
{
|
|
|
bool hasGift = false;
|
|
bool hasGift = false;
|
|
|
- foreach(var table in Table_ActivityHeroShowManager.ActivityGroupIdMap)
|
|
|
|
|
|
|
+ foreach (var table in Table_ActivityHeroShowManager.ActivityGroupIdMap)
|
|
|
{
|
|
{
|
|
|
- if(giftId == table.Value.ProgressRewardID)
|
|
|
|
|
|
|
+ if (giftId == table.Value.ProgressRewardID)
|
|
|
{
|
|
{
|
|
|
hasGift = true;
|
|
hasGift = true;
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if(!hasGift)
|
|
|
|
|
|
|
+ if (!hasGift)
|
|
|
{
|
|
{
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
@@ -6686,7 +6798,7 @@ namespace OpenCards.Server.Logic.Module
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if(table.GiftGroup != ConstantConfig.FosterGiftGroupID)
|
|
|
|
|
|
|
+ if (table.GiftGroup != ConstantConfig.FosterGiftGroupID)
|
|
|
{
|
|
{
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|