Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

KotOR/TSL GUI Dialog Editor (DLGEditor) - Current Version: 2.3.2

Page: 3 of 5
 rgdelta
01-23-2006, 10:40 PM
#101
Nope I don't have that problem and I am running XP SP 2 also
 tk102
01-24-2006, 3:10 AM
#102
my computer has freaky issues with Perl.

trying to use DLGEditor it crashes. I have similar problems with K-Gff. Crashes every time. camedit crashes on saving. FindRefs shows that it's searching for a bit, then crashes.

I think KSE is the only one of tk102's tools I have that doesn't give me any trouble.


Oh cjt0202 that is easily the worst review I've gotten during my entire times on the forums. :lol: (oops I mean: :( ) Have you had any problems with cchargin's utilities? Do you use KSE or KSEA?
 cjt0202
01-24-2006, 6:11 AM
#103
Oh cjt0202 that is easily the worst review I've gotten during my entire times on the forums. :lol: (oops I mean: :( ) Sorry! :D
I hated to do it, but the next thing on my list of trying to figure it out myself was descending into DLL Hell.
Have you had any problems with cchargin's utilities? Do you use KSE or KSEA?mdlops seems to be OK. I use KSE.
 tk102
02-25-2006, 4:56 AM
#104
v2.2.6 released
- Added a popup notification that occurs the first time orphan nodes are detected
- Added Edit: Delete All Orphans menu item
 oldflash
02-25-2006, 5:23 AM
#105
To erase all orphans in one step is great. To be notify when they appeare ist is SUPER! Thanks tk102
Edit: Tested. It works perfect.
 The Source
03-07-2006, 11:52 AM
#106
I was wondering about something: When I copy and paste dialogue lines, to create a loop, sometimes the entire section of dialogue gets moved. Was there a way that I can loop dialogue with only copying and moving one line?
 Darth333
03-07-2006, 11:57 AM
#107
You have the option to "paste as new" and "paste as copy".

You can also copy a line as text from the white box where you can type in and paste it somewhere else (ctrl+c and ctrl+v).

Edit tk102:
For this, I use Copy, then Paste as New. I then use Break Link with Parent on the subnodes that I don't want. (Hmm... that can be a little tedious. I might look at simplifying that process.)
 The Source
03-07-2006, 12:04 PM
#108
You have the option to "paste as new" and "paste as copy".

You can also copy a line as text from the white box where you can type in and paste it somewhere else (ctrl+c and ctrl+v).
When I am creating dialogue loops, I usually use 'paste as copy'. However, I have tried both, and it doesn't like to play well with others.

Let me try to clearify, for I may have not have been clear. Lets just say I create three dialogue trees, and I decided to loop all three back to the main 'Entry' dialogue. I would have to copy and paste the entrys to create a loop. What is intresting is that the first dialogue tree likes to pull the entire second and third dialogue trees with the copied entry. Instead of just taking the 'Entry' dialogue of tree 2 and 3, the entire tree is pulled over.

Any suggestion?
 The Source
03-07-2006, 12:13 PM
#109
For this, I use Copy, then Paste as New. I then use Break Link with Parent on the subnodes that I don't want. (Hmm... that can be a little tedious. I might look at simplifying that process.)
Will that allow the dialogue to loop back to the 2nd and 3rd entries, and execute the rest of the dialogue trees? Or, will that just cut the ties with the remaining dialogue in tree 2 and 3?

Thanks for both of your help on this matter.

Edit: Added:
I just tried what you suggested, and I get [End Dialogue]. I am hoping to get [Already Listed].
 tk102
03-07-2006, 12:22 PM
#110
Let's say you have a dialog like this:

Root
|-> Entry 1
|--> Reply 1
|
|-> Entry 2
|--> Reply 2
|
|-> Entry 3
|--> Reply 3

and you want Reply 3 to loop back to the beginning.

In DLGEditor do this:

1. Add a new Entry to the root (it can be empty)

Root
|-> Entry 1
|--> Reply 1
|
|-> Entry 2
|--> Reply 2
|
|-> Entry 3
|--> Reply 3
|
|-> Entry 4


2. Add a new Reply to that entry (it can be empty also)
Root
|-> Entry 1
|--> Reply 1
|
|-> Entry 2
|--> Reply 2
|
|-> Entry 3
|--> Reply 3
|
|-> Entry 4
|--> Reply 4

3. Cut Entry 1 Copy Entry 1* and Paste as Copy to Reply 4. Then Cut Entry 1. Do this for Entry 2 and Entry 3 also:
Root
|-> Entry 4
|--> Reply 4
|---> Entry 1
|----> Reply 1
|---> Entry 2
|----> Reply 2
|---> Entry 3
|----> Reply 3

4. Copy Entry 4 and Paste as Copy to Reply 3.
|-> Entry 4
|--> Reply 4
|---> Entry 1
|----> Reply 1
|---> Entry 2
|----> Reply 2
|---> Entry 3
|----> Reply 3
|-----> Entry 4 (already listed)

* doing the Copy instead of Cut ensures that you can Paste Node As Copy which is necessary to preserve the conditionals. Also, to remove the original Entry, use Cut instead of Delete or you will create orphans.
 The Source
03-07-2006, 12:31 PM
#111
Oh I get it!

I will have to make another tree with a new 'Entry' and 'Reply', and then I can copy & paste the entries from 1, 2, and 3 into the new tree. After all that, I can then copy and paste them at the end of tree 1, 2, or 3. <---That will definatly make a cleaner loop. :thumbsup:

That is so logical. I can't believe that I didn't see that.

Thank you TK. :)
 tk102
03-07-2006, 12:41 PM
#112
I just edited the above... make sure you do a Paste as Copy to preserve your Conditionals. Also there seems to be a bug if you try to Break Link with Parent on the original node after you've done the Paste as Copy. Cut node works correctly. Don't use Delete Node Completely in this case though.
 The Source
03-07-2006, 4:12 PM
#113
Unfortulatley, I still get the same results.

(Unaltered: Without loops.)
NPC-ROOT
---->PC - Entry I
------->NPC - Reply
---------->PC - Reply
------------>NPC - Reply (End Dialogue.)

---->PC - Entry II
------->NPC - Reply
---------->PC - Reply
------------>NPC - Reply (End Dialogue.)

---->PC - Entry III
------->NPC - Reply
---------->PC - Reply
------------>NPC - Reply (End Dialogue.)

--------------------------------------------------------

(Altered: With loops. The result I keep getting.)
NPC-ROOT
---->PC - Entry I
------->NPC - Reply
---------->PC - Reply
------------>NPC - Reply (End Dialogue.)
-------------->PC - Entry II
----------------->NPC - Reply
-------------------->PC - Reply
---------------------->NPC - Reply (End Dialogue.)
-------------->PC - Entry III
----------------->NPC - Reply
-------------------->PC - Reply
---------------------->NPC - Reply (End Dialogue.)

---->PC - Entry II (Already Listed.)

---->PC - Entry III (Already Listed.)

--------------------------------------------------------

(What I would like to happen.)
NPC-ROOT
---->PC - Entry I
------->NPC - Reply
---------->PC - Reply
------------>NPC - Reply
-------------->PC - Entry II (Already Listed.)
-------------->PC - Entry III (Already Listed.)

---->PC - Entry II
------->NPC - Reply
---------->PC - Reply I
------------>NPC - Reply
-------------->PC - Entry I (Already Listed.)
-------------->PC - Entry III (Already Listed.)

---->PC - Entry III
------->NPC - Reply
---------->PC - Reply
------------>NPC - Reply (End Dialogue.)
 tk102
03-07-2006, 4:29 PM
#114
Be careful with what you call an Entry and what you call a Reply, those terms have specific meanings. An Entry is spoken by the NPC and is selected based on the first true Condition. A Reply is spoken by the PC and its availability is based on its Condition but is ultimately selected by the player.

Just remember to build from the top. The (already listed) parts will only appear below the node that is...already listed. :)

It also helps to draw a little box diagram showing how things progress. Follow one branch all the way out until you become self-referential or you reach the end of the dialog. After that, go back up to the last branch point and follow it out. Eventually you'll work back to the branch points that are closest to the root, and hopefully most of them will be (already listed). :)

Root
└─Entry 1 (Hi, what do you want?)
├─Reply 1 (What is your name)
│ └─Entry 2 (I am tk102. Who are you?)
│ └─Reply 2 (I am <PLAYER>)
│ └─Entry 3 (Nice to meet you.)
│ ├─Reply 3 (What is your favorite equation?)
│ │ └─Entry 4 (Hmm, Euler's equation I suppose.)
│ │ └─Reply 4 (I prefer the Pythagorean theorem.)
│ │ └─Entry 5 (Yeah, that's more handy.)
│ │ ├─Reply 1 (What is your name (already listed))
│ │ └─Reply 6 (What is your mother's maiden name?)
│ │ └─Entry 6 (Ha, ha, I don't think so.)
│ │ └─Reply 6 (It was worth a try.)
│ │ └─Entry 7 (No more questions please. (End dialog))
│ └─Reply 6 (What is your mother's maiden name? (already listed))
├─Reply 3 (What is your favorite equation? (already listed)
└─Reply 6 (What is your mother's maiden name? (already listed))
 The Source
03-07-2006, 4:47 PM
#115
I altered the above.
 tk102
03-07-2006, 6:43 PM
#116
So did I.
 The Source
03-07-2006, 10:26 PM
#117
Just remember to build from the top. The (already listed) parts will only appear below the node that is...already listed.
^^^^^^^^^^^^
This is where I probally got into trouble. I build the dialogue trees top to bottom, but treated each tree seperatly. When I went back to loop the dialogue, I created more problems for myself.

Entry = NPC
Reply = PC/NPC

I must have conffused you. My apology.


├─Reply 3 (What is your favorite equation? (already listed)
└─Reply 6 (What is your mother's maiden name? (already listed))
^^^^^^^^^^^^^^^^^^^^^
This is what I was trying to get rid of. Next time I will use your logic.

Thank you for your help,
MacLeodCorp :)
Edit tk102: You're quite welcome. I'm sure others have had similar troubles trying to get a dialog to loop. Plus I was found a bug in my code thanks to this excercise.
 tk102
03-08-2006, 12:50 PM
#118
v2.2.7 released
Just a small bug fix.

- Fixed a bug where right-click "Break Link with Parent" would cause an ARRAY error.
 ChAiNz.2da
03-09-2006, 9:58 AM
#119
v2.2.7 released
Just a small bug fix.

- Fixed a bug where right-click "Break Link with Parent" would cause an ARRAY error.DUDE! I swear I was 2 seconds from PM'ing you about this.. you're a lifesaver and saved me a PM hehehe :xp:

NOW, any way to make it possible to cut-n-paste between 2 different .dlg files? ;) Guess I need to go searching for the requests area :devsmoke:
 tk102
03-09-2006, 10:24 AM
#120
Glad I could help out ChAiNz.2da. :) NOW, any way to make it possible to cut-n-paste between 2 different .dlg files?
That sounds like a minor request doesn't it... :doh:
I suppose you mean copying entire branches, not just nodes?
 ChAiNz.2da
03-09-2006, 10:33 AM
#121
Glad I could help out ChAiNz.2da. :)
That sounds like a minor request doesn't it... :doh:
I suppose you mean copying entire branches, not just nodes?
hermmm.. methinks I have opened the proverbial "can of worms" huh? hehehe ;)

uhmmm... yah, entire branches would be peachy.. * goes to hide under a rock and escape tk's wrath *

but Hey! No rush bro, I'll be done with my mod probably before you pull all of your hair out doing this request (if possible and you have the desire to). Just something for the "down the road" kinda thing :)
 Darkkender
03-09-2006, 12:45 PM
#122
but Hey! No rush bro, I'll be done with my mod probably before you pull all of your hair out doing this request (if possible and you have the desire to). Just something for the "down the road" kinda thing :)


LOL, you think you can finish your mod in the next 4 hours to a day Chainz.2da? As I'm pretty sure Tk will beat you to the punch. In fact I'll fish out a package of cookies for who ever is first. :p
 ChAiNz.2da
03-09-2006, 12:54 PM
#123
LOL, you think you can finish your mod in the next 4 hours to a day Chainz.2da? As I'm pretty sure Tk will beat you to the punch. In fact I'll fish out a package of cookies for who ever is first. :pOh wow! I thought it would take longer than that seeing as how anytime I mention copy-n-paste something gets thrown at me, hehehe... :lol:
But if tk was to get this done in 4 hours or a day I'd gladly send you both a box of cookies :xp:

As for me, not a chance... I'm having "problems" trying to get a custom cutscene to bend to my will :fist: damn it all.. sooooo close to being done, why oh why did I want to go that extra mile?! :headbump hehehe...
 tk102
03-09-2006, 2:26 PM
#124
As much as I like cookies, those "4 hours" that are required will have to come from a timepool that's a bit farther in the future than I think you're hoping for. :(
 ChAiNz.2da
03-09-2006, 7:14 PM
#125
As much as I like cookies, those "4 hours" that are required will have to come from a timepool that's a bit farther in the future than I think you're hoping for. :(
Not a problem man, like I said.. "down the road" ;)

hehehe.. funny enough though, the problem I was having I found the answer to.. (rather than having to start over *whew*)... so I'm all kewl & groovy :D

Thank you Search Function & one of Darth333's older posts :lol:

Edit tk102: Ah, yes in retrospect it is obvious that you were progressing down the same road as she -- I can see similarities in the use of the :headbump smiley.*

Edit by d3: Erm...what was that supposed to mean? Nevermind :xp:
 Joris1
03-18-2006, 7:17 AM
#126
Hi, I have a question:

If I want to make a Conditional to this script: void main()
{
// Grab the Parameter.
int nScriptNumber = GetScriptParameter( 1 );

// If Param = 7, then it's Mira. (Trying to make it consistent with the CNPC integers.)
if ( nScriptNumber == 7 ) {
AddMultiClass (CLASS_TYPE_JEDIMASTER, GetObjectByTag ("Mira") );
}
.....
And so on

How must I type this in the Dialog editor?

I don't understand the thinks with P1 P2 P3 P4 P5 and String Param!
 stoffe
03-18-2006, 8:21 AM
#127
Hi, I have a question:

If I want to make a Conditional to this script:
(snip!)
int nScriptNumber = GetScriptParameter( 1 );
(snip)
I don't understand the thinks with P1 P2 P3 P4 P5 and String Param!

The numbers you can enter in the P1 -> P5 fields, and the text you an enter in the String Param field, for each script on a dialog node are values that are passed to the script. These values are then read in the script by calling a function. For reading the P# field values, the GetScriptParameter() function is used in the script, where the number between the () is the same number as the number of the P field.

For example, you get the value entered in the P1 field by calling GetScriptParameter(1) in a script.

The value of the String Param field is read using the GetScriptStringParameter() function.

So, if you check the code for a script you'll see what parameters that script makes use of, and what they are used for. In your script above, the value of the P1 field is used to determine which party member you wish to multiclass. If you set P1 to 7 when calling the script it will multiclass Mira.
 Joris1
03-18-2006, 10:21 AM
#128
Thank you!

Is this right with the brackets if I write GetScriptParamater() in Script Param? Or withourt the brackets?
 Joris1
03-21-2006, 12:19 PM
#129
I found it out!

Another question: Is it possible to cope a node from one dialog and paste it in an other dialog? I mean that I copy a node from mira.dlg and paste this in visas.dlg.
 Darkkender
03-21-2006, 12:39 PM
#130
I found it out!

Another question: Is it possible to cope a node from one dialog and paste it in an other dialog? I mean that I copy a node from mira.dlg and paste this in visas.dlg.


Yes it is. The only problem would be derived from any dialogue branches that may be linked with it. However that is still relativeley easy to cleanup.
 Darth333
03-21-2006, 1:01 PM
#131
Yes it is.
:confused: Are we using the same DLGeditor????

Copying from one dlg to another is not possible with dlgeditor.
 Darkkender
03-21-2006, 1:13 PM
#132
:confused: Are we using the same DLGeditor????

Copying from one dlg to another is not possible with dlgeditor.

It's always worked for me to copy/paste to and from the clipboard. At least for this dlgeditor. That's how I did alot of the merging for dialogues for the Holowan Plugin. I would have two instances of dlgeditor running at the same time copy a node from one and paste into the other. Now there have been issues in the past of parent and child nodes and orphans. But unless I misread some of TK's most recent fixes I believe those have been fixed.

Now KT dlgeditor has always given me issues with copying and pasting dlg nodes.
 Joris1
03-21-2006, 1:45 PM
#133
Really? But than I than there must be 2 dialogeditor open? Sorry for this expression!
 tk102
03-21-2006, 11:05 PM
#134
DLGEditor does not use the Windows clipboard like K-GFF does. However, as long as you stay in the same DLGEditor application, you can do a Copy Node and then Open a different .dlg file and do a Paste As New. The side effect of this however, is that the references to the child nodes will probably not make sense in a differerent dialog file.

You can also highlight and copy the text of a particular node -- this operation does use the windows clipboard -- and paste it into an existing node of a different DLGEditor application.

I hope that makes sense... I'm a bit sleepy.
 Joris1
03-22-2006, 8:36 AM
#135
Hmm, It doesn't work as you told me!
 jinger
05-05-2006, 2:16 PM
#136
…Of course, if you mean that DLGEditor has a bug with animations, it wouldn't surprise me either. :xp: If you can find a way to replicate the bug and describe it to me, that would be helpful. Feel free to post any findings you have in this thread. (http://www.lucasforums.com/showthread.php?t=135639) :)happy to help! :) there are some animations DLGEditor is allergic to, you put them in the animation list, click on another node (and save), and when you're back on it the animation ain't there anymore, just a blank label with the actor's tag in brackets (that's not it, the animation actually won't work in-game). there sure is one i can think of, 1415_CROUCH-LONG (you know the bow the sith give you before Trayus Accademy), but there are others i think. i used this to mod the training dialog lines to make Atton and the others bow before you if you're dark (or meditate if you're light).
 tk102
05-11-2006, 2:47 PM
#137
DLGEditor v2.2.8 released

v2.2.8
- Fixed bug where View Orphan + View Conditional caused Can't call method "get_field_ix_by_label" on unblessed reference (thanks Dashus)
- changed keystroke bindings: Ctrl-End and Ctrl-Delete now bound to treeview
- changed keystroke bindings: F2, F3, F4, F5, F11, F12, Ctrl-Shift-Z now bound to main window
- Fixed keystroke binding for Ctrl-Z (wasn't working)
- Fixed bug associated with TSL animations whose descriptions had '-' characters in them (thanks jinger)
 jinger
05-23-2006, 10:52 AM
#138
mmm, couldn't that evil check on the animations get spaced? :) i just bumped into some animations that DLGEditor don't seem to recognize and it just deletes them from the animation list. i was editing Uthar's dialog in Naga Shadow's tomb (korr_m39aakor39/utharwynn.dlg) and the "poisoned" animation got deleted on me, with KGFF i can say it's 10001 but i think there are others, like in the jedi training dialog on Dantooine when you meditate with things floating all around you (of course i'm talking about the animation for the pc, not the one for the floating book) or the handshake with Zhar when you become an apprentice.
 tk102
05-23-2006, 11:25 AM
#139
Hi jinger,
I took a look at that dialog with both KGFF and DLGEditor and couldn't find the "poisoned" animation to which you're referring. Do you know which node is supposed to be animated? (It seems that it should be Entry 89.) The only animations I find on that dialog branch are on Entry 69 (BOW, 10035) and on Entry 91 & 92 (TALK FORCEFUL, 10040).

Where are you getting the number 10001? It's true that DLGEditor does not have animation 10001 defined in it.

Edit: Oh I found it --- Entry 35. Okay, I'll add 10001 to the list. If you find specific animations that are omitted, I'll add them to the list. During my original animation search, I must have neglected to search deeper than 1 animation per dialog node...
 jinger
05-23-2006, 11:44 AM
#140
i guess if you think that check is needed there is a reason, still it would be cool if any unknown animation wouldn'd be deleted from the animation list and show up as "not in list" or something like that, also it would be nice to have a box where you can put the number for any unknown animation one may find, it would also be quicker than scrolling a long list for animations you already know the code for.
 tk102
05-23-2006, 12:01 PM
#141
I hear what you're saying. Unforunately, in my bad coding practice, I made the DLGEditor more wysiwyg than it should've been. The master data gets displayed and then the contents of the user controls gets checked to see if they match the original data, if not, then it's assumed the user changed the data and (if Auto-Apply is active) the changed are applied. I think I can work around that issue, however.

I considered having the text box for the animation code, but I chose a dropdown list with drag/drop was more user friendly. I'm trying to imagine how to keep the best of both while remaining an intuitive interface for users. The fact that you can have more than one animation per node makes it more difficult to design around and there isn't a lot of "real estate" available to work with in DLGEditor as-is. At this point in the life-cycle of the program, I'd rather just add all known animations to the description list to get them handled normally, and provide UNKNOWN-10001 or whatever for unhandled animations. GFF editors can be used for forcing values.

Thanks for the feedback! :D
 tk102
05-23-2006, 1:14 PM
#142
DLGEditor v2.2.9 released

- Added ability to handle unknown animations. These will appear prefixed with "???_" followed by their animation number.
 Princess Artemis
06-06-2006, 11:07 PM
#143
Obligatory fawning: I love your DLGEditor to bits, and have made quite a few dialogs and cut scenes with it.

I do have a question though: I've never been able to get animations to work. Is there a way of finding out which animations specifically will work on the participants, or is there some specific thing I have to do first to get them to work, something in the root node?
 Pavlos
07-05-2006, 12:11 PM
#144
On the topic of animations...

Edit: Snipped stuff about animation numbers, it isn't anything to do with bugs... just me not looking closely enough to see that unique models are used for the cutscenes.

Also, a feature request: The ability to type in the animation number rather than scroll through the list. Sometimes, when you know the value, you just want to enter it; rather than scroll through hundreds of animations :).

Edit tk102: That's a good idea. I don't know why I didn't do that in the first place.
 wrongo
08-02-2006, 5:09 AM
#145
I would like to use DLGEditor v2.2.9, but when I started the program, nothing happened. I didn't see any error messages. I unzipped the archive, and copied the dialog.tlk to this directory. What I have to do to? (I didn't installed the KoTOR and/or KotOR2, I only want to edit the dialogues)

Please, somebody help me!
 oldflash
08-02-2006, 5:39 AM
#146
From what I remember this great tool was suppose to be used for editing kotor and kotor2 (TSL) dialog files and I think is require some 2da files and dialog.tlk from kotor2 or kotor folder/subfolder. However, I don't see how to use this tool if you don't have kotor2 or kotor installed.
 wrongo
08-02-2006, 6:18 AM
#147
The KotOR2 is installed to my home computer, but I want to use DLGEditor v2.2.9 on an other PC.
I just only edit the dialog.tlk's text, but it's important to see the dialog tree. I have an dialog-tree-viewer program, but it can only for viewing, not editing.
 oldflash
08-02-2006, 7:00 AM
#148
The KotOR2 is installed to my home computer, but I want to use DLGEditor v2.2.9 on an other PC.
I just only edit the dialog.tlk's text, but it's important to see the dialog tree. I have an dialog-tree-viewer program, but it can only for viewing, not editing.
I don't know if you can edit dialog.tlk with this. Have you tried TalkEd v1.0b (tlk editor) (http://www.lucasforums.com/showthread.php?t=152546)?)
From What I know I think dialogEditor is for .dlg files.
 wrongo
08-02-2006, 7:48 AM
#149
I have the TalkEd, KotorTLK, and a NWN .tlk editor, which are all works good. As I know the .dlg files refering the strings of dialog.tlk. That's why will be good the DLGEditor. But it seems to me it's not working without the installed games.
 Darth333
08-02-2006, 1:05 PM
#150
Here is something you can try to get dlgeditor working without the games installed:

DLGEditor creates an dlgeditor.ini in your %SYSTEMROOT% directory (C:\WINDOWS or C:\WINNT typically) that stores settings including the location of the dialog.tlk file for KotOR and TSL.

Open up notepad and paste the following (replacing yourpathnamehere with wherever you've put your dialog.tlk files)


[Settings]
KotOR TLK Location=C:\yourpathnamehere
TSL TLK Location=C:\yourpathnamehere
Save this in your C:\WINDOWS or C:\WINNT folder as dlgeditor.ini and try launching DLGEditor again. Make sure notepad doesn't accidently name the file dlgeditor.ini.txt!
Page: 3 of 5