Hi All,
(Tchos: Yes, I believe I took part in that post, but did not have this idea at the time. EDIT: I found that post: http://forum.bioware...middle-of-game/ )
Anyway, here is my rough starting code, which has been tested as working. NOTE: Having a movie start as you enter an area needs to be carefully managed (I think) because of the amount of other stuff that goes on at time of loading. In my own campaign, I have not yet had a movie start at area load, although, if managed properly, I don't see why it should not work just as well. You can even have scripts fire *after* the movie has finished playing. 
This fires the Atari Logo movie file (WHICH COMES WITH NWN2) ... simply replace "AtariLogo" with the BIK file you need to play, and make this a unique XML file. This one is called "LBMovie_AtariLogo.xml".
NB: "alpha.tga" is just a very small transparent image so the GUI works as expected. EDIT: Updated this to be a very small "black" image (just kept the same name for simplicity). The difference simply stops the "Game Paused" image from flashing up briefly after the video ends. If you preferred it the old way (with the brief flash of text), then you need to replace this image with a transparent alpha image again.
LINK TO IMAGE: https://dl.dropboxus...47935/alpha.tga
<?xml version="1.0" encoding="utf-8"?>
<!-- Main Menu definition -->
<UIScene name="SCREEN_MOVIE" x=0 y=0 idleexpiretime="0.1" priority="SCENE_INGAME" fullscreen=true scriptloadable=true backoutkey=true OnBackout=UIObject_MISC_ExecuteServerScript("gui_lb_movies")
OnAdd0=UIScene_Misc_SetPauseState("true") OnAdd1=UIButton_Input_ShowMovie("AtariLogo") />
<!-- Define the MOVIE background -->
<UIIcon name="MOVIE_ALPHA" img="alpha.tga" x=0 y=0 width=PARENT_WIDTH height=PARENT_HEIGHT scalewithscene=true OnMouseEnter=UIObject_MISC_ExecuteServerScript("gui_lb_movies")/>
And here is the NWN script that is called (gui_lb_movies):-
// MOVIE SCRIPT
void CloseMovieScreen()
{
object oPC = GetFirstPC();
while(oPC != OBJECT_INVALID)
{
CloseGUIScreen(oPC, "SCREEN_MOVIE");
oPC = GetNextPC();
}
}
void main()
{
SetPause(FALSE);
DelayCommand(0.01, CloseMovieScreen());
}
NOTE: I intend to update this script to work for MP as well. i.e. Movie will be made to fire for one player or all on the server. If just for one player, then make sure SetPause is not set TRUE. (You should get the idea from this anyway.)
Please let me know if anybody has a go with this and gets results they hoped.
Finally, just to have something trigger your movie, this script is attached to a lever, called "MOVIE" and has the name of the movie inside a variable (as detailed in the script):-
void main()
{
object oPlayer = GetLastUsedBy();
if(GetName(OBJECT_SELF) == "MOVIE")
{
string sMovie = GetLocalString(OBJECT_SELF, "MOVIE");
DisplayGuiScreen(oPlayer,"SCREEN_MOVIE", TRUE, "LBMovie_" + sMovie + ".xml");
SendMessageToPC(oPlayer, "<<< MOVIE PLAYING >>>");
return;
}
}
Cheers,
Lance.