Kulyok Posted February 22, 2013 Share Posted February 22, 2013 I've got a silly(maybe?) question I cannot find an answer to off the top of my head. When you want to create a cutscene where PC is alone, like a Dream Candlekeep SoA cutscene, or a Solar Conversation ToB cutscene you usually do something like this with the rest of the party(so that their dialogue/scripts/actions do not get in the way): ActionOverride(Player2,LeaveAreaLUA("AR4500","",[715.1619],2)) ActionOverride(Player3,LeaveAreaLUA("AR4500","",[733.1691],14)) ActionOverride(Player4,LeaveAreaLUA("AR4500","",[801.1736],0)) ActionOverride(Player5,LeaveAreaLUA("AR4500","",[700.1730],4)) ActionOverride(Player6,LeaveAreaLUA("AR4500","",[651.1636],2)) MultiPlayerSync() ActionOverride(Player2,MakeUnselectable(150000)) ActionOverride(Player3,MakeUnselectable(150000)) ActionOverride(Player4,MakeUnselectable(150000)) ActionOverride(Player5,MakeUnselectable(150000)) ActionOverride(Player6,MakeUnselectable(150000)) ActionOverride(Player2,ForceSpell(Player2,HOLD_PARTY)) ActionOverride(Player3,ForceSpell(Player3,HOLD_PARTY)) ActionOverride(Player4,ForceSpell(Player4,HOLD_PARTY)) ActionOverride(Player5,ForceSpell(Player5,HOLD_PARTY)) ActionOverride(Player6,ForceSpell(Player6,HOLD_PARTY)) Okay, fine, cool. But what if I want Player1 and and Xan to go somewhere in a cutscene together? I can't HOLD_PARTY Player2-Player6, because Xan is one of these. And I cannot NOT do anything to the rest of the party, because, well, there's a reason all those other cutscenes put Player2-Player6 on hold: something nasty may happen. So, what should I do? Link to comment
Kulyok Posted February 22, 2013 Author Share Posted February 22, 2013 And it naturally goes for the area positions, too. I obviously can ActionOverride(Player2,MakeUnselectable(150000)) ActionOverride(Player3,MakeUnselectable(150000)) ActionOverride(Player4,MakeUnselectable(150000)) ActionOverride(Player5,MakeUnselectable(150000)) ActionOverride(Player6,MakeUnselectable(150000)) ActionOverride(Player2,ForceSpell(Player2,HOLD_PARTY)) ActionOverride(Player3,ForceSpell(Player3,HOLD_PARTY)) ActionOverride(Player4,ForceSpell(Player4,HOLD_PARTY)) ActionOverride(Player5,ForceSpell(Player5,HOLD_PARTY)) ActionOverride(Player6,ForceSpell(Player6,HOLD_PARTY)) Wait(1) ApplySpell("O#Xan",NOHOLD_PARTY) ActionOverride("O#Xan",MakeUnselectable(1)) Wait(1) - although it does seem unelegant. But what if I want all party members to remain in one area, and Xan and PC - in another? Do another pair of LeaveAreaLUA("AR4500","",[651.1636],2)? It doesn't seem an optimal solution, either, so I hope for a better one. Link to comment
jastey Posted March 17, 2013 Share Posted March 17, 2013 This is what Weimer's Solaufein does for the fight with the Lolth's priestess. I don't understand why it covers only 4 other [PC], and you surely have to watch out for summoned creatures and the like (they also count as [PC], I think?), but it surely worked in the game to single out Solaufein for this fight (run from his script). The "nearest[PC]" is the PC because this triggers after a dialogue of Solaufein and the PC: // gate out the party IF Global("SolaFoeSpawn","GLOBAL",3) Detect(SecondNearest([PC])) THEN RESPONSE #100 CreateVisualEffectObject("SPDIMNDR",SecondNearest([PC])) CreateVisualEffectObject("SPDIMNDR",ThirdNearest([PC])) CreateVisualEffectObject("SPDIMNDR",FourthNearest([PC])) CreateVisualEffectObject("SPDIMNDR",FifthNearest([PC])) ActionOverride(SecondNearest([PC]),MoveBetweenAreas("AR0000",[0.0],0)) ActionOverride(ThirdNearest([PC]),MoveBetweenAreas("AR0000",[0.0],0)) ActionOverride(FourthNearest([PC]),MoveBetweenAreas("AR0000",[0.0],0)) ActionOverride(FifthNearest([PC]),MoveBetweenAreas("AR0000",[0.0],0)) END // gate back in the party when it's over!, SolaFoeSpawn -> 6 after talk IF Global("SolaGateIn","GLOBAL",0) CombatCounter(0) Dead("SolaFoe") THEN RESPONSE #100 ClearAllActions() AddXPObject(Myself,50000) IncrementGlobal("SolaGateIn","GLOBAL",1) SetGlobal("SolaFoeSpawn","GLOBAL",5) MoveGlobalObjectOffScreen(Player1,Myself) MoveGlobalObjectOffScreen(Player2,Myself) MoveGlobalObjectOffScreen(Player3,Myself) MoveGlobalObjectOffScreen(Player4,Myself) MoveGlobalObjectOffScreen(Player5,Myself) MoveGlobalObjectOffScreen(Player6,Myself) CreateVisualEffectObject("SPDIMNDR",Player1) CreateVisualEffectObject("SPDIMNDR",Player2) CreateVisualEffectObject("SPDIMNDR",Player3) CreateVisualEffectObject("SPDIMNDR",Player4) CreateVisualEffectObject("SPDIMNDR",Player5) CreateVisualEffectObject("SPDIMNDR",Player6) RealSetGlobalTimer("SolaTimer","GLOBAL",3200) StartDialogueNoSet(Player1) END Link to comment
Kulyok Posted March 17, 2013 Author Share Posted March 17, 2013 I guess Wes singles out Solaufein first, moves him somewhere and then moves the rest of the party? (scratches head) Because I'm not sure how it'd work otherwise. Sigh. In the end, I went with my second post here(see above), it sort of worked. Link to comment
jastey Posted March 17, 2013 Share Posted March 17, 2013 Good if it is sorted for you! To answer to your question: The script block(s) are from Sola's script, so it has to be executed while he is still with the other ones, or the xth-nearest check doesn't make sense. The (not considered) "first nearest" would be the PC, as there was a "Dialog(Player1)" beforehand (so it is assuemd Sola and the PC are closest in comparison to the other party members). I don't recall what happened to the PC, I think he was immobilized during the fight, but I definitely remember the other party members being gone during that time. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.