From 27787b6525ef2be4357440c64d6e045fa3cf504b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 12 四月 2021 16:17:21 +0800
Subject: [PATCH] 8873 【BT2】【主干】【后端】新增在线特惠(创角后充值1000、30元档; 主干)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 52 +++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 3 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py | 41 +++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 52 +++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 4 +
5 files changed, 151 insertions(+), 1 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 4eea8de..752a366 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -31200,6 +31200,58 @@
#------------------------------------------------------
+# AA 04 创角在线充值特惠信息 #tagMCOnlineRechargeTH
+
+class tagMCOnlineRechargeTH(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("AwardState", c_ubyte), #是否已领取奖励
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x04
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xAA
+ self.SubCmd = 0x04
+ self.AwardState = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCOnlineRechargeTH)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 04 创角在线充值特惠信息 //tagMCOnlineRechargeTH:
+ Cmd:%s,
+ SubCmd:%s,
+ AwardState:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.AwardState
+ )
+ return DumpString
+
+
+m_NAtagMCOnlineRechargeTH=tagMCOnlineRechargeTH()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlineRechargeTH.Cmd,m_NAtagMCOnlineRechargeTH.SubCmd))] = m_NAtagMCOnlineRechargeTH
+
+
+#------------------------------------------------------
# AA 28 充值返利玩家活动信息 #tagMCRechargePrizePlayerInfo
class tagMCRechargePrizeInfo(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 850282c..72bf2bf 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3517,6 +3517,7 @@
Def_PDict_TodayCTGCoinTotal = "TodayCTGCoinTotal" # 当日充值Coin数
Def_PDict_TodayCTGCount = "TodayCTGCount_%s" # 当日充值次数,参数(CTG对应的商品记录ID)
Def_PDict_CTGGoodsBuyCount = "CTGGoodsBuyCount_%s" # 对应充值商品已购买次数,参数(CTG对应的商品记录ID)
+Def_PDict_OnlineRechargeTHAward = "OnlineRechargeTHAward" # 在线特惠充值额外奖励 - 是否已领取奖励
Def_PDict_DayFreeGoldGiftState = "DayFreeGoldGiftState" # 每日免费直购礼包领取记录
Def_PDict_GoldGiftFirstRecord = "GoldGiftFirstRecord" # 首充领取记录,按位记录首充第x天是否已领取
Def_PDict_FirstGoldServerDay = "FirstGoldServerDay" # 首充时的开服天
@@ -5412,7 +5413,8 @@
Def_RewardType_ManyDayRecharge, #多日连充41
Def_RewardType_InfiniteMoney, #无限货币42
Def_RewardType_SingleRecharge, #单笔累充 43
-)= range(44)
+Def_RewardType_OnlineRechargeTH, #创角在线特惠充值额外奖励 44
+)= range(45)
#boss复活相关活动定义
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 4eea8de..752a366 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -31200,6 +31200,58 @@
#------------------------------------------------------
+# AA 04 创角在线充值特惠信息 #tagMCOnlineRechargeTH
+
+class tagMCOnlineRechargeTH(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("AwardState", c_ubyte), #是否已领取奖励
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x04
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xAA
+ self.SubCmd = 0x04
+ self.AwardState = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCOnlineRechargeTH)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 04 创角在线充值特惠信息 //tagMCOnlineRechargeTH:
+ Cmd:%s,
+ SubCmd:%s,
+ AwardState:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.AwardState
+ )
+ return DumpString
+
+
+m_NAtagMCOnlineRechargeTH=tagMCOnlineRechargeTH()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlineRechargeTH.Cmd,m_NAtagMCOnlineRechargeTH.SubCmd))] = m_NAtagMCOnlineRechargeTH
+
+
+#------------------------------------------------------
# AA 28 充值返利玩家活动信息 #tagMCRechargePrizePlayerInfo
class tagMCRechargePrizeInfo(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index a5f902e..8c2515a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -5438,6 +5438,9 @@
#历史累计充值领取
elif rewardType == ChConfig.Def_RewardType_HistoryChargeAward:
PlayerGoldGift.OnGetHistoryRechargeAward(curPlayer, dataEx)
+ #在线特惠充值额外奖励
+ elif rewardType == ChConfig.Def_RewardType_OnlineRechargeTH:
+ PlayerCoin.OnGetOnlineRechargeTH(curPlayer)
#天星塔全服挑战层领奖
elif rewardType == ChConfig.Def_RewardType_SkyTowerServerChallengeReward:
GameLogic_SkyTower.OnGetSkyTowerServerChallengeReward(curPlayer, dataEx)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
index 1776a82..3059ea1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -89,6 +89,8 @@
Sync_CoinToGoldCountInfo(curPlayer)
if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DayFreeGoldGiftState):
Sync_DayFreeGoldGiftState(curPlayer)
+ if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlineRechargeTHAward):
+ SyncOnlineRechargeTH(curPlayer)
return
def DoResetCTGCountByTime(curPlayer):
@@ -594,3 +596,42 @@
return
## ------------------------------------------
+## ---------- 创角在线充值特惠 ---------------
+
+def OnGetOnlineRechargeTH(curPlayer):
+ ## 领取创角在线充值特惠
+ awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlineRechargeTHAward)
+ if awardState:
+ #GameWorld.DebugLog("已领取该奖励!")
+ return
+
+ # 后端只验证是否有充值其中一个即可,不验证充值时间(充值同步到游戏服务器有时间差)
+ canGet = False
+ needCtgIDList = IpyGameDataPY.GetFuncEvalCfg("OnlineRechargeTH", 2)
+ for ctgID in needCtgIDList:
+ if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % ctgID):
+ canGet = True
+ break
+
+ if not canGet:
+ return
+
+ awardItemList = IpyGameDataPY.GetFuncEvalCfg("OnlineRechargeTH", 3)
+ if not ItemControler.CheckPackSpaceEnough(curPlayer, awardItemList):
+ return
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlineRechargeTHAward, 1)
+
+ for itemID, itemCount, isAuctionItem in awardItemList:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem],
+ event=["OnlineRechargeTH", False, {}])
+
+ SyncOnlineRechargeTH(curPlayer)
+ return
+
+def SyncOnlineRechargeTH(curPlayer):
+ clientPack = ChPyNetSendPack.tagMCOnlineRechargeTH()
+ clientPack.AwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlineRechargeTHAward)
+ NetPackCommon.SendFakePack(curPlayer, clientPack)
+ return
+
+## ------------------------------------------
\ No newline at end of file
--
Gitblit v1.8.0