| | |
| | | FBDict_IsReduceing = 'FBDict_IsReduceing%s' #是否掉血中
|
| | | FBPlayerDict_Rank = "FBPlayerDict_Rank" # 玩家排名
|
| | | FBDict_BossTotalHP = 'FBDict_BossTotalHP%s' #BOSS血量
|
| | | FBDict_LastHurtTick = 'FBDict_LastHurtTick' #上次伤害时间
|
| | |
|
| | | g_heroHurtDict = {} #{playerID:hurt}
|
| | |
|
| | |
| | | # @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):
|
| | |
| | | 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)
|
| | |
|
| | |
| | | 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)
|
| | |
| | | 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
|
| | |
|