| | |
| | | if isDead:
|
| | | GameWorld.Log(" i=%s, 队员血量为0!, memPlayerID=%s" % (i, curTeamPlayer.GetPlayerID()))
|
| | | continue
|
| | | if not curTeamPlayer.GetVisible():
|
| | | if isDead:
|
| | | GameWorld.Log(" i=%s, 队员不可见!, memPlayerID=%s" % (i, curTeamPlayer.GetPlayerID()))
|
| | | continue
|
| | | if isDead:
|
| | | GameWorld.Log(" i=%s, 队员坐标(%s, %s)! memPlayerID=%s" % (i, curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), curTeamPlayer.GetPlayerID()))
|
| | | if npcControl.GetIsInRefreshPoint(curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), refreshPoint):
|
| | |
| | |
|
| | | if curTeamPlayer.GetCopyMapID() == GameWorld.GetGameWorld().GetCopyMapID() \
|
| | | and npcControl.GetIsInRefreshPoint(curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), refreshPoint) \
|
| | | and AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False):
|
| | | and AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False) and curTeamPlayer.GetVisible():
|
| | | __AddBossDropOwnerPlayerBuff(curTeamPlayer, tick, curNPC)
|
| | | killerDict[curTeamPlayer.GetPlayerID()] = curTeamPlayer
|
| | | if isDead:
|
| | |
| | | continue
|
| | |
|
| | | # 归属仙盟 且 在boss区域内
|
| | | if player.GetFamilyID() == ownerID and npcControl.GetIsInRefreshPoint(player.GetPosX(), player.GetPosY(), refreshPoint):
|
| | | if player.GetFamilyID() == ownerID and npcControl.GetIsInRefreshPoint(player.GetPosX(), player.GetPosY(), refreshPoint) and player.GetVisible():
|
| | | __AddBossDropOwnerPlayerBuff(player, tick, curNPC)
|
| | |
|
| | | else:
|
| | |
| | |
|
| | | def OnCheckCanDie(atkObj, curNPC, skill, tick):
|
| | | ## 检查NPC是否可死亡
|
| | | dropOwnerType = NPCCommon.GetDropOwnerType(curNPC)
|
| | | if dropOwnerType not in [ChConfig.DropOwnerType_MaxHurt]:
|
| | | return True
|
| | | tagObj = __RefreshDropOwner(curNPC, tick, 0)
|
| | | if not atkObj or not tagObj:
|
| | | GameObj.SetHP(curNPC, 1)
|
| | | GameWorld.ErrLog("Boss当前状态下不可以死亡!npcID=%s" % curNPC.GetNPCID())
|
| | | return False
|
| | | return True
|