From ec68dabc97521a7706344e7d038e9f08462f4fe8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 十二月 2025 10:26:34 +0800
Subject: [PATCH] 16 卡牌服务端(删除多余备档报错防范;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py | 35 +++++++++++++++++++++++------------
1 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
index 209a64b..6814d1e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -26,7 +26,6 @@
import ItemControler
import IpyGameDataPY
import PyGameData
-import ObjPool
#成就奖励是否已领取
def GetSuccHasGot(curPlayer, succID):
@@ -100,7 +99,7 @@
## 根据多种条件更新进度,如装备多品质的
# @param conditionCountDict: 条件对应件数,条件需用元组为key {(c, ...):cnt, ..}
if successType in ShareDefine.OSASuccTypeList:
- if OpenServerActivity.GetOSACelebrationState(curPlayer) != 1:
+ if OpenServerActivity.GetOSACelebrationState(curPlayer) > 1:
return
ipyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("Success", successType)
if not ipyDataList:
@@ -160,7 +159,7 @@
def UptateSuccessProgress(curPlayer, successType, newCnt, condition=[]):
if successType in ShareDefine.OSASuccTypeList:
- if OpenServerActivity.GetOSACelebrationState(curPlayer) != 1:
+ if OpenServerActivity.GetOSACelebrationState(curPlayer) > 1:
return
ipyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("Success", successType)
if not ipyDataList:
@@ -276,7 +275,7 @@
if successType not in ShareDefine.SuccessTypeList:
return
if successType in ShareDefine.OSASuccTypeList:
- if OpenServerActivity.GetOSACelebrationState(curPlayer) != 1:
+ if OpenServerActivity.GetOSACelebrationState(curPlayer) > 1:
return
ipyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("Success", successType)
if not ipyDataList:
@@ -332,8 +331,22 @@
SyncSuccessAwardRecord(curPlayer, [succID], True)
awardItemList = ipyData.GetAwardItemList()
- if awardItemList:
- ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["SuccessAward", False, {}])
+ #if awardItemList:
+ # ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["SuccessAward", False, {}])
+
+ # 支持定制属性物品
+ isAuctionItem = 0
+ notifyAwardList = []
+ appointInfo = {}
+ for itemInfo in awardItemList:
+ itemID, itemCount = itemInfo[:2]
+ appointID = itemInfo[2] if len(itemInfo) > 2 else 0
+ setAttrDict = {ShareDefine.Def_CItemKey_AppointID:appointID} if appointID else {}
+ if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, event=["SuccessAward", False, {}], setAttrDict=setAttrDict):
+ continue
+ notifyAwardList.append([itemID, itemCount, isAuctionItem])
+ appointInfo[itemID] = appointID
+ ItemControler.NotifyGiveAwardInfo(curPlayer, notifyAwardList, "SuccessAward", dataEx={"appointInfo":appointInfo})
return
def SyncSuccessInfo(curPlayer, syncTypeCondList=None, isSendZero=False):
@@ -353,13 +366,12 @@
syncTypeCondList.append(tcList)
successInfoList = []
- objPoolMgr = ObjPool.GetPoolMgr()
for succType, conds in syncTypeCondList:
curValue = GetSuccValue(curPlayer, succType, conds)
# 不发送为0的数据
if not isSendZero and curValue <= 0:
continue
- succInfo = objPoolMgr.acquire(ChPyNetSendPack.tagSCSuccessInfo)
+ succInfo = ChPyNetSendPack.tagSCSuccessInfo()
succInfo.SuccType = succType
succInfo.Conds = conds
succInfo.CLen = len(succInfo.Conds)
@@ -369,7 +381,7 @@
if not successInfoList:
return
- clientPack = objPoolMgr.acquire(ChPyNetSendPack.tagSCSuccessInfoList)
+ clientPack = ChPyNetSendPack.tagSCSuccessInfoList()
clientPack.SuccessInfoList = successInfoList
clientPack.Count = len(clientPack.SuccessInfoList)
NetPackCommon.SendFakePack(curPlayer, clientPack)
@@ -391,13 +403,12 @@
maxSuccID = ipyDataMgr.GetSuccessByIndex(succCnt - 1).GetSuccID()
recordIndexList = xrange(maxSuccID / 31 + 1)
- objPoolMgr = ObjPool.GetPoolMgr()
recordList = []
for i in recordIndexList:
awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuccessAward % i)
if not isSyncZero and not awardRecord:
continue
- recordInfo = objPoolMgr.acquire(ChPyNetSendPack.tagSCSuccessAwardRecord)
+ recordInfo = ChPyNetSendPack.tagSCSuccessAwardRecord()
recordInfo.RecordIndex = i
recordInfo.Record = awardRecord
recordList.append(recordInfo)
@@ -405,7 +416,7 @@
if not recordList:
return
- clientPack = objPoolMgr.acquire(ChPyNetSendPack.tagSCSuccessAwardRecordList)
+ clientPack = ChPyNetSendPack.tagSCSuccessAwardRecordList()
clientPack.RecordList = recordList
clientPack.RecordCnt = len(clientPack.RecordList)
NetPackCommon.SendFakePack(curPlayer, clientPack)
--
Gitblit v1.8.0