From c2f66e6ffcc1bfa9b919c92bfee8729158ac5426 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 19 九月 2018 14:44:23 +0800
Subject: [PATCH] 3681 【后端】神兽基础战斗力
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
index d1dfe7f..575f811 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
@@ -757,8 +757,12 @@
warPlayer = GetFamilyWarPlayer(playerID)
warPlayer.calcFightTimeTick = tick
+ faction = curPlayer.GetFaction()
+ if not faction:
+ GameWorld.Log("还未设置阵营的玩家暂不处理!可能是DoEnter中!", playerID)
+ continue
# 检查坐标,防止作弊
- factionIndex = GetFactionIndex(curPlayer.GetFaction())
+ factionIndex = GetFactionIndex(faction)
centrePosX, centrePosY, radius = factionAreaInfo[factionIndex]
curPosX, curPosY = curPlayer.GetPosX(), curPlayer.GetPosY()
dist = GameWorld.GetDist(curPosX, curPosY, centrePosX, centrePosY)
@@ -767,8 +771,8 @@
if dist > maxDist:
posPoint = GameMap.GetEmptyPlaceInArea(centrePosX, centrePosY, radius)
curPlayer.ResetPos(posPoint.GetPosX(), posPoint.GetPosY())
- GameWorld.DebugLog("玩家不在营地范围内,强制拉回!curPos=(%s,%s),centerPos=(%s,%s), dist=%s > maxDist=%s"
- % (curPosX, curPosY, centrePosX, centrePosY, dist, maxDist))
+ GameWorld.Log("玩家不在营地范围内,强制拉回!faction=%s,curPos=(%s,%s),centerPos=(%s,%s), dist=%s > maxDist=%s"
+ % (faction, curPosX, curPosY, centrePosX, centrePosY, dist, maxDist), playerID)
return
def __DoLogic_FB_Fighting(tick):
@@ -974,10 +978,15 @@
awardPer = awardPerList[-1]
else:
awardPer = awardPerList[groupID - 1]
- rankAwardDictCopy = copy.deepcopy(rankAwardDict)
- for itemList in rankAwardDictCopy.values():
- for itemInfo in itemList:
- itemInfo[1] = max(1, int(itemInfo[1] * awardPer / 100.0))
+ rankAwardDictCopy = {}
+ for rank, itemList in rankAwardDict.items():
+ copyItemList = []
+ for itemID, itemCount, isBind, isPer in itemList:
+ if isPer: # 奖励个数是否受百分比影响, 默认受影响
+ copyItemList.append([itemID, max(1, int(itemCount * awardPer / 100.0)), isBind])
+ else:
+ copyItemList.append([itemID, itemCount, isBind])
+ rankAwardDictCopy[rank] = copyItemList
# 最高级别联赛第一名额外奖励
winnerFirstAwardEx = [] # 获胜方第一名额外奖励
--
Gitblit v1.8.0