From 9631243d61ac32d2e4f89e321f30241cfd040689 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 16 三月 2019 17:42:50 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(使用拍品数据同步优化)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py | 79 +++++++++++++++++++++++++++++++++------
1 files changed, 66 insertions(+), 13 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
index ac35418..6d8d8c7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -18,7 +18,7 @@
import IPY_GameWorld
import PlayerControl
import GameWorldProcess
-import PlayerMergeEvent
+import PlayerSuccess
import ReadChConfig
import ShareDefine
import FBCommon
@@ -325,13 +325,13 @@
return
-## 副本中召唤兽死亡(被击杀或者时间到等)
+## 副本中NPC死亡(被击杀或者时间到等)
# @param curNPC
# @return None.
-def DoFB_SummonNPCDead(curNPC):
+def DoFB_NPCDead(curNPC):
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
- callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_SummonNPCDead"))
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_NPCDead"))
if callFunc:
callFunc(curNPC)
@@ -355,6 +355,16 @@
return
+def DoFBOnNPCKill_Player(curNPC, curPlayer, tick):
+ ## 副本内NPC杀人
+ do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
+
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnNPCKill_Player"))
+
+ if callFunc:
+ #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID))
+ return callFunc(curNPC, curPlayer, tick)
+ return
#---------------------------------------------------------------------
## 任务专用,触发事件(副本内攻击人)
# @param curPlayer 攻击者
@@ -485,7 +495,7 @@
gameMapID = gameMap.GetMapID()
#如果已经设置过副本功能线路属性,则进入时同步玩家,一般下线重登或者非第一个进入该副本的玩家(如队友)会收到该包
- if FBCommon.GetHadSetFBPropertyMark():
+ if FBCommon.GetHadSetFBPropertyMark() and gameMap.GetMapFBType() != IPY_GameWorld.fbtSingle:
PlayerControl.SetFBFuncLineID(curPlayer, FBCommon.GetFBPropertyMark())
#成长NPC所需数据初始化
@@ -507,12 +517,15 @@
#注册玩家离开副本时间
gameFBMgr.SetPlayerLogoffTick(0)
+ PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_EnterMap, 1, [gameMapID])
+
if gameFBMgr.HaveFBPlayer(curPlayerID):
#已经注册了这个玩家, 不清除已注册的玩家的字典信息
return
#注册进入这个副本的玩家
gameFBMgr.AddFBPlayer(curPlayerID)
+
return
def DoEnterFB(curPlayer, tick):
@@ -523,6 +536,18 @@
if callFunc != None:
GameWorld.Log("DoEnterFBLogic...", curPlayer.GetPlayerID())
callFunc(curPlayer, tick)
+ return
+
+def OnCallHelpBattleOK(curPlayer, tick):
+ ## 召唤助战完成
+ do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
+
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCallHelpBattleOK"))
+
+ if callFunc != None:
+ GameWorld.Log("OnCallHelpBattleOK...", curPlayer.GetPlayerID())
+ callFunc(curPlayer, tick)
+
return
def InitFBNPCStrengthenData(curPlayer, gameMap):
@@ -673,9 +698,6 @@
if callFunc:
#GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID))
callFunc(curPlayer , tick)
-
- #有玩家离开副本广播一次
- PlayerMergeEvent.BroadcastMergePlayerEvent()
#如果是最后一个人离开副本, 那么设置副本的离开时间, 5分钟后副本关闭
__PlayerLeaveSetPlayerLogoffTick(curPlayer, tick)
@@ -862,6 +884,18 @@
callFunc(tick)
return
+## 开始采集
+# @param curPlayer 当前玩家
+# @param curNPC 当前NPC
+# @return None or False
+# @remarks 函数详细说明.
+def OnBeginCollect(curPlayer, curNPC):
+ do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnBeginCollect"))
+ if callFunc:
+ callFunc(curPlayer, curNPC)
+ return
+
## 收集中(家族战副本中的棋和塔)
# @param curPlayer 当前玩家
# @param tick 当前时间
@@ -879,7 +913,7 @@
# @param tick 当前时间
# @return None or False
# @remarks 函数详细说明.
-def OnCollectOK(curPlayer, tick):
+def OnCollectOK(curPlayer, npcID, tick):
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCollectOK"))
@@ -889,7 +923,7 @@
return False
#执行副本逻辑
- callFunc(curPlayer, tick)
+ callFunc(curPlayer, npcID, tick)
return
## 玩家离开副本
@@ -1195,7 +1229,7 @@
def PlayerLoginInFBCheck(curPlayer, tick):
gameMap = GameWorld.GetMap()
#如果此地图是自动释放的, 需要检查这个玩家
- if gameMap.GetMapFBType() == 0:
+ if gameMap.GetMapFBType() in [IPY_GameWorld.fbtNull, IPY_GameWorld.fbtCrossVSRoom]:
return False
#玩家 在副本中,并且副本不踢出玩家下线
@@ -1439,6 +1473,17 @@
return False
return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
+
+## 副本助战扫荡结果
+def OnPlayerFBHelpBattleSweepResult(curPlayer, mapID, lineID, helpBattlePlayerDict, addXianyuanCoin, reason):
+ do_FBLogic_ID = __GetFBLogic_MapID(mapID)
+
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBHelpBattleSweepResult"))
+
+ if callFunc == None:
+ return False
+
+ return callFunc(curPlayer, mapID, lineID, helpBattlePlayerDict, addXianyuanCoin, reason)
## 开始公共CD副本扫荡
def OnStartPubCDFBSweep(curPlayer, mapID, lineID, cnt, dataEx):
@@ -1885,14 +1930,14 @@
# @param mapID 玩家
# @param tick 当前时间
# @return None-未找到,线路id - 0~N
-def GetFBLineMaxPlayerCount(mapID):
+def GetFBLineMaxPlayerCount(mapID, lineID):
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBLineMaxPlayerCount"))
if callFunc:
- return callFunc()
+ return callFunc(lineID)
return 0
@@ -2097,3 +2142,11 @@
return callFunc(curPlayer, tick)
+def OnPlayerLVUp(curPlayer):
+ ## 玩家升级
+ do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
+ callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerLVUp"))
+ if callFunc == None:
+ return False
+ return callFunc(curPlayer)
+
\ No newline at end of file
--
Gitblit v1.8.0