From 5c4ea9b4fd7f98d82e64878a5ce29d5747506f8c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 24 一月 2019 14:08:09 +0800
Subject: [PATCH] 5924 【后端】【1.5.100】诛仙Boss功能(2秒不打,停止掉血)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
index ba38246..5e00d42 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ZhuXianBoss.py
@@ -41,6 +41,7 @@
FBDict_IsReduceing = 'FBDict_IsReduceing%s' #是否掉血中
FBPlayerDict_Rank = "FBPlayerDict_Rank" # 玩家排名
FBDict_BossTotalHP = 'FBDict_BossTotalHP%s' #BOSS血量
+FBDict_LastHurtTick = 'FBDict_LastHurtTick' #上次伤害时间
g_heroHurtDict = {} #{playerID:hurt}
@@ -323,6 +324,7 @@
# @return None
def DoFB_Player_HurtNPC(curPlayer, curNPC, hurtHP):
UpdateHurtInfo(curPlayer, hurtHP)
+ GameWorld.GetGameFB().SetGameFBDict(FBDict_LastHurtTick, GameWorld.GetGameWorld().GetTick())
return
#
def UpdateHurtInfo(curPlayer, hurtHP, isAdd=False):
@@ -371,6 +373,11 @@
startTick = gameWorld.GetGameWorldDictByKey(FBDict_StartTick % lineID)
if not startTick or overTick:
return
+ lastHurtTick = gameFB.GetGameFBDictByKey(FBDict_LastHurtTick)
+ if lastHurtTick and tick - lastHurtTick >= 2000:
+ StopReduceHP(lineID, tick)
+ GameWorld.GetGameFB().SetGameFBDict(FBDict_LastHurtTick, 0)
+
FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 5000)
__CheckBossHP(tick)
@@ -616,6 +623,7 @@
if not startTick:
gameWorld.SetGameWorldDict(FBDict_RemainHP % lineID, __GetBossTotalHP(lineID))
gameWorld.SetGameWorldDict(FBDict_StartTick % lineID, tick)
+ FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 0)
return
def __GetBossTotalHP(lineID):return GameWorld.GetGameWorld().GetGameWorldDictByKey(FBDict_BossTotalHP%lineID)
@@ -670,11 +678,12 @@
def CheckCanAttackTagObjInFB(attacker, defender):
atkObjType = attacker.GetGameObjType()
defObjType = defender.GetGameObjType()
- if atkObjType == IPY_GameWorld.gotPlayer and defObjType == IPY_GameWorld.gotNPC:
- gameWorld = GameWorld.GetGameWorld()
- lineID = gameWorld.GetPropertyID() - 1
- if not gameWorld.GetGameWorldDictByKey(FBDict_IsReduceing%lineID):
- PlayerControl.NotifyCode(attacker, 'TryEnterJadeDynastyBossError_7')
+ gameWorld = GameWorld.GetGameWorld()
+ lineID = gameWorld.GetPropertyID() - 1
+ if defObjType == IPY_GameWorld.gotNPC and defender.GetNPCID() == CurFBLineBOSSID(lineID):
+ if not PyGameData.g_ZhuXianBossPlayerHurtDict.get(lineID, {}):
+ if atkObjType == IPY_GameWorld.gotPlayer:
+ PlayerControl.NotifyCode(attacker, 'TryEnterJadeDynastyBossError_7')
return False
return True
--
Gitblit v1.8.0