Editing
MoveTo - ObjectReference/uk
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[Category:Scripting]] [[Category:Papyrus]] [[Category:Latent Functions]] '''Член''' [[ObjectReference Script/uk|ObjectReference Script]] [[ObjectReference Script|(en)]] Переміщує поточний об'єкт до місця розташування іншого об'єкту із зазначеним відхиленням. == Синтаксис == <syntaxhighlight lang="papyrus"> Function MoveTo(ObjectReference akTarget, float afXOffset = 0.0, float afYOffset = 0.0, float afZOffset = 0.0, bool abMatchRotation = true) native </syntaxhighlight> == Параметри == *akTarget: Цільовий об'єкт, до якого потрібно перемістити поточний об'єкт. *afXOffset: Відхилення від початкових координат по вісі X. **'''За замовчуванням:''' 0.0 *afYOffset: Відхилення від початкових координат по вісі Y. **'''За замовчуванням:''' 0.0 *afZOffset: Відхилення від початкових координат по вісі Z. **'''За замовчуванням:''' 0.0 *abMatchRotation: Булеве значення, яке визначає, чи повинен переміщений об'єкт успадкувати обертання від цільового об'єкту. **'''За замовчуванням:''' True == Повернення значень == Немає. == Приклади == <syntaxhighlight lang="papyrus"> ; Переміщує Боба до його будинку, позначеного маркером BobsHouseMarker Bob.MoveTo(BobsHouseMarker) </syntaxhighlight> <br/> <syntaxhighlight lang="papyrus"> ; Переміщує Боба до його будинку, але без успадкування обертань Bob.MoveTo(BobsHouseMarker, abMatchRotation = false) </syntaxhighlight> <br/> <syntaxhighlight lang="papyrus"> ; Переміщує Portal на 120 од. перед гравцем, та на 35 од. нижче його зросту Actor PlayerRef = Game.GetPlayer() Portal.MoveTo(PlayerRef, 120.0 * Math.Sin(PlayerRef.GetAngleZ()), 120.0 * Math.Cos(PlayerRef.GetAngleZ()), PlayerRef.GetHeight() - 35.0) </syntaxhighlight> == Зауваження == * Слід уникати використання MoveTo() для розміщення інших акторів у полі зору гравця, оскільки вони раптово з'являтимуться перед очима гравця, що є досить нереалістично. Замість цього, розгляньте можливість розміщення їх поруч, але поза зоною видимості, потім змусьте їх наближатися до гравця самостійно, використовуючи [[PathToReference - Actor/uk|PathToReference]] [[PathToReference - Actor|(en)]] або [[ForceGreet (Procedure)/uk|ForceGreet]] [[ForceGreet (Procedure)|(en)]]. * Об'єкти групи FLOR (рослини) не можна переміщувати за допомогою MoveTo. * Використання MoveTo() для переміщення актора до об'єкту групи FURN (меблі) призведе до того, що персонаж одразу займе положення, яке відповідає за «використання» цих меблів, без відтворення відповідних анімацій. Наприклад: PlayerRef.MoveTo(BedReference) змусить гравця лягти на ліжко (без відтворення анімації). * MoveTo може призводити до небажаних результатів під час переміщення об'єкта до іншого актора, кути обертання X та Y якого є відносними до кута огляду цього актора, а не до їхнього обертання відносно світу. Крім того, як і [[SetPosition - ObjectReference/uk|SetPosition]] [[SetPosition - ObjectReference|(en)]], MoveTo не враховує нерівний рельєф місцевості. ** Щоб «вирівняти» або зробити обертання об'єкта плоским, встановіть параметр abMatchRotation на False або викличте [[SetAngle - ObjectReference/uk|SetAngle]] [[SetAngle - ObjectReference|(en)]], як показано нижче: <syntaxhighlight lang="papyrus"> myObject.MoveTo(Game.GetPlayer()) ;або будь-яка інша ціль для MoveTo() myObject.SetAngle(0.0, 0.0, 0.0) </syntaxhighlight> * Актор, переміщений за допомогою цієї функції, завжди має правильний поворот відносно світу. == Поширені проблеми == * Якщо актор вже знаходиться в комірці (cell) разом із гравцем, або тільки заходить чи виходить з неї, то метод MoveTo() не спрацює. Оскільки комірки можуть бути досить великими в містах та багатоповерхових будівлях, це може призвести до ситуації, коли діалог відбувається з актором, який знаходиться поза зоною видимості та/або поза межами чутності. Спробуйте послідовність [[DisableNoWait - ObjectReference/uk|DisableNoWait]]() [[DisableNoWait - ObjectReference|(en)]], MoveTo(), [[EnableNoWait - ObjectReference/uk|EnableNoWait]]() [[EnableNoWait - ObjectReference|(en)]], [[EvaluatePackage - Actor/uk|EvaluatePackage]]() [[EvaluatePackage - Actor|(en)]]. Слідкуйте, щоб послідовність відбувалася поза полем зору гравця, наприклад, під час проходження через [[Door/uk|двері]] [[Door|(en)]], що ведуть у іншу локацію. * As of 1.9, calling Game.GetPlayer().MoveTo(AnyBedReference) will cause the Player's eyes to become stuck shut. They can only be opened again by using the showracemenu console command, or by reloading the game. ** New workaround: The player's eyes/facial expression can be quickly and easily reset by using Actor.Say() to make the player "say" a topic that the player character has voice lines for. A good example of a topic like this is the DialogueGenericPoisonCoughBranchTopic from the DialogueGeneric quest. You can also make your own custom, silent topic so long as it has sound (can be a silent .wav file) and lip sync. Note: Actor.Say() must be called after the player is completely out of the bed and not performing any bed animations, including the "bed get up" animation or else it will not correctly reset the player's face. * All movement functions can cause [[SetMotionType - ObjectReference#Bugs|major issues]] when used on a reference that has had a [[SetMotionType - ObjectReference|motion type override]] applied. * If you are moving a reference to an unloaded cell, its rotation will not be changed. This is an issue that is expected to affect all movement functions, and it was discovered via disassembly of Skyrim's 2011 release. (SKSE DLL authors will want to know that the problem occurs within the ''MoveRefrToPosition'' subroutine.) == Див. також == *[[ForceGreet (Procedure)]] *[[MoveToInteractionLocation - ObjectReference]] *[[MoveToMyEditorLocation - ObjectReference]] *[[ObjectReference Script]] *[[PathToReference - Actor]] *[[SetPosition - ObjectReference]] *[[Unit]] <br>{{UkrainianPage|t}} {{Languages|MoveTo - ObjectReference}}
Summary:
Please note that all contributions to the CreationKit Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see
CreationKit:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Box
(
edit
)
Template:Languages
(
edit
)
Template:LanguagesBox
(
edit
)
Template:LanguagesLang
(
edit
)
Template:LanguagesTitle
(
edit
)
Template:UkrainianPage
(
edit
)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
Edit source
View history
More
Search
Navigation
Landing page
Tutorials
Game Systems
Editor Reference
Scripting Reference
Recent changes
Help
Tools
What links here
Related changes
Special pages
Page information
Page values