Construction Set Skripte mit GetNextRef

P-Froggy

Vertrauter
Hi!

Ich hatte vor einen Skript mit einem GetNextRef zu schreiben, da der gerade richtig ist.
Testweise sollen NPCs z.B. unsterblich gemacht werden, dass heißt alle NPCs in der aktuellen Cell sollen am Ende unsterblich sein.
Probiert habe ich das ganze schon, hat aber nicht funktioniert.

Kann mir jemand bei dem Problem helfen?
 
Hast du vorher auch GetFirstRef bemüht und das ganze in einen Loop (Label/GoTo, bzw. While ab OBSE v0017) gesteckt?


Hier mal das Activate-Script für dein Beispiel:
Code:
scn ActivatorScript

long lIndex
ref rNPC

Begin OnActivate
	ResetAllVariables
	While ( Index < ( GetNumRefs 35 ) )
		if ( Index )
			let rNPC := ( GetNextRef )
		else
			let rNPC := ( GetFirstRef 35 )
		endif
		rNPC.SetRefEssential 1
		let Index := ( Index + 1 )
	Loop
End

Alternativ mit GetNumRefs/FirstRefInCell mit der Zelle als ersten Parameter.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: SirTroy und P-Froggy
:D

Weil ich OBSE v0017-Befehle verwendet habe. ;)


Hier für v0016:
Code:
scn ActivatorScript

long lIndex
ref rNPC

Begin OnActivate
	ResetAllVariables
	SaveIP
	if ( Index < ( GetNumRefs 35 ) )
		set rNPC to Player
		if ( Index )
			set rNPC to ( GetNextRef )
		else
			set rNPC to ( GetFirstRef 35 )
		endif
		rNPC.SetRefEssential 1
		set Index to ( Index + 1 )
		RestoreIP
	endif
End
 
  • Like
Reaktionen: SirTroy und P-Froggy
Ok, danke.
Ich hatte gedacht, dass die GetNextRef-Befehle vollständig wären und nicht mehr daran gearbeitet wird, deswgen ging ich davon aus, dass OBSE 16 ausreicht.
Hat der OBSE 16 Skript einen Nachteil, oder gibt es für die selbe Funktion noche eine andere Möglichkeit das zu skripten?
 
GetNextRef wird auch nicht mehr verändert, zumindest nicht so, dass der User etwas davon mitbekommen sollte.

Ich hab vor allem OBSE v0017-Befehle verwendet, da damit der Apple-Bug nicht mehr auftritt.
Nachteile mit der v0016-Version sollte es keine geben, läuft im Grunde aufs gleiche hinaus.