1
Fork 0

Compare commits

...

3 Commits

  1. BIN
      Skyrim.esm
  2. BIN
      scripts/_00E_Func_WaitForRef.pex
  3. BIN
      scripts/_00E_MQ12b_NPCControl.pex
  4. BIN
      scripts/_00e_mq12b_functions.pex
  5. 7
      source/scripts/_00E_Func_WaitForRef.psc
  6. 21
      source/scripts/_00E_MQ12b_NPCControl.psc
  7. 21
      source/scripts/_00e_mq12b_functions.psc

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,11 +1,12 @@
Scriptname _00E_Func_WaitForRef Hidden Scriptname _00E_Func_WaitForRef Hidden
Function WaitForReferenceToLoad(ObjectReference ref) Global bool Function WaitForReferenceToLoad(ObjectReference ref, int iFramesToWait = 180) Global
Int maxIterationsToWait = 180 Int maxIterationsToWait = iFramesToWait
While ref.Is3DLoaded() == False && maxIterationsToWait > 0 While ref.Is3DLoaded() == False && maxIterationsToWait > 0
; Utility.Wait(0.02)
maxIterationsToWait -= 1 maxIterationsToWait -= 1
EndWhile EndWhile
return maxIterationsToWait > 0 || ref.Is3DLoaded()
EndFunction EndFunction

@ -54,11 +54,12 @@ Function PrepareNPC(Actor akMoveActor, Bool bOnlyGhost = False)
EndFunction EndFunction
Function _RegisterDisabledNPC(Actor akMoveActor) Function _RegisterDisabledNPC(Actor akMoveActor)
int iSlot = nRegisteredDisabledNPCs nRegisteredDisabledNPCs += 1
if iSlot + 1 <= 128 ; In case an actor slips in here, RegisteredDisabledNPCs may have an empty slot in the middle, and it's fine
nRegisteredDisabledNPCs += 1 int iSlot = nRegisteredDisabledNPCs - 1
if iSlot <= 127
RegisteredDisabledNPCs[iSlot] = akMoveActor RegisteredDisabledNPCs[iSlot] = akMoveActor
Debug.Trace("Registered disabled " + akMoveActor.GetBaseObject().GetName() + " " + (akMoveActor as String)) ;Debug.Trace("Registered disabled " + akMoveActor.GetBaseObject().GetName() + " " + (akMoveActor as String))
else else
; Added overflow to the ghosted ; Added overflow to the ghosted
_RegisterGhostedNPC(akMoveActor) _RegisterGhostedNPC(akMoveActor)
@ -66,11 +67,11 @@ Function _RegisterDisabledNPC(Actor akMoveActor)
EndFunction EndFunction
Function _RegisterGhostedNPC(Actor akMoveActor) Function _RegisterGhostedNPC(Actor akMoveActor)
int iSlot = nRegisteredGhostedNPCs nRegisteredGhostedNPCs += 1
if iSlot + 1 <= 128 int iSlot = nRegisteredGhostedNPCs - 1
nRegisteredGhostedNPCs += 1 if iSlot <= 127
RegisteredGhostedNPCs[iSlot] = akMoveActor RegisteredGhostedNPCs[iSlot] = akMoveActor
Debug.Trace("Registered ghosted " + akMoveActor.GetBaseObject().GetName() + " " + (akMoveActor as String)) ;Debug.Trace("Registered ghosted " + akMoveActor.GetBaseObject().GetName() + " " + (akMoveActor as String))
else else
; oh well ; oh well
endif endif
@ -86,7 +87,7 @@ Function ReEnableNPCs()
Actor akActor = RegisteredDisabledNPCs[Index] Actor akActor = RegisteredDisabledNPCs[Index]
if akActor != None && ( ! bSKSE || akActor.GetEnableParent() == None ) if akActor != None && ( ! bSKSE || akActor.GetEnableParent() == None )
akActor.EnableNoWait() akActor.EnableNoWait()
Debug.Trace("Re-enabled: " + akActor.GetActorBase().GetName()) ;Debug.Trace("Re-enabled: " + akActor.GetActorBase().GetName())
RegisteredDisabledNPCs[Index] = None RegisteredDisabledNPCs[Index] = None
endif endif
EndWhile EndWhile
@ -102,7 +103,7 @@ Function ReEnableNPCs()
akActor.EnableNoWait() akActor.EnableNoWait()
endif endif
akActor.SetGhost(False) akActor.SetGhost(False)
Debug.Trace("Unghosted: " + akActor.GetActorBase().GetName()) ;Debug.Trace("Unghosted: " + akActor.GetActorBase().GetName())
RegisteredGhostedNPCs[Index] = None RegisteredGhostedNPCs[Index] = None
endif endif
EndWhile EndWhile

@ -325,8 +325,6 @@ EndFunction
Function StartSC07() Function StartSC07()
bArkUnderAttackPrelude = False ; stop disabling NPCs
_00E_Func_SetNPCAsCompanion.SetNPCAsCompanion(_00E_MC_TealorREF, False) _00E_Func_SetNPCAsCompanion.SetNPCAsCompanion(_00E_MC_TealorREF, False)
SetObjectiveCompleted(10) SetObjectiveCompleted(10)
@ -369,6 +367,8 @@ EndFunction
Function StartSC09() Function StartSC09()
bArkUnderAttackPrelude = False ; stop disabling NPCs
_00E_Func_SetNPCAsCompanion.SetNPCAsCompanion(_00E_MC_TealorREF, False) _00E_Func_SetNPCAsCompanion.SetNPCAsCompanion(_00E_MC_TealorREF, False)
MQ12b_SC9_PlayerRepairsMechanism.ForceStart() MQ12b_SC9_PlayerRepairsMechanism.ForceStart()
@ -638,19 +638,18 @@ EndFunction
Function TeleportYuslanToGate() Function TeleportYuslanToGate()
Wait(2) Wait(2)
_00E_MC_YuslanRef.SetActorValue("Variable03", 5)
_00E_Func_SafeMove.SafeMoveTo(_00E_MC_YuslanRef, MQ12b_SC12_YuslanTeleportMarker) _00E_Func_SafeMove.SafeMoveTo(_00E_MC_YuslanRef, MQ12b_SC12_YuslanTeleportMarker)
_00E_Func_WaitForRef.WaitForReferenceToLoad(_00E_MC_YuslanRef) _00E_Func_WaitForRef.WaitForReferenceToLoad(_00E_MC_YuslanRef)
TimeFadeIn01FXS.Play(_00E_MC_YuslanRef)
Debug.sendAnimationEvent(_00E_MC_YuslanRef, "IdleWebEnterInstant") Debug.sendAnimationEvent(_00E_MC_YuslanRef, "IdleWebEnterInstant")
_00E_MC_YuslanRef.SetActorValue("Variable03", 5)
TimeFadeOut01FXS.Stop(_00E_MC_YuslanRef)
TimeFadeIn01FXS.Play(_00E_MC_YuslanRef) TimeFadeIn01FXS.Play(_00E_MC_YuslanRef)
Game.ShakeCamera(afStrength = 0.1) Game.ShakeCamera(afStrength = 0.1)
_00E_MC_YuslanRef.playidle(WebIdleExit) Debug.sendAnimationEvent(_00E_MC_YuslanRef, "IdleWebExit")
MQ12b_SC12_YuslanTeleportMarker.PlaceAtMe(_00E_MAGEldritchShockExplosionTeleport, 1)
Utility.Wait(1.5)
TimeFadeIn01FXS.Stop(_00E_MC_YuslanRef) TimeFadeIn01FXS.Stop(_00E_MC_YuslanRef)
_00E_MC_YuslanRef.SetActorValue("Variable03", 0) _00E_MC_YuslanRef.SetActorValue("Variable03", 0)
MQ12b_SC12_YuslanTeleportMarker.PlaceAtMe(_00E_MAGEldritchShockExplosionTeleport, 1)
_00E_MC_TaranorREF.MoveTo(MQ12b_SC12_TaranorEnableMarker) _00E_MC_TaranorREF.MoveTo(MQ12b_SC12_TaranorEnableMarker)
_00E_SC_AlmaREF.MoveTo(MQ12b_SC12_AlmaMarkerREF) _00E_SC_AlmaREF.MoveTo(MQ12b_SC12_AlmaMarkerREF)
EndFunction EndFunction
@ -942,9 +941,9 @@ float TargetAngleZ
int Property iCrimeGoldBeforeMQ12bViolent Auto Hidden int Property iCrimeGoldBeforeMQ12bViolent Auto Hidden
int Property iCrimeGoldBeforeMQ12bNonViolent Auto Hidden int Property iCrimeGoldBeforeMQ12bNonViolent Auto Hidden
; TELEPORT GLOBAL; WEATHER; MUSIK ZURÜCKSETZEN! BLOCKIERTE TÜREN WIEDER ZURÜCKSETZEN! ; TELEPORT GLOBAL; WEATHER; MUSIK ZURÜCKSETZEN! BLOCKIERTE TÜREN WIEDER ZURÜCKSETZEN!
; UNWANTED NPCs ZURÜCKSETZEN! FLEE VARIABLES ZURÜCKSETZEN!! ; UNWANTED NPCs ZURÜCKSETZEN! FLEE VARIABLES ZURÜCKSETZEN!!
GlobalVariable Property AllowIdleChatter Auto GlobalVariable Property AllowIdleChatter Auto

Loading…
Cancel
Save