From bf08c8333363e9b8aeab0b7e482cee6767bf6f0a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 24 十一月 2018 19:37:00 +0800
Subject: [PATCH] 4762 Add B2 11 助战记录列表 #tagMCHelpBattleRecordList
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py | 76 ++++++++++++++++++++++++-------------
1 files changed, 49 insertions(+), 27 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
index af40578..d46382d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
@@ -31,6 +31,7 @@
import EventReport
import ChPyNetSendPack
import NetPackCommon
+import BuffSkill
import random
import datetime
@@ -218,6 +219,7 @@
# @param tick 时间戳
# @return 无意义
def DoExitFB(curPlayer, tick):
+
return
##玩家主动离开副本.
@@ -227,6 +229,12 @@
def DoPlayerLeaveFB(curPlayer, tick):
return
+##玩家切换地图
+def DoPlayerChangeMapLogic(curPlayer):
+ tick = GameWorld.GetGameWorld().GetTick()
+ for buffID in IpyGameDataPY.GetFuncEvalCfg('IceLodeSpecial', 2):
+ BuffSkill.DelBuffBySkillID(curPlayer, buffID, tick)
+ return
def OnPickUpItem(curPlayer, curItem, tick):
return
@@ -448,12 +456,7 @@
return False
return True
-## 执行副本杀怪逻辑
-# @param curPlayer 杀怪的人
-# @param curNPC 被杀的怪
-# @param tick 当前时间
-# @return None
-def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
+def __OnKillNPC(attacker, curNPC, tick):
gameFB = GameWorld.GetGameFB()
npcid = curNPC.GetNPCID()
npcCfg = GetIceLodeNPCCfg()
@@ -468,8 +471,22 @@
remainNPCCnt = max(0, gameFB.GetGameFBDictByKey(FBPlayerDict_RemainNPCCnt) - 1)
gameFB.SetGameFBDict(FBPlayerDict_RemainNPCCnt, remainNPCCnt)
- if remainNPCCnt <=0:
+ if remainNPCCnt <=0 or npcid in IpyGameDataPY.GetFuncEvalCfg('IceLodeSpecial'):
__DoIceLodeOver(True)
+ return
+
+def DoFB_Npc_KillNPC(attacker, curNPC, tick):
+ __OnKillNPC(attacker, curNPC, tick)
+ return
+
+## 执行副本杀怪逻辑
+# @param curPlayer 杀怪的人
+# @param curNPC 被杀的怪
+# @param tick 当前时间
+# @return None
+def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
+ __OnKillNPC(curPlayer, curNPC, tick)
+
# addPoint = GetPointByNPCID(npcid)
# if not addPoint:
@@ -521,15 +538,15 @@
lineID = FBCommon.GetFBPropertyMark()
star = GameWorld.GetGameFB().GetGameFBDictByKey(FBPlayerDict_FBStar)
mapID = ChConfig.Def_FBMapID_IceLode
-
+ isInFBOnDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IceLodeIsInFBOnDay)
#更新星级
lastStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID])
if isPass and star > lastStar:
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, star, False, [mapID])
FBCommon.Sync_FBPlayerFBInfoData(curPlayer, mapID) # 同步信息
- if not lastStar: #每日活动
+ if not lastStar and not isInFBOnDay: #每日活动
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_IceLode)
- isInFBOnDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IceLodeIsInFBOnDay)
+
if isInFBOnDay: #在副本里过天,副本结束后再补发星级奖励
CheckIceLodeStarAwardMail(curPlayer)
# exp = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_TotalExp)
@@ -540,30 +557,32 @@
if not costTime:
costTime = tick - GameWorld.GetGameFB().GetFBStepTick()
#jsonItemList = PyGameData.g_fbPickUpItemDict.get(playerID, [])
- itemList = FBCommon.GetFBLineReward(mapID, lineID)
- # 给物品
- needSpace = len(itemList)
- packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
- if needSpace > packSpace:
- PlayerControl.SendMailByKey('', [curPlayer.GetID()], itemList)
- else:
- for itemID, itemCount, isBind in itemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
+ overDict = {FBCommon.Over_isPass:int(isPass), FBCommon.Over_costTime:costTime}
+ if isPass:
+ itemList = FBCommon.GetFBLineReward(mapID, lineID)
+ # 给物品
+ needSpace = len(itemList)
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+ if needSpace > packSpace:
+ PlayerControl.SendMailByKey('', [curPlayer.GetID()], itemList)
+ else:
+ for itemID, itemCount, isBind in itemList:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
-
- jsonItemList = FBCommon.GetJsonItemList(itemList)
+ jsonItemList = FBCommon.GetJsonItemList(itemList)
+ overDict[FBCommon.Over_itemInfo] = jsonItemList
# 通知结果
- __SendIceLodeOverInfo(curPlayer, {FBCommon.Over_isPass:int(isPass), FBCommon.Over_costTime:costTime, FBCommon.Over_itemInfo:jsonItemList})
+ __SendIceLodeOverInfo(curPlayer, overDict)
# 进入离开阶段
FBCommon.SetFBStep(FB_Step_Over, tick)
FBCommon.Sync_Player_TimeTick(IPY_GameWorld.tttLeaveMap, FBCommon.GetFBLineStepTime(mapID)[Def_LeaveTime] * 1000)
# 清怪,关闭刷怪
- FBCommon.ClearFBNPC()
- npcCfg = GetIceLodeNPCCfg()
- for npcInfo in npcCfg:
- NPCCustomRefresh.CloseNPCRefresh(npcInfo[Def_RefreshMark], tick)
+# FBCommon.ClearFBNPC()
+# npcCfg = GetIceLodeNPCCfg()
+# for npcInfo in npcCfg:
+# NPCCustomRefresh.CloseNPCRefresh(npcInfo[Def_RefreshMark], tick)
return
@@ -588,6 +607,9 @@
## 可否扫荡
def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx):
+ if curPlayer.GetMapID() == ChConfig.Def_FBMapID_IceLode:
+ GameWorld.DebugLog('冰晶矿脉扫荡 副本里不能扫荡 ')
+ return
#战力判断
LVIpyData = PlayerControl.GetPlayerLVIpyData(curPlayer.GetLV())
reFightPower = 0 if not LVIpyData else LVIpyData.GetIceLodeFightPower() # 当前等级参考战力
@@ -629,7 +651,7 @@
addCnt = 0
starCnt, lineList = GetIceLodeAllStarCnt(curPlayer)
for lineid in lineList:
- curStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID])
+ curStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineid, False, [mapID])
if curStar == 0:
addCnt += 1
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineid, 3, False, [mapID])
--
Gitblit v1.8.0