Storing the points for Point's getter in an array would be more efficient; the worst case scenario would execute much faster (no comparisons required vs. maximum of eight comparisons required, or if you want to get technical: O(1) vs. O(n) ). Something like this (note: not sure about array syntax for Papyrus):
ObjectReference Function Get()
return PointXx[Increment-1]
EndFunction
You'd then have to declare an array of ObjectReferences as a property (is that possible? If it's not, you'd have to initialize the array/its elements). Also, this assumes that Increment will have a minimum value of 1 (would be better if it started at 0, since you could eliminate the subtraction (not that it'd make much of a difference)) and that Papyrus arrays use zero-based indexing. Another benefit of doing it this way: adding/removing points requires only modification of the array property.
To be honest, you could completely remove the getter and just access the array directly in the OnTranslationComplete() event.
Float PlayerPosX = getPlayer().GetPositionX()
Float PlayerPosY = getPlayer().GetPositionY()
Float PlayerPosZ = getPlayer().getPositionZ()
Wouldn't hurt to store GetPlayer() in a variable, instead of calling the function three times. Save a couple of clock cycles, could make a difference due to Papyrus' multi-threaded nature.
If Increment < 9
If PlayerPosX == OBJPosX
If PlayerPosY == OBJPosY
If PlayerPosZ == OBJPosZ
GetPlayer().TranslateToRef(Point, 5000)
EndIf
EndIf
EndIf
EndIf
If Increment == 9
;Do my other secret stuff!
GoToState ("Finished")
EndIf
Setting this up like this:
if( Increment < 9)
; do whatever
elseif( Increment == 9) ; using just an 'else' is another possibility. Based on what TK posted, I'd recommend it since there's no chance of Increment being larger than 9.
; do whatever, version 2
endif
Would be a minor improvement since only one of the two conditions is ever going to execute.
Hopefully this made sense. Kinda drunk and I make not very much sense when drunk.