Cinematic / Talk Idea

rileyknight

New Member
Reaction score
0
So I had this idea where every time a character talks to a quest giver, the screen goes into letterbox mode, and the camera zooms into the quest giver they're talking to and a message appears from the quest giver. On the bottom of the letterbox are different options and they can press g, h, j or k that are different messages they can say to the quest giver, which will generate different responses from the quest giver. Is this possible?

And would I have to come up with different camera views for each quest giver, or is there a shortcut to creating a zoom at the front of the quest giver?
 

Accname

2D-Graphics enthusiast
Reaction score
1,464
As far as i know all cinematic / letterbox mode settings are affecting all players by default.
To do this only for a specific player you would need to use at least a little bit of Jass because you would need to filter out the "local player".

For the camera zoom stuff, you can get the face direction of the unit, subtract it by 180 and you will have your camera face the units face. then you can zoom in to whatever value you like and set the angle of attack if needed.
when you activate the letterbox / cinematic mode the player wont be able to move the camera around or to reset it to default using the mouse wheel.

For the input:
It is not able to know whether the player has pressed any keys using wc3's scripts. The only way for "g", "h", "j" and "k" would be to use abilities with the proper shortkeys. But abilities cannot be used by the player if you enable cinematic / letterbox mode.
Another possibility, but i am not sure about this, would be to use the arrow keys + ESC. these keys are the only ones you can check whether they are pressed or not by the script.
 

rileyknight

New Member
Reaction score
0
As far as i know all cinematic / letterbox mode settings are affecting all players by default.
To do this only for a specific player you would need to use at least a little bit of Jass because you would need to filter out the "local player".

So what you're saying is this won't work?:
Trigger:
  • Cinematic - Turn on letterbox mode (hide interface) for (Player group((Triggering player))): fade out over 0.00 seconds
 

ZakkWylde-

New Member
Reaction score
14
EDIT: I wrote a bunch of somewhat irrelevant sh1t because I am ignorant. I'll put spoiler tags around it, I guess... (never mind, can't find it--you can see my IGNORANCE below). However, the IGNORANCE idea is still viable, if it offers you some extra benefits.

NOW, REGARDING YOUR TRIGGER :D :
Triggering player may not work properly, because it is likely a unit triggering the event. In that case...

Trigger:
  • Cinematic - Turn on letterbox mode (hide interface) for (Player group((Owner of (Triggering unit))): fade out over 0.00 seconds



Here is the old post:
IGNORANCE:

Code:
As far I can tell, (Triggering player) is not a Player group...

You could potentially add each player to his/her own group, by using a Group array, and then adding each player to udg_yourGroup[indexOfPlayer].  Add Player 1 to udg_yourGroup[1], Player 2 to udg_yourGroup[2], etc... 

Also, create a global integer (i'll call it udg_index).

Then, when the cinematic is triggered, set  udg_index = GetPlayerId(GetTriggeringPlayer())  [sorry not sure exactly how the GUI looks, but it should be pretty evident].
If Triggering player does not work, try GetOwningPlayer(GetTriggerUnit()) [B][I]IN PLACE OF[/I][/B] GetTriggeringPlayer().  [again, the GUI will read slightly differently...but it should be evident]

Then, use the Action you have above, but replace (Triggering player) with udg_yourGroup[udg_index].  Lemme know if you have questions...
Im gonna go find the GUI for this...
 

Accname

2D-Graphics enthusiast
Reaction score
1,464
So what you're saying is this won't work?:
Trigger:
  • Cinematic - Turn on letterbox mode (hide interface) for (Player group((Triggering player))): fade out over 0.00 seconds

there are certain problems as far as i can remember. one would be that the whole map is becoming visible for all players if cinematic or letterbox modes are activated, even if just for one player.
 

rileyknight

New Member
Reaction score
0
NOW, REGARDING YOUR TRIGGER :D :
Triggering player may not work properly, because it is likely a unit triggering the event. In that case...
You are correct. I was using that as a demonstration.


As far I can tell, (Triggering player) is not a Player group...
That is incorrect. You can use a function inside of the group selection drop down that says "Convert Player to Group" which essentially makes the player its own group. Which if I'm not mistaken, sets up a temporary group controlled by WC3.

there are certain problems as far as i can remember. one would be that the whole map is becoming visible for all players if cinematic or letterbox modes are activated, even if just for one player.

Are you sure? I know for sure that fog of war stays in effect, unless otherwise triggered. So what exactly becomes visible?
 

Accname

2D-Graphics enthusiast
Reaction score
1,464
You can try a multiplayer game and enable the cinematic mode for a single player, all players will get full vision of the map for the entire duration of the cinematic mode, even if they can still play.

I know this "bug" (rather a bad designed function) existed in the versions i used of WE, but thats already more then a year ago. It might have been fixed in the meantime (although its not very likely).
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top