HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Cinematic is Bugged, no Idea why.

03-21-2009, 05:41 PM#1
Burning Rose
This is a cinematic I have to explain parts of my map to new players. It's optional, but if one player wants to see it, it's shown. It had worked all the way until the latest version, and now it has some strange bug I can't identify. (The function for displaying the messsage is a custom one made so that players can't skip them:
Collapse JASS:
function TransmissionFromUnitWithName takes force toForce, unit whichUnit, string unitName, sound soundHandle, string message, integer timeType, real timeVal, boolean wait returns nothing
    // Ensure that the time value is non-negative.
    set timeVal = RMaxBJ(timeVal,0)

    set bj_lastTransmissionDuration = GetTransmissionDuration(soundHandle, timeType, timeVal)
    set bj_lastPlayedSound = soundHandle

    if IsPlayerInForce(GetLocalPlayer(), toForce) then
        // Use only local code (no net traffic) within this block to avoid desyncs.

        if (whichUnit == null) then
            // If the unit reference is invalid, send the transmission from the center of the map with no portrait.
            call DoTransmissionBasicsXYBJ(0, PLAYER_COLOR_RED, 0, 0, soundHandle, unitName, message, bj_lastTransmissionDuration)
        else
            call DoTransmissionBasicsXYBJ(GetUnitTypeId(whichUnit), GetPlayerColor(GetOwningPlayer(whichUnit)), GetUnitX(whichUnit), GetUnitY(whichUnit), soundHandle, unitName, message, bj_lastTransmissionDuration)
            if not IsUnitHidden(whichUnit) then
                call UnitAddIndicator(whichUnit, bj_TRANSMISSION_IND_RED, bj_TRANSMISSION_IND_BLUE, bj_TRANSMISSION_IND_GREEN, bj_TRANSMISSION_IND_ALPHA)
            endif
        endif
    endif
    if wait and (bj_lastTransmissionDuration > 0) then
        // call TriggerSleepAction(bj_lastTransmissionDuration)
        call WaitTransmissionDuration(soundHandle, timeType, timeVal)
    endif
endfunction

So this is the trigger for the whole cinematic (I know, it's leaky, whatever.)
Trigger:
Cinematic Copy
Collapse Events
Dialog - A dialog button is clicked for Cinematic_Vote
Collapse Conditions
(Clicked dialog button) Equal to Cinematic_Yes
Cinematic_Started Equal to False
Collapse Actions
Cinematic - Turn subtitle display override On
Set Cinematic_Started = True
Game - Unpause the game
Sound - Play Orc Theme
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Dialog - Hide Cinematic_Vote for (Picked player)
Cinematic - Disable user control for (All players)
Cinematic - Turn cinematic mode On for (All players)
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 002 <gen> for (Picked player) over 0.00 seconds
Unit - Create 1 Burning Rose for Neutral Passive at (Center of Rect 021 <gen>) facing Default building facing degrees
Unit - Remove Wander Small (Neutral) from (Last created unit)
Unit - Add a 72.00 second Generic expiration timer to (Last created unit)
Set Cinematic_Rose = (Last created unit)
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "Burning Rose", null, "Welcome to Battle for Maelaru. One of you has voted to view the Instructional Cinematic, and so I will teach you the basics.", bj_TIMETYPE_ADD, 10.00, false )
Wait 10.00 seconds
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "TRIGSTR_2492", null, "TRIGSTR_2493", bj_TIMETYPE_ADD, 7.00, false )
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 006 <gen> for (Picked player) over 0.00 seconds
Wait 11.00 seconds
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "TRIGSTR_2494", null, "TRIGSTR_2933", bj_TIMETYPE_ADD, 10.00, false )
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 005 <gen> for (Picked player) over 0.00 seconds
Cinematic - Flash a speech indicator for Barracks 0018 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Cinematic - Flash a speech indicator for Barracks 0019 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Cinematic - Flash a speech indicator for Barracks 0020 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Wait 5.00 seconds
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 005 Copy 2 <gen> for (Picked player) over 0.00 seconds
Cinematic - Flash a speech indicator for Barracks 0022 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Cinematic - Flash a speech indicator for Barracks 0021 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Cinematic - Flash a speech indicator for Barracks 0023 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Wait 5.00 seconds
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 005 Copy <gen> for (Picked player) over 0.00 seconds
Cinematic - Flash a speech indicator for Barracks 0025 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Cinematic - Flash a speech indicator for Barracks 0026 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Cinematic - Flash a speech indicator for Barracks 0024 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Wait 5.00 seconds
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "TRIGSTR_2934", null, "TRIGSTR_2935", bj_TIMETYPE_ADD, 5.00, false )
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 010 <gen> for (Picked player) over 0.00 seconds
Cinematic - Flash a speech indicator for Research Center 0043 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Wait 10.00 seconds
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "TRIGSTR_2940", null, "TRIGSTR_2941", bj_TIMETYPE_ADD, 10.00, false )
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 012 <gen> for (Picked player) over 0.00 seconds
Cinematic - Flash a speech indicator for High-Tech Trinkets 0136 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Wait 15.00 seconds
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "TRIGSTR_2936", null, "TRIGSTR_2937", bj_TIMETYPE_ADD, 5.00, false )
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 002 <gen> for (Picked player) over 0.00 seconds
Wait 5.00 seconds
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 009 <gen> for (Picked player) over 0.00 seconds
Cinematic - Flash a speech indicator for Town Hall 0016 <gen> of color (100.00%, 100.00%, 100.00%) with 0.00% transparency
Wait 5.00 seconds
Cinematic - Fade out over 5.00 seconds using texture Black Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
Custom script: call TransmissionFromUnitWithName( bj_FORCE_ALL_PLAYERS, udg_Cinematic_Rose, "TRIGSTR_2938", null, "TRIGSTR_2939", bj_TIMETYPE_ADD, 0.00, false )
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Apply Camera 002 <gen> for (Picked player) over 0.00 seconds
Wait 5.00 seconds
Cinematic - Fade in over 5.00 seconds using texture Black Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
Collapse Player Group - Pick every player in (All players) and do (Actions)
Collapse Loop - Actions
Camera - Reset camera for (Picked player) to standard game-view over 0.00 seconds
Camera - Pan camera for (Picked player) to (Center of Hero Selector <gen>) over 0.00 seconds
Unit - Remove Cinematic_Rose from the game
Cinematic - Turn cinematic mode Off for (All players)
Cinematic - Enable user control for (All players)
Sound - Stop the currently playing music theme
Set Cinematic_Started = False
Cinematic - Clear the screen of text messages for (All players)
Trigger - Run Info <gen> (checking conditions)
What it's been doing lately is not panning after the 15 second wait. Then, it doesn't display the messages, but it does fade out. And then, the worst part, is that for some reason it never leaves the cinematic mode, but it does run 'Info', the trigger that starts the rest of the map going!

I've combed through this whole thing, and I can't find a single reason. I could have sworn the trigger was unchanged since many versions ago (Which still work, even with the new patch, so I don't think it's that), so it might be from some other trigger, but I have no idea what that could be.

Can anyone help?

EDIT: I tried reducing the 15 second wait to 10 seconds, at which point it went on for 5 seconds more, and into the next message and pan before it stopped panning and removed the message. The result was the same, with cinematic mode stuck on, but the camera was in a different place. I think there must be some timer or something that's stopping this, but I don't know what.

EDIT 2: Nevermind, I fixed it. Apparently a new trigger I added with a periodic timer of 60 seconds, which I THOUGHT was disabled, has a line in it that destroys bj_FORCE_ALL_PLAYERS. Go figure.
So no one has to answer this. Should it be deleted?