From 6feb3406bd4edf15e443f5d58f06229d5ee8733c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 24 十二月 2018 14:13:53 +0800
Subject: [PATCH] 5571 【1.4】集市物品卖出提示邮件新增VIP玩家模板
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py | 64 ++++++++++++++++++++++++--------
1 files changed, 48 insertions(+), 16 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
index 368ac60..a608139 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
@@ -46,32 +46,59 @@
## OnDay处理
# @param curPlayer
# @return None
-def RedPacketOnDay(curPlayer):
- #发钻石红包额度重置
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0)
- __NotifyGoldLimt(curPlayer)
+def RedPacketOnDay(curPlayer, onEventType):
+ if onEventType == ShareDefine.Def_OnEventType:
+ #发钻石红包额度重置
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0)
+ __NotifyGoldLimt(curPlayer)
+ elif onEventType == ShareDefine.Def_OnEventTypeEx:
+ oscDay = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg')
+ openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
+ if openServerDay < oscDay:
+ grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0)
+ sendCnt = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 5)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, grabCnt+sendCnt)
+ NotifyOSRedPacket(curPlayer)
return
+
+def CreatCacheRedPacktet(curPlayer):
+ #加入仙盟后,发放待发的红包
+ ipyMgr = IpyGameDataPY.IPY_Data()
+ for i in xrange(ipyMgr.GetFamilyRedPackCount()):
+ ipyData = ipyMgr.GetFamilyRedPackByIndex(i)
+ redPacketID = ipyData.GetID()
+ if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_FamilyRedPacketCache, redPacketID):
+ CreatRedPacketByID(curPlayer, redPacketID)
+ GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_FamilyRedPacketCache, redPacketID, 0)
+ return
+
def CreatRedPacketByID(curPlayer, redPacketID, state=State_NoSend, data=0):
#根据红包ID生成红包
ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID)
if not ipyData:
return
- DoCreatFamilyRedPacket(curPlayer, ipyData.GetGetType(), ipyData.GetMoneyType(), ipyData.GetMoneyNum(), ipyData.GetPacketCnt(), state, '', data)
- return
-
-## 生成红包
-def DoCreatFamilyRedPacket(curPlayer, getType, moneyType=2, awardNum=100, packetCnt=10, state=State_NoSend, wishInfo='', data=0):
-# if not curPlayer.GetFamilyID():
-# #没家族
-# return
-
+ getType = ipyData.GetGetType()
if getType == IpyGameDataPY.GetFuncCfg('OpenServerRedPacketType'):
oscDay = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg')
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
if openServerDay >= oscDay:
GameWorld.DebugLog(' 发开服红包,活动已过,不可发送!')
return
+ else:
+ if not curPlayer.GetFamilyID():
+ #没家族 先存起来,等进仙盟时再补发
+ GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_FamilyRedPacketCache, redPacketID, 1)
+ return
+
+ DoCreatFamilyRedPacket(curPlayer, getType, ipyData.GetMoneyType(), ipyData.GetMoneyNum(), ipyData.GetPacketCnt(), state, '', data)
+ return
+
+## 生成红包
+def DoCreatFamilyRedPacket(curPlayer, getType, moneyType=2, awardNum=100, packetCnt=10, state=State_NoSend, wishInfo='', data=0):
+
+
+
playerID = curPlayer.GetPlayerID()
packetCnt = min(packetCnt, awardNum)
@@ -81,7 +108,11 @@
if awardNum + goldLimit > familyRedPacketGoldLimit:
GameWorld.DebugLog(' 主动发仙盟钻石红包,额度已超%s,不可发送!' % familyRedPacketGoldLimit, playerID)
return
-
+ if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney, awardNum):
+ curBourseMoney = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
+ GameWorld.Log(" 不能发钻石红包 no enough bourse money! priceCount=%s,curBourseMoney=%s"
+ % (awardNum, curBourseMoney), playerID)
+ return
if not PlayerControl.PayMoney(curPlayer, moneyType, awardNum, ChConfig.Def_Cost_FamilyRedPacket):
return
@@ -209,8 +240,8 @@
if not isSelf: #抢自己的红包不扣次数
grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, max(0, grabCnt-1))
- if grabCnt == IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 4):
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketStartTime, int(time.time()))
+# if grabCnt == IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 4):
+# PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketStartTime, int(time.time()))
#通知
@@ -218,6 +249,7 @@
return
def ProcessOSRedPacket(curPlayer, tick):
+ return
#开服红包恢复次数
if not GameWorld.SetPlayerTickTime(curPlayer, ChConfig.TYPE_Player_Tick_OSRedPacket, tick):
return
--
Gitblit v1.8.0