From b4b72d0c241ffc26dbbbd7a047578f1f4fead2f4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 十二月 2021 16:11:53 +0800
Subject: [PATCH] 9341 【BT5】【主干】【后端】情缘系统(Couple命令增加添加喜糖宴会;修复多个喜糖宴会同时存在时吃喜糖同步错误bug)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py | 40 ++++++++++++++++++++--------------------
1 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py
index 0571d83..ff2cbd0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFreeGoods.py
@@ -18,14 +18,13 @@
"""Version = 2018-07-10 16:50"""
#---------------------------------------------------------------------
-import IPY_GameWorld
import GameWorld
import ChConfig
+import IPY_GameWorld
import IpyGameDataPY
-import ItemCommon
+import ChPyNetSendPack
import PlayerControl
import ItemControler
-import ChPyNetSendPack
import NetPackCommon
import time
@@ -47,6 +46,9 @@
# @param curPlayer
# @return None
def OnLogin(curPlayer):
+ openTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsOpenTime)
+ if not openTime:
+ return
Sync_FreeGoodsInfo(curPlayer)
return
@@ -58,8 +60,11 @@
若玩家在最后一个可领取返还仙玉倒计时结束的当天未领取仙玉,则在隔天凌晨5:00帮其把所有未领取仙玉领取通过邮件发放
'''
openTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsOpenTime)
+ if not openTime:
+ return
curTimeNum = int(time.time())
if curTimeNum - openTime <= IpyGameDataPY.GetFuncCfg('FreeGoodsOpenTime'):
+ #GameWorld.DebugLog("极品白拿购买时间未到期,不处理!")
return
giveMoney = 0
giveGoodsIDList = []
@@ -69,18 +74,20 @@
goodsState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsBuyState % goodsID)
if goodsState in [0, 1]:
continue
- if curTimeNum - goodsState - ipyData.GetReturnTime() < 24*3600:
+ buyTime = goodsState
+ passDays = GameWorld.GetDiff_Day(curTimeNum, buyTime)
+ if passDays <= ipyData.GetReturnDays():
giveMoney = 0
giveGoodsIDList = []
+ #GameWorld.DebugLog(" 还有白拿奖励领奖时间未预期,不处理! goodsID=%s,passDays=%s" % (goodsID, passDays))
break
giveMoney += ipyData.GetNeedMoney()
giveGoodsIDList.append(goodsID)
if giveMoney:
- GameWorld.DebugLog(' 极品白拿帮领取返还 giveMoney=%s,giveGoodsIDList=%s'%(giveMoney, giveGoodsIDList), curPlayer.GetID())
+ GameWorld.DebugLog(' 极品白拿邮件返还 giveMoney=%s,giveGoodsIDList=%s' % (giveMoney, giveGoodsIDList), curPlayer.GetID())
for goodsID in giveGoodsIDList:
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsBuyState % goodsID, 1)
PlayerControl.SendMailByKey('WhiteTakeJade', [curPlayer.GetID()], [], [], giveMoney)
-
Sync_FreeGoodsInfo(curPlayer)
return
@@ -98,12 +105,15 @@
goodsState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FreeGoodsBuyState % freeGoodsID)
addDataDict = {"freeGoodsID":freeGoodsID}
if goodsState == 1:
+ GameWorld.DebugLog(' 极品白拿已领取该奖励!', curPlayer.GetID())
return
if goodsState != 0:
#领取返还
-
- if curTimeNum - goodsState < ipyData.GetReturnTime():
- GameWorld.DebugLog(' 极品白拿 未到返还时间!freeGoodsID=%s, passTime=%s' % (freeGoodsID, curTimeNum - goodsState), curPlayer.GetID())
+ buyTime = goodsState
+ passDays = GameWorld.GetDiff_Day(curTimeNum, buyTime)
+ if passDays < ipyData.GetReturnDays():
+ GameWorld.DebugLog(' 极品白拿 未到返还时间!freeGoodsID=%s, buyTime=%s, passDays=%s < %s'
+ % (freeGoodsID, GameWorld.ChangeTimeNumToStr(buyTime), passDays, ipyData.GetReturnDays()), curPlayer.GetID())
return
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FreeGoodsBuyState % freeGoodsID, 1)
returnMoney = ipyData.GetNeedMoney()
@@ -122,20 +132,10 @@
#给物品
awardItemDict = ipyData.GetAwardItem()
awardItemList = awardItemDict.get(str(curPlayer.GetJob()), [])
- # 检查背包
- needSpace = len(awardItemList)
- packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
- if needSpace > packSpace:
- PlayerControl.SendMailByKey('WhiteTakeBagFull', [curPlayer.GetID()], awardItemList, [freeGoodsID])
- else:
- # 给物品
- for itemID, itemCount, isBind in awardItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
+ ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, "WhiteTakeBagFull", event=["FreeGoods", False, addDataDict])
Sync_FreeGoodsInfo(curPlayer, [freeGoodsID])
return
-
-
def Sync_FreeGoodsInfo(curPlayer, freeGoodsIDList=[]):
#通知极品白拿信息
--
Gitblit v1.8.0