From d7f44d8d871a90c818bdb3ffe9a60af875b7100a Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 30 九月 2025 10:12:23 +0800 Subject: [PATCH] 135 【挑战】战锤秘境-服务端(白骨盈野;副本基础;副本扫荡;广告奖励支持;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) 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 4fef199..4cb1330 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py @@ -139,6 +139,7 @@ import PlayerHero import PlayerOnline import TurnAttack +import ObjPool import datetime import time @@ -758,6 +759,7 @@ PlayerGoldRush.OnPlayerLogin(curPlayer) PlayerActFamilyGCZ.OnPlayerLogin(curPlayer) PlayerTalk.OnPlayerLogin(curPlayer) + SyncADCntInfo(curPlayer) # 上线查询一次充值订单 curPlayer.SendDBQueryRecharge() @@ -3226,6 +3228,30 @@ NetPackCommon.SendFakePack(curPlayer, awardReceiveState) return +def PlayerOnDay(curPlayer): + #玩法前瞻奖励 + gameNoticeAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GameNoticeAwardState) + if gameNoticeAwardState: + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GameNoticeAwardState, 0) + Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_GameNotice, 0) + #每日分享奖励重置 + shareGameAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ShareGameAwardState) + if shareGameAwardState: + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShareGameAwardState, 0) + Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_ShareGame, 0) + #开服每日奖励 + awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OpenSererDailyAward) + if awardState: + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OpenSererDailyAward, 0) + Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_OpenServerDailyAward, 0) + #开服每日奖励 + awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeDayAward) + if awardState: + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeDayAward, 0) + Sync_RewardGetRecordInfo(curPlayer, ChConfig.Def_RewardType_RechargeDayAward, 0) + ADCntOnDay(curPlayer) + return + #//A5 04 玩家领取奖励 #tagCMPlayerGetReward # #struct tagCMPlayerGetReward @@ -3256,6 +3282,9 @@ # 仙树免费减时 elif rewardType == ChConfig.Def_RewardType_TreeFreeTime: PlayerTree.FreeReduceTreeLVTime(curPlayer) + # 广告奖励 + elif rewardType == ChConfig.Def_RewardType_ADAward: + OnGetADAward(curPlayer, dataEx) # 每日免费直购礼包 elif rewardType == ChConfig.Def_RewardType_DayFreeGoldGift: PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer) @@ -3404,7 +3433,71 @@ elif rewardType == ChConfig.Def_RewardType_RechargeDayAward: OnGetRechargeDayAward(curPlayer, rewardType) return + +def OnGetADAward(curPlayer, adID): + ipyData = IpyGameDataPY.GetIpyGameData("ADAward", adID) + if not ipyData: + return + adCntMax = ipyData.GetADCntMax() + adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID) + if adCnt >= adCntMax: + GameWorld.DebugLog("今日该广告奖励已达上限! adID=%s,adCnt=%s > %s" % (adID, adCnt, adCntMax)) + return + adCnt += 1 + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ADCnt % adID, adCnt) + awardItemList = ipyData.GetADAwardItemList() + adMapID = ipyData.GetADMapID() + GameWorld.DebugLog("领取广告奖励! adID=%s,adCnt=%s,adMapID=%s,awardItemList=%s" % (adID, adCnt, adMapID, awardItemList)) + SyncADCntInfo(curPlayer, [adID]) + if adMapID: + FBCommon.AddFBADCnt(curPlayer, adMapID) + + if awardItemList: + ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["ADAward", False, {}]) + + return + +def ADCntOnDay(curPlayer): + syncADIDList = [] + ipyDataMgr = IpyGameDataPY.IPY_Data() + for index in xrange(ipyDataMgr.GetADAwardCount()): + ipyData = ipyDataMgr.GetADAwardByIndex(index) + adID = ipyData.GetADID() + if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID): + continue + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ADCnt % adID, 0) + syncADIDList.append(adID) + if syncADIDList: + SyncADCntInfo(curPlayer, syncADIDList) + return + +def SyncADCntInfo(curPlayer, syncADIDList=None): + if not syncADIDList: + ipyDataMgr = IpyGameDataPY.IPY_Data() + adIDList = [ipyDataMgr.GetADAwardByIndex(i).GetADID() for i in xrange(ipyDataMgr.GetADAwardCount())] + else: + adIDList = syncADIDList + + adInfoList = [] + for adID in adIDList: + adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID) + if not adCnt and syncADIDList == None: + continue + adInfo = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfo) + adInfo.ADID = adID + adInfo.ADCnt = adCnt + adInfoList.append(adInfo) + + if not adInfoList: + return + + clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfoList) + clientPack.ADInfoList = adInfoList[:255] + clientPack.Count = len(clientPack.ADInfoList) + NetPackCommon.SendFakePack(curPlayer, clientPack) + return + def OnGetRechargeDayAward(curPlayer, rewardType): ## 领取累充每日奖励,取最高档 realTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealTotal) -- Gitblit v1.8.0