From 3ce7cddcff138fc163c636da784afd5f558bd68c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 28 十二月 2018 12:09:14 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(历史赛季信息增加记录赛季积分)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py | 41 ++++++++++++++++++++++++++++-------------
1 files changed, 28 insertions(+), 13 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py
index 6d7f110..7a8ecac 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_GatherSoul.py
@@ -153,6 +153,7 @@
else:
return
DoFBHelp(curPlayer, tick)
+ curPlayer.SetFaction(ShareDefine.CampType_Justice)
return
@@ -196,8 +197,8 @@
guardDict[npcid] = gameFB.GetGameFBDictByKey(FBPlayerDict_GuardNPCCnt%npcid)
hasRefreshBoss = gameFB.GetGameFBDictByKey(FBPlayerDict_HasRefreshBoss)
isAutoBoss = gameFB.GetGameFBDictByKey(FBPlayerDict_AutoBoss)
-
- itemDict = PyGameData.g_gathersoulfbAwardDict.get(curPlayer.GetID(), {})
+ lineID = GameWorld.GetGameWorld().GetLineID()
+ itemDict = PyGameData.g_gathersoulfbAwardDict.get(lineID, {})
helpItemInfo = {}
for wheel, itemList in itemDict.items():
helpItemInfo[str(wheel)] = FBCommon.GetJsonItemList(itemList)
@@ -539,12 +540,13 @@
##掉落奖励 {wheel:[[itemid,itemCnt,isBind]]}
gameFB = GameWorld.GetGameFB()
curWheel = gameFB.GetGameFBDictByKey(FBPlayerDict_CurWheel) + 1
- ownerID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
- if ownerID not in PyGameData.g_gathersoulfbAwardDict:
- PyGameData.g_gathersoulfbAwardDict[ownerID] = {}
- if curWheel not in PyGameData.g_gathersoulfbAwardDict[ownerID]:
- PyGameData.g_gathersoulfbAwardDict[ownerID][curWheel] = []
- PyGameData.g_gathersoulfbAwardDict[ownerID][curWheel].append([itemID, itemCnt, isBind])
+ #ownerID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
+ lineID = GameWorld.GetGameWorld().GetLineID()
+ if lineID not in PyGameData.g_gathersoulfbAwardDict:
+ PyGameData.g_gathersoulfbAwardDict[lineID] = {}
+ if curWheel not in PyGameData.g_gathersoulfbAwardDict[lineID]:
+ PyGameData.g_gathersoulfbAwardDict[lineID][curWheel] = []
+ PyGameData.g_gathersoulfbAwardDict[lineID][curWheel].append([itemID, itemCnt, isBind])
curPlayer = FBCommon.GetCurSingleFBPlayer()
if curPlayer:
DoFBHelp(curPlayer, 0)
@@ -560,7 +562,8 @@
# 进入离开阶段
FBCommon.SetFBStep(FB_Step_Over, tick)
ownerID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
- itemDict = PyGameData.g_gathersoulfbAwardDict.pop(ownerID, {})
+ lineID = GameWorld.GetGameWorld().GetLineID()
+ itemDict = PyGameData.g_gathersoulfbAwardDict.pop(lineID, {})
totalItemList = []
for itemList in itemDict.values():
totalItemList += itemList
@@ -572,15 +575,27 @@
GameWorldProcess.CloseFB(tick)
return
- needSpace = len(totalItemList)
- emptySpace = ItemCommon.GetItemPackSpace(curPlayer, ShareDefine.rptGatherSoul, needSpace)
- isSendMail = int(needSpace > emptySpace) # 是否发送邮件
+ needPackSpaceDict = {}
+ for itemID, itemCnt, isBind in totalItemList:
+ curItem = GameWorld.GetGameData().GetItemByTypeID(itemID)
+ if not curItem:
+ return
+ packType = ChConfig.GetItemPackType(curItem.GetType())
+ needSpace = ItemControler.GetItemNeedPackCount(packType, curItem, itemCnt)
+ needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
+
+ isSendMail = False #是否背包不足
+ for packType, needSpace in needPackSpaceDict.items():
+ if needSpace > ItemCommon.GetItemPackSpace(curPlayer, packType, needSpace):
+ isSendMail = True
+ break
+
if isSendMail:
PlayerControl.SendMailByKey('JHBagFull2', [curPlayer.GetPlayerID()], totalItemList)
GameWorld.DebugLog("背包空间不够,发送邮件: mailItemList=%s" % str(totalItemList), curPlayer.GetPlayerID())
else:
for itemID, itemCnt, isBind in totalItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [ShareDefine.rptGatherSoul],
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [],
event=["GatherSoulFB", False, {}])
fbCfg = GetGatherSoulFBCfg()
--
Gitblit v1.8.0