From 8d37b77678ea5dc0703354a6daaa1207ce6e8be3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 28 六月 2019 21:56:45 +0800
Subject: [PATCH] 7661 【后端】【主干】屏蔽多余日志输出(非拍品转拍品ErrLog改DebugLog,重刷传奇属性ErrLog改DebugLog)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py | 58 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
index e7aa279..55ba478 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
@@ -21,26 +21,28 @@
import GameWorldProcess
import IpyGameDataPY
import ChConfig
+import PlayerBossReborn
import PyGameData
import PlayerControl
import ShareDefine
import NPCCustomRefresh
import PlayerAuctionHouse
import ItemControler
+import PlayerWeekParty
import PlayerActivity
+import NPCCommon
import EventReport
import GameObj
FBPlayerDict_EncourageLV = 'FBPlayerDict_EncourageLV' # 鼓舞等级
FBDict_IsOver = 'FBDict_IsOver' #是否已结算, 结算时的tick
-FBDict_IsEncourage = 'FBDict_IsEncourage' #是否鼓舞过
-
+FBDict_EncourageCnt = 'FBDict_EncourageCnt' #鼓舞过次数
+Map_FB_StartTick = 'Map_FB_StartTick' #活动开始时间
(
Def_BossTime, #BOSS时间
Def_LeaveTime, #离开时间
- Def_HPSpeed, #掉血速度公式
- ) = range(3)
+ ) = range(2)
#当前副本地图的状态
(
@@ -119,13 +121,23 @@
if mapID != ChConfig.Def_FBMapID_AllFamilyBoss:
return
GameWorld.DebugLog(' 多仙盟BOSS活动状态变更 state=%s' % state)
-
- if not state:
+
+ if state:
+ if not GameWorld.GetGameWorld().GetGameWorldDictByKey(Map_FB_StartTick):
+ GameWorld.GetGameWorld().SetGameWorldDict(Map_FB_StartTick, tick)
+ else:
+ GameWorld.GetGameWorld().SetGameWorldDict(Map_FB_StartTick, 0)
if not GameWorld.GetGameFB().GetGameFBDictByKey(FBDict_IsOver):
GameWorld.GetGameFB().SetGameFBDict(FBDict_IsOver, tick)
- __DoLogicAllFamilyBossOver(0, tick)
+ __DoLogicAllFamilyBossOver(0, tick, 0, 0)
return
+def __GetRemainTick(tick):
+ ##活动剩余毫秒
+ mapID = GameWorld.GetMap().GetMapID()
+ startTick = GameWorld.GetGameWorld().GetGameWorldDictByKey(Map_FB_StartTick)
+ closeFB_RemainTick = max(0, FBCommon.GetFBLineStepTime(mapID)[Def_BossTime] * 1000 - (tick - startTick))
+ return closeFB_RemainTick
## 进副本
# @param curPlayer
@@ -146,7 +158,8 @@
FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_AllFamilyBoss, 1)
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_FamilyBoss1, 1)
-
+ PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_FamilyBoss, 1)
+ PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_FamilyBoss, 1)
if fbStep == FB_Step_Open:
FBCommon.SetFBStep(FB_Step_Fighting, tick)
@@ -167,7 +180,9 @@
FBCommon.AddFbEncourageBuff(curPlayer, FBPlayerDict_EncourageLV, tick, familyID)
else:
FBCommon.SendFBEncourageInfo(curPlayer, encourageLV, familyID)
-
+
+ closeFB_RemainTick = __GetRemainTick(tick)
+ curPlayer.Sync_TimeTick(IPY_GameWorld.tttTowerTake, 0, closeFB_RemainTick, True)
DoFBHelp(curPlayer, tick)
return
@@ -252,7 +267,7 @@
hurtInfo.append(hurtDict)
remainHPPer = GetBossRemainHPPer(0, tick)
playerID = curPlayer.GetPlayerID()
- IsEncourage = GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBDict_IsEncourage)
+ IsEncourage = GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBDict_EncourageCnt)
fbHelpDict = {"hurtInfo":hurtInfo, 'IsEncourage':IsEncourage,'remainHPPer':remainHPPer,
'myHurt':myHurt % ChConfig.Def_PerPointValue,
'myHurtEx':myHurt / ChConfig.Def_PerPointValue, 'myRank':myRank, 'myMenberCnt':myMenberCnt
@@ -272,15 +287,18 @@
if actionType == 0:
playerID = curPlayer.GetID()
gameFB = GameWorld.GetGameFB()
- if gameFB.GetPlayerGameFBDictByKey(playerID, FBDict_IsEncourage):
- GameWorld.DebugLog('只能鼓舞一次!', playerID)
+ maxEncourageCnt = IpyGameDataPY.GetFuncCfg('LeagueBOSSReward1', 2)
+ curEncourageCnt = gameFB.GetPlayerGameFBDictByKey(playerID, FBDict_EncourageCnt)
+ if curEncourageCnt >= maxEncourageCnt:
+ GameWorld.DebugLog('只能鼓舞%s次!'%maxEncourageCnt, playerID)
return
if FBCommon.FbEncourageBuff(curPlayer, FBPlayerDict_EncourageLV, actionInfo, tick, curPlayer.GetFamilyID()):
- gameFB.SetPlayerGameFBDict(playerID, FBDict_IsEncourage, 1)
+ gameFB.SetPlayerGameFBDict(playerID, FBDict_EncourageCnt, curEncourageCnt+1)
#给鼓舞奖励
itemList = IpyGameDataPY.GetFuncEvalCfg('LeagueBOSSReward1')
giveItemList = [[itemID, itemCnt, 0] for itemID, itemCnt in itemList]
ItemControler.GivePlayerItemOrMail(curPlayer, giveItemList)
+ DoFBHelp(curPlayer, tick)
return
@@ -342,7 +360,7 @@
return playerHurtList
-def __DoLogicAllFamilyBossOver(isPass, tick):
+def __DoLogicAllFamilyBossOver(isPass, tick, dropPosX, dropPosY):
#结算
FBCommon.SetFBStep(FB_Step_Over, tick)
msgStr = str([])
@@ -364,6 +382,7 @@
batchPlayerIDList, batchAddItemList, batchParamList, batchDetailList = [], [], [], []
event = ["AllFamilyBoss", False, {}]
needMemberCnt = IpyGameDataPY.GetFuncCfg('LeagueBOSSNumber1')
+ bossID = CurFBLineBOSSID(lineID)
for rank, hurtInfo in enumerate(playerHurtList, 1):
familyID = hurtInfo[0]
memberIDList = hurtInfo[1][2]
@@ -383,7 +402,8 @@
member = playerManager.FindPlayerByID(memberID)
if member:
if menberItemList:
- ItemControler.GivePlayerItemOrMail(member, menberItemList, 'LeagueBOSS1', event)
+ NPCCommon.DoGiveItemByVirtualDrop(member, menberItemList, bossID, dropPosX, dropPosY, mailTypeKey='LeagueBOSS1')
+ #ItemControler.GivePlayerItemOrMail(member, menberItemList, 'LeagueBOSS1', event)
member.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
FBCommon.NotifyFBOver(member, ChConfig.Def_FBMapID_AllFamilyBoss, lineID, isPass, overDict)
elif menberItemList:
@@ -435,6 +455,8 @@
if len(itemInfo) != 3:
GameWorld.ErrLog('仙盟Boss奖励表配置错误 itemInfo=%s' % itemInfo)
continue
+ if not itemInfo[0]:
+ continue
if itemInfo[2]:
familyAuctionItemList.append(itemInfo)
else:
@@ -444,6 +466,8 @@
resultItem = GameWorld.GetResultByRandomList(awardPieRateList)
if len(resultItem) != 3:
GameWorld.ErrLog('仙盟Boss奖励表配置错误 itemInfo=%s' % resultItem)
+ continue
+ if not resultItem[0]:
continue
if resultItem[2]:
familyAuctionItemList.append(resultItem)
@@ -470,8 +494,8 @@
GameWorld.DebugLog('结束 设置BOSS死亡')
GameWorld.GetGameFB().SetGameFBDict(FBDict_IsOver, tick)
-
- __DoLogicAllFamilyBossOver(1, tick)
+ dropPosX, dropPosY = curNPC.GetPosX(), curNPC.GetPosY()
+ __DoLogicAllFamilyBossOver(1, tick, dropPosX, dropPosY)
return
--
Gitblit v1.8.0