From ceb2cdf78faf09d07b41b61abd1773aa9ff1f534 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 一月 2021 15:53:45 +0800
Subject: [PATCH] 8710 【开发】【主干】【BT2】根据世界等级配置奖励(每日礼包奖励支持按世界等级配置);
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 12 +++++++++---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py | 13 +++++++++----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 4 +++-
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 4 +++-
4 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 0ef4888..58e0646 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -582,6 +582,7 @@
if not isReload and preState == state:
#已经是这个状态了
continue
+ GameWorld.Log("运营活动变更: actName=%s,preState=%s,state=%s,dictName=%s" % (actName, preState, state, dictName))
#更新字典值
gameWorld.SetDict(dictName, state)
sendMapServerMsgDict = mapServerInfoDict.get(actName, {})
@@ -590,11 +591,13 @@
curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID)
dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
if curActID and PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey) != curActID:
+ GameWorld.Log(" dbActID变更,dbActID=%s,curActID=%s" % (PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey), curActID))
PlayerDBGSEvent.SetDBGSTrig_ByKey(dbOperationActIDKey, curActID)
if actName in ShareDefine.NeedWorldLVOperationActNameList:
#记录开启时世界等级
worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName, worldLV)
+ GameWorld.Log(" 记录活动开启时世界等级: worldLV=%s" % (worldLV))
#此处为活动开启时
if actName == ShareDefine.OperationActionName_BossReborn:
@@ -614,11 +617,14 @@
#限时抢购重置购买次数 本次活动每场不能重复
#dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
PlayerStore.ResetFlashSaleBuyCnt(ipyData)
-
+ else:
+ GameWorld.Log(" dbActID不变或无活动: dbActID=%s,curActID=%s" % (PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey), curActID))
+
if actName in ShareDefine.NeedWorldLVOperationActNameList:
actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName)
sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV
-
+ GameWorld.Log(" 活动开始时世界等级: actWorldLV=%s" % (actWorldLV))
+
if actName == ShareDefine.OperationActionName_ExpRate:
if isReload and ipyData:
Sync_OperationAction_ExpRate(ipyData)
@@ -654,7 +660,7 @@
sendMapServerMsgDict[ShareDefine.ActKey_State] = state
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_OperationActionInfo % actName, sendMapServerMsgDict)
- GameWorld.Log("运营活动变更: actName=%s,preState=%s,state=%s,dictName=%s, %s" % (actName, preState, state, dictName, sendMapServerMsgDict))
+ GameWorld.Log(" sendMapServerMsgDict: %s" % (sendMapServerMsgDict))
return
def Sync_OperationAction_ExpRate(ipyData, curPlayer=None):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 820ffd7..27b26b5 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -242,7 +242,9 @@
OperationActionName_NewFairyCeremony, OperationActionName_FlashSale,
OperationActionName_BossReborn, OperationActionName_TotalRecharge, OperationActionName_TotalRecharge2,
OperationActionName_CostRebate, OperationActionName_FlashGiftbag,
- OperationActionName_SpringSale, OperationActionName_LuckyTreasure]
+ OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
+ OperationActionName_DailyGiftbag,
+ ]
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
index e5c0d30..875c692 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
@@ -113,8 +113,8 @@
DataRecordPack.DR_CTGError(curPlayer, "DailyGiftbag giftbagType=%s giftbagID=%s can not found!"
% (giftbagType, giftbagID), addDRDict)
return
-
- giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob())
+ actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
+ giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob(), actWorldLV)
addDRDict.update({"giftbagType":giftbagType, "giftbagID":giftbagID, "giftItemList":giftItemList})
buyCountLimit = giftbagIpyData.GetBuyCountLimit()
buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DailyGiftbagBuyCount % giftbagID)
@@ -140,8 +140,12 @@
OnPlayerOrderDailyGiftbag(curPlayer, giftbagID, addDRDict, False)
return
-def __GetJobItemList(itemList, job):
+def __GetJobItemList(giftItemInfo, job, worldLV):
jobItemList = []
+ if isinstance(giftItemInfo, dict):
+ itemList = GameWorld.GetDictValueByRangeKey(giftItemInfo, worldLV, [])
+ else:
+ itemList = giftItemInfo
for itemID, itemCnt, isBind in itemList:
if type(itemID) == int:
jobItemList.append([itemID, itemCnt, isBind])
@@ -193,6 +197,7 @@
if not giftbagIpyDataList:
return
+ actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
# 取玩家APPID,混服使用
appID = GameWorld.GetPlayerPlatform(curPlayer)
@@ -210,7 +215,7 @@
giftBag.BuyCountLimit = giftIpyData.GetBuyCountLimit()
giftBag.RMB = 0 if not orderIpyData else CommFunc.RMBToCoin(orderIpyData.GetPayRMBNum())
giftBag.ItemInfo = []
- for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob()):
+ for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob(), actWorldLV):
item = ChPyNetSendPack.tagMCDailyGiftbagItem()
item.ItemID = itemID
item.ItemCount = itemCount
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 820ffd7..27b26b5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -242,7 +242,9 @@
OperationActionName_NewFairyCeremony, OperationActionName_FlashSale,
OperationActionName_BossReborn, OperationActionName_TotalRecharge, OperationActionName_TotalRecharge2,
OperationActionName_CostRebate, OperationActionName_FlashGiftbag,
- OperationActionName_SpringSale, OperationActionName_LuckyTreasure]
+ OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
+ OperationActionName_DailyGiftbag,
+ ]
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
--
Gitblit v1.8.0