Djinni Wiki
Advertisement

Now we will create another conversation for Siegfried. This will be displayed when Geralt (the player) accepts Siegfried’s quest (the quest conversation that we created earlier) but has not completed it yet. Later, after killing the bandit leader, Geralt will have to inform Siegfried of his success. We will use this same conversation for this purpose. The nodes displayed in this conversation will depend on values of the flags.

Let’s return to our conversation. We don’t need to create a new file. So that the quest conversation does not disturb our work, we can collapse the branch by clicking on a small ‘-‘ sign beneath the “Hello Geralt” node:

Image1273

To expand the branch simply click on the small ‘+’ sign beneath the “Hello Geralt" node:

Image1275

To add a standard conversation, select the new conversation node and right-click:

Image1277

Select Create Dialog Node from the menu:

Image1273

This creates the first empty node of a standard conversation:

Image1281

To create a cutscene conversation, i.e. one which will be employed in a film made using The Witcher’s engine, select Create Cutscene Node from the menu. A cutscene conversation doesn’t differ much from a standard one. The only difference is that standard and quest conversations can be placed in the same file, but a cutscene conversation cannot. It must be saved separately. It is not possible to add a standard or quest conversation to a cutscene conversation file. Keep that in mind.

Let’s go back to our standard conversation. Since the node we added the first of the conversation, it was certainly uttered by Siegfried. Double-click on the empty node and write “Geralt, have you dealt with the bandit leader yet?” Then press ENTER:

Image1283

Now we must ensure that the conversation is displayed only if the orders_received flag has a value of 1 (true). Since quest conversations’ flag properties are only modifiable in the After Flags section, the values of those flags are set after choosing particular conversation nodes. Standard conversations’ flag properties, in contrast, also have both the After Flags section and a Required Flags section. In this other section, flag values are checked (and not set) before displaying a particular node – only when a particular flag has the required value is the node is displayed.

Let’s add the orders_received flag to the Required Flags section so that the game will know to check it. To do this, click the right-hand column opposite the Add Flag attribute and select orders_received from the menu list:

Image1285

This adds the flag to the Required Flags section:

Image1287

In order for the conversation starting from the “Geralt, have you dealt with the bandit leader yet?" node to be displayed, the value of the orders_received flag must be 1. And so it is. We will add one more flag, though. It will have the value 1 (true) when Geralt (the player) kills the bandit leader and informs Siegfried of his success. To add the flag, click on the small yellow icon in the right-hand column opposite the Add Flag attribute in the Required Flags section:

Image1289

The Flags window will open:

Image1291

Right-click the field and select Create Name from the menu:

Image1293

In the Enter name window which opens, write results_reported:

Image1295

Click on OK. That way we already have three flags:

Image1297

Click the right-hand column opposite the Add Flags attribute in Required Flags section and select results_reported from the list:

Image1299

This gives two flags in the section:

Image1301

Set the value of the results_reported flag to 0 (false). To do this, click the right-hand column opposite the results_reported flag and write 0. Then hit ENTER:

Image1303

The standard conversation we are creating will only be displayed when the value of the orders_received flag is 1 (i.e. the player has already received a quest from Siegfried) and the value of the results_reported flag is 0 (i.e. the player has not reported back on killing the bandit leader).

Let’s continue creating conversation nodes. Now we’ll add a reply for Geralt. Select the “Geralt, have you dealt with the bandit leader yet?” node then right-click:

Image1305

Select Create Dialog Reply from the menu:

Image1307

This adds an empty node for Geralt’s reply:

Image1301

Double-click the empty node and write “No, not yet”. Then hit ENTER:

Image1311

This node will be displayed only when Geralt has not killed the bandit leader yet. Click the right-hand column opposite the Add Flags attribute in the Required Flags section and select leader_killed from the list:

Image1313

This adds the flag to the Required Flags section:

Image1315

Change the value to 0 (false) so that this conversation node will only be displayed if the bandit leader has not been killed by Geralt. Click the right-hand column opposite the leader_killed flag and write 0. Then press ENTER:

Image1317

Now we’ll add a conversation node with a different response. Right-click on the "Geralt, have you dealt with the bandit leader yet?" node again:

Image1319

Select Create Dialog Reply from the menu

Image1321

Double-click on the empty node we have just added:

Image1323

Write “Yes, the bastard’s dead” . Then hit ENTER:

Image1325

This node will only be displayed after Geralt has killed the bandit leader. To do this, click the right-hand column opposite the Add Flags attribute in the Required Flags section and select leader_killed from the list:

Image1327

This adds flag leader_killed flag to the Required Flags section. Because its default value is 1 (true), we do not have to change anything:

Image1329

Now we’ll add a node for Siegfried’s response to Geralt’s success. Select the “Yes, the bastard’s dead” node and right-click:

Image1331

Select Create Dialog Entry from the menu:

Image1333

Now double-click on the empty node and write “Well done, Geralt! Here’s your 500 orens” . Then hit ENTER:

Image1335

This node can also serve as Siegfried’s report. To do this, set the value of the results_reported flag to 1 (true). Click the right-hand column opposite the Add Flags attribute in the After Flags section and select results_reported from the list:

Image1337

This adds the flag to the After Flags section. We don’t have to change its value because it is 1 (true), which is exactly what we want:

Image1339

Finally, we need to add a way of exiting the conversation with Siegfried. Select the “Geralt, have you dealt with the bandit leader yet?” node and right-click:

Image1341

Select Create Dialog Reply from the menu:

Image1343

Now double-click on the empty node and write “Farewell.” Then hit ENTER:

Image1345

That completes Siegfried’s second conversation. We will prepare a third conversation, however. This simple conversation will be displayed every time Geralt (the player) talks to Siegfried after killing the bandit leader and reporting back.

Collapse the branch containing the second conversation by clicking on a small ‘-‘ sign located next to the “Geralt, have you dealt with the bandit leader yet? node:

Image1347

This will make the next conversation easier to create in the same file.

Image1349

To add a new conversation, select new conversation then right-click:

Image1351

Select Create Dialog Node from the menu:

Image1353

This adds a new, empty node for Siegfried’s reply:

Image1355

Double-click on the empty node and write “Well done, Geralt!”. Then hit ENTER:

Image1357

Now we set the conversation to be displayed only when both the leader_killed and results_reported flags have a value of 1. To change the settings, click the right-hand column opposite the Add Flags attribute in the Required Flags section and select leader_killed from the list:

Image1359

This adds the leader_killed flag to the Required Flags section. We don’t have to change its value, since it is automatically set on 1 (True).

Image1361

Now add the other flag. Click the right-hand column opposite the Add Flags attribute in the Required Flags section again and select results_reported from the list:

Image1363

This adds the second flag to the section. Again, we do not have to change the value of the flag:

Image1365

Because of these flags, this conversation will now be displayed after Geralt has killed the bandit leader and reported back to Siegfried. Now we’ll add another conversation node, but we want Siegfried to keep talking. All the conversations so far have been carried out in turns – first one person spoke, then the second and so on. There is a way around this, however. Select the “Well done, Geralt!” node and right-click:

Image1367

Select Create Continue from the menu:

Image1369

This is how we add a node which is not displayed during a conversation. This will skip Geralt’s, i.e. the player’s, turn to speak:

Image1371

Select the new node and right-click. Now select Create Dialog Entry from the menu:

Image1373

This adds yet another node:

Image1375

The new node is Siegfried’s. Double-click on it and write “Keep it up! ”. Then hit ENTER:

Image1377

That’s it when it comes to creating conversations. Siegfried’s conversation is ready. It looks like this:

Image1379

All we have to do now is save the conversation. To do this, select Save As… from the File menu:

Image1381

This opens the standard Windows window used for saving files. Conversations must be saved in the Dialogues folder. Go to that folder, enter the name siegfried_conversation and click on Save. Remember that the name of the file cannot exceed 16 characters. Otherwise the D’jinni Editor will not see it. Make sure the file is saved in the .dlg format:

Image1383

If a different type of file is listed instead, it probably means that you’re trying to save the content in another open window by accident. Before saving a new spawn set, make sure that the new conversation window is active. If it is inactive, the title bar will be grey:

Image1385

A different color means that the window is active:

Image1387

An asterisk before the name in the title bar means that the file has not been saved since the last change was introduced. As when saving templates, instead of selecting Save as… from the File menu we can select Save new conversation. This will save the file directly in the module. Don’t do this now, however.

We should also discuss the issue of deleting nodes, collapsing or expanding them, moving them, etc. As you can see, our conversation is displayed in the form of a tree. There are three main branches in this tree:

Image1389

Select any conversation node and right-click. Then choose Collapse All from the menu:

Image1391

This collapses all branches of the tree:

Image1393

Now select Expand All from the menu:

Image1395

This expands all branches of the tree again. Now, select the “No, not yet” node and right-click. Select Move Down from the menu:

Image1397

This will move the “No, not yet" node beneath the “Yes, the bastard’s dead” node:

Image1399

To return this node to its original location, select the “No, not yet” node and right-click. Then select Move Up from the menu. Now select any node and right-click. Then choose Insert File from the menu:

Image1401

This opens the standard Windows window used for loading files. This can be used to link an existing conversation to a particular node. Remember that all conversations are saved in the Data\Dialogues folder. The remaining relevant commands in the menu are Cut, Copy and Paste:

Image1403

These are used for cutting, copying and pasting nodes. The Paste as link command is used to create links for other conversation nodes. Finally, a few words about removing nodes. To remove a particular conversation node, select it and then right-click. Choose Remove Entry from the menu

Image1405

The selected conversation node will be deleted. Be careful when removing nodes, especially the main node of a branch, such as “Hello Geralt":

Image1407

The will result in the whole branch being deleted:

Image1409

To avoid removing the whole branch of a conversation by mistake, a Question window will appear:

Image1411

Clicking Yes will result in the branch being deleted. That’s it when it comes to the conversation menu. Now we just have to assign the new conversation to Siegfried.

The conversation can be assigned to the Siegfried template, but this is not advisable in the case of NPCs. This is because there may be a different conversation assigned to an NPC in every phase of the plot. Instead, we’ll assign the conversation to Siegfried’s spawn set.

First we have to open the file containing Siegfried’s spawn set. We’ll use the Resources Explorer. Select Utility Windows -> Resources Explorer from the View menu. A Resources Explorer window will open on the left side of the screen. The Resources Explorer is described in more detail in another chapter of this manual. We saved Siegfried’s spawn set in the Data\Templates\NPCSpawn folder under the name our_siegfried.npc. To open this file, expand the Templates branch by clicking on the small ‘+’ sign next to the name of the folder:

Image1413

Then expand the NPCSpawn branch by clicking on the small ‘+’ sign next to its name:

Image1415

Double-click on the our_siegfried.npc file:

Image1417

The our_siegfried.npc window containing Siegfried’s spawn set will open:

Image1419

I would like to remind you how to assign a conversation to a character’s spawn set. Double-click on the field under the Dialogs column:

Image1421

The Select window will open:

Image1423

A dialogue list is displayed in the window. To assign the conversation, first expand the dialogues branch by clicking on the small ‘+’ sign next to it:

Image1425

Then double-click on siegfried_conversation:

Image1427

This assigns the new conversation to Siegfried’s spawn set:

Image1429

Now we should save an updated version of the our_siegfried.npc file. If something has changed and hasn’t been saved, the file is marked by an asterisk appearing before the name of the our_siegfried.npc window:

Image1431

To save a file under the same name, i.e. our_siegfried.npc, select Save our_siegfried.npc from the File menu:

Image1433

If you can’t find the Save our_siegfried.npc command or a different file name is visible, this probably means that the our_siegfried.npc window is inactive. To activate it just click on the name of the our_siegfried.npc window and then select Save our_siegfried.npc from the File menu again.

To conclude this sub-section, a few other conversation attributes will be described. Click on siegfried_conversation (if the conversation has not been saved yet, new conversation will be displayed instead of the name of the file):

Image1435

The following attributes will appear in the Properties window on the right side of the screen:

Image1437


Conversation Properties Section[]

  • Enable cine view on start: Responsible for the panoramic screen and letterbox frame which appear before a conversation. The values you can assign to this option are:
False –the screen will not enter cine view mode,
True –the screen will enter cine view mode. This is the recommended option. Setting this attribute to False may cause errors.
  • Disable cine view on end: Responsible for a exiting the panoramic screen and letterbox frame after a conversation has ended. The values you can assign to this option are:
False –the screen will not exit cine view mode,
True –the screen will exit cine view mode. This is the recommended option. Setting this attribute to False may cause errors.
  • Force Interactive Mode

Stats for Lang Section[]

These are not attributes but merely statistics concerning the conversation:

Words – the number of words in the conversation,
Chars – the number of characters in the conversation,
Translated – the number of nodes in the conversation written in another language.


Now click on a quest conversation node spoken by a character other than the player. In our case this is Siegfried. Click on the “Hello Geralt” node:

Image1439

Other attributes will appear in the Properties window:

Image1441

Node Text Section[]

  • FinalEnglish_Short: Contains the test found in the conversation node. We saved the test by double-clicking on the node, but it can also be saved in this attribute. Click the right-hand column opposite the FinalEnglish_Short attribute, write the text and hit ENTER. The name of this attribute can change e.g. Polish depending on the language version set in the D’jinni Editor. You can read more about this in another chapter of the manual.
  • Speaker:. Determines who the conversation node will be attributed to. The values you can assign to this option are:
__owner__ – the conversation node will be spoken by a character other than Geralt,
__player__ – the conversation node will be spoken by Geralt, i.e. the player.

Naturally, two or more creatures can take part in a conversation, e.g. Jethro could join in the conversation. However, because we created the conversation for Siegfried and Geralt, we would have to add Jethro as an additional character. Click on the small yellow icon in the right-hand column opposite the Speaker attribute:

Image1443

The Speakers window will open:

Image1445

Right-click on the empty field and select Create Name from the menu:

Image1447

This opens the Add Speaker window:

Image1449

You can add another character to the conversation in two ways. You can write the character’s tag in the Name field, e.g. our_jethro:

Image1451

Or you can select him from the list:

Image1453

The list only contains tagged NPCs. After adding the character, click on OK in the Add Speaker window. Jethro now appears in the window:

Image1455

To delete a character, right-click on it and select Delete Name from the menu:

Image1457

We don’t want to delete Jethro, however, so just click on OK in the Speakers window:

Image1459

To assign a conversation node to a new character, click the right-hand column opposite the Speaker attribute and select our_jethro from the list:

Image1461

This will create a conversation with more than two characters. If only two characters take part in a conversation, i.e. Geralt (the player) and another character, we do not have to change anything in this attribute. Depending on the order in which the conversation node has been created, this attribute is automatically assigned to either __owner__ or __player__

  • Interlocutor: Determines which character the speaker of a particular conversation node is directing his/her comments to. The values you can assign to this option are:
__owner__ – the character addresses himself,
__player__ – the character addresses Geralt, i.e. the player.

In conversations with two characters, as in our case, we do not have to change anything in this attribute. If there are more characters in a conversation and they would have to address another character, then this character must be added. This can be done following the same steps as in the Speaker

  • Voice File: Responsible for assigning a sound file to a particular conversation node. To do this, click on the small yellow icon in the right-hand column opposite the Voice File attribute:

Image1463

This opens the standard Windows window used for loading files. Look for the appropriate voice file and click on Open. To listen to the assigned sound, click on the small blue icon in the right-hand column opposite the Voice File attribute:

Image1465

  • Voiceset tag: Responsible for the predefined voice set which is heard in the background of a conversation node. This could mean the sound of rain heard in the background during a conversation, for example. You can choose from a list of predetermined sounds. To change the setting, click the right-hand column opposite the Voiceset tag attribute:

Image1467

Clicking on the small blue icon opposite the choice list will open the file voiceset_tags.2da, the database containing information about predefined sounds.

  • Comment: A space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here.
  • Camera Shot: Responsible for camera angles during a conversation. The camera can be positioned differently for each conversation node. You can select from a list. To change the setting, click the right-hand column opposite the Camera Shot attribute:
Image1469

The values you can assign to this option are:

Auto – default camera setting. It is the recommended option,
Random – a random setting of the camera,
NoChange – the camera is not set.

Other attribute options can be used to place the camera different positions. Auto is recommended, however, unless the camera is strangely positioned during a conversation. Clicking on the small blue icon opposite the choice list will open the dlgcamshots.2da file, a database containing settings for particular camera angles.

  • Response: Responsible for the responses of the character conversing with Geralt. For instance, we could make Siegfried give Geralt a quest only after he receives a ring. Or we could make Siegfried refuse to talk to Geralt because he is busy. This attribute contains a set of options which can be selected from this list:

Image1471

Set this attribute by clicking on the small box next to the name of the desired reaction:

Image1473

Clicking on a previously marked reaction will unmark it. In order to set all reactions at once (which is not recommended), click on the small box next to the asterisk:

Image1475

The values you can assign to this option are:

Default – default setting, a character does not demand anything
Gain – the character wants to gain something,
Gain / Signet – the character wants a signet ring,
Gain / Drink – the character wants some alcohol,
Gain / Bribe – the character wants a bribe,
Gain / Gift – the character wants a gift,
Gain / Fistfight – the character wants to have a fist fight,
Reject – the character does not want to talk,
Reject / Busy – the character does not want to talk because he is busy,
Reject / Drink – the character does not want to talk because he is drunk,
Reject / Offend – the character does not want to talk because he is offended
Reject / Sleep – the character does not want to talk because he is asleep,
Reject / Fistfight – the character does not want to talk because he is fighting,
Reject / Gift – the character does not want to talk because he has not received a gift.
  • Action Script: Responsible for a script which is activated after a particular conversation node. To assign a script, click on the small yellow icon in the right-hand column opposite the Action Script attribute:

Image1477

This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all script files). Look for the required file and click on Open. More about scripts is covered in another chapter of this manual.

  • Conv Type: Responsible for setting the type of conversation. This is generally set automatically, depending on whether it is a quest or standard conversation. At times, however, it may be necessary to change this attribute, for example to mark in a quest conversation that a particular conversation node is an option for Geralt. To change the setting, click the right-hand column opposite the Conv Type attribute:

Image1479

The values you can assign to this option are:

Cutscene – a cutscene conversation node,
Dialog – a standard node,
Quest – a quest node,
Accompanying – the quest node is an option for Geralt, i.e. the player.

There is one more option, namely Gameplay. This is only available when a conversation node is spoken by Geralt. More about this is covered in the next subchapter.

  • JournalId: This attribute contains information that can appear in Geralt’s journal. This could be an entry on Siegfried or Jethro, for example. To change the setting, click the right-hand column opposite the JournalId attribute:

Image1481

Clicking on a blue icon opposite the choice list will open the journal.2da folder, a database containing information about entries in the player’s journal.

Node Emotions Section[]

This section’s attributes are responsible for the emotions expressed by characters during a particular conversation node. Emotions are simply a set of animations which will be displayed during a conversation node.

  • __player__:. Responsible for Geralt’s, i.e. the player’s emotions.
  • __owner__:. Responsible for emotions of the character to whom the conversation is assigned (in our case, Siegfried).

To change the setting, click the right-hand column opposite the __player__ or __owner__ attributes:

Image1483

The values you can assign to this option are:

empty – no emotions,
afraid – afraid,
alarmed – alarmed,
mused – amused,
amused_kid – prankster,
angry – angry,
armed – armed,
bored – bored,
default – default,
despaired – despairing,
drunk – drunk,
excited – excited,
fistfight – pugilistic,
flirting_female – a flirty female,
friendly – friendly,
hostile – hostile,
hostile_female – a hostile female,
interested – interested,
lofty – haughty,
pain – suffering,
sad – sad,
shy – shy,
terrified – terrified,
timid – timid,
tired – tired,
witcher – witcher.

Rotate Towards Section[]

Attributes in this section are responsible for the positioning of characters who take part in a conversation, i.e. who is supposed to look at whom during the conversation. In a conversation between just two characters we don’t have to change anything. But if more than two characters take part, we can use these attributes to set the direction in which they look.

  • __player__: Contains the character at whom the player looks when speaking a particular conversation node,
  • __owner__: Contains the character towards which a particular conversation is addressed (in our case, Siegfried).

If more than two people take part in a conversation the rest must be added. This is described together with the Speaker attribute.

After Flags Section[]

The specifics of the After Flags section have been described before. Using this group we can add flags with set values to a particular conversation node. The attributes of Geralt’s quest conversation nodes differ from other characters’ in only two ways. Click on the “Hello Siegfried. Do you have any quests for me?” node:

Image1485

If we take a closer look at these attributes we will see that the Response attribute has been replaced by the Quest Id attribute:

Image1487

As explained earlier, this attribute is responsible for the quest id.

The other difference between Geralt’s and other characters’ quest conversations is that an additional option is available under the Conv Type attribute:

Image1489

After setting the Gameplay option in the Conv Type attribute, several other attributes will appear:

Image1491

These will be described in detail in the next subchapter, when we discuss how to create a gameplay. Now click on a conversation node uttered by a character other than Geralt, but this time on a standard conversation.

Image1493

Here there is also one change – the Condition Script attribute has appeared:

Image1495

While a script assigned to the Action Script attribute is activated soon after a conversation node is finished, a script assigned to the Condition Script attribute is instead activated before a particular conversation node takes place. This can be used to check whether any additional conditions were fulfilled.

That’s it when it comes to conversation attributes.

Advertisement