SIEGE UNIVERSITY 2

Siege University II Tutorials
Modding FAQ
095: Upgrading DSII
100: The Basics of Siege Editor
201: Compass Map Radar
202: Conversations
203: Journal
204: Quest Indicator Icons
205: Start Positions
206: Teleporters
207: Town Portal Restrictions
208: Weapon Effects
209: Flick
210: Tuning Grids
211: Setting Up Good Map Lighting
212: Setting Up Simple Node Fading
215: Building Data Tables

Siege University I Tutorials
200: Concepts and Terminology
201: Templates
203: Triggers
204: Moods
205: Fades
206: Elevators
211: Naming Key
213: Dungeon Siege Resource System
301: Introduction to Dungeon Siege Architecture

Third Party Tutorials
A Simple Mod Part One - Armor Textures
A Simple Mod Part Two - A New Armor
Beginners Guide to Stitching Regions
How to Open and Create Tanks
Making Chants Work in a New Map
Ornaments
Understanding the NKK

Useful Links
Siegetheday.org
Dungeon Siege Outpost
Dungeon Raider
Kdawg.org - List of useful Links
MCarp DS Nodes
Dungeon Siege 2 at Gamefront
Broken World at Gamefront

·         Conversations

·         Overview

·         The Script Excel Doc

·         Keywords

·         Macros

·         Adding a Conversation to an NPC

·         Talk Flicks

·         Tips



Conversations

This guide is intended for people who are familiar with DS1's conversation system. If you need a refresher, reread SU 208A: NPCs/Talking.



Overview

The conversation system has undergone a few changes since DS1. DS2 uses much more robust conversation trees that allow you to create branching conversations, have multiple NPCs involved in the same conversation, and launch flicks and skrits. While DS1 used the Siege Editor to create and manage conversations, DS2 uses Microsoft Excel with a Visual Basic macro for exporting to GAS and writing out VoiceOver scripts. This format makes it much easier to manage all of the dialogue for the entire game.

However, there is one trade-off: since conversations are now created outside of the editor, wiring them to a specific NPC in the world must be done manually.



The Script Excel Doc

While you can still edit Conversation.GAS files manually if you wish, I don't recommend it unless you are going to have a very small number of total conversations to manage. The benefit of the script excel doc is that you can view and edit all of the NPC dialogue in the map without having to open a hundred individual gas files.

Download the Script here: DS2_Toolkit_Conversations.zip

The zipped folder contains the DS2_Toolkit_Conversations.xls doc and the Voice Script Template.dot file. These should always reside in the same directory.

Please start by reading the README tab. It explains how to read the script, as well as how the formatting and macros work.


Keywords

There are a few keywords used either by common flicks, skrits, or the conversation code itself. These have exclusive functions and should never be used as a choice-reply pair. The most useful ones are:

·         Choice names:

·         shop (opens the shopkeeper ui)

·         accept_member (causes a potential party member to join your party)

·         decline_member (tells the hire code that you don't want a potential party member to join your party)

·         show_hire_stats (opens a potential party member's stats ui)

·         run_flick (triggers the flick in column G to start)

·         conversation codes:

·         <hero_name> (prints the hero's screen name)

·         <c:0x00000000>y</c> (hex-based color code for coloring y)

 

Macros

There are three Visual Basic macros embedded in the Script doc: ControlPanel, ExportToGas, and ImportToGas. Please see the README tab of the DS2_Toolkit_Conversations.xls doc for directions on how to use the macros.



Adding a Conversation to an NPC

To add a conversation to an NPC, you'll need to manually insert it into that NPC's instance, which is found in the region's actor.gas file.

The [conversation] component is inserted at the top level of the instance and contains the talk flick and the [conversations] block which lists the individual conversation names.

EX: cdimage/world/maps/ds2_world/regions/a1_01_06_jngtown/objects/actor.gas, npc_ghost instance:

[t:npc_ghost,n:0x00101a7e]
{
[conversation] //conversation component
{
talk_flick = ghost_a1_jngtown_talk; //talk flick controlling the conversation logic
[conversations]
{
* = ghost_base; // individual conversation names
* = ghost_mumble;
}
}
[placement]
{
q orientation = 0,-1,0,2.16067e-007;
p position = 2.20145,-1.51711,-0.548035,0x93f57d6d;
}
}


Talk Flicks

Talk flicks specify the conditions under which a specific conversation is played. They are necessary whenever an NPC has more than one conversation in their instance. You can learn more about writing talk flicks by reading the flick documentation: Talk Flicks


Tips

·         The script doc formatting is unforgiving to spacing errors and lacks error checking for that type of mistake. Use a "diff" tool such as Beyond Compare 2 to compare your newly generated conversation.gas files to the old ones to make sure only the expected changes were made.

·         Occassionally run the Control Panel macro and parse for errors. It's a good way to find choice names that don't have a corresponding reply name. Note that it will also pick up choice names that intentionally don't have a reply name, such as "shop"

·         If you observe the region folder list the ExportToGas macro creates and see a folder called "text" or "reply," that's evidence of an error somewhere within the script. Parse for errors via the ControlPanel macro or look at the conversations.gas file within that folder to see if you can identify where the error is.