mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-07-31 01:35:20 +02:00
Added <system.scripttrigger>
Returns what triggered the current script (NPCInSight, NPCInteract, ScriptBlockWalkOn, ScriptBlockInteract, Notification, PhoneReceive, PhoneCall, StartScript, ScriptCommand, StrengthTrigger, MapScript, ChatCommand).
This commit is contained in:
parent
d9473e5454
commit
78cd53d745
@ -87,6 +87,10 @@
|
|||||||
If Core.CurrentScreen.Identification = Screen.Identifications.OverworldScreen Then
|
If Core.CurrentScreen.Identification = Screen.Identifications.OverworldScreen Then
|
||||||
Dim oS As OverworldScreen = CType(Core.CurrentScreen, OverworldScreen)
|
Dim oS As OverworldScreen = CType(Core.CurrentScreen, OverworldScreen)
|
||||||
|
|
||||||
|
Dim scriptTrigger As String = "ScriptBlockWalkOn"
|
||||||
|
If Me.clickedToActivate = True Then
|
||||||
|
scriptTrigger = "ScriptBlockInteracted"
|
||||||
|
End If
|
||||||
If oS.ActionScript.IsReady = True Or canAttach = True Then
|
If oS.ActionScript.IsReady = True Or canAttach = True Then
|
||||||
If Me.CorrectRotation() = True Then
|
If Me.CorrectRotation() = True Then
|
||||||
If Me.clickedToActivate = True Then
|
If Me.clickedToActivate = True Then
|
||||||
@ -94,9 +98,9 @@
|
|||||||
SoundManager.PlaySound("select")
|
SoundManager.PlaySound("select")
|
||||||
End If
|
End If
|
||||||
If Me.TriggerID = 2 Then
|
If Me.TriggerID = 2 Then
|
||||||
oS.ActionScript.StartScript(Me.AdditionalValue, GetActivationID())
|
oS.ActionScript.StartScript(Me.AdditionalValue, GetActivationID(),,, scriptTrigger)
|
||||||
Else
|
Else
|
||||||
oS.ActionScript.StartScript(Me._scriptID, GetActivationID())
|
oS.ActionScript.StartScript(Me._scriptID, GetActivationID(),,, scriptTrigger)
|
||||||
ActionScript.TempSpin = True
|
ActionScript.TempSpin = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
End If
|
End If
|
||||||
If ActivateScript <> "" Then
|
If ActivateScript <> "" Then
|
||||||
If Core.CurrentScreen.Identification = Screen.Identifications.OverworldScreen Then
|
If Core.CurrentScreen.Identification = Screen.Identifications.OverworldScreen Then
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(Me.ActivateScript, 0, False)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(Me.ActivateScript, 0, False,, "StrengthTrigger")
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
@ -302,13 +302,13 @@
|
|||||||
SoundManager.PlaySound("select")
|
SoundManager.PlaySound("select")
|
||||||
Select Case Me.ActionValue
|
Select Case Me.ActionValue
|
||||||
Case 0
|
Case 0
|
||||||
oScreen.ActionScript.StartScript(Me.AdditionalValue, 1)
|
oScreen.ActionScript.StartScript(Me.AdditionalValue, 1,,, "NPCInteract")
|
||||||
Case 1
|
Case 1
|
||||||
oScreen.ActionScript.StartScript(Me.AdditionalValue, 0)
|
oScreen.ActionScript.StartScript(Me.AdditionalValue, 0,,, "NPCInteract")
|
||||||
Case 3
|
Case 3
|
||||||
oScreen.ActionScript.StartScript(Me.AdditionalValue.Replace("<br>", Environment.NewLine), 2)
|
oScreen.ActionScript.StartScript(Me.AdditionalValue.Replace("<br>", Environment.NewLine), 2,,, "NPCInteract")
|
||||||
Case Else
|
Case Else
|
||||||
oScreen.ActionScript.StartScript(Me.AdditionalValue, 0)
|
oScreen.ActionScript.StartScript(Me.AdditionalValue, 0,,, "NPCInteract")
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
@ -438,10 +438,8 @@
|
|||||||
End If
|
End If
|
||||||
End With
|
End With
|
||||||
|
|
||||||
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(s, 2,,, "NPCInSight")
|
||||||
Screen.Level.OwnPlayer.Opacity = 0.5F
|
ActionScript.IsInSightScript = True
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(s, 2)
|
|
||||||
ActionScript.IsInsightScript = True
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
@ -199,7 +199,7 @@
|
|||||||
|
|
||||||
If s.Identification = Screen.Identifications.OverworldScreen Then
|
If s.Identification = Screen.Identifications.OverworldScreen Then
|
||||||
If testForScript = False Then
|
If testForScript = False Then
|
||||||
CType(s, OverworldScreen).ActionScript.StartScript("version=2" & Environment.NewLine & text & Environment.NewLine & ":end", 2, False)
|
CType(s, OverworldScreen).ActionScript.StartScript("version=2" & Environment.NewLine & text & Environment.NewLine & ":end", 2, False,, "ChatCommand")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return text
|
Return text
|
||||||
|
@ -131,7 +131,7 @@ Public Class NotificationPopup
|
|||||||
If Me._positionY <= BackY Then
|
If Me._positionY <= BackY Then
|
||||||
Me._positionY = BackY
|
Me._positionY = BackY
|
||||||
If Me._scriptFile <> "" Then
|
If Me._scriptFile <> "" Then
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(Me._scriptFile, 0, False)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(Me._scriptFile, 0, False,, "Notification")
|
||||||
End If
|
End If
|
||||||
Me.IsReady = True
|
Me.IsReady = True
|
||||||
End If
|
End If
|
||||||
|
@ -166,14 +166,14 @@ Public Class OverworldScreen
|
|||||||
Public Overrides Sub Update()
|
Public Overrides Sub Update()
|
||||||
If GameModeManager.ActiveGameMode.StartScript <> "" AndAlso ActionScript.IsReady AndAlso Not GlobalGameModeScriptStarted Then
|
If GameModeManager.ActiveGameMode.StartScript <> "" AndAlso ActionScript.IsReady AndAlso Not GlobalGameModeScriptStarted Then
|
||||||
ActionScript.reDelay = 0.0F
|
ActionScript.reDelay = 0.0F
|
||||||
ActionScript.StartScript(GameModeManager.ActiveGameMode.StartScript, 0)
|
ActionScript.StartScript(GameModeManager.ActiveGameMode.StartScript, 0,,, "StartScript")
|
||||||
GlobalGameModeScriptStarted = True
|
GlobalGameModeScriptStarted = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'If the MapScript has a value loaded from the MapScript map tag and there is no script running, start that script:
|
'If the MapScript has a value loaded from the MapScript map tag and there is no script running, start that script:
|
||||||
If LevelLoader.MapScript <> "" And ActionScript.IsReady = True Then
|
If LevelLoader.MapScript <> "" And ActionScript.IsReady = True Then
|
||||||
ActionScript.reDelay = 0.0F
|
ActionScript.reDelay = 0.0F
|
||||||
ActionScript.StartScript(LevelLoader.MapScript, 0)
|
ActionScript.StartScript(LevelLoader.MapScript, 0,,, "MapScript")
|
||||||
|
|
||||||
LevelLoader.MapScript = "" 'Reset the MapScript.
|
LevelLoader.MapScript = "" 'Reset the MapScript.
|
||||||
End If
|
End If
|
||||||
|
@ -1364,7 +1364,7 @@
|
|||||||
|
|
||||||
Player.Temp.PokegearPage = Me.menuIndex
|
Player.Temp.PokegearPage = Me.menuIndex
|
||||||
Core.SetScreen(Me.PreScreen)
|
Core.SetScreen(Me.PreScreen)
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript("phone\" & chosenID, 0)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript("phone\" & chosenID, 0,,, "PhoneCall")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub InitializePhone()
|
Private Sub InitializePhone()
|
||||||
@ -1448,7 +1448,7 @@
|
|||||||
|
|
||||||
Call_Flag = "receiving"
|
Call_Flag = "receiving"
|
||||||
|
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript("phone\" & chosenID, 0)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript("phone\" & chosenID, 0,,, "PhoneReceiving")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -1501,7 +1501,7 @@
|
|||||||
|
|
||||||
Call_Flag = "receiving"
|
Call_Flag = "receiving"
|
||||||
|
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript("phone\" & chosenID, 0)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript("phone\" & chosenID, 0,,, "PhoneReceiving")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -92,15 +92,25 @@ nextScript:
|
|||||||
End If
|
End If
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
Private Shared _scriptTrigger As String = ""
|
||||||
|
Public Shared Property ScriptTrigger() As String
|
||||||
|
Get
|
||||||
|
Return _scriptTrigger
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
_scriptTrigger = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
Public Shared IsInsightScript As Boolean = False
|
|
||||||
|
Public Shared IsInSightScript As Boolean = False
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Starts a script.
|
''' Starts a script.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
''' <param name="Input">The input string.</param>
|
''' <param name="Input">The input string.</param>
|
||||||
''' <param name="InputType">Type of information; 0: Script path, 1: Text, 2: Direct input.</param>
|
''' <param name="InputType">Type of information; 0: Script path, 1: Text, 2: Direct input.</param>
|
||||||
Public Sub StartScript(ByVal Input As String, ByVal InputType As Integer, Optional ByVal CheckDelay As Boolean = True, Optional ByVal ResetInsight As Boolean = True)
|
Public Sub StartScript(ByVal Input As String, ByVal InputType As Integer, Optional ByVal CheckDelay As Boolean = True, Optional ByVal ResetInsight As Boolean = True, Optional ScriptTrigger As String = "")
|
||||||
Screen.Level.OwnPlayer.Opacity = 1
|
Screen.Level.OwnPlayer.Opacity = 1
|
||||||
If Core.Player.IsRunning = True OrElse Screen.Level.Riding = True Then
|
If Core.Player.IsRunning = True OrElse Screen.Level.Riding = True Then
|
||||||
Screen.Camera.Speed = 0.04F
|
Screen.Camera.Speed = 0.04F
|
||||||
@ -114,8 +124,10 @@ nextScript:
|
|||||||
|
|
||||||
Dim l As ScriptLevel = ScriptLevels(ScriptLevelIndex)
|
Dim l As ScriptLevel = ScriptLevels(ScriptLevelIndex)
|
||||||
|
|
||||||
|
ActionScript.ScriptTrigger = ScriptTrigger
|
||||||
|
|
||||||
If ResetInsight = True Then
|
If ResetInsight = True Then
|
||||||
IsInsightScript = False
|
IsInSightScript = False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If reDelay = 0.0F Or CheckDelay = False Then
|
If reDelay = 0.0F Or CheckDelay = False Then
|
||||||
|
@ -13,11 +13,11 @@
|
|||||||
If Core.CurrentScreen.Identification = Screen.Identifications.OverworldScreen Then
|
If Core.CurrentScreen.Identification = Screen.Identifications.OverworldScreen Then
|
||||||
Select Case command.ToLower()
|
Select Case command.ToLower()
|
||||||
Case "start"
|
Case "start"
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(argument, 0, True, False)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(argument, 0, True, False, "ScriptCommand")
|
||||||
Case "text"
|
Case "text"
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(argument, 1, True, False)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(argument, 1, True, False, "ScriptCommand")
|
||||||
Case "run"
|
Case "run"
|
||||||
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(argument, 2, True, False)
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(argument, 2, True, False, "ScriptCommand")
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
@ -77,6 +77,8 @@
|
|||||||
buttonName = KeyBindings.GetKeyName(key)
|
buttonName = KeyBindings.GetKeyName(key)
|
||||||
End If
|
End If
|
||||||
Return buttonName
|
Return buttonName
|
||||||
|
Case "scripttrigger"
|
||||||
|
Return ActionScript.ScriptTrigger
|
||||||
Case "random"
|
Case "random"
|
||||||
Dim minRange As Integer = 1
|
Dim minRange As Integer = 1
|
||||||
Dim maxRange As Integer = 2
|
Dim maxRange As Integer = 2
|
||||||
@ -130,7 +132,7 @@
|
|||||||
|
|
||||||
Return DefaultNull
|
Return DefaultNull
|
||||||
Case "isinsightscript"
|
Case "isinsightscript"
|
||||||
Return ReturnBoolean(ActionScript.IsInsightScript)
|
Return ReturnBoolean(ActionScript.IsInSightScript)
|
||||||
Case "lastinput"
|
Case "lastinput"
|
||||||
Return InputScreen.LastInput
|
Return InputScreen.LastInput
|
||||||
Case "return"
|
Case "return"
|
||||||
|
@ -411,7 +411,8 @@ Namespace ScriptVersion2
|
|||||||
r(New ScriptCommand("system", "sort", "str", {New ScriptArgument("sortMode", ScriptArgument.ArgumentTypes.Str, {"ascending", "descending"}),
|
r(New ScriptCommand("system", "sort", "str", {New ScriptArgument("sortMode", ScriptArgument.ArgumentTypes.Str, {"ascending", "descending"}),
|
||||||
New ScriptArgument("returnIndex", ScriptArgument.ArgumentTypes.Int),
|
New ScriptArgument("returnIndex", ScriptArgument.ArgumentTypes.Int),
|
||||||
New ScriptArgument("list", ScriptArgument.ArgumentTypes.Arr)}.ToList(), "Sorts the list after sortmode and returns the item at the given index.", ",", True))
|
New ScriptArgument("list", ScriptArgument.ArgumentTypes.Arr)}.ToList(), "Sorts the list after sortmode and returns the item at the given index.", ",", True))
|
||||||
r(New ScriptCommand("system", "isinsightscript", "bool", "Returns if the running script was triggred by the inSight function of an NPC.", ",", True))
|
r(New ScriptCommand("system", "ScriptTrigger", "string", "Returns what triggered the current script (NPCInSight, NPCInteract, ScriptBlockWalkOn, ScriptBlockInteract, Notification, PhoneReceive, PhoneCall, StartScript, ScriptCommand, StrengthTrigger, MapScript, ChatCommand).", ",", True))
|
||||||
|
r(New ScriptCommand("system", "IsInSightScript", "bool", "Returns if the running script was triggered by the inSight function of an NPC.", ",", True))
|
||||||
r(New ScriptCommand("system", "lastinput", "str", "Returns the last input received from the input screen (@screen.input).", ",", True))
|
r(New ScriptCommand("system", "lastinput", "str", "Returns the last input received from the input screen (@screen.input).", ",", True))
|
||||||
r(New ScriptCommand("system", "return", "str", "Returns the value set with the "":return"" switch.", ",", True))
|
r(New ScriptCommand("system", "return", "str", "Returns the value set with the "":return"" switch.", ",", True))
|
||||||
r(New ScriptCommand("system", "isint", "bool", {New ScriptArgument("expression", ScriptArgument.ArgumentTypes.Str)}.ToList(), "Checks if the expression is an integer (Outdated, use <math.isint> instead).", ",", True))
|
r(New ScriptCommand("system", "isint", "bool", {New ScriptArgument("expression", ScriptArgument.ArgumentTypes.Str)}.ToList(), "Checks if the expression is an integer (Outdated, use <math.isint> instead).", ",", True))
|
||||||
|
@ -94,6 +94,7 @@
|
|||||||
|
|
||||||
Public Sub EndScript(ByVal forceEnd As Boolean)
|
Public Sub EndScript(ByVal forceEnd As Boolean)
|
||||||
ActionScript.ScriptLevelIndex -= 1
|
ActionScript.ScriptLevelIndex -= 1
|
||||||
|
ActionScript.ScriptTrigger = ""
|
||||||
If ActionScript.ScriptLevelIndex = -1 Or forceEnd = True Then
|
If ActionScript.ScriptLevelIndex = -1 Or forceEnd = True Then
|
||||||
ActionScript.ScriptLevelIndex = -1
|
ActionScript.ScriptLevelIndex = -1
|
||||||
Dim oS As OverworldScreen = CType(Core.CurrentScreen, OverworldScreen)
|
Dim oS As OverworldScreen = CType(Core.CurrentScreen, OverworldScreen)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user