Jump to content

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.

Edited by R4L

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...