From 7b595426207daeffce03d7f57ab9cc7000b18c7a Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 24 一月 2025 18:39:25 +0800 Subject: [PATCH] 8796 【越南】【英语】【BT】【砍树】在线奖励改为优先取对应创角天奖励,没有则取每日奖励; --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnlinePrize.py | 69 +++++++++++----------------------- 1 files changed, 22 insertions(+), 47 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnlinePrize.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnlinePrize.py index 16e5fce..456dce7 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnlinePrize.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnlinePrize.py @@ -19,21 +19,12 @@ import ChConfig import GameWorld import ItemControler -import IPY_GameWorld -import ItemCommon import NetPackCommon import PlayerControl import IpyGameDataPY import PlayerTJG import time - -''' -特殊说明: - 港台主干要修改为创角七日奖励,但是因为前端热更问题,前端无法使用旧表跟旧封包 A3 08 在线奖励信息 #tagMCOnlinePrize - 为了保持前后端逻辑统一,后端不再动旧表跟旧封包A308,防止修改后前端报错 - 使用新表及新封包 B1 13 在线奖励信息新 #tagMCOnlinePrizeNew -''' #//A5 06 玩家领取在线奖励 #tagCMGetOnlinePrize # @@ -48,19 +39,25 @@ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) creatRoleDay = GameWorld.GetCreateRoleDays(curPlayer) prizeIndex = clientPack.Index - GameWorld.DebugLog("领取在线奖励: creatRoleDay=%s,prizeIndex=%s" % (creatRoleDay, prizeIndex)) if prizeIndex <= 0: GameWorld.DebugLog("prizeIndex需要从1开始,我也不想,保留原逻辑吧!!!") return - dayID = creatRoleDay - ipyData = IpyGameDataPY.GetIpyGameData('OnlineAwardNew', dayID) + ipyData = IpyGameDataPY.GetIpyGameDataNotLog('OnlineAwardNew', creatRoleDay) + if ipyData: + dayID = creatRoleDay + GameWorld.DebugLog("领取创角天在线奖励: creatRoleDay=%s,prizeIndex=%s" % (creatRoleDay, prizeIndex)) + else: + dayID = 0 + ipyData = IpyGameDataPY.GetIpyGameData('OnlineAwardNew', 0) + GameWorld.DebugLog("领取每天在线奖励: creatRoleDay=%s,prizeIndex=%s" % (creatRoleDay, prizeIndex)) + if not ipyData: return #先纠正一次时间 onlineTime = GetOnlineTime(curPlayer) #已领 - awardInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote % dayID) + awardInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote) awardMark = pow(2, prizeIndex - 1) if awardInfo & awardMark: #已领取 @@ -81,32 +78,13 @@ GameWorld.DebugLog("没有配置该索引对应在线奖励!") return itemList = awardDict[str(prizeIndex)] - - # 检查背包 - needSpace = len(itemList) - packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace) - if needSpace > packSpace: - PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") + if not itemList: return - - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlinePrizeNote % dayID, awardInfo | awardMark) - - # 给物品 - for itemID, itemCount in itemList: - ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem]) - - #发包 + updAwardNote = awardInfo | awardMark + GameWorld.DebugLog("在线奖励: %s, updAwardNote=%s" % (itemList, updAwardNote)) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlinePrizeNote, updAwardNote) + ItemControler.GivePlayerItemOrMail(curPlayer, itemList, event=["OnlinePrize", False, {}]) SendOnlinePrizeInfo(curPlayer) - return - - -##查询在线奖励 -# @param None -# @return None -def QueryOnlinePrize(index, clientPack, tick): -# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) -# # 计算时长 -# CalcOnlineTime(curPlayer, tick, True) return def GetOnlineTime(curPlayer): @@ -125,11 +103,12 @@ # @return None def CalcOnlineTime(curPlayer): if PlayerTJG.GetIsTJG(curPlayer): - return + return 0 onlineTime = GetOnlineTime(curPlayer) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DayOnlineTime, onlineTime) SetStartCalcOnlineTick(curPlayer, 0) - return + GameWorld.DebugLog("更新记录在线时长: %s" % onlineTime) + return onlineTime ##发送奖励信息包 @@ -139,14 +118,10 @@ dataCount = IpyGameDataPY.IPY_Data().GetOnlineAwardNewCount() if not dataCount: return - creatRoleDay = GameWorld.GetCreateRoleDays(curPlayer) sendPack = ChPyNetSendPack.tagMCOnlinePrizeNew() sendPack.Clear() sendPack.OnlineTime = GetOnlineTime(curPlayer) * 1000 - sendPack.PrizeInfo = [curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote % creatRoleDay)] # 创角7日的与前端约定固定只发当天的 -# for i in xrange(dataCount): -# dayID = i + 1#i+1,增加了每日支持,从0开始,代表每日 -# sendPack.PrizeInfo.append(curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote % dayID)) + sendPack.PrizeInfo = [curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote)] # 固定只发当天的 sendPack.Len = len(sendPack.PrizeInfo) #通知客户端时间 NetPackCommon.SendFakePack(curPlayer, sendPack) @@ -177,7 +152,7 @@ __OnlineMailPrize(curPlayer) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DayOnlineTime, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlinePrizeNote % 0, 0) # 重置每日在线奖励 + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlinePrizeNote, 0) # 重置每日在线奖励 if PlayerTJG.GetIsTJG(curPlayer): return @@ -199,7 +174,7 @@ return mailAwardDay = 0 # 昨日非定制的,且有配置0常规的,则补发0的 - prizeInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote % mailAwardDay) + prizeInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OnlinePrizeNote) onlineTime = GetOnlineTime(curPlayer) needTimeList = ipyData.GetStageTime() awardDict = ipyData.GetReward() @@ -213,7 +188,7 @@ if not itemList: return GameWorld.DebugLog('补发昨日在线奖励: mailAwardDay=%s,onlineTime=%s' % (mailAwardDay, onlineTime)) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlinePrizeNote % mailAwardDay, prizeInfo) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OnlinePrizeNote, prizeInfo) PlayerControl.SendMailByKey('OnLineAward1', [curPlayer.GetID()], itemList) return -- Gitblit v1.8.0