Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
EtherBot

Any way to simulate an intermission screen in a map?

Recommended Posts

I want one of my maps to open with what looks like regular intermission screen between levels (when in fact the intermission itself is being displayed on screen through the map, and not an actual intermission) but I'm not sure how to achieve such a thing. Printing text on screen is a massive blindspot of mine (since theres almost never a good reason to do it) and im really finding the pages on the wiki about it very confusing. I'm thinking the map has a camera pointed to a wall with the text being displayed on the HUD, but how can I make sure the text appears one letter at a time? Is there an easy way to create that wrap around as the text reaches the edge of the screen? I considered animated it as a texture and just putting that in the game but that feels like a cop out and might display incorrectly on differing resolutions. Please reply if you have any advice, thanks.

Share this post


Link to post
Posted (edited)

In the tutorials section of this forum, about halfway

down of page 1, you'll find

 

Kappes Buur's Tutorials for GZDOOM

 

In there is a section named Various Topics, which

includes a tutorial about Intermission Text.

 

Edited by Kappes Buur

Share this post


Link to post
Posted (edited)

Are you mapping in UDMF format? Because if this is the case you can write a quite simple ACS script that simulates an intermission screen everywhere you want (just like the one in ultimate simplicity). I don't know if it's possible to completly simulate the original intermission screen but if it is not essential to your intermission to be exactly like the original one there will be no problem.

Spoiler

Just for your curiosity, if you are mapping in UDMF and want to try this method you can simply open your map in one of the DB editors and do the following steps:

 

1) if you want a "background image" of a wall, simply create a dumb sector outside of the map and insert a security camera facing the wall (thing type 9025 if you don't find it) . In visual mode you can raise his heigth from the floor to better center the wall. 

This camera will be your intermission screen point of view.

Then tag the camera. In this example I will be using tag 10, for no specific reason.

 

2) Go in the script editor (default key F10 in GZDB), go in the script section and write the following code:

 

script 1 ENTER 

{

          SetPlayerProperty (1, 1, PROP_TOTALLYFROZEN);

          FadeTo (255, 255, 255, 1.0, 0.1);

          Delay (7);

          ChangeCamera (10, 1 ,0);

          Delay (28);

          FadeTo (255, 255, 255, 0.0, 0.1);

 

          HudMessage (s: "Hello"; HUDMSG_TYPEON, 0, CR_WHITE, 0.5, 0.5, 196665, 0.3, 1);

         Delay (350);

                

          FadeTo (255, 255, 255, 1.0, 0.1);

          Delay (7);

          ChangeCamera (0, 1 ,0);

          Delay (28);

          FadeTo (255, 255, 255, 0.0, 0.1);

          SetPlayerProperty (1, 0, PROP_TOTALLYFROZEN);

}

 

As you can see I've divided the script in three blocks (only to explain it to you, you don't have to do that)

So:

script 1 ENTER 

means that the script 1 will start as soon as one player enters the map. Having that you are the only player to join the map (So not multiplayer support), this script will de facto open your map with your intermission

 

Setplayerproperty...

will make the player completly unable to move or shoot, giving the illusion of an intermission screen that is not part of the map (not a moment of the gameplay, in other words)

 

Fadeto...

will change the screen color to white, so the player doesn't see the change of the point of view

 

Changecamera ...

this is the most important part. This will change the point of view of the player to the one of the tagged thing, in this case pur security camera that point to the wall in the dumb sector

 

2nd fadeto...

this will revert the colors to the default ones, so the player can see the wall and can have the impression of an intermission screen

 

HudMessage 

this is the message that will be print on screen. HUDMSG_TYPEON means that the message will be printed letter by letter with an interval of 0.3 seconds between one letter and the other. This message will remain on screen for 3 seconds (196665. The formula is 1873x35x number of seconds)

You can change the message replacing "hello" with anything you want.

If you want to change the color replace CR_GRAY with CR_(your color).

 

The third part of thw script simply changes the point of view to the one of the player and gives him the ability to move and shoot

 

The delay () commands simply delays the execution of the rest of the script. Keep in mind that 35 means 1 second if you want to change them.

 

I will post an example map as soon as possible if you need it

 

Share this post


Link to post
Posted (edited)
2 hours ago, Kappes Buur said:

In the tutorials section of this forum, about halfway

down of page 1, you'll find

 

Kappes Buur's Tutorials for GZDOOM

  

In there is a section named Various Topics, which

includes a tutorial about Intermission Text.

 

Haha, sorry I understand how to set up actual intermissions and clusters, etc. What I'm trying to do is script a fake intermission within a map that might pass for a normal one. It seems like your section titled "Script Exit_Normal" might(?) be something similar to what im looking for but im not entirely sure.

 

@Simomarchi An example map would be really helpful if you'd be so kind

Edited by EtherBot

Share this post


Link to post
Posted (edited)
2 hours ago, EtherBot said:

An example map would be really helpful if you'd be so kind

Here you are 

Format : UDMF

IWAD : Doom2 

Open with Zdoom or GZDoom only

 

 

Example_intermission.7z

 

Edit: I've just read again my code in the map. It works but the comments present some spelling errors. Sorry for that 

Edited by Simomarchi

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×