×
Меню
Индекс

MSFD Функции размеров

GetScale (float)
SetScale newScale_float
ModScale scaleChange_float
 
If (doonce == 0 )
     Object_ID -> SetScale 0.1
     Set doonce to 1
endif
 
Эти функции используются, чтобы установить или изменить размеры копии объекта.
Любой размер должен быть между (не включительно) 0 и 10 (так что можно задавать его вне 0.5 и 2, что первоначально отрицалось Bethesda)(инфа от Mode Locrian).
Скрипт выше может использоваться, чтобы обойти ограничение на размер, которое накладывает CS.
 
Примечание: Не следует вызывать SetScale каждый фрейм, особенно в экстерьерах и других медленных с точки зрения FPS ситуациях.
При загрузке игры размер сбросится в значение между 0.5 – 2. Потому не используйте однократных условий, а вызывайте функцию регулярно.
Например, каждые 10 фреймов или проверяя текущий размер объекта функцией GetScale:
 
if ( GetScale != 5 ) SetScale, 5
 
Также можно использовать стартовый скрипт Трибунала или Бладмуна.
Он будет однократно проверять размеры объектов при загрузке игры1 (Информация с форумов / JOG).
 
Пример:
Этот скрипт от Беседки показывает как увеличивать и уменьшать предмет.
Когда скрипт помещен на объект, активация копии объекта дает возможность игроку изменять ее размер.
 
Begin scalescript
 
short questionAsked
short button
 
float direction
float currscale
float tempscale
 
if ( MenuMode )
     return
endif
 
if ( OnActivate == 1 )
          if ( questionAsked == 0 )
               MessageBox, "Сделать этот объект..."  "...Больше"  "...Меньше"
               set questionAsked to 1
          endif
endif
 
if ( questionAsked == 1 )
     set button to GetButtonPressed
     if ( button == -1 )
     else
          if ( button == 0 )
               set direction to 1
          elseif ( button == 1 )
               set direction to –1
          endif
          set questionAsked to 0
          set button to 0
     endif
endif
 
if ( direction != 0 )
     set tempscale to .3 * GetSecondsPassed
     set tempscale to tempscale * direction
     ModScale tempscale
     set currscale to GetScale
     if ( direction == -1 )
          if ( currscale <= .5 )
               set direction to 0
          endif
     else
          if ( currscale >= 2 )
               set direction to 0
          endif
     endif
endif
 
end scalescript