• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Player Cancels cinematic Transmission

Status
Not open for further replies.
Level 7
Joined
Jul 1, 2008
Messages
1,025
Hi just a quick question,

I have a cinematic transmission that plays at map startup, the problem is when one player presses ESC the transmission cancels for all players.

If I trigger it so the transmission plays individually for each player, then if one player presses ESC it won't cancel for all players? It will just cancel for that individual player?
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
I'm not sure if you can/or it would be a good use of time to try and GetLocalPlayer numerous Cinematics, instead I would recommend you either
Periodically send the proper transmission every .1 seconds in case someone tries to skip. OR Even better... Look here

http://www.hiveworkshop.com/forums/cinematics-268/tips-tricks-cinema-39854/

And see how to disable the skip cinematic button.
(You can re-enable it later)
 
It will cancel it for all players, so long as someone has received a transmission. In fact, you could even show a cinematic for one player, and some troll who doesn't have the cinematic could spam esc to mess up that guy's cinematic. :p

The best route is probably to just ignore the esc commands by disabling transmissions in general (see pOke's link). You can trigger your own Esc thing, if you want too. Theoretically, you could use the script in the link and then combine it with a custom esc event that does this:
JASS:
if GetLocalPlayer() == GetTriggerPlayer() then
    call StopSound(bj_cineSceneLastSound, false, true)
    call EndCinematicScene()
endif

I haven't tested if it causes any issues sync-wise, though. I imagine it wouldn't, since it is just a matter of displaying the transmission.
 
Last edited:
^It will allow that, but only after you have made a transmission. (TryInitCinematicBehaviorBJ() has to be called first, otherwise it is destroying a null trigger)

So basically, you would make one transmission, put that code afterward, and then it'll disable the esc-skipping feature. (to reenable in that case, you would set bj_cineSceneBeingSkipped = null)

If you want to disable it on map init, see:
http://wc3jass.com/5248/snippet-disable-transmission-skip/msg40200/topicseen/#new
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
I see it tries to reinit the trigger everytime, so it would have to be after every transmission line. Therefore you should set

  • Custom script: set bj_cineSceneBeingSkipped = CreateTrigger()
a dummy value, so the initer thinks the trigger would already exist. Or just do what PurgeandFire suggested.
 
Status
Not open for further replies.
Top