temnix Posted May 30, 2022 Share Posted May 30, 2022 Cutscenes and just actions that transport the party somewhere assume that all of the characters are in the same place. Even if they are off in a building somewhere, they will be pulled from there to appear at the destination. And scripts like Garrick's walk in BG1 make the whole party follow to particular spots on the ground. I don't know how a cutscene like that would work if the party members were in a different area, perhaps they are teleported first, but I would like to know how to limit these moving mechanics to party members in the same area or even a small part of an area. Writing a check for every one wouldn't help, because it's obviously not sensible to make scripts for all the combinations. And I myself have made a mod that lets the party split up and adventure in different places on the world map. If they are somehow gathered from miles away and thrown on the same landing bay, that won't be good for suspension of disbelief. This applies to transporting actions in dialogues, too. Let's say I have an encounter in a building (not a separate area, no "you must gather" to enter) that ends with all of the party members there being kicked out. Well, I can put LeaveAreaLUA actions there, but who should they include? It may be just one character who ventured inside, and then I could target LastTalkedToBy, but there may be others with him - or the full party. If I include them all just in case and they were somewhere completely different before, maybe even fighting, and now all appear before the door, that's going to be weird. The only idea I have is putting the action in the script of an invisible minion and throwing an area-of-effect spell on LastTalkedToBy, limited to PC. When the conversation ends, a minion will spring up for every party member there and transport him separately. This is going to come with a delay, though. Any other ideas? Quote Link to comment
Ardanis Posted May 30, 2022 Share Posted May 30, 2022 (edited) Use StartCutsceneEx("cutscene",TRUE), it allows to evaluate conditions in script blocks. Like, you can structure its blocks as: 1) Initial fadeout, etc. 2-7) If playerX is in area/range, move them to appropriate point 8) The rest of cutscene You can also split the main body in parts and insert more party checks between those, i.e. for walking around, casting etc. That's if you assign the same SetCutsceneID() object for all blocks, they'll be processed in sequence then. If you have too many places where party presence check is important, you can make one composite block for each party member and assign it to themselves. Different IDs run their blocks simultaneously, although it may or may not be harder to time, so that they're not out of sync with the main cutscene action. As for dialog actions, I think you're out of luck  You can launch StartCutsceneEx() at the exit transition, and maybe - just maybe - kick SecondNearest([PC]) out, but the latter will only work within visual range of performing actor. Off the top of my head, the SoD's cutscene after the bridge explosion makes PC walk towards Caelar from any (unknown beforehand) place inside of the camp, and Caelar will wait exactly until PC reaches the position. I think the filename is bdcut16.bcs, or possibly 14, 15 or 17. Edited May 30, 2022 by Ardanis Quote Link to comment
temnix Posted May 30, 2022 Author Share Posted May 30, 2022 Thanks for thinking. Quote Link to comment
temnix Posted June 1, 2022 Author Share Posted June 1, 2022 Hey, @Ardanis! You might want to know that the trick with using minions to transport characters individually works well enough, only the game crashes if the dispatch is between different master areas. Because the minion is not global, I think, and can't complete the operation when the PC flies out of the area. Quote Link to comment
Ardanis Posted June 2, 2022 Share Posted June 2, 2022 Possibly. During SoD production we had developed a rule to always use Player1 for area transitions, particularly for main story events, because it was guaranteed to work without issues. Quote Link to comment
temnix Posted June 2, 2022 Author Share Posted June 2, 2022 Except that if you also need to send along a non-party NPC and there is no other PC left behind, the area will be disabled and the NPC will stay behind. Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.