New Conversation System

A repository for easy access of the project threads that get started in the Mod Development forum.

Postby SnowFox on Thu Dec 02, 2004 1:11 pm

For those of you interested, I've posted an early Christmas present :smilewinkgrin: for those who'd like to play around with the new Conversation System I've been talking about in my other thread. It's being hosted by Sam at OverTheEdge here. (Thanks Sam :thumbup: )

The system consists of two parts:
§ the conversation job for handling the system inside of Dungeon Siege, and
§ the editor that allows you to create a conversation tree using a simple user interface that can then generate the job skrit for you.

It is possible to code the entire conversation job from the base skrit, but it is quiet easy to mix up and get code in the wrong places. The editor saves all the information that you have given it in a special format XML document and generates the job skrit once you are happy with the conversation structure.

Some of the features the conversation system implements at this point in time (but which will be extended and refined later) are:
§ selection of npc dialogue from a number dialogues based on order and conditions
§ multiple pc replies selected from a number of replies based on conditions
§ actions can be performed by both pc’s and npc’s as consequences of certain npc dialogues or pc replies chosen
§ certain predefined conditions, such as determining the gender of a pc/npc, whether a party member is carrying a certain item, etc.
§ certain predefined actions, such as moving an npc/pc, etc.
§ npcs have variables so they can “remember� things about a conversation locally (e.g. their name, portrait to display, number of times spoken too, whether a pc has insulted them, etc.)

Before anybody starts complaining too much, the system is very much still in the prototype stage - i.e. almost no documentation, still a bit buggy. So don't complain too much about things that don't work - I know there's a lot still wrong, but I figured that since I'm going on holiday for a few weeks, that I'd post it so long that ppl can play around with it and let me know how they feel, what they'd like changed etc.

Feel free to point out errors (I know there's lots - did this rather quickly, so it hasn't been tested too well).

What I'd like a lot is for ppl to start writing more predefined conditions & actions that can be placed in the conversations. So those interested, feel free to do so. This project is Open Source, but I don't want to release the code just yet until a lot more of the bugs are sorted out.

There is a very simple tutorial you can follow to get you started. I'll add a few more tutorials later with some more complicated examples.
Last edited by SnowFox on Fri Dec 03, 2004 10:59 am, edited 1 time in total.
View my BLog @ HerenaForge
Download Chronicles Prelude here and post comments etc. here.
Download Chronicles Prelude readme
Details about Chronicles Volume 1 here.
User avatar
SnowFox
Legionnaire
Legionnaire
 
Posts: 191
Joined: Tue Feb 25, 2003 9:24 am

Postby Brkopac on Thu Dec 02, 2004 2:25 pm

I uploaded it in two spots the one you gave and the download section at OTE so go there if that link fails. I have been playing with Snow's convo stuff and it is very cool. Pretty simple to use as well.

Brkopac
Join #siegetheday for deep philisophical discussion!
[10:37] <Omniscient_Colossus> hakuna ma tata!

Click here to get started
User avatar
Brkopac
Centurion
Centurion
 
Posts: 424
Joined: Sat Dec 27, 2003 8:37 am
Location: Surrey, BC

Postby evilX on Thu Dec 02, 2004 4:29 pm

Hey,
Been taking a look at things Snowfox ... awesome work as usual ;-) I think everyone should give this a go.

Thanks,
Aaron Andersen
Join #siegetheday to discuss modding projects and more!
[quote:a2795e2f25]<Newby> Have you ever thought of making a MMORPG version of Dungeon Siege?[/quote:a2795e2f25]
Click here to get started
User avatar
evilX
Legionnaire
Legionnaire
 
Posts: 125
Joined: Sat May 15, 2004 6:47 pm
Location: Canada

Postby SnowFox on Fri Dec 03, 2004 10:19 am

Here's an example to show you some of the things one can do.

Included:
- .dsmap to play
- .dsres that contains the conversations
- 2 xml files holding the conversations for Ulora & Gloern

The xml documents can be opened in the editor and examined/edited etc.
Attachments
example1.zip
(0 Bytes) Downloaded 692 times
View my BLog @ HerenaForge
Download Chronicles Prelude here and post comments etc. here.
Download Chronicles Prelude readme
Details about Chronicles Volume 1 here.
User avatar
SnowFox
Legionnaire
Legionnaire
 
Posts: 191
Joined: Tue Feb 25, 2003 9:24 am

Postby frilly_wumpus on Sun Dec 05, 2004 3:19 pm

I just checked out the demo and I have to say WOW! Very impressive!

Good job!

-Shad
frilly_wumpus
Lurker who Speaks
 
Posts: 10
Joined: Sat Feb 22, 2003 3:39 pm
Location: Texas

Postby Witness on Wed Dec 08, 2004 3:53 am

Someone pointed out that the "Sam at OverTheEdge" link isn't working anymore, and since the files are itty bitty anyway, you can grab both the conversation builder and the example here: http://www.siegenetwork.com/q?dir=Downloads&req=file&id=472
Dark and Light Elfgirl Mod
- Download v3.0.1.2 beta (i.e. v3.0 beta 1 patch 2)
- Project Site
- Project Thread
witness@siegenetwork.com
User avatar
Witness
Hero
Hero
 
Posts: 1843
Joined: Sun Jul 21, 2002 9:36 pm

Postby Brkopac on Wed Dec 08, 2004 4:55 am

The link Snowy posted was running off my own server, so that link has nothing to do with "Sam at OverTheEdge", but its at OTE.

Brkopac
Join #siegetheday for deep philisophical discussion!
[10:37] <Omniscient_Colossus> hakuna ma tata!

Click here to get started
User avatar
Brkopac
Centurion
Centurion
 
Posts: 424
Joined: Sat Dec 27, 2003 8:37 am
Location: Surrey, BC

Postby Witness on Wed Dec 08, 2004 5:15 am

Brkopac wrote:The link Snowy posted was running off my own server, so that link has nothing to do with "Sam at OverTheEdge", but its at OTE.

It's in quotes, because that is what Snowfox called the link (see the first post in this thread) :P

Besides, Eccentricity just emailed me to tell me that he just deliberately broke all external links pointing to OTE files (even though he repeatedly insisted that I add them a couple of days ago) because he couldn't handle all the traffic from here for no tangible returns. At least he told me he broke the links this time :rolleyes:

Anyway, no problems with this particular one now :)
Dark and Light Elfgirl Mod
- Download v3.0.1.2 beta (i.e. v3.0 beta 1 patch 2)
- Project Site
- Project Thread
witness@siegenetwork.com
User avatar
Witness
Hero
Hero
 
Posts: 1843
Joined: Sun Jul 21, 2002 9:36 pm

Postby SnowFox on Thu Dec 09, 2004 11:46 am

Thanks for putting the files here as well Witness :thumbup:
View my BLog @ HerenaForge
Download Chronicles Prelude here and post comments etc. here.
Download Chronicles Prelude readme
Details about Chronicles Volume 1 here.
User avatar
SnowFox
Legionnaire
Legionnaire
 
Posts: 191
Joined: Tue Feb 25, 2003 9:24 am

Postby WNxWanderer on Thu Dec 09, 2004 5:26 pm

^_^ wow this really rocks snow!

Its almost like you read my mind or something...

Anyway, I love the lil program! Reminds me of making conversations in NWN :P
Image
[Sunshine.. never gonna find me... ha ha]
User avatar
WNxWanderer
Mercenary
Mercenary
 
Posts: 94
Joined: Mon Apr 21, 2003 9:13 pm

Postby Witness on Fri Dec 10, 2004 9:44 pm

SnowFox wrote:What I'd like a lot is for ppl to start writing more predefined conditions & actions that can be placed in the conversations. So those interested, feel free to do so.

Well, turns out to be quite easy to do, so last night, I wrote several additional conditions that can be used with the conversation system:
cond_hasComponent$(goid obj$, string component_name$)
Does the object have the specified skrit component?

cond_hasGenericState$(goid character$, string state_name$)
Does the character have the specified generic state?

cond_hasGold$(goid character$, int gold_amount$)
Does the character/party have at least the specified amount of gold?

cond_hasHealth$(goid character$, float health$, bool check_percent$)
Does the character have at least the specified amount of health (can be either a percentage of the maximum or an absolute value)?

cond_hasItem$(goid character$, string item$, int quantity$)
Does the character have at least the specified quantity of a certain item? The item string can be specified as either a template name, or #template_name:variation/+prefix/+suffix (where variation, and either prefix or suffix is optional).

cond_hasItemEquipped$(goid character$, string item$, eEquipSlot slot$)
Does the character have a certain item equipped in the specified slot? The item string can be specified as either a template name, or #template_name:variation/+prefix/+suffix (where variation, and either prefix or suffix is optional).

cond_hasPartyMember$(goid character$, string member_template$, int quantity$, float check_distance$, bool require_line_of_sight$, bool require_alive$)
Does the character's party contain a certain number of a specified party member, within the specified distance, optionally in line of sight, optionally alive? Quantity may come in handy if you're testing for pack animals.

cond_hasSkill$(goid character$, string skill_name$, float skill_level$)
Does the character have at least the specified skill level in a certain skill?

cond_isMember$(goid character$, string group$)
Does the character's Membership contain the specified group name (e.g. memberships are often used in immunity checks).

cond_isPartyMember$(goid characterA$, goid characterB$)
Are the two characters in the same party?

cond_isRace$(goid character$, string race$)
Is the character of the specified race (the value specified in the race field of the [actor] block)?

cond_isUnarmed$(goid character$, bool count_shield_as_weapon$)
Does the character not have any items held in hand?

cond_isVisible$(goid obj$)
Is the object visible?

I performed some rudimentary testing on most of the functions, and they seem to work as expected. If anyone wants to use them, here is the resource file (unprotected, source code is open source, you know the drill), just place in the same folder as fox_conversation_v0_1.dsres to build conversations using the aforementioned conditions: fox_conversation_v0_1_conditions_addon.zip (resource file tanked with a priority of 0x4002, or 16386)

Also, to Snowfox: Since this is only a prototype, I guess you might already planning to allow users to load custom condition/action function libraries in the editor and then generate k_inc_conversation_conditions.skrit and k_inc_conversation_actions.skrit files based on which functions are actually called in the dialogue tree? If not, this might be a nice feature to add :)
Last edited by Witness on Sat Dec 11, 2004 5:04 pm, edited 1 time in total.
Dark and Light Elfgirl Mod
- Download v3.0.1.2 beta (i.e. v3.0 beta 1 patch 2)
- Project Site
- Project Thread
witness@siegenetwork.com
User avatar
Witness
Hero
Hero
 
Posts: 1843
Joined: Sun Jul 21, 2002 9:36 pm

Postby evilX on Fri Dec 10, 2004 10:40 pm

Hey,
If we are talking about adding things to this mod development tool ... I've been writing a patch to make this tool multiplayer friendly. I know this doesn't sound very feasible, but I do have a prototype somewhat in place, I just need to get in contact with Snowfox to work out some details and what not. I'm just about to start exams and Snowfox is on vacation, so it will be a little while before we can release this.

Thanks,
Aaron Andersen

PS. Nice work on the additions Witness
Join #siegetheday to discuss modding projects and more!
[quote:a2795e2f25]<Newby> Have you ever thought of making a MMORPG version of Dungeon Siege?[/quote:a2795e2f25]
Click here to get started
User avatar
evilX
Legionnaire
Legionnaire
 
Posts: 125
Joined: Sat May 15, 2004 6:47 pm
Location: Canada

Postby Lokiswaq on Fri Dec 10, 2004 11:03 pm

I just checked this out and all I can say is: Great Work! :thumbup:

Keep up, all ;)
:: BufUI 2.00 - a GUI panel that displays your active buffs - its story
:: UberUI 0.02 - a GUI enhanchment that shows your uber level in game
:: afaik.gr Under Siege and afaik.gr Under Siege Forums
User avatar
Lokiswaq
Centurion
Centurion
 
Posts: 758
Joined: Wed Jan 07, 2004 2:59 pm
Location: Greece

Postby Greysky on Wed Dec 15, 2004 11:09 pm

Great mod! I'm trying to get the pc_speaker to use items given to him by an npc. Basically I have a barkeep and I want him to hand a drink to the player and the player use it. I can drop items from the npc and player based on actions with the conversation editor but so far can not equip or put anything in the player hands. Im not talking about just playing the drink animation - I want the effects of the potion intact. Any help would be appreciated, Thanks.
Greysky
 

Postby Dergin on Tue Mar 08, 2005 3:25 pm

Since the current link dosn't seem to be working i'd be happy to host it if someone can send me the file...
"Yes I know... I would make a sexy jedi" - Myself
"No you can't have my lightsaber!!! The sith could attack at any second!" - Myself Again
User avatar
Dergin
Warder
Warder
 
Posts: 335
Joined: Thu Jul 22, 2004 1:32 am
Location: Colorado

Next

Return to Project Threads