DLGEditor v2.3.2
Download here (
http://www.starwarsknights.com/tools.php) (April 30, 2008)
v2.3.2
- Rearranged some code to prevent unnecessary crashes upon launch and recompiled with PerlApp 7.2
v2.3.1
- Recompiled with PerlApp 7.1 (support for diacritics in username)
v2.3.0
- Fixed bug where undoing an add of a reply to a reply or an entry to an
entry would not undo the creation of the implied entry or reply. Thanks to Dashus for this.
- Fixed bug where Edit: Delete All Orphans was not enabled right after a File: Open command (again, thanks Dashus)
- Animations can now be added without having to select from the list (they can be typed by number)
See readme.txt for more information.
Good job tk. :)
Five bucks says this is merged with the feedback thread within 2 days. :D
I'll give it 2 hours.... and another $5 that says both of these posts will be deleted in the process.
TK102 this is awsome, i cant tell you how much this will help me in A New Foe.
BTW: Can you do Tokens like in the aurora toolset where you can add a [sir/ma'am] thing?
Yes you can use tokens. The one I'm most familiar with is <FullName>. But a quick check using KTLK (
http://www.pcgamemods.com/5279/) or whatever your favorite TLK file search utility is, yields lots of them... mostly
<CUSTOMx> where x is a number.
:thmbup1: Excellent work t102!!! This is one great tool that will save a lot of headaches :compcry: and time when editing/creating dialogues. And I love those new functions you added since the last version, especially the copy/cut/paste function.!
:sheepdanc :guitar2 :band1 :guitar1 :cowdance
And concerning the bets you and Mono have taken: I wont delete Mono's post because he says "good job tk" and I won't merge this thread with the other because posts are inserted in a thread according to the time they were posted and the other posts would be placed at the top of this thread, before tk's announcement. Sooo...conclusion of this story: you both loose... send the money over here! :D
You already now how i feel.
v1.0.1 (an update already!)
http://www.pcgamemods.com/7438/)
This fixes the bug that TMPhoenix found in regards to the DelayEntry field.
Great! :thumbsup: :thumbsup:
Great work. :) I like the option "show orphaned replies/entries". I've just finished a personal dialogue with the old editor with over 200 replies/entries and found a lot "orphans" I forgot to connect with each other. :rolleyes: Thank you! :D
I've seen some pretty cool stuff done with PERL at work, but never anything as great as this. Quite amazing.
Excellent work - keep it up!
Thanks a lot guys! :D
And that means a great deal from you Fred. :D FWIW, I found myself thinking, well what would Fred do here?
Soliloquy: Perl/Tk (the GUI) can be tricky or tedious at times but eventually it lends itself to cut/paste code, which to me, means that you're on the right track design-wise. If you find yourself having to make a lot exceptions for special cases, then it might be time for a redesign. And adding the menubar at the top is surprisingly effective at focussing the purpose of the program.
Please let me know if you find any bugs or have critiques/ideas for this app.
If this only existed when I was trying to make that last mod when I wanted to be able to use Force Persuade to get the item :(
Anyway, nice work as usual tk102
Very nice work tk! I was just getting the hang of your text based dialog editor, but I am happy to throw that out in favor of this one. Once again nice work!
Originally posted by Tanesh
Great work. :) I like the option "show orphaned replies/entries". I've just finished a personal dialogue with the old editor with over 200 replies/entries and found a lot "orphans" I forgot to connect with each other. :rolleyes: Thank you! :D
How did you create orphaned nodes in the conversation? Was it by accident? Where you using DLGEdit or (shudders) the GFFEditor?
If someone who has created/can create one of these, kindly send it to me (email in the KT readme..blah..blah..blah) so I can make sure that it can be checked for in the Kotor Tool conversation editor.
Also, should it be called a conversation or dialogue editor? NWNs' toolset uses the former....
Hi Fred,
If you want, you can download the VFX Armband (
http://www.pcgamemods.com/5896/) for an example of a .dlg with orphaned nodes. When I was building it, I was too lazy to remove the nodes for the effects that didn't work. :)
So what you're saying is that there are EntryList items that don't appear in any ReplyList item's EntriesList or ReplyList items that don't appear in any EntryList item's RepliesList, correct?
If that's so, I think I am OK due to the way I parse the DLG file; non-referenced entries are not processed, so only the actual "tree" (or directed graph, if you prefer) is loaded and rewritten into GFF when you save.
Originally posted by Fred Tetra
So what you're saying is that there are EntryList items that don't appear in any ReplyList item's EntriesList or ReplyList items that don't appear in any EntryList item's RepliesList, correct?
Yes, that's it. I used tk's old DLGEdit to write my dialogue and because it was so big, I missed to connect some dialogue options with each other. And then the happy searching begun ... especially with the empty replies ... *sigh*
But tk, I've got a little problem now. When I want to open said dlg file, I get an error message:
"Can't call method "get_field_ix_by_label" on an undefined value at dlgeditor_101.pl line 1361. (menu invoke)"
and the option "View" in the menu is missing until I choose with right click an option like show conditionals or indices. But still after that I can't fold or unfold the trees ...
:confused:
It's only with one file and it worked fine a day ago. What could that be? :confused:
Interesting. Tanesh, I PM'd you. Send the dlg to me along with the exact steps involved in generating the errors. Hopefully it will lead to an improvement.
While I emailed you this response, I decided to also share it here for the benefit of other folks....
"Ok, while I don't have the time to fix it for you, I did find the problem in you file to be a circular reference as I had guessed.
If you open up your file in the GFF Editor, you'll find that EntryList(126) has a RepliesList index entry of 172 into the ReplyList, and likewise ReplyList(172) has an EntriesList index entry of 126 into the EntryList.
This breaks the rule that conversation trees go down only by direct reference and up only by virtual links. Since I can't take the time to trace out your intended tree, you'll have to patch it up manually."
P.S. Yours is the largest conversation tree I've ever seen at 160 KB! Some of the largest in KotOR are only around 36KB :)
Yes, I had a typing error (184 instead of 144) and accidently switched the lines (172 instead of 173). :rolleyes: Man, I'm getting old ...
And I know it's quite large, it hast 342 replies/entries, the "connections" and starting list not counted. I only wanted to have a nice background story for my sabers ... I guess it got a bit out of control. :rolleyes: But now I have a personal conversation file almost like the other pary members. :)
I'm not sure if I want to translate the whole thing ... it would take a lot of work, that's for sure.
This breaks the rule that conversation trees go down only by direct reference and up only by virtual links. Since I can't take the time to trace out your intended tree, you'll have to patch it up manually.
Am I missing something because this rule has no "teeth" to it. I don't know about NWN, but KotOR doesn't mind moving up the dialog tree without the "IsChild" flag being set. The dialog behaves itself.
DLGEditor does nothing with this flag (other than create the field).
v1.0.2 released (see link in first post of this thread.)
* v1.0.2 - added error checking for StartingList, EntriesList, RepliesList so that if the Index field points to a non-existant structure, a dialog box will appear prompting the user to take action. (Thanks Tanesh.)
TK102,
Thanks for the updated version. I'm working with it right now to create a new dialog and it seems as though there is some general weirdness with the copy/paste functions.
If I try to copy and paste a node, the application will only paste the copy in the same tree as the entry I'm copying.
For instance:
Entry 0
Reply 0
Entry 1
Reply 1
If I try to copy R0 and add it to E1's tree, it pastes it directly below R0 :(
Not sure if this is user error, but I thought I would share this in case it's not.
Hi Achilles,
Are you sure that E1 is properly selected in the tree at the time you initiate your Paste? Sometimes the tree doesn't respond as quickly as expected.
If the problem is persistent and is repeatable, could you send me the .dlg in question along with the exact steps involved in causing the bug.... email is in the Help: About screen.
Originally posted by tk102
Hi Achilles,
Are you sure that E1 is properly selected in the tree at the time you initiate your Paste? Sometimes the tree doesn't respond as quickly as expected.
If the problem is persistent and is repeatable, could you send me the .dlg in question along with the exact steps involved in causing the bug.... email is in the Help: About screen. Yeah, it tried it 5 or 6 times just to make sure that I wasn't doing something incorrectly.
Unfortunately, I soldiered through it a finished the dialog by copy/pasting text into new entries, so I don't have the problem file any longer :(
If I come across the same issue again, I'll save you a copy.
Thanks!
v1.0.3 released
- fixed bug: Comments not being stored (thanks T7Nowhere)
- improved cut/delete operations (thanks Achilles, T7Nowhere)
- fixed bug that affected StartingList entries after one was deleted
- added Paste options to context menu when root node is selected
Originally posted by tk102
Am I missing something because this rule has no "teeth" to it. I don't know about NWN, but KotOR doesn't mind moving up the dialog tree without the "IsChild" flag being set. The dialog behaves itself.
DLGEditor does nothing with this flag (other than create the field).
According to the Bioware Aurora Conversation Format document, table 2.3.2, the flag has this description:
IsChild - BYTE - 1 if this is a link, and there is a LinkComment.
0 if this is a direct reference to the dialog, and there is no LinkComment.
Sometimes apps do not follow standards and still work (e.g. Internet Explorer), but I generally try to write to them for future compatability.
My editor builds its data structures by walking the actual conversation, which has the side effect of weeding out orphan nodes. The downside is that it expects that files follow the Bioware format specs and chokes when they're not :) Well, at least it used to when cyclic edges were present between the nodes. Now I use a hashtable to tell if a node has been visited during the traversal of the tree, so it is easier to detect nodes that should likely be marked as links, which it then does.
I let my editor try this on Tanesh's file, then I sent it back to her { :) }; we'll see if my technique is any good. :D
Unfortunately, the file doesn't work correctly, Fred. :( Seven of the eight entries of the starting list are missing and there are some problems with dialog options that should only appear with a script. I sent you a mail with the whole error list.
Oh, and it's "her", not "him". ;)
I discovered a bug this morning that was causing the "Script that determines if node is available" script name to be written to "Script to run for this node" script's field. This is a bad thing. I corrected it and a new version of Kotor Tool is available for those who'd like to try it. Also, I sent Tanesh a new version of the conversation to see if it works better.
I realize this is more of a Kotor Tool-thing than something directly relevant to tk102's cool tool, but I wasn't sure how to otherwise address it :)
v1.0.4 released
Adds support for extended characters such as д,Я,а etc.
GUI DLGEditor v1.0.5 released.
- Added enhancements to the code to make it more compatible with those DLG files created with KotOR Tool.
I noticed some DLG files that didn't have certain fields (eg. Sound, SoundExists, Quest, etc.) These caused DLGEditor some trouble, but no longer.
I ran into the same problem! In fact, I used to unconditionally add many fields whether or not they were used, but now I only create them if either (a) I know from experience that they have to be there or (b) the user entered data that needs to be stored in a node. This makes the DLGs I output much smaller with less 'waste'. This follows my observations ofseveral of the in-game DLG files.
Well this version puts all of those fields back in -- just in case people want to modify the files in GFF Editor later. The file size difference that I've seen was about 15%.
DLGEditor v1.0.6 Released 11/21/04
- Fixed bug in AnimationList where Animation descriptions containing a space were not being recorded correctly
- Added support for QuestEntry field. Thanks Xavier2!
thankstk102, I gonna need that journal entry thing soon :)
DLGEditor v1.0.7 Released 12/4/04
Fixed problem where user would paste a Unicode character such as a smart quote or a smart apostrophe into the Text field and then get a "Wide Character" error when trying to save the dialog. Now, Unicode characters will appear in the Text field, but will become strange ASCII characters in the Treeview when Apply button is pressed. This eliminates the error at save. Thanks svцsh and Darth333!
And thanks to you for making this update! :sheepdanc
Big thanks for this Tk :)
svцsh
svцsh said
Big thanks for this Tk
Sorry you had to find out about this the hard way, svцsh... :(
GUI DLGEditor v1.0.8 released.
Automatic Apply Feature added.
v1.0.8 - Added "Automatic Apply" feature to the Edit menu (F8=shortcut). After working with DLGEditor for awhile, I felt it is was too annoying to have to click the Apply button all the time for changes to stick. (I'm surprised more people didn't complain about this. :o )This feature is toggled on by default and will hide the Apply button. Changes are applied whenever the user clicks on a different Tree Node. You can revert back to the old behavior by pressing F8 which will make the Apply button reappear automagically.
Actually I had noticed it and it was annoying tk102. However I never felt it was worth complaining about. There are always bigger fish to fry.:p
Nice practical addition :)
We'll complain when we make tools :p
Just a reminder for those trying to use DLGEditor with TSL dialogs:
You'll need to press Ctrl+T (or choose File: Change TLK File) to browse to the dialog.tlk file located in your TSL installation directory.
Originally posted by tk102
Just a reminder for those trying to use DLGEditor with TSL dialogs:
You'll need to press Ctrl+T (or choose File: Change TLK File) to browse to the dialog.tlk file located in your TSL installation directory.
Any chance the program could "remember" that change so you don't have to change it everytime?
Also, I was wondering, would it be possible to to display (and modify) script parameters fields just as you can do with actual script names.
Thanks
Any chance the program could "remember" that change so you don't have to change it everytime?Yes I actually intend to add that feature.
Also, I was wondering, would it be possible to to display (and modify) script parameters fields just as you can do with actual script names.
Ah, is this something new with TSL dialog files? Parameters that can be passed to the scripts? If so, then most certainly!
I have not investigated TSL dialogs yet, obviously. :)
I have not investigated TSL dialogs yet, obviously.
LOL! I on the other hand don't know what was (and what wasn't) possible with the first game. I felt the modding force only with TSL. :D
But yes, you can add params (whole bunch of them) in dlg files which will be passed to scripts you're calling. I guess this makes usage of scripts more effecient since you can write more generic code. Unfortunately, so far you can only modify/add them with GFFEditor which is pain in the butt, especially with large dialogs.
Anyway, I eagerly await your next release. :)
It's been a long time coming...
v2.1.2 released
DLGEditor now supports TSL dialog editing. There's been many new features added to DLGEditor that were not present in the 1.0.8 version. Some highlights include:
- Support for new TSL .dlg field editing
- KotOR/TSL dialog.tlk paths supported
- Undo feature supports 4 levels of undo
- Autodetection of .dlg file types (attempted at least)
- Toggle mode from KotOR to TSL
- Multiple language ID support and conversion capability
- Screen Resolution can be modified
- Go to Index # functionality
- Move Node Up/Down from context menu
- A new readme.txt
I am certain how all the new fields affect dialogs in-game. Hopefully you will be able to provide feedback that I can put into the readme.txt.
Great! Thanks for releasing this (I couldn't hold it secret much longer :D ) It will make dlg editing much easier now :)