From c34c903cfeecfd6e03b1f033d7de98dfabb76c0c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 10 七月 2019 15:25:44 +0800
Subject: [PATCH] 8004 子 【主干】寻宝 / 【后端】【主干】新增物品效果
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
index 4716952..3228329 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
@@ -110,12 +110,7 @@
if mapID == ChConfig.Def_FBMapID_SealDemonEx:
return
lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
- bossID = CurFBLineBOSSID(lineID)
- key = ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn % bossID
- GameWorld.GetGameWorld().SetGameWorldDict(key, 1)
- GameWorld.DebugLog(' 刷BOSSbossID=%s' % bossID)
-
-
+
refreshIDList = FBCommon.GetFBLineRefreshNPC(ChConfig.Def_FBMapID_SealDemon, lineID)
if refreshIDList:
for refreshID in refreshIDList:
@@ -136,11 +131,11 @@
FBCommon.SetFBPropertyMark(lineID)
else:
lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
-
+ gameFB = GameWorld.GetGameFB()
playerCnt = GameWorld.GetGameWorld().GetMapCopyPlayerManager().GetPlayerCount()
GameWorld.DebugLog("DoEnterFB...playerCnt=%s,lineID=%s" % (playerCnt, lineID), playerID)
-
- if lineID < 0:
+ overTick = gameFB.GetGameFBDictByKey(FBDict_IsOver)
+ if lineID < 0 or overTick:
PlayerControl.PlayerLeaveFB(curPlayer)
return
hadDelTicket = FBCommon.GetHadDelTicket(curPlayer)
@@ -165,7 +160,7 @@
return
UpdateHurtInfo(curPlayer, 0, True)
- gameFB = GameWorld.GetGameFB()
+
# 上鼓舞buff
encourageLV = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_EncourageLV)
if encourageLV > 0:
@@ -457,6 +452,9 @@
def GiveSealDemonAward(curPlayer, lineID, rank, isMail=False, isClientSend=False, dropItemMapInfo=[]):
newbielineList = IpyGameDataPY.GetFuncEvalCfg('SealDemonNewbieLine')
isNewbieLine = lineID in newbielineList
+ sealDemonIpyData = GetSealDemonIpyData(lineID)
+ if not sealDemonIpyData:
+ return {}
prizeMultiple = 1
addCnt = 1
if isNewbieLine:
@@ -467,16 +465,18 @@
elif isClientSend:
return {}
else:
- prizeMultiple = 2 if rank == 1 else 1 # 第一名执行双倍掉落奖励,其他一次
+ #prizeMultiple = 2 if rank == 1 else 1 # 第一名执行双倍掉落奖励,其他一次
+ prizeMultiple = 1 # 去除第一名双倍逻辑,改为放在额外奖励产出
isDouble = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FMTDouble)
if isDouble:
addCnt = 2
equipList = []
prizeItemDict ={}
bossID = CurFBLineBOSSID(lineID)
+ extraItemList = sealDemonIpyData.GetOwnerAwardItemEx() * addCnt if rank == 1 else []
#for _ in xrange(addCnt):
jsonItemList, totalExp, totalMoney = NPCCommon.GiveKillNPCDropPrize(curPlayer, ChConfig.Def_FBMapID_SealDemon, {bossID:addCnt},
- mailTypeKey="SealDemonMail", isMail=isMail, prizeMultiple=prizeMultiple,
+ mailTypeKey="SealDemonMail", isMail=isMail, extraItemList=extraItemList, prizeMultiple=prizeMultiple,
dropItemMapInfo=dropItemMapInfo,isVirtualDrop=isClientSend)
for jsonItem in jsonItemList:
if 'UserData' in jsonItem:
@@ -607,6 +607,14 @@
bossID = ipyData.GetNPCID()
return bossID
+def GetSealDemonIpyData(lineID= -1):
+ #该分线刷的BOSSID
+ if lineID == -1:
+ lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
+ if lineID == -1:
+ return
+ return IpyGameDataPY.GetIpyGameDataByCondition('SealDemon', {'LineID':lineID})
+
##玩家死亡.
# @param curPlayer:死亡的玩家
# @param tick 时间戳
--
Gitblit v1.8.0