×
Меню
Индекс

MSFD Определяем позицию и поворот объекта

GetPos, axis(x/y/z)
 
 
Object_ID -> GetPos, z
 
Когда вы двигаете объект при помощи функций, описанных выше, вы, возможно, захотите получить информацию о его текущем местоположении.
В следующем примере я использовал функцию, чтобы управлять движением источника света (огня), для создания костра, который медленно разгорается и затухает, в зависимости от времени суток — стартовая позиция огня по координате Z — 511:
 
Begin _HB_Scheduled fire
 
short control_fire
 
; Скрипт присоединен к NPC, охраняющему огонь
;******* это управляет расписанием огня:
if ( GetDistance, "HB_Furn_De_Firepit_camp" < 600 )
     If ( GameHour < 17 )
          if ( HB_Light_Fire_camp -> GetPos Z >= 400 )
               HB_Light_Fire_camp -> MoveWorld z, -0.1 ; Двигать огонь вниз
          else    
               HB_Light_Fire_camp -> disable
          endif
     elseif ( GameHour >= 17)
          HB_Light_Fire_camp -> enable
          if ( HB_Light_Fire_camp -> GetPos Z < 511 )
               HB_Light_Fire_camp -> MoveWorld z, 0.1 ; Двигать огонь вверх
          else    
               HB_Light_Fire_camp -> enable
          endif
     endif
endif
 
end
 
GetAngle , axis(x/y/z)                    (returns float)
 
If ( Object_Id -> GetAngle, z == 180 )
 
Функция GetAngle возвращает угол в мировых координатах, не локальных.
Мировые углы могут принимать значения от 0 до 180 и 0 до –180 (с рисунок для оси Z)
Примечание: Это работает и с неписями и объектами, однако для игрока (и я думаю, для других актеров) важна только ось z – для других осей GetAngle всегда возвращает 0.