×
Меню
Индекс

MSFD Линия видимости

GetLOS, ObjectID     (returns Boolean/short)
 
     Actor_ID->GetLOS, Player
 
Недокументированная:
GetLineOfSight     (returns Boolean/short?)
(может эта работает лучше? не тестировалась)
 
Эта функция определяет, “видит” ли объект, указанный первым аргументом, объект, указанный вторым.
 
Похоже, что она не работает с объектами не-актерами, насколько я знаю.
Зрение не включает в себя направления взгляда, так что не нужно понимать видимость слишком буквально (См «Она на меня смотрит?» в разделе Советов и Трюков)
 
Примечание: GetLOS это очень медленная функция, так что не нужно вызывать ее в каждом фрейме.
 
Note (мсфд 9):
getLOS and getLineOfSight suffer from the same problem with generic NPCs as getDetected
 
Пример:
Begin balynScript
float timer
short doOnce
[…]; ссылки на темы журнала
Set timer to ( timer + GetSecondsPassed )
if ( timer < 5 ); Таймер, чтобы не тестировать слишком часто (улучшает производительность)
     Return
endif
Set timer to 0
if ( doOnce == 0 )
     if ( GetDistance Player <= 1024 )
          if ( player->GetDistance "hlaalu_loaddoor_ 02_balyn" <= 256 )
               if ( GetLOS Player == 1 )
                    ForceGreeting
                    Journal DA_Mephala 55
                    set doOnce to –1
               endif
          endif
     endif
endif
 
End