From 653fc249d1efba6462723d15b85311ced525833f Mon Sep 17 00:00:00 2001 From: JappaWakka Date: Thu, 29 Sep 2022 21:27:44 +0200 Subject: [PATCH] Added PreventMovement property and commands "@player.preventmovement" Makes the player unable to move, while still keeping control over the menu, interactions etc. "@player.allowmovement" Gives the player back their ability to move. --- P3D/Overworld/OverworldCamera.vb | 3 ++- P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/P3D/Overworld/OverworldCamera.vb b/P3D/Overworld/OverworldCamera.vb index 680018709..c73b34688 100644 --- a/P3D/Overworld/OverworldCamera.vb +++ b/P3D/Overworld/OverworldCamera.vb @@ -26,6 +26,7 @@ Public Class OverworldCamera Private _scrollSpeed As Single = 0F Private _scrollDirection As Integer = 1 Public _moved As Single = 0F + Public PreventMovement As Boolean = False Public LastStepPosition As Vector3 = New Vector3(0, -2, 0) Public YawLocked As Boolean = False @@ -634,7 +635,7 @@ Public Class OverworldCamera isActionscriptReady = OS.ActionScript.IsReady End If - If isActionscriptReady = True AndAlso ScriptBlock.TriggeredScriptBlock = False And Screen.Level.CanMove() = True Then + If isActionscriptReady = True AndAlso ScriptBlock.TriggeredScriptBlock = False AndAlso Screen.Level.CanMove() = True AndAlso PreventMovement = False Then If _thirdPerson = False And _cameraFocusType = CameraFocusTypes.Player Then FirstPersonMovement() Else diff --git a/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb b/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb index 000563068..1e10ede92 100644 --- a/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb +++ b/P3D/World/ActionScript/V2/ScriptCommands/DoPlayer.vb @@ -203,6 +203,14 @@ Case "stopmovement" Screen.Camera.StopMovement() + IsReady = True + Case "preventmovement" + CType(Screen.Camera, OverworldCamera).PreventMovement = True + + IsReady = True + Case "allowmovement" + CType(Screen.Camera, OverworldCamera).PreventMovement = False + IsReady = True Case "money", "addmoney" Core.Player.Money += int(argument)