ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ArenaBattle.py
@@ -10,34 +10,54 @@
# @version 1.0
#
# 详细描述: 竞技场战斗,目前主要做自定义副本流程桥梁吧,暂时没什么额外逻辑,战斗过程前端自行处理,后端只处理击杀木桩后结算
#            砍树版本改为回合战斗
#
#-------------------------------------------------------------------------------
#"""Version = 2020-12-07 19:30"""
#-------------------------------------------------------------------------------
import ChConfig
import GameWorld
import PlayerControl
import PlayerArena
## 是否能够通过活动查询进入
def OnEnterFBEvent(curPlayer, mapID, lineID, tick):
def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList):
    ## 回合战斗请求 - 地图验证
    playerID = curPlayer.GetPlayerID()
    if not PlayerArena.CheckArenaBattleCount(curPlayer):
        GameWorld.DebugLog("竞技场已经没有对战次数!", playerID)
        return
    if not valueList:
        GameWorld.DebugLog("竞技场没有发送回合战斗的PlayerID,在valueList里,索引0的值为PlayerID!", playerID)
        return
    tagPlayerID = valueList[0]
    GameWorld.DebugLog("竞技场请求对战! tagType=%s,tagID=%s,tagPlayerID=%s" % (tagType, tagID, tagPlayerID), playerID)
    return True
## 是否需要做进入副本通用检查条件逻辑,默认需要检查
def OnNeedCheckCanEnterFBComm(curPlayer, mapID, lineID):
    ## 进行中的不需要重复检查,防止断线重连被禁止进入
    return False
## 客户端进入自定义场景
def OnEnterCustomScene(curPlayer, mapID, lineID):
    return
## 判断可否召唤木桩怪
def OnCanSummonPriWoodPile(curPlayer, mapID, lineID, npcID, count):
    return True
## 自定义场景副本击杀NPC
def DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID):
    PlayerArena.OnKillBattleNPC(curPlayer, curNPC)
    return
def OnTurnFightOver(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet):
    ## 回合战斗结束
    # @return: 是否需要同步GameServer, 奖励列表, 同步结果信息
    needSendGameServer = False
    awardItemList = []
    overInfoEx = {}
    isWin = fightRet[0]
    playerID = curPlayer.GetPlayerID()
    if not valueList:
        return
    tagPlayerID = valueList[0]
    if not PlayerArena.CheckArenaBattleCount(curPlayer):
        return
    playerLV = curPlayer.GetLV()
    playerScore = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaScore)
    msgInfo = str(["BattleResult", {"tagPlayerID":tagPlayerID, "isWin":isWin, "playerLV":playerLV, "playerScore":playerScore,
                                    "realmLV":curPlayer.GetOfficialRank(), "fightPower":PlayerControl.GetFightPower(curPlayer)}])
    GameWorld.DebugLog("竞技场发送GameServer结算: %s" % msgInfo, playerID)
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "Arena", msgInfo, len(msgInfo))
    return needSendGameServer, awardItemList, overInfoEx