From e81011e981c149619a76de56ecd268b667e046d9 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 03 六月 2019 10:29:38 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py
index 6a7f55a..71090be 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py
@@ -35,6 +35,7 @@
import SkillShell
import EventReport
import SkillCommon
+import PlayerWeekParty
import random
import time
@@ -69,8 +70,10 @@
FB_Step_Over, # 副本结束
) = range(3)
-def OnLogin(curPlayer):
- OnElderBattlefieldFBResult(curPlayer, True)
+def OnFBPlayerOnLogin(curPlayer):
+ mapID = GameWorld.GetMap().GetMapID()
+ if mapID != ChConfig.Def_FBMapID_ElderBattlefield:
+ OnElderBattlefieldFBResult(curPlayer, True)
return
def OnElderBattlefieldStateChange(state, tick):
@@ -156,6 +159,10 @@
return
curPlayer.Sync_TimeTick(IPY_GameWorld.tttTowerTake, 0, closeFB_RemainTick, True)
+ if not FBCommon.GetHadSetFBPropertyMark():
+ lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
+ FBCommon.SetFBPropertyMark(lineID)
+
if not FBCommon.GetHadDelTicket(curPlayer):
FBCommon.SetHadDelTicket(curPlayer)
if FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_ElderBattlefield):
@@ -164,6 +171,7 @@
GameWorld.GetGameWorld().SetGameWorldDict(FBPlayerDict_TotalExp % playerID, 0)
GameWorld.GetGameWorld().SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, 0)
EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_ElderBattlefield, 0, ChConfig.CME_Log_Start)
+ PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_ElderBattlefield, 1)
else:
rebornBuffLV = GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBPlayerDict_RebornBuffLV)
__DoAddRebornBuff(curPlayer, rebornBuffLV, tick)
@@ -202,6 +210,7 @@
skillBuffID = IpyGameDataPY.GetFuncCfg('ElderBattlefieldRobot', 3)
BuffSkill.DelBuffBySkillID(curPlayer, skillBuffID, tick)
+ FBCommon.UpdFBLineNPCStrengthenLV(curPlayer.GetPlayerID(), True)
return
@@ -307,6 +316,10 @@
lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
if lineID not in robotCfgDict:
return
+ robotMaxLV = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenMaxLV)
+ if GameWorld.GetMapCopyPlayerManager().GetPlayerCount() <= 0 or not robotMaxLV:
+ #GameWorld.DebugLog("没玩家,不刷机器人! ")
+ return
rmarkList = IpyGameDataPY.GetFuncEvalCfg('ElderBattlefieldRobot', 5)
curNPCCnt = 0
robotCntDict = {}
@@ -371,11 +384,14 @@
def OnElderBattlefieldFBResult(curPlayer, isLogin=False):
# 玩家处理上古战场结算信息
+ curStage = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ElderBattlefieldStage, 0)
+ if not curStage:
+ return
GameWorld.DebugLog(' 玩家处理上古战场结算信息 , isLogin=%s' % isLogin, curPlayer.GetPlayerID())
lineID = 0 #GameWorld.GetGameWorld().GetPropertyID() -1
fbRewardDict = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_ElderBattlefield, lineID)
- curStage = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ElderBattlefieldStage, 0)
+
itemList = fbRewardDict.get(curStage, [])
succIDList = PlayerSuccess.GetCanGetAwardSuccByType(curPlayer, [ShareDefine.SuccType_ElderBattlefieldKill, ShareDefine.SuccType_ElderBattlefieldConKill])
succAwardDict = PlayerSuccess.GiveSuccAward(curPlayer, succIDList, False)
@@ -393,7 +409,7 @@
PlayerControl.SendMailByKey("ElderBattlefieldMail" if mapID == ChConfig.Def_FBMapID_ElderBattlefield else 'ElderBattlefieldMail2', [curPlayer.GetPlayerID()], rewardItemList)
else:
for itemID, itemCnt, isBind in rewardItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem], event=["ElderBattlefield", False, {}])
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem], event=["ElderBattlefield", False, {}])
overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList), FBCommon.Over_succItemInfo:FBCommon.GetJsonItemList(succAwardDict.items())}
FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_ElderBattlefield, lineID, 1, overDict)
@@ -463,6 +479,7 @@
# @remarks 用于通知阵营比分条
def DoFBHelp(curPlayer, tick):
gameWorld = GameWorld.GetGameWorld()
+ lineID = gameWorld.GetLineID()
playerID = curPlayer.GetPlayerID()
score = gameWorld.GetGameWorldDictByKey(FBPlayerDict_Score % playerID)
stageScoreList = IpyGameDataPY.GetFuncEvalCfg('ElderBattlefieldCfg', 4)
@@ -482,6 +499,7 @@
helpDict['topPlayerID'] = topPlayerID
#helpDict[FBCommon.Help_lineID] = GameWorld.GetGameWorld().GetLineID()
helpDict['enemyID'] = GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBPlayerDict_EnemyID)
+ helpDict[FBCommon.Help_robotJob] = PyGameData.g_fbRobotJobDict.get(lineID, {})
GameWorld.DebugLog("DoFBHelp %s" % helpDict, playerID)
FBCommon.Notify_FBHelp(curPlayer, helpDict)
return
@@ -500,6 +518,7 @@
def DoFBOnKill_Player(atkobj, defender, tick):
gameFB = GameWorld.GetGameFB()
atkIsPlayer = atkobj.GetGameObjType() == IPY_GameWorld.gotPlayer
+ baseCnt = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 2)
addScore = 0
if atkIsPlayer:
playerID = atkobj.GetPlayerID()
@@ -515,7 +534,7 @@
gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_ContKillCntEx, contKillCntEx)
#连杀广播
ckillSysList = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 1)
- baseCnt = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 2)
+
perCnt = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 3)
if contKillCntEx >= baseCnt and contKillCntEx % perCnt == 0:
sysIndex = min((contKillCntEx - baseCnt) / perCnt, len(ckillSysList) - 1)
@@ -539,7 +558,7 @@
if atkIsPlayer:
PlayerControl.FBNotify('AncientBattlefield_7', [atkobj.GetName(), defender.GetName(), defContKillCntEx])
else:
- PlayerControl.FBNotify('AncientBattlefield_robot', [atkobj.GetNPCID(), atkobj.GetObjID(), defender.GetName(), defContKillCntEx])
+ PlayerControl.FBNotify('AncientBattlefield_robot', [atkobj.GetNPCID(), atkobj.GetID(), defender.GetName(), defContKillCntEx])
gameFB.SetPlayerGameFBDict(tagPlayerID, FBPlayerDict_ContKillCntEx, 0)
#记录仇人
if atkIsPlayer:
--
Gitblit v1.8.0