| | |
| | | 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)
|
| | |
| | | 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):
|
| | |
| | |
|
| | | # 最高级别联赛第一名额外奖励
|
| | | winnerFirstAwardEx = [] # 获胜方第一名额外奖励
|
| | | firstAwardEx = []
|
| | | loserFirstAwardEx = [] # 失败方第一名额外奖励
|
| | | firstAwardEx, firstAwardEx2= [], []
|
| | | if groupID == FamilyWar_MaxGroupID:
|
| | | worldLv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
| | | if isFinalMatch:
|
| | | firstAwardExDict = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchSRankOneReward", 1)
|
| | | firstAwardExDict2 = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchSRankOneReward", 2)
|
| | | else:
|
| | | firstAwardExDict = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchRankOneReward", 1)
|
| | | firstAwardExDict2 = IpyGameDataPY.GetFuncEvalCfg("FamilyMatchRankOneReward", 2)
|
| | | firstAwardEx = GameWorld.GetOrderValueByDict(firstAwardExDict, worldLv)
|
| | | firstAwardEx = [] if not firstAwardEx else firstAwardEx
|
| | | GameWorld.Log("最高级别联赛第一名额外奖励: firstAwardEx=%s,firstAwardExDict=%s,worldLv=%s" |
| | | GameWorld.Log("最高级别联赛胜者第一名额外奖励: firstAwardEx=%s,firstAwardExDict=%s,worldLv=%s" |
| | | % (firstAwardEx, firstAwardExDict, worldLv), lineID)
|
| | | firstAwardEx2 = GameWorld.GetOrderValueByDict(firstAwardExDict2, worldLv)
|
| | | firstAwardEx2 = [] if not firstAwardEx2 else firstAwardEx2
|
| | | GameWorld.Log("最高级别联赛败者第一名额外奖励: firstAwardEx2=%s,firstAwardExDict2=%s,worldLv=%s" |
| | | % (firstAwardEx2, firstAwardExDict2, worldLv), lineID)
|
| | |
|
| | | GameWorld.Log("名次奖励配置: rankAwardDict=%s,awardPer=%s,rankAwardDictCopy=%s,firstAwardEx=%s,joinAwardItemList=%s"
|
| | | % (rankAwardDict, awardPer, rankAwardDictCopy, firstAwardEx, joinAwardItemList), lineID)
|
| | |
| | | awardItemList = rankItemList + winnerFirstAwardEx
|
| | | # <color=#44e863FF>%s0</color>在仙盟联赛中表现优异,获得额外<color=#44e863FF><Word info=item id=%s1/></color>奖励
|
| | | PlayerControl.WorldNotify(0, "FamilyMatchRankNoOne", [warPlayer.name, winnerFirstAwardEx[0][0]])
|
| | | elif firstAwardEx2 and not loserFirstAwardEx and warPlayer.familyID != winnerFamilyID:
|
| | | loserFirstAwardEx = firstAwardEx2
|
| | | awardItemList = rankItemList + loserFirstAwardEx
|
| | | PlayerControl.WorldNotify(0, "FamilyMatchRankNoOneLose", [warPlayer.name, loserFirstAwardEx[0][0]])
|
| | | else:
|
| | | awardItemList = rankItemList
|
| | | playerID = warPlayer.playerID
|
| | |
| | | # @param tick 时间戳
|
| | | # @return 无意义
|
| | | # @remarks
|
| | | def OnCollectOK(curPlayer, tick):
|
| | | def OnCollectOK(curPlayer, npcID, tick):
|
| | | tagObj = curPlayer.GetActionObj()
|
| | | if not tagObj:
|
| | | return
|