From ca4de46e0beb47d7ec1dfa3817f59e2ba885bf76 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 16 十一月 2020 19:52:47 +0800
Subject: [PATCH] 4862 【主干】【长尾】【BT】宝箱支持部分拍品、非拍品配置
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py | 29 +++++++++++++++++++++--------
1 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
index 7264f0b..da7e44b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
@@ -253,7 +253,7 @@
GameWorld.DebugLog(" 生成新仙盟红包 红包额度不能低于红包个数!outputNum=%s,redCnt=%s" % (outputNum, packetCnt))
return
job = curPlayer.GetJob()
- jobRank = PlayerControl.GetJobRank(curPlayer)
+ jobRank = 0
playerName = curPlayer.GetName()
__SaveNewRedRecord(family, playerID, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt, state, wishStr, data=data)
return
@@ -286,7 +286,6 @@
def __SaveNewRedRecord(family, ownerid, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt,state=State_NoSend, wishStr='', sysCreateTime=None, data=0):
global g_allRecordDict
global g_redPackCountDict
- job = job + jobRank * 10 #个位是job 十位百位是jobrank
recordType = ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord
universalRecMgr = GameWorld.GetUniversalRecMgr()
recordList = universalRecMgr.GetTypeList(recordType)
@@ -490,8 +489,6 @@
playerID= curPlayer.GetPlayerID()
job = curPlayer.GetJob()
- jobRank = PlayerControl.GetJobRank(curPlayer)
- job = jobRank * 10 + job
playerName = curPlayer.GetName()
@@ -518,8 +515,17 @@
#找该红包的抢信息
grabRecordDict = __GetGrabRecord(redPacketID)
- if playerID in grabRecordDict or len(grabRecordDict) >= packetCnt:
- GameWorld.DebugLog(" 该玩家已抢过此红包!",playerID)
+ if playerID in grabRecordDict:
+ GameWorld.DebugLog(" 该玩家已抢过此红包!", playerID)
+ __NotifyGrabRedPacketInfo(curPlayer, redPacketID, grabRecordDict)
+ return
+
+ if len(grabRecordDict) >= packetCnt:
+ GameWorld.DebugLog(" 红包已被抢完!", playerID)
+ if state != State_HasAllGot:
+ redPacketRecData.SetValue4(State_HasAllGot)
+ #GameWorld.DebugLog(" 纠正红包已抢完状态! state=%s,updState=%s" % (state, State_HasAllGot))
+ __NotifyFamilyRedPacketInfo(curFamily, redPacketRecData, grabRecordDict.keys())
__NotifyGrabRedPacketInfo(curPlayer, redPacketID, grabRecordDict)
return
@@ -558,7 +564,7 @@
#{playerid:[抢到的钱,名字,job]}
g_grabDataDict[redPacketID] = grabRecordDict
- if len(grabRecordDict) == packetCnt:
+ if len(grabRecordDict) >= packetCnt:
redPacketRecData.SetValue4(State_HasAllGot)
#通知该玩家红包抢结果
@@ -638,7 +644,8 @@
strValue1 = universalRecData.GetStrValue1()
strValue1List = strValue1.split('|')
playerID = strValue1List[0]
- if playerID:
+ getWay = int(strValue1List[3])
+ if playerID and getWay is ShareDefine.RedPackType_GoldPacket:
playerID = int(playerID)
grabRecordDict = __GetGrabRecord(redPacketID)
outNum = sum([a[0] for a in grabRecordDict.values()]) #已被抢的钱
@@ -806,11 +813,17 @@
if curPlayer.GetPlayerID() in grabHeroIDList:
state = State_HasGot
+ if sendPack.IsAll and state in [State_HasGot, State_HasAllGot]:
+ #GameWorld.DebugLog("已抢或抢完的不发: RedPacketID=%s,state=%s" % (packetInfo.RedPacketID, state))
+ continue
packetInfo.State = state
packetInfo.PacketCnt = int(packetData.GetStrValue2())
packetInfo.Wish = packetData.GetStrValue3()
sendPack.RedPacketInfo.append(packetInfo)
+ if len(sendPack.RedPacketInfo) > 250:
+ #GameWorld.DebugLog("红包太多了!")
+ break
sendPack.Count = len(sendPack.RedPacketInfo)
NetPackCommon.SendFakePack(curPlayer, sendPack)
--
Gitblit v1.8.0