| | |
| | |
|
| | | #--------------------------------------------------------------------------
|
| | |
|
| | | def CheckSightLevel(attacker, defender):
|
| | | ## 判断是否可视视野层级
|
| | | # @return 是否在可视视野层
|
| | | if not attacker.GetVisible() or not defender.GetVisible():
|
| | | return False
|
| | | if defender.GetSightLevel() == ChConfig.SightLevel_Public or attacker.GetSightLevel() == ChConfig.SightLevel_Public:
|
| | | return True
|
| | | return attacker.GetSightLevel() == defender.GetSightLevel()
|
| | |
|
| | | #--------攻击对象判断,给内层调用
|
| | |
|
| | | ## 攻击对象,通用判断
|
| | |
| | | #GameWorld.Log("defender = %s->%s 这个对象不可攻击"%(defender.GetName(),defender.GetID()))
|
| | | return False
|
| | |
|
| | | if attacker.GetSightLevel() != defender.GetSightLevel():
|
| | | if not CheckSightLevel(attacker, defender):
|
| | | return False
|
| | |
|
| | | atkObjType = attacker.GetGameObjType()
|