lynx Posted August 11, 2011 Posted August 11, 2011 Tyris Flare, a mod NPC has this G#TFCUT1.baf cutscene: IF True() THEN RESPONSE #1 SmallWait(2) DisplayStringHead("G#Tyris",~"What the...?"~) EquipMostDamagingMelee() SmallWait(1) ActionOverride("G#Tyris",Attack("G#TFSkeleton1")) ActionOverride("G#TFSkeleton1",Attack("G#Tyris")) ActionOverride("G#TFSkeleton2",Attack("G#Tyris")) Wait(2) //ActionOverride("G#Tyris",SwingOnce()) //SmallWait(10) Kill("G#TFSkeleton1") SmallWait(10) ActionOverride("G#Tyris",Attack("G#TFSkeleton2")) Wait(2) //ActionOverride("G#Tyris",SwingOnce()) //SmallWait(10) Kill("G#TFSkeleton2") Wait(2) ActionOverride("G#Tyris",FaceObject(Player1)) EndCutSceneMode() Wait(1) ActionOverride("G#Tyris",StartDialogueNoSet(Player1)) And it works, which is a great puzzle. All the current engine lore suggests it shouldn't — there is no call to CutSceneId nor does the first action have an object set. Who does it get run on? It's triggered by another script on an invisible observer spawned by the area: IF See(Player1) TimeOfDay(DAY) XPLT(Player1,400001) THEN RESPONSE #1 SetGlobal("G#TF.TyrisSpawn","GLOBAL",1) StartCutSceneMode() MoveViewPoint([2861.1175],VERY_FAST) Wait(1) PlaySound("EFF_108") ScreenShake([2818.1113],5) CreateVisualEffect("SPBASERD",[2818.1113]) CreateVisualEffect("SPBASERD",[2914.1048]) CreateVisualEffect("SPBASERD",[2861.1175]) SmallWait(3) CreateCreature("G#TYRS8",[2818.1113],9) CreateCreature("G#TFSKL1",[2914.1048],1) CreateCreature("G#TFSKL2",[2861.1175],7) StartCutScene("G#TFCUT1") DestroySelf() END
lynx Posted August 12, 2011 Author Posted August 12, 2011 Turns out the original is even nastier than we thought. If CutSceneId wasn't called, it discards actions until it finds one with a valid object.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.