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
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
; Utility.Wait(0.02)
maxIterationsToWait -= 1
EndWhile
return maxIterationsToWait > 0 || ref.Is3DLoaded()
EndFunction

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

@ -325,8 +325,6 @@ EndFunction
Function StartSC07()
bArkUnderAttackPrelude = False ; stop disabling NPCs
_00E_Func_SetNPCAsCompanion.SetNPCAsCompanion(_00E_MC_TealorREF, False)
SetObjectiveCompleted(10)
@ -369,6 +367,8 @@ EndFunction
Function StartSC09()
bArkUnderAttackPrelude = False ; stop disabling NPCs
_00E_Func_SetNPCAsCompanion.SetNPCAsCompanion(_00E_MC_TealorREF, False)
MQ12b_SC9_PlayerRepairsMechanism.ForceStart()
@ -638,19 +638,18 @@ EndFunction
Function TeleportYuslanToGate()
Wait(2)
_00E_MC_YuslanRef.SetActorValue("Variable03", 5)
_00E_Func_SafeMove.SafeMoveTo(_00E_MC_YuslanRef, MQ12b_SC12_YuslanTeleportMarker)
_00E_Func_WaitForRef.WaitForReferenceToLoad(_00E_MC_YuslanRef)
TimeFadeIn01FXS.Play(_00E_MC_YuslanRef)
_00E_Func_WaitForRef.WaitForReferenceToLoad(_00E_MC_YuslanRef)
Debug.sendAnimationEvent(_00E_MC_YuslanRef, "IdleWebEnterInstant")
_00E_MC_YuslanRef.SetActorValue("Variable03", 5)
TimeFadeOut01FXS.Stop(_00E_MC_YuslanRef)
TimeFadeIn01FXS.Play(_00E_MC_YuslanRef)
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)
_00E_MC_YuslanRef.SetActorValue("Variable03", 0)
MQ12b_SC12_YuslanTeleportMarker.PlaceAtMe(_00E_MAGEldritchShockExplosionTeleport, 1)
_00E_MC_TaranorREF.MoveTo(MQ12b_SC12_TaranorEnableMarker)
_00E_SC_AlmaREF.MoveTo(MQ12b_SC12_AlmaMarkerREF)
EndFunction
@ -942,9 +941,9 @@ float TargetAngleZ
int Property iCrimeGoldBeforeMQ12bViolent 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

Loading…
Cancel
Save