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

How do you make a conversation just like in Strife? (GZDoom In UDMF Format)

Recommended Posts

This is something that I have been trying to figure out for a while now but I couldn't seem to find any tutorials about it. So how do you do it? I kind of want to have this in the WAD that I've started working a few weeks ago. I also want to know how to make a single piece of dialogue activate an action, like a door opening or a cutscene.

Share this post


Link to post

This might help.

 

Here's a dialog script I made for Metroid Doom a while back. The dialog script gets placed in the same WAD as your map. This script uses an invisible Evil Eye actor positioned by a computer screen in a certain map to trigger the dialog when the player presses the Use key:

 

namespace = "ZDoom";
include = "SCRIPT00";

conversation
{
	//EvilEye test dialog
	actor = "EvilEye";
	page
	{
		name = "EvilEye testing dat mothafuckin dialog";
		dialog = "Please enter your destination coordinates:";
		choice
		{
			text = "Go back to base.";
			yesmessage = "Destination Home mapped! Inputting coordinates...";
			special = 80;
			arg0 = 1;
			closedialog = true;
		}
		choice
		{
			text = "Go to Savara.";
			yesmessage = "Destination Savara mapped! Inputting coordinates...";
			special = 80;
			arg0 = 2;
			closedialog = true;
		}
		choice
		{
			text = "Go to Norion.";
			yesmessage = "Destination Norion mapped! Inputting coordinates...";
			special = 80;
			arg0 = 3;
			closedialog = true;
		}
		choice
		{
			text = "Go to Chozodia.";
			yesmessage = "Destination Chozodia mapped! Inputting coordinates...";
			special = 80;
			arg0 = 4;
			closedialog = true;
		}
		choice
		{
			text = "Go to Daiban.";
			yesmessage = "Destination Daiban mapped! Inputting coordinates...";
			special = 80;
			arg0 = 5;
			closedialog = true;
		}
		choice
		{
			text = "Go to Billium.";
			yesmessage = "Destination Billium mapped! Inputting coordinates...";
			special = 80;
			arg0 = 6;
			closedialog = true;
		}
	}
	Page
	{
		name = "GFGuard testing dat mothafuckin dialog";
		dialog = "This is a test right?";
		Choice
		{
			text = "Give me Spazer Beam pl0x.";
			yesmessage = "I already gave you one!";
			CloseDialog = true;
		}
	}
}

You can ignore the lines that say 'special'. Those simply call special 80, which lets you run a numbered script in the map. The arg0 field specifies which script to run. In this case, if I choose to go to Norion, it runs script 3 which simply warps to map NORION. You can specify certain dialog options to only show if the player has or doesn't have a certain item too.

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
×