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.