I'm trying to write a script let check the player outfit during the SysDef undercover quest, but I'm not exactly sure what's the best way to trigger the script, I tried it with a quest with OnPlayerTeleport event but it's not working, any idea?
Scriptname CheckDisguiseScript extends Quest
Armor Property Clothes_CrimsonFleet_Space_Crew_01 Auto
Armor Property Clothes_CrimsonFleet_SpacePirate_02 Auto
Armor Property Spacesuit_CrimsonFleet_Assault Auto
Armor Property Spacesuit_CrimsonFleet_Charger Auto
Armor Property Spacesuit_CrimsonFleet_Officer Auto
Armor Property Spacesuit_CrimsonFleet_Sniper Auto
GlobalVariable Property CF_SysDefShutdown Mandatory Const Auto
Message Property DisguiseWarningMessage Auto
Location Property StationTheKeyInteriorLocation Auto
Quest Property CF03 Auto
Quest Property CF04 Auto
Quest Property CF05 Auto
Quest Property CF06 Auto
Quest Property CF07 Auto
Event OnQuestInit()
RegisterForStages()
EndEvent
Event OnPlayerTeleport()
Actor playerRef = Game.GetPlayer()
SpaceshipReference HomeShip = Game.GetPlayerHomeSpaceShip()
if (CF_SysDefShutdown.GetValue() == 0 && CF03.GetStageDone(1000) && !CF07.GetStageDone(1000) && playerRef.GetCurrentLocation() == StationTheKeyInteriorLocation)
if (!playerRef.IsEquipped(Clothes_CrimsonFleet_Space_Crew_01) && !playerRef.IsEquipped(Clothes_CrimsonFleet_SpacePirate_02) && !playerRef.IsEquipped(Spacesuit_CrimsonFleet_Assault) && !playerRef.IsEquipped(Spacesuit_CrimsonFleet_Charger) && !playerRef.IsEquipped(Spacesuit_CrimsonFleet_Officer) && !playerRef.IsEquipped(Spacesuit_CrimsonFleet_Sniper))
DisguiseWarningMessage.Show()
playerRef.MoveTo(HomeShip)
endif
elseif(CF07.GetStageDone(1000))
UnRegisterForStages()
endif
EndEvent
Function RegisterForStages()
RegisterForRemoteEvent(CF03, "OnPlayerTeleport")
RegisterForRemoteEvent(CF04, "OnPlayerTeleport")
RegisterForRemoteEvent(CF05, "OnPlayerTeleport")
RegisterForRemoteEvent(CF06, "OnPlayerTeleport")
RegisterForRemoteEvent(CF07, "OnPlayerTeleport")
EndFunction
Function UnRegisterForStages()
UnRegisterForRemoteEvent(CF03, "OnPlayerTeleport")
UnRegisterForRemoteEvent(CF04, "OnPlayerTeleport")
UnRegisterForRemoteEvent(CF05, "OnPlayerTeleport")
UnRegisterForRemoteEvent(CF06, "OnPlayerTeleport")
UnRegisterForRemoteEvent(CF07, "OnPlayerTeleport")
EndFunction