|  |  |  | 
|---|
|  |  |  | FBPlayerDict_ContKillCntEx = 'FBPD_ContKillCntEx'   # 玩家当前总连杀数 | 
|---|
|  |  |  | FBPlayerDict_TotalExp = 'FBPlayerDict_TotalExp%s'   # 获得的总经验 | 
|---|
|  |  |  | FBPlayerDict_TotalExpPoint = 'FBPlayerDict_TotalExpPoint%s'   # 获得的总经验点 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | FBPlayerDict_EnemyID = 'FBPD_EnemyID'   # 玩家最近一个仇敌ID | 
|---|
|  |  |  | Map_ElderBattlefield_StartTick = "Map_ElderBattlefield_StartTick"     # 副本开始时间 | 
|---|
|  |  |  | Map_ElderBattlefield_TopPlayer = "Map_ElderBattlefield_TopPlayer"     # 积分王 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if state == 1: | 
|---|
|  |  |  | GameWorld.GetGameWorld().SetGameWorldDict(Map_ElderBattlefield_StartTick, tick) | 
|---|
|  |  |  | GameWorld.GetGameWorld().SetGameWorldDict(Map_ElderBattlefield_TopPlayer, 0) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #    else: | 
|---|
|  |  |  | #        GiveJoinPrize() | 
|---|
|  |  |  | #        FBCommon.DoLogic_FBKickAllPlayer() | 
|---|
|  |  |  | 
|---|
|  |  |  | topPlayerID = gameWorld.GetGameWorldDictByKey(Map_ElderBattlefield_TopPlayer) | 
|---|
|  |  |  | if not topPlayerID or updScore > gameWorld.GetGameWorldDictByKey(FBPlayerDict_Score % topPlayerID): | 
|---|
|  |  |  | gameWorld.SetGameWorldDict(Map_ElderBattlefield_TopPlayer, playerID) | 
|---|
|  |  |  | PyGameData.g_sgzztopPlayerName = curPlayer.GetName() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | topName = curPlayer.GetName() | 
|---|
|  |  |  | PyGameData.g_sgzztopPlayerName = topName | 
|---|
|  |  |  | PlayerControl.WorldNotify(0, 'AncientBattlefield_9', [topName]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if gameWorld.GetGameWorldDictByKey(Map_ElderBattlefield_TopPlayer) == playerID: | 
|---|
|  |  |  | playerManager = GameWorld.GetPlayerManager() | 
|---|
|  |  |  | for i in range(0, playerManager.GetPlayerCount()): | 
|---|
|  |  |  | 
|---|
|  |  |  | FBCommon.Help_exp:exp, FBCommon.Help_expPoint:expPoint} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | topPlayerID = gameWorld.GetGameWorldDictByKey(Map_ElderBattlefield_TopPlayer) | 
|---|
|  |  |  | topScore = GameWorld.GetGameWorld().GetGameWorldDictByKey(FBPlayerDict_Score % topPlayerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | topScore = gameWorld.GetGameWorldDictByKey(FBPlayerDict_Score % topPlayerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | helpDict['topName'] = PyGameData.g_sgzztopPlayerName if topPlayerID else '' | 
|---|
|  |  |  | helpDict['topScore'] = topScore if topPlayerID else 0 | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | helpDict['topPlayerID'] = topPlayerID | 
|---|
|  |  |  | #helpDict[FBCommon.Help_lineID] = GameWorld.GetGameWorld().GetLineID() | 
|---|
|  |  |  | helpDict['enemyID'] =  GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBPlayerDict_EnemyID) | 
|---|
|  |  |  | GameWorld.DebugLog("DoFBHelp %s" % helpDict, playerID) | 
|---|
|  |  |  | FBCommon.Notify_FBHelp(curPlayer, helpDict) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 
|---|
|  |  |  | gameFB = GameWorld.GetGameFB() | 
|---|
|  |  |  | playerID = curPlayer.GetPlayerID() | 
|---|
|  |  |  | GameWorld.DebugLog("DoFBOnKill_Player", playerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | addScore = IpyGameDataPY.GetFuncCfg('ElderBattlefieldCfg', 2) | 
|---|
|  |  |  | updScore = __AddElderBattlefieldPlayerScore(curPlayer, gameFB, addScore) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 击杀方处理 | 
|---|
|  |  |  | killCnt = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_KillCnt) + 1 # 击杀数 | 
|---|
|  |  |  | 
|---|
|  |  |  | if contKillCntEx >= baseCnt and contKillCntEx % perCnt == 0: | 
|---|
|  |  |  | sysIndex = min((contKillCntEx - baseCnt) / perCnt, len(ckillSysList)-1) | 
|---|
|  |  |  | PlayerControl.FBNotify(ckillSysList[sysIndex], [curPlayer.GetName(), contKillCntEx]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, 'AncientBattlefield_10', [contKillCntEx]) | 
|---|
|  |  |  | if contKillCntEx == 5: | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, 'AncientBattlefield_10', [5]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 击杀方成就 | 
|---|
|  |  |  | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_ElderBattlefieldKill, 1) | 
|---|
|  |  |  | 
|---|
|  |  |  | PlayerControl.FBNotify('AncientBattlefield_7', [curPlayer.GetName(), defender.GetName(),defContKillCntEx]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | gameFB.SetPlayerGameFBDict(tagPlayerID, FBPlayerDict_ContKillCntEx, 0) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | addScore = IpyGameDataPY.GetFuncCfg('ElderBattlefieldCfg', 2) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #记录仇人 | 
|---|
|  |  |  | gameFB.SetPlayerGameFBDict(tagPlayerID, FBPlayerDict_EnemyID, playerID) | 
|---|
|  |  |  | if tagPlayerID == gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_EnemyID): | 
|---|
|  |  |  | #击杀仇人广播 | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, 'AncientBattlefield_8') | 
|---|
|  |  |  | gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_EnemyID, 0) | 
|---|
|  |  |  | addScore += IpyGameDataPY.GetFuncCfg('ElderBattlefieldPoint', 2) | 
|---|
|  |  |  | if tagPlayerID == GameWorld.GetGameWorld().GetGameWorldDictByKey(Map_ElderBattlefield_TopPlayer): | 
|---|
|  |  |  | addScore += IpyGameDataPY.GetFuncCfg('ElderBattlefieldPoint', 1) | 
|---|
|  |  |  | updScore = __AddElderBattlefieldPlayerScore(curPlayer, gameFB, addScore) | 
|---|
|  |  |  | GameWorld.DebugLog("击杀玩家: 击杀=%s,连杀=%s,tagPlayerID=%s,updScore=%s" | 
|---|
|  |  |  | % (killCnt, contKillCntEx, tagPlayerID, updScore), playerID) | 
|---|
|  |  |  |  | 
|---|